1 / 26

Socket x RMI

Socket x RMI. Aula de Monitoria: Bruno Pereira - bpe Davi Pires - dpr Guilherme Barros – gbs2 Thiago Cavalcanti - trc. Roteiro. Conceitos de Sockets Conceitos de RMI Comparação Exemplo de Implementação Exercício (NOTA). Conceitos de Sockets. Relembrando ...

tana-booker
Download Presentation

Socket x RMI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Socket x RMI Aula de Monitoria: Bruno Pereira - bpe Davi Pires - dpr Guilherme Barros – gbs2 Thiago Cavalcanti - trc

  2. Roteiro • Conceitos de Sockets • Conceitos de RMI • Comparação • Exemplo de Implementação • Exercício (NOTA)

  3. Conceitos de Sockets • Relembrando ... • Uma porta de um canal de comunicação que permite a um processo executando num computador enviar/receber mensagens para/de outro processo. • Usado para representar uma conexão entre um cliente e um servidor

  4. Conceitos de Sockets • Interface entre o processo da aplicação e a camada de transporte • Cada processo é identificado por uma porta e um ip • Principais tipos de Sockets: • stream sockets (UDP) • datagram sockets (TCP)

  5. Descrição do fluxo (sockets)

  6. Conceitos de RMI • Remote Method Invocation • Orientado à objetos • Comunicação remota • Componentes • Interface Remota • Classe remota que implementa a interface • Rmiregistry • Stubs e Skeletons

  7. Observações Importantes(1/2) • Tratar exceções • Servidor de Nomes

  8. Observações Importantes(2/2) • Os métodos remotos podem receber e retornar objetos • Estes objetos devem implementar a interface Serializable • Tipos primitivos são passados por valor e objetos por referência nas chamadas dos métodos

  9. Descrição do fluxo (RMI)

  10. Como funciona RMI • O cliente chama o método remoto usando um Stub • O Stub então envia uma mensagem para o Skeleton na máquina remota, contento os argumentos da chamada ao método remoto • O Skeleton empacota a resposta e envia ela de volta para o stub na máquina do cliente

  11. A B B Stub Vejamos na Prática Cliente Servidor (1) (2) (3) a1 (A) B1_Stub (B Stub) B Skel b1 (B) (5) (4) (6) JVM 1 JVM 2

  12. Comparações

  13. Comparando a Velocidade

  14. Implementação

  15. Exemplo: Envio de mensagens para um servidor • Interface: ServidorInt.java • Servidor: Servidor.java • Cliente: Cliente.java

  16. ServidorInt.java import java.rmi.*; public interface ServidorInt extends Remote{ void imprimeMensagem(String mensagem) throws RemoteException; }

  17. Servidor.java import java.rmi.*; import java.rmi.server.*; import sun.rmi.registry.RegistryImpl; public class Servidor extends UnicastRemoteObject implements ServidorInt { public Servidor() throws RemoteException { super(); RegistryImpl impl = new RegistryImpl(1099); } public void imprimeMensagem(String mensagem) { System.out.println("A mensagem enviada foi : " + mensagem); } public static void main(String args[]) { try { Servidor s = new Servidor(); Naming.rebind("servidor", s); System.out.println("Servidor Registrado"); } catch (Exception e) { System.out.println("Erro : Mensagem : " + e.getMessage()); e.printStackTrace(); } } }

  18. Cliente.java import java.rmi.*; import java.io.*; public class Cliente implements Serializable { public static void main(String args[]) { try { ServidorInt s = (ServidorInt) Naming.lookup("servidor"); s.imprimeMensagem(“Hello CIn!"); } catch (Exception e) { System.out.println("Erro: Mensagem: " + e.getMessage()); e.printStackTrace(); } } }

  19. Dicas Tutorial de como Gerar Stub/Skeleton do Servidor.java Passo-a-Passo: 1. No JBuilder, clicar com o botão direito no arquivo Servidor.java, na janela do projeto 2. Selecionar Propriedades 3. Em Build Dentro de RMI Compiler Settings Marque Generate RMI stub/skeleton

  20. Processo de Criação da Aplicação Compilar os arquivos Gerar o stub/skeleton Ativação do serviço de nomes Ativação as aplicações

  21. Exercício

  22. Exercício Mini-Projeto: Solução para uma rede de locadoras usando RMI. Descrição: • Cada filial tem as informações (número, nome e débito) de seus clientes. • O cliente pode locar filmes em qualquer locadora. • As locadoras possuem ligação com um servidor central, o qual tem uma lista da localização (em qual filial) de todos os clientes cadastrados • Existirão 4 locadoras, 1 servidor central e 8 clientes (dois em cada locadora)

  23. Exercício Exemplo: O cliente 1, chega na locadora A e pede para locar um DVD. O cliente 1 foi, anteriormente, cadastrado na locadora B, logo, a locadora A, vai requisitar as informações do cliente 1 para o servidor central. O servidor central localizará o cliente e solicitará as informações do mesmo à sua locadora de cadastro. Com as informações em mãos, o funcionário decidirá se o cliente pode ou não locar o DVD.

  24. Exercício Observações: • É necessário apenas o nome do cliente e saber o valor do débito. Logo, se ele estiver devendo, não será possível locar outro DVD. • As operações realizadas pela locadora serão: • Consultar débito • Atualizar débito • Adicionar Cliente • Remover Cliente • Não é necessário ter GUI´s

  25. Entrega 20/07/2005

  26. Referências • http://www-asc.di.fct.unl.pt/rc/aulas-praticas/aulas/aula1/docs/ProgSocketsTCPJava.pdf • http://www.inf.unisinos.br/~cac/java/material/aula12pr.pdf • http://asc.di.fct.unl.pt/sd1/aulas-praticas/materiais/aula3/docs/Aula3-RMI.pdf • http://atlas.ucpel.tche.br/~dubois/progavancada/05-RMI.pdf • http://twiki.im.ufba.br/pub/MAT570/Material/mat570-rmi-6pp.pdf • http://ltodi.est.ips.pt/nribeiro/Lecturing/SD_01-02/4 • http://www-ece.engr.ucf.edu/~jza/publications/munoz.doc • http://www.huihoo.com/middleware/compare.html

More Related