corba alcides calsavara. arquitetura cliente-servidor: corba sistemas distribuídos - objetivos -...

52
CORBA Alcides Calsavara

Upload: internet

Post on 17-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

CORBA

Alcides Calsavara

Page 2: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Sistemas Distribuídos- objetivos -

• Melhor relação custo/benefício

• Capacidade de processamento além dos limites práticos de sistemas centralizados (velocidade da luz, aquecimento)

• Maior domínio de aplicações

• Maior confiabilidade e disponibilidade

• Crescimento gradativo da capacidade de processamento

Page 3: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Sistemas Distribuídos- objetivos -

• Compartilhamento de dados comuns entre usuários

• Compartilhamento de recursos de hardware e software

• Comunicação entre pessoas

• Flexibilidade na distribuição de tarefas de acordo com as aplicações

Page 4: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Sistemas Distribuídos- requisitos -

• Controle de concorrência

• Consistência

• Extensibilidade (openness)

• Escalabilidade (crescimento gradativo suave)

• Tolerância a falhas

• Transparência

Page 5: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Sistemas Distribuídos- transparência -

• Acesso

• Localizacão

• Concorrência

• Replicação

• Falha

• Migração

• Desempenho

• Escala

• Paralelismo

Page 6: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Sistemas Distribuídos- componentes básicos -

• Comunicação

• Sistema de nomes

• Manutenção de consistência

• Alocação de carga de trabalho

Page 7: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Comunicacão

• modelo:– cliente/servidor

– grupo

• abstracão:

– processos e mensagens

– objetos e operacões (RPC)

• sincronismo:

– síncrona

– assíncrona

Page 8: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA8

Sistemas Distribuídos- consistência: transacões -

• Atômica: para o mundo externo, a transação ocorre de forma indivisível.

• Consistente: a transação não viola invariantes de sistema.

• Isolada: transações concorrentes não interferem entre si (serializable).

• Durável: os efeitos de uma transação terminada com commit são permanentes.

Page 9: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

CORBAConceitos e Exemplos

Page 10: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA10

CORBA- contexto -

• OMG: Object Management Group

• OMA: Object Management Architecture (1992)

• ORB: Object Request Broker

– facilidade para envio e recebimento de mensagens entre diferente objetos e componentes

• CORBA: Common Object Request Broker Architecture

– arquitetura que permite interoperação entre os participantes na OMA (objetos diversos)

– Adotado por: Digital, HP, Hyperdesk, NCR, Object Design, SunSoft, ...

Page 11: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

CORBA- produtos -

• Orbix (IONA)

• VisiBroker (Visigenic - Borland)

• ObjectBroker (Digital - Compaq)

• ILU Freeware ORB

• Orbacus

• OmniBroker (Object-Oriented Concepts)

• CORBUS (BBN - governo EUA)

Page 12: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

CORBA- referências básicas -

• Orfali & Harkey & Edwards. The Essential Distributed Objects Survival Guide. 1995

• Mowbray & Zahavi. The Essential CORBA. 1995

• Mowbray & Ruh. Inside CORBA. 1997

• OMA Guide. OMG. 1995

• CORBA Revision 2. OMG.1995

• CORBAservices. OMG. 1995

• CORBAfacilities. OMG. 1995

• Distributed Object Computing Magazine. OMG

• www.omg.org

Page 13: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

CORBA - referências disponiveis na biblioteca da PUCPR

• Advanced CORBA programming with C++ • Client/ server programming with Java and CORBA - 2nd

ed. • CORBA : a guide to the common object request broker

architecture • CORBA fundamentals and programming • Essential CORBA : systems integration using distributed

objects, The • Understanding CORBA : common object request broker

architecture

Page 14: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

CORBA- objetivos -

• construcão de sistemas distribuídos:– criacão de novos componentes– integracão de componentes existentes

• middleware– não inclui modelagem de aplicacões– não inclui implementacão de aplicacões– inclui mecanismos que auxiliam na

implementacão, a partir do modelo e do projeto

Page 15: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

CORBA- abordagem -

• orientacão a objetos

• modelo cliente/servidor

• comunicacão via RPC

• mecanismos disponíveis através de:– servicos, facilidades e domínios

• independência de:– hardware, SO, linguagem

Page 16: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA16

ORB

ClienteImplementação

do Objeto

ORB

Request

Page 17: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA17

Modelo de objetos• Clientes são entidades que requisitam serviços.• Uma requisição inclui uma operação, o objeto destino,

parâmetros da operação.• Uma operação denota um serviço que pode ser requisitado.• Um objeto é um encapsulamento de serviços que podem

ser requisitados por clientes.• Um valor é qualquer coisa que pode ser parâmetro em uma

