1 corba um padrão industrial para objetos distribuídos alcides calsavara alcides@ppgia.pucpr.br ...

Post on 17-Apr-2015

117 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

CORBAUm Padrão Industrial para Objetos Distribuídos

Alcides Calsavara

alcides@ppgia.pucpr.br

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

top related