Projeto Supervisionado no
Desenvolvimento de Aplicações
Profissionais na Web
Introdução ao Projeto
Projeto de Monitoramento de Objetos Moveis
• Objeto Móvel
– Qualquer objeto que possa ser localizado no globo terrestre
– Sua localização se altera com o tempo
• Sinal
– Informação instantânea da localização do objeto móvel
• localização (longitude x latitude)
• data (timestamp)
Projeto de Monitoramento de Objetos Moveis
• Evento
– Informação gerada pelo sistema a partir do processamento dos sinais de localização
de um objeto móvel
• Produto efetivo de um sistema de monitoramento
– Quem?
– O que?
– Quando?
• Ex:
– Excesso de velocidade
– Parada
– Entrada e saída de áreas delimitadas (E-fence)
Projeto de Monitoramento de Objetos Moveis
• Segundo Trabalho
– Camada de Apresentação
• Objetivo
– Criar Sistema Web capaz de tratar o cadastro das entidades do sistema
– Servidor
» Serviços REST para CRUD ( Create Retrieve Update Delete )
• Evento
• Sinal
• Objeto Móvel
– Cliente
» Interface de Consulta de Eventos
» Interface de Consulta de Sinais
» Interface completa de CRUD de Objetos Móveis
Projeto de Monitoramento de Objetos Moveis
• Segundo Trabalho
– Camada de Apresentação
• Entrega:
– Data Limite: 29/05 ás 23:59 ( sexta )
– Código Fonte Completo
– E-mail para [email protected]
» Assunto : Inf1802 – Trabalho 2
» Corpo : Nome completo ( ou pelo menos o suficiente para termos certeza de quem é você), e
zip com código fonte anexado
Projeto de Monitoramento de Objetos Moveis
• Serviços REST
– Devem ser implementados estendendo HTTPServlet da biblioteca JEE
• Apesar da Interface com o usuário não ser completa para todas as entidades do Sistema de
Monitoramento, os serviços REST deverão ser completos:
–
–
–
–
Inclusão
Consulta
Atualização
Remoção
– Devem ser disponibilizados http://servidor:porta/nomeprojeto/
– Devem usar o conteúdo em formato JSON em todas as comunicações
• Retorno e corpo da requisição quando aplicável
Projeto de Monitoramento de Objetos Moveis
• Serviços REST
– As classes que serão utilizadas para fazer o REST serão versões simplificadas das, já
conhecidas, classes Sinal, Evento e ObjetoMovel.
– Todas estas classes serão POJOs, ou seja, apenas terão atributos privados e métodos
públicos de acesso.
– A simplificação destas classes está em ter apenas o id do objeto que a classe se
relaciona
– Todas as classes utilizadas no REST ganham o sufixo UI (User Interface)
• SinalUI e SinalUIImpl
• EventoUI e EventoUIImpl
• ObjetoMovelUI e SeuNomeDeObjetoMovelImpl ( está explicado mais a frente )
Projeto de Monitoramento de Objetos Moveis
• Serviços REST - Objeto Móvel
– URL base http://servidor:porta/nomeprojeto/objetosmoveis
• Metodo GET
– Retornar a lista completa de objetos moveis cadastrados
• Metodo POST
– Criar um novo registro de Objeto Movel com o conteúdo da mensagem
• Metodo DELETE
– Deve apagar toda a coleção
– URL base http://servidor:porta/nomeprojeto/objetosmoveis/12 ( onde 12 é apenas um identificador de
exemplo )
• Metodo GET
– Retorna apenas objeto movel identificado
• Metodo PUT
– Deve atualizar o objeto móvel
• Metodo DELETE
– Deve apagar o objeto móvel
Projeto de Monitoramento de Objetos Moveis
• Serviços REST - Objeto Móvel
– Deve-se criar a Interface ObjetoMovelUI
– Ela deve ter os seguintes atributos:
• String id
• String idUltimoSinal
– Implementar a Classe “SeuObjetoMovelUIImpl” ( Vocês escolhem o nome ). Ela deve
implementar a interface ObjetoMovelUI. Ela devem também incluir dois novos campos
• TipoX atributoASuaEscolha1
• TipoX atributoASuaEscolha2
• Esses dois atributos a mais devem fazer sentido no ObjetoMovel que vocês pretendem
modelar ( Pessoa, Animal, Veículo, etc...)
Projeto de Monitoramento de Objetos Moveis
• Serviços REST - Sinal
– URL base http://servidor:porta/nomeprojeto/sinais
• Metodo GET
– Retornar a lista completa de sinais cadastrados
• Metodo POST
– Criar um novo registro de sinal com o conteúdo da mensagem
• Metodo DELETE
– Deve apagar toda a coleção
– URL base http://servidor:porta/nomeprojeto/sinais/12 ( onde 12 é apenas um identificador de
exemplo )
• Metodo GET
– Retorna apenas sinal identificado
• Metodo PUT
– Deve atualizar o sinal
• Metodo DELETE
– Deve apagar o sinal
Projeto de Monitoramento de Objetos Moveis
• Serviços REST - Sinal
– Deve-se criar a Interface SinalUI
– Ela deve ter os seguintes atributos:
•
•
•
•
•
String Id;
Double Lon;
Double Lat;
String idObjetoMovel;
String data;
– Deve-se implementar a classe SinalUIImpl que implementa essa interface
Projeto de Monitoramento de Objetos Moveis
• Serviços REST - Evento
– URL base http://servidor:porta/nomeprojeto/eventos
• Metodo GET
– Retornar a lista completa de eventos cadastrados
• Metodo POST
– Criar um novo registro de evento com o conteúdo da mensagem
• Metodo DELETE
– Deve apagar toda a coleção
– URL base http://servidor:porta/nomeprojeto/eventos/12 ( onde 12 é apenas um identificador de
exemplo )
• Metodo GET
– Retorna apenas evento identificado
• Metodo PUT
– Deve atualizar o evento
• Metodo DELETE
– Deve apagar o evento
Projeto de Monitoramento de Objetos Moveis
• Serviços REST - Evento
– Deve-se criar a Interface EventoUI
– Ela deve ter os seguintes atributos:
•
•
•
•
•
•
String Id;
String tipo
String inicio;
String fim;
String valor;
String idObjetoMovel;
– Deve-se implementar a classe EventoUIImpl que implementa essa interface
Projeto de Monitoramento de Objetos Moveis
• Cliente
– Deve-se utilizar as tecnologias WEB apresentadas em sala (HTML, CSS e Javascript)
para fazer o cliente do serviço REST para cada classe do nosso modelo (Sinal, Evento
e ObjetoMovel)
– Para Sinal e Evento implementar apenas a lista de objetos e o detalhe do objeto selecionado
– Para o ObjetoMovel implementar o CRUD completo
• Além da lista e do detalhe, poder apagar um objeto específico e formulário para inclusão de um novo
objeto móvel do modelo específico de vocês
– O cliente consistirá então em basicamente 4 telas HTML+ seus CSSs e Javascript (que
podem estar em arquivos separados ou no mesmo HTML):
• 1 HTML para a tela com um link para cada classe (Sinal, Evento e ObjetoMovel) que navega
para o HTML da classe especifica
• 1 HTML para cada classe (3 no total)
– A comunicação com o servidor deverá ser feira em AJAX
Download

Apresentacao_Segundo_Trabalho_INF1802