1 corba um padrão industrial para objetos distribuídos alcides calsavara [email protected] ...
TRANSCRIPT
1
CORBAUm Padrão Industrial para Objetos Distribuídos
Alcides Calsavara
www.ppgia.pucpr.br
PUCPR - CCET
2
SUMÁRIO
Parte I : Sistemas Distribuídos Parte II : Orientação a Objetos Parte III : CORBA - Conceitos e
Exemplos Parte IV : CORBA - Services, Facilities
& Domains
3
Sistemas Distribuídos
Parte I
4
Sistemas Distribuídos- objetivos - Melhor relação custo/benefício Capacidade de processamento além dos
limites de sistemas centralizados (velocidade da luz, aquecimento)
Maior domínio de aplicações Maior confiabilidade e disponibilidade Crescimento gradativo da capacidade de
processamento
5
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
6
Sistemas Distribuídos- requisitos - Controle de concorrência Consistência Extensibilidade (openness) Escalabilidade (crescimento gradativo
"suave") Tolerância a falhas Transparência
7
Sistemas Distribuídos- transparência - Acesso Localizacão Concorrência Replicação Falha Migração Desempenho Escala Paralelismo
8
Sistemas Distribuídos- componentes básicos -
Comunicação Sistema de nomes Manutenção de consistência Alocação de carga de trabalho
9
Comunicação
modelos:– cliente/servidor– grupo
níveis de abstração:– processos e mensagens– objetos e operações (RPC)
formas de sincronismo:– síncrona– assíncrona
10
Sistemas Distribuídos- consistência: transaçõ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.
11
Orientação a Objetos
Parte II
12
Orientação a Objetos- conceitos fundamentais -
Objeto Identidade Encapsulamento Classificação/Instanciação Generalização/Especialização Herança Polimorfismo
13
Orientacão a Objetos- associação e ligacão -
Relacionamento entre instâncias de duas ou mais classes descrevendo um grupo de ligações com estrutura e semântica comuns.
Exemplo: Um país tem como capital uma cidade.
Exemplo: Um funcionário trabalha numa empresa.
14
Orientacão a Objetos- modelo dinâmico -
Representa os aspectos de um sistema relativos ao tempo e às modificações de estado
Abrangência:– interações– seqüência de operações– fluxo de controle
Representação: estados e eventos
15
CORBAConceitos e Exemplos
Parte III
16
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, ...
17
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)
18
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)
19
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
20
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
21
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)
22
CORBA- objetivos - construção de sistemas distribuídos:
– 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
23
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
24
ORB
ClienteImplementação
do Objeto
ORB
Request
25
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.
26
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)
27
Arquitetura ORB
ClienteImplementação
do objeto
InvocaçãoDinâmica
StubsIDL
InterfaceORB
EsqueletoIDL
Adaptadordo Objeto
Núcleo ORB
28
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, ...)
29
IDL: Interface Definition Language
DefiniçõesIDL
IDL stub
Repositóriode Interfaces
EsqueletoIDL
Implementação(em linguagem)
Repositório deImplementação
30
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.)
31
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, ...)
32
CORBAServices, Facilities & Domains
Parte IV
33
Services- categorias - Information management Task management System management Infrastructure
34
Services- information management - property relationship query externalization persistent object collection
35
Services- task management - events concurrency transaction
36
Services- system management - naming lifecycle licensing trader
37
Services- infrastructure - security time services messaging
38
Property Service
propriedades são atributos dinâmicos vinculados a objetos de aplicação
propriedades são úteis para aplicações de gerenciamento, como desktop managers, debugging tools, browsers,...
exemplo: um desktop manager pode vincular propriedades de proteção e compartilhamento a objetos
exemplo: uma ferramenta de debugging pode vincular informação sobre a execução (como breakpoints) a objetos de um programa
39
Relationship Service
permite estabelecer ligacões entre objetos
evita que objetos mantenham object references explicitamente
cria objetos adicionais:– Relationship– Role
40
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 síncrona
ou assincronamente
41
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)
42
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
43
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
44
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
45
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)
46
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 transações flat e nested baixo suporte a tolerância a falhas (Orbix + Isis) não suporta transações de longa duração
47
Naming Service
permite recuperar uma referência para um objeto, dado um nome vinculado a este
operacões básicas:– bind– unbind– resolve
espaço de nomes organizado em hierarquia (nós intermediários são chamados de contexto)
48
Lifecycle Service
criação de objetos é responsabilidade das aplicaçõ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 localização)
49
Licensing Service
permite protecão de propriedade intelectual através de gerenciamento de licenças de forma dinâmica
inclui, por exemplo: trabalhos de arte em computador e aplicações comerciais
estimativa: 70% de todo software em uso no mundo é pirata
50
Trader Service
uma espécie de páginas amarelas, onde fornecedores publicam seus serviços e interessados procuram por eles
nem sempre se sabe o nome do objeto que pode prover o serviço
um serviço é caracterizado através de sua interface (influenciado por APM ANSA Trader)
51
Security Service
deve ser suportado diretamente pelo ORB
abrange: confidencialidade, integridade, contabilidade, disponibilidade e "não-repúdio"
funções básicas: controle de acesso, auditoria, autenticação e políticas de implementação
52
Time Service
suporta recuperação e sincronização de relógios (físicos) em sistemas distribuídos
suporta sincronização através de sinais de rádio gerados localmente ou por fontes do governo
53
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 dá garantia de entrega de mensagens
54
Services- histórico - RFP1 - 1993
– Lifecycle– Event notification– Naming Service– Persistent Service
55
Services- histórico - RFP2 - 1994
– Externalization– Relationships– Concurrency– Transaction
56
Services- histórico - RFP3 - 1996
– Security– Time
57
Services- histórico - RFP4 - 1995
– Licensing– Properties– Query
58
Services- histórico - RFP5 - 1996
– Trading– Collections– Start-up
59
Services- histórico - Em preparacao em 1997
– Interface Versioning– Asynchronous Invocation (message)
60
Facilities- categorias - User Interface Information Management System Management Task Management
61
Facilities- User Interface - Compound presentation & interchange Printing Asian input Rendering management
62
Facilities- Information Management - Data interchange Meta-object Information storage & retrieval Internationalization & time operations
63
Facilities- System Management - Common management Configuration & change management Security administration
64
Facilities- Task Management - Mobile agents Workflow Automation & Scripting
65
Facilities
Horizontais– Distributed Document Compound– OpenDoc Parts, Framework Objects– Common Management– Internationalization– Time– Data Interchange
66
Facilities
Verticais– Business Object– Meta-object– Printing and Method
67
Facilities - histórico Cf RFP1 Compound presentation and interchange - completa Cf RFP2 Internationalization and time operations - início 3/95 Cf RFP3 Data interchange and mobile agents - início 11/95 Cf RFC1 Common management facility - início 1/96 Cf RFP4 Business objects - início 1/96 Cf RFP5 Meta-object facility - início 6/96 Cf RFP6 Printing facility - início 3/96 Cf RFP7 Asin input - início 6/96 Cf RFP8 Automation & scripting - início 9/96 Cf RFC2 Workflow - início 12/96 Cf RFP9 Rendering management - início 9/96 Cf RFP10 Information storage and retrieval - início 3/97 Cf RFP11 Configuration & change management - 5/97 Cf RFP12 Rule management - início 8/97 Cf/ORBOS RFP Security administration - início 1/98
68
Domains
CORBA-financials CORBA-med Telecom Manufacturing Multimedia Conference Business Objects Internet ...
69
Outras Abordagens
Microsoft– COM, DCOM,– ActiveX, ASP
SUN– Java,– JavaBeans, Enterprise JavaBeans– Jini