Sobre este projeto
it-programming / web-development
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