CORBA Um Padrão Industrial para Objetos Distribuídos Alcides Calsavara alcides@ppgia.pucpr.br www.ppgia.pucpr.br PUCPR - CCET
CORBA - contexto - OMG: Object Management Group OMA: Object Management Architecture (1992) ORB: Object Request Broker meio 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 adotado por: Digital, HP, Hyperdesk, NCR, Object Design, SunSoft, ...
CORBA - ORB : produtos comerciais - Orbix (Iona Technologies) VisiBroker (Borland) ChorusORB (Sun) Component Broker/DSOM (IBM) Voyager ORB (ObjectSpace) OrbAda (Top Graph'X) Nouveau (Roguewave) Netscape Internet Service Broker (Netscape) ObjectDirector (Fujitsu) DOME (Object Oriented Technologies) BEA WebLogic Server (BEA)
CORBA - ORB : produtos acadêmicos/gratuitos - ORBacus (Object-Oriented Concepts) ILU Freeware ORB (Xerox Parc) DIMMA (ANSA) JADE (APM) JavaIDL (JavaSoft) TAO ( Distributed Object Computing Group at Washington University ) omniORB2 (AT&T Laboratories ) MICO (University of Frankfurt)
CORBA - referências - 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
CORBA – algumas referências disponíveis 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
CORBA - produtos - Orbix (IONA) VisiBroker (Visigenic - Borland) ObjectBroker (Digital - Compaq) ILU Freeware ORB Fresco Freeware ORB (X Consortium) OmniBroker (Object-Oriented Concepts) CORBUS (BBN - governo EUA) DISCUS (governo EUA)
CORBA - objetivos - construção de sistemas distribuídos: middleware criação de novos componentes integração de componentes existentes middleware não inclui modelagem de aplicações não inclui implementação de aplicações inclui mecanismos que auxiliam na implementação
CORBA - abordagem - orientacão a objetos modelo cliente/servidor comunicação via RPC mecanismos disponíveis através de: servicos, facilidades e domínios independência de: hardware, SO, linguagem
ORB Cliente Implementação do Objeto Request ORB
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.
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ântica: at-most-once, oneway (best-effort, cliente não tem resultados)
Arquitetura ORB Cliente Implementação do objeto Invocação Dinâmica Stubs IDL Interface ORB Esqueleto IDL Adaptador do Objeto Núcleo ORB
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, ...)
IDL: Interface Definition Language IDL stub Definições IDL Repositório de Interfaces Esqueleto IDL Implementação (em linguagem) Repositório de Implementação
Componentes ORB Stub 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 conhece 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.)
Componentes ORB Interface de Invocação Dinâmica: clientes fazem requisições independentemente da interface do objeto; cliente descobre o tipo do objeto e a assinatura da operação. 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, ...)