Socket x RMI - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

Socket x RMI

Description:

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 ... – PowerPoint PPT presentation

Number of Views:50
Avg rating:3.0/5.0
Slides: 27
Provided by: ngb6
Category:
Tags: rmi | java | socket

less

Transcript and Presenter's Notes

Title: Socket x RMI


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
Vejamos na Prática
Cliente
Servidor
(1)
(2)
(3)
a1 (A)
B1_Stub (B Stub)
B Skel
b1 (B)
(4)
(5)
(6)
JVM 1
JVM 2
12
Comparações
Socket RMI
Transporte UDP / TCP JRMP
Descrição do Serviço Não existe Java Interface
Localização Conhece endereço RMI Naming Service
Look Up matching Não existe Exact String Match
Remote reference Socket Proxy object
Synchronicity Synchronous Synchronous
Garbage Collection Não existe Não existe
Language paradigm Streams Method call
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 GUIs

25
Entrega 20/07/2005
26
Referências
  • http//www-asc.di.fct.unl.pt/rc/aulas-praticas/aul
    as/aula1/docs/ProgSocketsTCPJava.pdf
  • http//www.inf.unisinos.br/cac/java/material/aula
    12pr.pdf
  • http//asc.di.fct.unl.pt/sd1/aulas-praticas/materi
    ais/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-0
    2/4
  • http//www-ece.engr.ucf.edu/jza/publications/muno
    z.doc
  • http//www.huihoo.com/middleware/compare.html
Write a Comment
User Comments (0)
About PowerShow.com