Realizado

Editor Gráfico simples com Client e Server

Publicado em 16 de Maio de 2020 dias na TI e Programação

Sobre este projeto

Aberto

O objetivo deste trabalho é implementar o Editor Gráfico simples como  uma  aplicação  Cliente-Servidor.  Com  esta  aplicação,  vários  usuários  (Client)  poderão simultaneamente acessar o servidor (Server) para:    salvar seus desenhos no servidor;
consultar desenhos no servidor;
selecionar desenho no servidor,

E consequentemente, fazer sua carga no editor; Este trabalho deverá ser desenvolvido atendendo os requisitos abaixo especificados:

a)  Implementar o Cliente: o Cliente desta aplicação deverá ser o Editor Gráfico simples. Ao acionar o programa Client, o usuário deverá ter acesso às funcionalidades que hoje já existem no editor.

Além destas funcionalidades, a interface do Client deverá ser alterada para prever a inclusão outros requisitos no editor:
i. Conexão do Client ao Server: ao acionar o programa Client, este programa Client deve estabelecer uma conexão com o servidor.
Ii. Salvamento  remoto: esta funcionalidade permitirá que os desenhos sejam salvos no servidor (a opção de salvamento em arquivo deve ser mantida no Client);
iii. Seleção de desenho remoto: esta funcionalidade permitirá que o usuário consulte todos os desenhos que estão salvos no servidor, apresentando uma lista destes desenhos, informando: nome do desenho, identificação do cliente (que pode ser o IP do Client), data de criação do desenho e data do último salvamento no servidor.

Ao aparecer a listagem dos arquivos que estão no servidor, o usuário deverá ter a possibilidade de selecionar um desenho e fazer sua carga no editor, permitindo que na sequência o usuário  faça  alterações  no  desenho  e  salve  no  servidor  quando  selecionada  a funcionalidade  “Salvamento  Remoto”.  Vale  enfatizar  que  um  cliente  só  poderá  ter acesso aos seus desenhos, a partir do fornecimento da sua identificação ao Server.
Iv. Shutdown do Servidor: quando o usuário tiver a intenção de fechar o programa Client, este programa Client deve primeiro fazer o shutdown do servidor, para que a conexão entre o Client e o Server seja destruída, não ficando presa ao servidor. Portanto, antes de  encerrar  a  aplicação  faça  esta  operação  no Client  que  estamos  chamando  de Shutdown do Servidor.



B) Implementar o Servidor: o Servidor desta aplicação não terá interface gráfica. O Server deverá implementar os seguintes requisitos:
i. Armazenamento dos Desenhos no Banco de Dados: o servidor deverá ter um banco de dados  (MySQL)  com  uma  única  tabela  que  contém  os  dados  do  desenho.

Cada desenho deverá conter os seguintes dados: nome do desenho, identificação do cliente (que pode ser o IP do Client), data de criação do desenho (data esta gerada na criação do registro no banco de dados e que não poderá ser alterada posteriormente), data do último  salvamento  no  servidor  e  o  conteúdo  do  desenho.  Os  dados  deverão  ser preenchidos nesta tabela todas as vezes que o usuário decidir salvar o desenho no servidor.  Caso  o  nome  do  arquivo  já  exista  no  servidor,  os  dados  deverão  ser sobrescritos (exceto a Data de Criação do Arquivo, o nome do arquivo e a identificação
do Client).

Caso o nome do arquivo não exista no servidor, um novo registro no banco de dados deverá ser criado.
Ii. Controle  dos  Usuários  conectados  ao  Servidor:  o  servidor  deverá  gerenciar  as conexões de usuários.

Dicas para Desenvolvimento do Projeto:

1) Utilizar banco de dados no Servidor: conforme descrito acima, o programa do servidor deverá  ter  condições  de  consultar  e  salvar  os  desenhos  no  banco  de  dados.  Para manipular os dados no banco de dados, você  deverá utilizar os conceitos de  DAOs e DBOs aprendidos na disciplina de Programação Orientada a Objetos. 
2) Estabelecer a comunicação Cliente-Servidor: na disciplina de Programação Orientada a Objetos,  vocês  aprenderam  que  para  desenvolvermos  aplicações  em  Java  que  se comunicam via rede local ou via internet, devemos utilizar sockets.

Vocês também viram que uma aplicação que utiliza sockets normalmente é composta por uma parte servidora e diversos  clientes.  Para  que  o  servidor  aceite  vários  clientes,  simultâneos,  deveremos utilizar o conceito de Threads. Cada cliente tem sua própria Thread, para que cada cliente estabeleça independentemente a sua conexão com o servidor.


3) Definir  um  padrão  de  comunicação  Cliente-Servidor:  na  disciplina  de  Programação Orientada  a  Objetos,  vocês  também  aprenderam  que  um  cliente  solicita  determinado serviço ao servidor. O servidor processa a solicitação e devolve a informação ao cliente. Portanto, um dos passos fundamentais do seu projeto será você estabelecer um padrão de comunicação entre o cliente e o servidor, que chamaremos de Protocolo de Comunicação.

Categoria TI e Programação
Subcategoria Programação
Qual é o alcance do projeto? Bug ou alteração pequena
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho uma ideia geral
Disponibilidade requerida Conforme necessário
Funções necessárias Desenvolvedor

Prazo de Entrega: Não estabelecido

Habilidades necessárias