60 likes | 154 Views
Comunicaçã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. Introdução.
E N D
Comunicaçã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
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
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.
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.
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;
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.