Socket x rmi
This presentation is the property of its rightful owner.
Sponsored Links
1 / 26

Socket x RMI PowerPoint PPT Presentation


  • 71 Views
  • Uploaded on
  • Presentation posted in: General

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 ...

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Socket x rmi

Socket x RMI

Aula de Monitoria:

Bruno Pereira - bpe

Davi Pires - dpr

Guilherme Barros – gbs2

Thiago Cavalcanti - trc


Roteiro

Roteiro

  • Conceitos de Sockets

  • Conceitos de RMI

  • Comparação

  • Exemplo de Implementação

  • Exercício (NOTA)


Conceitos de sockets

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


Conceitos de sockets1

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)


Descri o do fluxo sockets

Descrição do fluxo (sockets)


Conceitos de rmi

Conceitos de RMI

  • Remote Method Invocation

  • Orientado à objetos

  • Comunicação remota

  • Componentes

    • Interface Remota

    • Classe remota que implementa a interface

    • Rmiregistry

    • Stubs e Skeletons


Observa es importantes 1 2

Observações Importantes(1/2)

  • Tratar exceções

  • Servidor de Nomes


Observa es importantes 2 2

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


Descri o do fluxo rmi

Descrição do fluxo (RMI)


Como funciona rmi

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


Vejamos na pr tica

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


Compara es

Comparações


Socket x rmi

Comparando a Velocidade


Implementa o

Implementação


Exemplo envio de mensagens para um servidor

Exemplo: Envio de mensagens para um servidor

  • Interface:

    ServidorInt.java

  • Servidor:

    Servidor.java

  • Cliente:

    Cliente.java


Servidorint java

ServidorInt.java

import java.rmi.*;

public interface ServidorInt extends Remote{

void imprimeMensagem(String mensagem) throws RemoteException;

}


Servidor java

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();

}

}

}


Cliente java

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();

}

}

}


Dicas

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


Processo de cria o da aplica o

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


Exerc cio

Exercício


Exerc cio1

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)


Exerc cio2

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.


Exerc cio3

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


Entrega 20 07 2005

Entrega 20/07/2005


Refer ncias

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


  • Login