Sistema de Comunicação entre Ônibus, Pontos de Parada e Terminais de Ônibus, Utilizando Tecnologias Java™ Amir Neves Ferreira Velho Cristiane Fernandes Hugo Henrique Cassettari Vivian Rodrigues Fiales Introdução - Metodologia 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador 4 - Conclusões Pesquisa Análise do Sistema Metodologia Orientada a Objetos Diagramas UML (Unified Modeling Language) Definição da Arquitetura do Sistema Implementação Simulador Análise dos Resultados Obtidos Ciência da Computação - 8º G - Dez/2001 Introdução - Cenários 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador 4 - Conclusões Comunicação Ônibus - Ponto de Parada; Ônibus: log temporário de informações do ponto; 1255 - Jabaquara Ônibus 1255 com destino ao Jabaquara chegando. O ônibus possui ar-condicionado Comunicação entre ônibus e ponto de parada Ciência da Computação - 8º G - Dez/2001 Introdução - Cenários 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth Comunicação Ponto de Parada - Ônibus; Próximo Ponto: Av. Paulista, altura do no 5677, próximo ao Trianon 3333 - Lapa 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador 4 - Conclusões Comunicação entre ponto de ônibus e ônibus Ciência da Computação - 8º G - Dez/2001 Introdução - Cenários 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador Comunicação Ônibus - Terminal de Ônibus; Conexão com a Central Operacional; Terminal: log de erros dos ônibus e pontos; Terminal Parque Dom Pedro 1255 - Jabaquara 3333 - Lapa 4 - Conclusões Comunicação entre ônibus e terminal de ônibus Ciência da Computação - 8º G - Dez/2001 Introdução - Componentes 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador Componentes do Sistema CadastroApp CentralOperacionalApp OnibusApp TerminalApp 4 - Conclusões PontoApp Diagrama inicial de componentes Ciência da Computação - 8º G - Dez/2001 Tecnologias Utilizadas 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador 4 - Conclusões Tecnologia Base para o Projeto: Java™ Por quê? Portabilidade; Escalabilidade; Extensibilidade; Grande Envolvimento da Sociedade no Desenvolvimento de APIs para Tecnologias Novas (exemplo: Bluetooth) Padrão para Rede Wireless: Bluetooth™ Ciência da Computação - 8º G - Dez/2001 Java™ 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador Linguagem Orientada a Objetos; Provê Independência de Plataforma; Tem uma Evolução Rápida APIs são construídas a partir do JCP (Java Community Process) 4 - Conclusões Ciência da Computação - 8º G - Dez/2001 Java™ Servlets 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador 4 - Conclusões API Java™ para Construção de Aplicações que Funcionam no Âmbito da Web; Utilizada na Central Operacional; Por quê Servlets? Mais Eficientes e Escaláveis que Programas CGI (Common Gateway Interface); Possibilidade de Interação com o Servidor; Portabilidade. Ciência da Computação - 8º G - Dez/2001 RMI (Remote Method Invocation) 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador 4 - Conclusões Arquitetura Java™ para Sistemas Distribuídos; Utilizado na Central Operacional; Por quê RMI? Mais Simples que CORBA (Common Object Request Broker Architecture); Necessidade da Construção de uma Servlet com Acesso Remoto. Ciência da Computação - 8º G - Dez/2001 JDBC (Java™ Database Connectivity) 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador 4 - Conclusões API Java™ para Acesso a Bancos de Dados Relacionais; Utilizada na Central Operacional; Por quê JDBC? Necessidade de Armazenamento e Recuperação dos Dados Relacionados à Aplicação dados do ponto de parada (Exemplo: localização) dados das linhas (Exemplo: ônibus) É o Meio de Acesso a Bases de Dados Através da Linguagem Java™. Ciência da Computação - 8º G - Dez/2001 JCE (Java™ Criptography Extension) 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador 4 - Conclusões API Java™ que Fornece Esquemas de Segurança; Utilizada em Todas as Aplicações do Sistema (Central Operacional, Ônibus, Ponto de Parada e Terminal de Ônibus); Por quê JCE? Necessidade da Utilização de Criptografia RSA - Rivest Shamir Adleman Ciência da Computação - 8º G - Dez/2001 JCE (Java™ Criptography Extension) 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth Outros Níveis de Segurança Central Operacional Autenticação no Acesso Via Browser; Armazenamento de Dados dos Acessos Autorizados e Não-Autorizados; 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador vivian; Mon Nov 12 17:19:11 GMT-02:00 2001-11-12 amir; Mon Nov 12 17:30:01 GMT-02:00 2001-11-12 cristiane; Mon Nov 12 17:30:05 GMT-02:00 2001-11-12 marcos; Mon Nov 12 17:31:00 GMT-02:00 2001-11-12 hugo; Mon Nov 12 17:32:00 GMT-02:00 2001-11-12 amir; Tue Nov 13 11:00:00 GMT-02:00 2001-11-13 vivian; Tue Nov 13 12:00:00 GMT-02:00 2001-11-13 luciano; Tue Nov 13 12:20:00 GMT-02:00 2001-11-13 4 - Conclusões Classe ibus.LoginHandler Exemplo do Log de Monitoração Ciência da Computação - 8º G - Dez/2001 J2ME (Java™ 2 Micro Edition) 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador Versão do Java™ para Dispositivos Pequenos; Utilizado no Ônibus, Ponto de Parada; Por quê J2ME? Funcionamento da Aplicação em Dispositivos Pequenos; APIs Java™ para Bluetooth™ Serão Construídas com Base no J2ME. 4 - Conclusões Ciência da Computação - 8º G - Dez/2001 APIs Java™ para Bluetooth™ 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth JSR (Java™ Specification Request) 82; http://www.jcp.org/jsr/detail/82.jsp Baseadas no J2ME; Data para Revisão Pública: 29/Dez/2001; 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador 4 - Conclusões Ciência da Computação - 8º G - Dez/2001 Projeto - Arquitetura 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador 4 - Conclusões Ponto App Ponto App (Aplicação Java) J2ME Ponto App Rede Bluetooth Onibus App J2ME Onibus App (Aplicação Java) J2ME Onibus App Rede Bluetooth J2ME / RMI JCE Terminal App (Aplicação Java) Servlet / RMI JCE Protocolo HTTP Central Operacional App (Aplicação Java) JDBC Arquitetura em 3 camadas do ônibus, ponto e terminal Ciência da Computação - 8º G - Dez/2001 Projeto - Arquitetura 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador Terminal App (Aplicação Java) Terminal App Terminal App Cadastro App (Browser HTML) JCE Cadastro App Cadastro App Protocolo HTTP Servlet / RMI JCE Central Operacional App (Aplicação Java) JDBC Protocolo Proprietário do Banco de Dados 4 - Conclusões Banco de Dados Relacional (Microsoft™ Access) Arquitetura em 3 camadas da central operacional Ciência da Computação - 8º G - Dez/2001 Central Operacional 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador Esquema do Banco de Dados sentido: String linha parada nome_referencia: String [1,n] ruaavenida: String numero: String complemento: String bairro: String [0,n] estado: String cep: String ip: String 4 - Conclusões terminal ponto idponto: String idter: String tem [1,n] idlin:String destino1:String destino2:String tem [1,1] [0,n] [0,n] tem tem onibus idbus: String ip: String [0,n] [0,n] caracteristica idcar: String nome: String valor: String Diagrama entidade-relacionamento estendido Ciência da Computação - 8º G - Dez/2001 Central Operacional 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador Diagrama de Classes Mostra que a Aplicação é uma Servlet Herda de javax.servlet.http.HttpServlet Mostra que a Aplicação tem Acesso Via RMI Implementa java.rmi.Remote Mostra os Serviços Fornecidos pela Aplicação 4 - Conclusões Diagrama de classes da central operacional Ciência da Computação - 8º G - Dez/2001 Central Operacional 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes Acesso ao Banco de Dados 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador Classe ibus.util.DabataseManager 4 - Conclusões Ciência da Computação - 8º G - Dez/2001 Ônibus, Ponto e Terminal 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth Diagrama de Classes Especifica os Serviços Ônibus, Ponto e Terminal Verifica-se a Existência do Log O Terminal possui um conexão (via RMI) com a Central 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador 4 - Conclusões Diagrama de classes do ônibus, ponto e terminal Ciência da Computação - 8º G - Dez/2001 Ônibus, Ponto e Terminal 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador Log de Erros Mon Mon Mon Mon Mon Tue Tue Tue Nov Nov Nov Nov Nov Nov Nov Nov 19 19 19 19 19 20 20 20 17:19:11 17:30:01 17:30:05 17:31:00 17:32:00 11:00:00 12:00:00 12:20:00 GMT-02:00 GMT-02:00 GMT-02:00 GMT-02:00 GMT-02:00 GMT-02:00 GMT-02:00 GMT-02:00 2001-11-19; 2001-11-19; 2001-11-19; 2001-11-19; 2001-11-19; 2001-11-20; 2001-11-20; 2001-11-20; 10.0.3.19; 10.0.3.29; Erro durante Recebimento de Mensagem 10.0.1.180; 10.0.3.27; Dispositivo não encontrado 10.0.1.180; 10.0.3.29; Erro durante Envio de Mensagem 10.0.3.19; 10.0.3.28; Dado esperado não Recebido 10.0.3.29; Indeterminado; Erro no Estabelecimento da Conexão 10.0.2.221; 10.0.3.28; Erro durante Recebimento de Mensagem 10.0.2.221; Indeterminado; Erro no Estabelecimento da Conexão 10.0.3.28; 10.0.3.19; Erro durante Envio de Mensagem Exemplo do Log de Erros 4 - Conclusões Ciência da Computação - 8º G - Dez/2001 : Onibus Interações : Ponto : Usuario endereco do ponto(ip) 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador 4 - Conclusões Diagrama de Seqüência Ônibus - Ponto anuncia(String) informações do Especificam a interação entre o ônibus e o ponto ponto (descrição) anuncia(String) informações do ônibus (descrição) anuncia(String) informações do ônibus (descrição) anuncia(String) enviaLog(Conexao) informações do ponto (descrição) Se houver erros, envia-os, senão envia apenas sinal Diagrama de seqüência – ônibus e ponto de parada Ciência da Computação - 8º G - Dez/2001 Central Operacional : Onibus : Terminal : Usuario : Bus4AllServer Interações endereco do onibus (ip) anuncia(String) 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador 4 - Conclusões informações do terminal (descrição) Diagrama de Seqüência Ônibus - Terminal anuncia(String) informações do ônibus (descrição)a interação entre o ônibus e o terminal Especificam anuncia(String) informações do ônibus (descrição) anuncia(String) enviaLog(Conexao) Se houver erros, envia-os, senão envia apenas sinal informações do terminal (descrição) verifica alteracoes no onibus (ip) alteracoes (novos dados) alteracoes (novos dados) se houver, senao apenas envia sinal Se houver, senão envia apenas sinal Diagrama de seqüência – ônibus e terminal Ciência da Computação - 8º G - Dez/2001 Simulador 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador 4 - Conclusões Desenvolvido sobre J2SE; Rede Convencional; Aplicações Completas; Janela de Visualização. Versão em J2ME; Código Equivalente. Ciência da Computação - 8º G - Dez/2001 Conclusões 1 - Introdução 1.1 - Metodologia 1.2 - Cenários 1.3 - Componentes 2 - Tecnologias 2.1 - Java 2.1.1 - Servlet 2.1.2 - RMI 2.1.3 - JDBC 2.1.4 - JCE 2.1.5 - J2ME 2.1.6 - Bluetooth 3 - Projeto 3.1 - Arquitetura 3.2 - Central 3.3 - Onibus, Ponto e Terminal 3.4 - Interações 3.4 - Simulador Objetivos Alcançados; Protótipo; Tecnologias Utilizadas; Trabalhos Futuros; Contribuição Oferecida. 4 - Conclusões Ciência da Computação - 8º G - Dez/2001 Perguntas ? Igreja Nossa Senhora da Pena - Porto Seguro Cidade Histórica - Porto Seguro Marco do Descobrimento - Porto Seguro Praia de Malibu - Porto Seguro Porto Seguro Recife de Fora - Porto Seguro Abrolhos Marco do Descobrimento - Porto Seguro Taperapuan - Porto Seguro