Comunicação Entre Objetos Distribuídos -> CORBA
-
Upload
tashya-shepherd -
Category
Documents
-
view
27 -
download
0
description
Transcript of Comunicação Entre Objetos Distribuídos -> CORBA
1
Comunicação Entre Objetos DistribuídosComunicação Entre Objetos Distribuídos
-> CORBA
Middleware para comunicação entre objetos distribuídos desenvolvidos utilizando linguagens heterogêneas (ou homogêneas)
- Commom Object Request Broker Architecture
2
Introdução. Objetos distribuídos desenvolvidos em várias linguagens de
programação devem comunicar-se.
. ORB – Object Request Broker-> Localizar o objeto, ativá-lo se necessário e cuidar das requisições e respostas.
. Principais componentes do CORBA:
-> Uma linguagem de definição de interface
-> Uma arquitetura que descreve os componentes necessários
-> GIOP – General Inter-Orb protocol (representação externa de dados, pode ser implementado sobre qualquer camada de transporte desde que apresente conexões)
-> IIOP – Internet Inter-Orb protocol
3
CORBA do ponto de vista do Programador
. CORBA RMI (o que o programador necessita saber?)
- Exige um pouco mais, pois o ambiente torna-se multi-linguagem, portanto é necessário conhecer
- O modelo de objetos oferecido pelo CORBA
- A IDL e os mapeamentos para a linguagem de implementação
No mais é similar ao modelo RMI. Objeto remoto é a implementação da interface, que gera stubs e skeletons. Sendo que os stubs (ou proxies) são gerados na linguagem do cliente e skeletons na linguagem do servidor.
4
O Modelo de Objetos CORBA
. Os clientes de um objeto remoto, não necessariamente são objetos. Basta ser um programa que envia requisições para um objeto remoto;
. O termo CORBA object ou objeto CORBA é usado para se referir ao objeto remoto.
. Um objeto CORBA implementa uma interface escrita em IDL, tem uma referência remota e é habilitado a responder invocações de métodos em sua interface.
. Um objeto CORBA pode ser implementado por uma linguagem que não é orientada a objeto (isto é, sem o conceito de classe, que também não existe na IDL CORBA).
. Se o conceito de classe não existe na IDL, isso significa que objetos (instâncias de classes) não podem ser passados como argumentos. Entretanto estruturas de vários tipos e complexidades, podem.
5
CORBA IDL
exception CriaException{ }
interface Lista {int criaLista() raises (CriaException)void inserir(in int qLista, in int qPos, out int status) ......
}
typedef sequence <Lista> minhasListas;
6
CORBA IDL
. Parâmetros e Resultados: Parâmetros são de entrada e saída ou ambos, sob o ponto de vista do objeto remoto. (in, out, inout)
Podem ser de tipos primitivos: short, int, long, float, etc... ou de tipos construídos: sequence, string, array, record, enumerated, union (ver pg. 683 Coulouris 2001).
. O tipo Object: Supertipo de todas as interfaces IDL
. Exceções em Corba IDL: Permitido
. Semântica de Invocação: at-most-once (ou no máximo uma vez) é o default de qualquer invocação remota usando CORBA. No entanto é possível especificar a utilização da semântica maybe (talvez) com a palavra chave oneway.