6
1 Comunicação Entre Objetos Distribuídos 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

Comunicação Entre Objetos Distribuídos -> CORBA

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: 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

Page 2: Comunicação Entre Objetos Distribuídos -> CORBA

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

Page 3: Comunicação Entre Objetos Distribuídos -> CORBA

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.

Page 4: Comunicação Entre Objetos Distribuídos -> CORBA

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.

Page 5: Comunicação Entre Objetos Distribuídos -> CORBA

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;

Page 6: Comunicação Entre Objetos Distribuídos -> CORBA

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.