instituto presbiteriano mackenziefaculdade de computação e informática disciplina de sistemas...

18
Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Upload: internet

Post on 17-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

1

RMI-IIOP

Page 2: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

2

Sem RMI-IIOP

Page 3: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

3

RMI-IIOP - Visão Geral

• Tecnologia para programação de objetos em ambientes distribuídos baseado na arquitetura e linguagem Java

• Combinação de Java – RMI e CORBA• Resultado do desenvolvimento conjunto da Sun e da IBM• Mudanças nas especificações CORBA adotadas pela OMG

possibilitaram o surgimento da RMI-IIOP• Com RMI-IIOP as aplicações distribuídas podem ser

desenvolvidas em Java-RMI, beneficiando-se da interoperabilidade entre diferentes linguagens e plataformas que o CORBA oferece

• Desta forma as interfaces dos objetos remotos são descritas em Java sem a necessidade de uma linguagem específica definida pela OMG-IDL

• Clientes RMI-IIOP podem se comunicar com servidores CORBA, assim como servidores RMI-IIOP podem disponibilizar serviços para clientes CORBA

• RMI-IIOP suporta ambos protocolos; IIOP e JRMP

Page 4: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

4

Com RMI-IIOP

Page 5: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

5

Visão geral

REDE

Page 6: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

6

Java IDL

• Tecnologia Java para objetos distribuídos baseado na arquitetura CORBA

• Permite desenvolver aplicações e objetos em Java capazes de se comunicar com outras plataformas e linguagens

• Java IDL faz o mapeamento OMG IDL-Java

• Java IDL é para programadores CORBA

• Utilizado para acessar os recursos disponíveis CORBA

ORB ORB

IIOP

Cliente Servidor

Page 7: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

7

Java IDL versus RMI-IIOP

Page 8: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

8

Matrix de Interoperabilidade

SERVIDOR

CLIENTE

RMI(JRMP)

RMI(IIOP)

CORBA

RMI(JRMP)

RMI(IIOP) CORBA

OK

OK

OK OK

OK

OKX

OK

X

Page 9: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

9

Dual Export

• RMI-IIOP suporta os protocolos JRMP e IIOP

• Sem reescrever o código fonte de um objeto RMI-JRMP, o mesmo poderá ser invocado por um cliente RMI-IIOP

• Da mesma forma, um cliente CORBA poderá invocar um objeto no servidor, mesmo que este objeto tenha sido implementado em RMI-IIOP

Page 10: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

10

Arquitetura RMI-IIOP

Cliente RMI-IIOP

Servidor RMI-IIOP

Cliente RMI

Cliente CORBA

AGREGADOR

Camada RMIORB

Camada RMI

STUB

ORB

STUB

ORB

STUB

IIOP

IIOPJRMP

Page 11: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

11

ORB RunTime

Page 12: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

12

RMI over IIOP Java to Java

Page 13: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

13

Java to C++

Page 14: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

14

Stub generator

Page 15: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

15

IDL Generator

Page 16: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

16

Cenário Java/C++ via IIOP

IIOP

Page 17: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

17

Roteiro

• Definir uma Interface remota – O server object deve declarar seus serviços via interface remota. Deve ter a extensão org.omg.CORBA.Object

• Opcionalmente poderá gerar um CORBA IDL• Compilar utilizando javac• Criar os IIOP Stubs• Implementar a interface remota• Compilar utilizando javac• Inicializar o servidor de nomes ou URL-based Naming Service• Inicializar os objetos no servidor• Escrever o código fonte no cliente• Localizar o objeto remoto via Servidor de Nomes• Compilar utilizando o javac• Inicializar o cliente

Page 18: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP

Instituto Presbiteriano Mackenzie Faculdade de Computação e Informática Disciplina de Sistemas Distribuídos

18

Definir a Interface remota

javac

java2IIOPStub

ClienteStub

Server

Start client

Start server objects

javac

Implementaro cliente

Implementara interface

javac

java2IDL

IDL2ir

CORBAInterfaceRepository

opcional

Roteiro – Interface RMI-IIOP

(.java)

(.class)

(.class) (.class)

(.class)

(.class)

(.java)

(.java)

(.IDL)

Inicializar oServidor de nomes