instituto presbiteriano mackenziefaculdade de computação e informática disciplina de sistemas...
TRANSCRIPT
![Page 1: Instituto Presbiteriano MackenzieFaculdade de Computação e Informática Disciplina de Sistemas Distribuídos 1 RMI-IIOP](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc103497959413d8bee20/html5/thumbnails/18.jpg)
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