Arquitetura CORBA e Objetos Distribuídos Sistemas Distribuídos Prof. Danielle Martin Universidade...

12
Arquitetura CORBA e Objetos Distribuídos Sistemas Distribuídos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02

Transcript of Arquitetura CORBA e Objetos Distribuídos Sistemas Distribuídos Prof. Danielle Martin Universidade...

Page 1: Arquitetura CORBA e Objetos Distribuídos Sistemas Distribuídos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02.

Arquitetura CORBA e Objetos Distribuídos

Sistemas Distribuídos

Prof. Danielle Martin

Universidade de Mogi das Cruzes2013-02

Page 2: Arquitetura CORBA e Objetos Distribuídos Sistemas Distribuídos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02.

Arquitetura CORBA

C ommon

O bject

R equest

B roker

A rchitecture

Page 3: Arquitetura CORBA e Objetos Distribuídos Sistemas Distribuídos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02.

Arquitetura CORBA

Criada pelo Object Management Group (OMG), é a arquitetura padrão de sistemas distribuídos heterogêneos. Propõe uma estrutura comum para o gerenciamento de objetos distribuídos

(OMA – Object Management Architecture).

Page 4: Arquitetura CORBA e Objetos Distribuídos Sistemas Distribuídos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02.

Arquitetura CORBA – Características

Implementação do ORB – Object Request Broker– Módulo intermediário entre o cliente e o servidor– Corretor para troca de mensagens (requisição /

resposta)– Invocação remota de métodos– Cliente e servidor não se conhecem diretamente– MIDDLEWARE

Page 5: Arquitetura CORBA e Objetos Distribuídos Sistemas Distribuídos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02.

Arquitetura CORBA – Representação

Page 6: Arquitetura CORBA e Objetos Distribuídos Sistemas Distribuídos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02.

IDL Stubs/Skeletons

IDL Stub – interface estática do lado cliente compilada com protótipos dos métodos invocados a um servidor.– Gerado automaticamente pelo compilador do ORB– Permite ao cliente acessar o componente remoto

IDL Skeleton – interface estática compilada com os métodos remotos do lado servidor– Gerado automaticamente pelo compilador do ORB– Recebe mensagem com parâmetros de entrada– Realiza a chamada para a real implementação da classe– Empacota mensagem de resposta

Page 7: Arquitetura CORBA e Objetos Distribuídos Sistemas Distribuídos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02.

IDL – Interface Definition Language

Linguagem universal para definição de interfaces

O ORB oferece um compilador IDL

O compilador IDL gera os arquivos Stubs e Skeletons

Linguagem de definição, e não de programação

Page 8: Arquitetura CORBA e Objetos Distribuídos Sistemas Distribuídos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02.

Distribuição de Objetos Remotos

A distribuição de objetos remotos consiste no compartilhamento, através do middleware, de uma instância de objeto que pode ser acessada de diferentes máquinas.

E possível compartilhar objetos distribuídos em Java utilizando o Java RMI – Remote Method Invocation

Page 9: Arquitetura CORBA e Objetos Distribuídos Sistemas Distribuídos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02.

Arquitetura de um Objeto Distribuído

Page 10: Arquitetura CORBA e Objetos Distribuídos Sistemas Distribuídos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02.

Servidor do Objeto Distribuído

A classe Servidor cria a instância do meuObj e realiza sua publicação no middleware, sob o nome objDist.

Utiliza-se o metodo rebind, da classe Naming:– Naming.rebind(“//localhost/objDist”, meuObj);

O objeto, com seus atributos e métodos, fica acessível para qualquer classe que saiba acessar sua referência.

Page 11: Arquitetura CORBA e Objetos Distribuídos Sistemas Distribuídos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02.

Cliente do Objeto Distribuído

Por questão de encapsulamento e reuso, o Cliente não deve ter acesso à implementação da classe de negócio, que gerou o objDist.

O acesso é feito utilizando uma classe de interface para receber a referência do objeto.

A referência do objDist é recuperada usando o metodo lookup da classe Naming:

– InterfaceObj objRef;– objRef = (InterfaceObj) Naming.lookup(“//ip.do.servidor/objDist”);

Page 12: Arquitetura CORBA e Objetos Distribuídos Sistemas Distribuídos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02.

RMI – Remote Method Invocation

Servidor.javaObjetoNegocio meuObj = new ObjetoNegocio();Naming.rebind(“//localhost/objDist”, meuObj);

Cliente.javaInterfaceObjeto objRef;

objRef = (InterfaceObjeto) Naming.lookup(“//ip.do.serv/objDist”);