requisição; valores podem identificar um objeto.• Uma referência a objeto é um nome que identifica um

certo objeto de maneira consistente.

Page 18: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA18

Operações

• A assinatura de uma operação define os valores que podem ser usados como parâmetros e resultados em sua requisição.

• Cada parâmetro tem um modo e um tipo.• Os modos de parâmetro são: in, out, inout• O resultado de uma requisição pode ser uma exceção,

denotando serviço anormal.• Uma exceção é usada para passar informação para o

originador da requisição.• Semânticas: at-most-once; oneway (best-effort, cliente não

tem resultados)

Page 19: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA19

Arquitetura ORB

ClienteImplementação

do objeto

InvocaçãoDinâmica

StubsIDL

InferfaceORB

EsqueletoIDL

Adaptadordo Objeto

Núcleo ORB

Page 20: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA20

Componentes ORB• Interface de Invocação Dinâmica: clientes fazem requisições

independentemente da interface do objeto; cliente sabe o tipo do objeto a assinatura da operação.

• Stubs IDL: clientes fazem requisições de acordo com a interface do objeto (IDL: Interface Definition Language); cliente tem uma referência para o objeto e sabe a assinatura da operação.

• Esqueleto IDL: a implementação do objeto recebe uma requisição através do esqueleto IDL. (Há stubs e esqueletos para cada tipo de objeto.)

• Adaptador do Objeto: a implementação do objeto pode chamar um adaptador do objeto durante o processamento de uma requisição (resolver referências, segurança, ...)

Page 21: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA21

IDL

DefiniçõesIDL

IDL stub

Repositóriode Interfaces

EsqueletoIDL

Implementação(em linguagem)

Repositório deImplementação

Page 22: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

IDL - exemplomodule Escola {

interface Curso; // declarado, mas não definido

interface Estudante {

attribute string nome;

attribute unsigned long matricula;

exception ClasseLotada;

void registra (in Curso curso) raises (ClasseLotada);

exception ReqIncompleto;

void gradua ( ) raises (ReqIncompleto);

typedef sequence<Curso> ListaCursos;

ListaCursos cursos_registrados(); } }

Page 23: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Aplicacão - exemplo

//c++

#include <iostream.h>

int main ( )

{

cout << “Hello World”;

return 0;

}

Page 24: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Aplicacão - exemplo

// Java

public class Welcome

{

public static void main ( String args [ ] )

{

System.out.println ( “Hello, world!”);

}

}

Page 25: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Aplicacão - exemplo

// IDL - arquivo Hello.idl

interface Hello

{

void hello ( );

};

Page 26: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Aplicacão - exemplo

compilação do arquivo IDL: idl Hello.idl

Arquivos gerados:

Hello.h

Hello.cpp

Hello_skel.h

Hello_skel.cpp

Page 27: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Aplicacão - exemplo

// Servidor em C++ - arquivo Hello_impl.h

#include <Hello_skel.h>

class Hello_impl : public Hello_skel

{

public:

Hello_impl ();

virtual void hello();

}

Page 28: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Aplicacão - exemplo

// Servidor em C++ - arquivo Hello_impl.cc

#include <CORBA.h>

#include <Hello_impl.h>

Hello_impl::Hello_impl ( ) { }

void Hello_impl::hello()

{

cout << “Hello, world!”<< endl;

}

Page 29: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Aplicacão - exemplo#include <CORBA.h> // ativacao do servidor

#include <Hello_impl.h>

#include <fstream.h>

int main (int argc, char* argv[ ], char* [ ] )

{ CORBA_ORB_var orb = CORBA_ORB_init(argc, argv);

CORBA_BOA_var boa = orb -> BOA_init (argc, argv);

Hello_var p = new Hello_impl ( );

CORBA_String_var s = orb -> object_to_string (p);

const char* refFile = “Hello.ref”; // arquivo auxiliar

ofstream out(refFile);

out << s << endl;

out.close();

boa -> impl_is_ready (CORBA_implementationDef::_nil()); }

Page 30: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Aplicacão - exemplo

#include <Hello.h> // cliente

#include <fstream.h>

int main (int argc, char* argv[ ], char* [ ] )

{ CORBA_ORB_var orb = CORBA_ORB_init (argc, argv);

CORBA_BOA_var boa = orb -> BOA_init (argc, argv);

const char* refFile = “Hello.ref”; // arquivo auxiliar

ifstream in (refFile);

char s [1000];

in >> s;

CORBA_Object_var obj = orb -> string_to_object (s);

Hello_var hello = Hello::_narrow (obj);

hello -> hello( ); }

Page 31: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

CORBAServices, Facilities & Domains

Page 32: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Services- categorias -

• Information management

• Task management

• System management

• Infrastructure

Page 33: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Services- information management -

• property

• relationship

• query

• externalization

• persistent object

• collection

Page 34: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Services- task management -

• events

• concurrency

• transaction

Page 35: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Services- system management -

• naming

• lifecycle

• licensing

• trader

Page 36: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Services- infrastructure -

• Security

• Time Services

• Messaging

Page 37: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Property Service

• propriedades são atributos dinâmicos vinculados a objetos de aplicacão

• propriedades são úteis para aplicacões de gerenciamento, como desktop managers, debugging tools, browsers,...

• exemplo: um desktop manager pode vincular propriedades de protecão e compartilhamento a objetos

• exemplo: uma ferramenta de debugging pode vincular informacão sobre a execucão (como breakpoints) a objetos de um programa

Page 38: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Relationship Service

• permite estabelecer ligacões entre objetos

• evita que objetos mantenham object references explicitamente

• cria objetos adicionais:– Relationship– Role

Page 39: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Query Service

• usado com bancos de dados comerciais

• suporta bancos relacionais e OO

• proposto por: IBM, Sybase, SunSoft

• contempla: SQL92, SQL-3, OQL

• queries são dinâmicas

• queries podem ser resolvidas sincrona ou assincronamente

Page 40: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Externalization Service

• converte estruturas de dados em formato que pode ser armazenado externamente ao programa e transmitido via rede

• remove ponteiros

• parte do processo de marshalling

• útil também para migrar objetos (mas não inclui métodos)

Page 41: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Persistent Object Service

• criado por fornecedores de bancos de dados relacionais e OO

• inclui 3 protocolos de persistência:– ODMG 93– direct access protocol (usa DDL, um

subconjunto de IDL)– dynamic data object protocol

Page 42: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Collection Service

• grupos de objetos– listas sequenciais– pilhas– filas– bags ...

• estende a funcionalidade de bibliotecas como a STL (Standard Template Library) para sistemas distribuídos

Page 43: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Events Service

• canal de passagem de eventos entre produtores e consumidores de eventos

• pode ser usado para comunicacão multicast

• um consumidor registra seu interesse em eventos com o servico

• estilos de interacão:– push– pull

Page 44: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Concurrency Service• garante acesso atômico a objetos distribuídos• portabilidade: uso de concorrência por

múltiplos sistemas operacionais e linguagens• tipos de lock:

– read, write– upgrade (pode mudar para write)– intention read, intention write (fine granularity)

Page 45: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Transaction Service

• permite a manipulacão de estados de objetos distribuídos de forma consistente

• trabalha sobre monitores compatíveis com X/Open:– Tuxedo protocols– IBM/Transarc Encina– bancos de dados OO compatíveis com ODMG-93– LU6.2 da IBM

• usa two-phase commit protocol

• suporta transacões flat e nested

• baixo suporte a tolerância a falhas (Orbix + Isis)

• não suporta transacões de longa duracão

Page 46: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Naming Service

• permite recuperar uma referência para um objeto dado um nome vinculado a este

• operacões básicas:– bind– unbind– resolve

• espaco de nomes organizado em hierarquia (nós intermediários são chamados de contexto)

Page 47: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Lifecycle Service

• criacão de objetos é responsabilidade das aplicacões: lista de parâmetros é imprevisível

• permite criar object factories, que criam, duplicam, movem e removem objetos de certos tipos pelo sistema distribuído (com transparência de localizacão)

Page 48: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Licensing Service

• permite protecão de propriedade intelectual através de gerenciamento de licensas de forma dinâmica

• inclui, por exemplo: trabalhos de arte em computador e aplicacões comerciais.

• estimativa: 70% de todo software em uso no mundo é pirata

Page 49: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Trader Service

• uma espécie de páginas amarelas, onde fornecedores publicam seus servicos e interessados procuram por eles

• nem sempre se sabe o nome do objeto que pode prover o servico

• um servico é caracterizado através de sua interface (influenciado por APM ANSA Trader)

Page 50: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Security Service

• deve ser suportado diretamente pelo ORB

• abrange: confidencialidade, integridade, contabilidade, disponibilidade e não-repudiacão

• funcões básicas: controle de acesso, auditoria, autenticacão e políticas de implementacão

Page 51: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Time Service

• suporta recuperacão e sincronizacão de relógios (físicos) em sistemas distribuídos

• suporta sincronizacão através sinais de rádio gerados localmente ou por fontes do governo

Page 52: CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento

Arquitetura Cliente-Servidor: CORBA

Messaging Service• permite processamento assíncrono através do

ORB• interfaces IDL têm semântica síncrona, por

default• estende a utilidade de CORBA para cobrir a

funcionalidade disponível em MOM (message-oriented middleware)

• não suporta garantia de entrega de mensagens