A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

CORBA Alcides Calsavara. Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento além dos limites práticos de sistemas.

Apresentações semelhantes


Apresentação em tema: "CORBA Alcides Calsavara. Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento além dos limites práticos de sistemas."— Transcrição da apresentação:

1 CORBA Alcides Calsavara

2 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

3 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

4 Sistemas Distribuídos - requisitos - Controle de concorrência Consistência Extensibilidade (openness) Escalabilidade (crescimento gradativo suave) Tolerância a falhas Transparência

5 Sistemas Distribuídos - transparência - Acesso Localizacão Concorrência Replicação Falha Migração Desempenho Escala Paralelismo

6 Sistemas Distribuídos - componentes básicos - Comunicação Sistema de nomes Manutenção de consistência Alocação de carga de trabalho

7 Sistemas Distribuídos - comunicação - modelo : cliente/servidor grupo abstracão: processos e mensagens objetos e operações (RPC) sincronismo: síncrona assíncrona

8 8 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.

9 CORBA Conceitos e Exemplos

10 10 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) adotada por: HP, SunSoft, IBM, Xerox, Oracle,...

11 CORBA - ORB : produtos comerciais - Orbix (Iona Technologies)Iona Technologies VisiBroker (Borland)Borland ChorusORB (Sun)Sun Component Broker/DSOM (IBM)IBM Voyager ORB (ObjectSpace)ObjectSpace OrbAda (Top Graph'X)Top Graph'X Nouveau (Roguewave)Roguewave Netscape Internet Service Broker (Netscape)Netscape ObjectDirector (Fujitsu)Fujitsu DOME (Object Oriented Technologies)Object Oriented Technologies BEA WebLogic Server (BEA)BEA

12 CORBA - ORB : produtos acadêmicos/gratuitos - ORBacus (Object-Oriented Concepts)Object-Oriented Concepts ILU Freeware ORB (Xerox Parc)Xerox Parc DIMMA (ANSA)ANSA JADE (APM)APM JavaIDL (JavaSoft)JavaSoft TAO ( Distributed Object Computing Group at Washington University ) Distributed Object Computing Group at Washington University omniORB2 (AT&T Laboratories )AT&T Laboratories MICO (University of Frankfurt)University of Frankfurt

13 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 www.omg.org OMA Guide CORBA Revision 2 CORBAservices CORBAfacilities Distributed Object Computing Magazine, OMG http://mini.net/cetus

14 CORBA - 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

15 CORBA - objetivos - construcão de sistemas distribuídos: criacão de novos componentes integracão de componentes existentes (legados) 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

16 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

17 17 ORB Cliente Implementação do Objeto ORB Request

18 18 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.

19 19 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)

20 20 Arquitetura ORB Cliente Implementação do objeto Invocação Dinâmica Stubs IDL Interface ORB Esqueleto IDL Adaptador do Objeto Núcleo ORB

21 21 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,...)

22 22 IDL: Interface Definition Language Definições IDL IDL stub Repositório de Interfaces Esqueleto IDL Implementação (em linguagem) Repositório de Implementação

23 IDL - exemplo module 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 ListaCursos; ListaCursos cursos_registrados(); }

24 Exemplo – arquivo IDL // IDL - arquivo Hello.idl interface Hello { void trabalhe ( ); };

25 Exemplo – arquivos relacionados à IDL compilação do arquivo IDL: idl Hello.idl Arquivos gerados: Hello.h Hello.cpp Hello_skel.h Hello_skel.cpp

26 Exemplo – implementação do objeto em Java import org.omg.CORBA.*; public class Hello_impl extends _HelloImplBase { public void trabalhe ( ) { System.out.println("Hello World!"); }

27 Exemplo – ativação do servidor (1) // Initialize the ORB ORB orb = ORB.init ( args, new java.util.Properties ( ) ) ; // Initialize the Basic Object Adapter BOA boa = orb.BOA_init ( args, new java.util.Properties ( ) ) ; // Create the implementation object Hello_impl p = new Hello_impl ( ) ;

28 Exemplo – ativação do servidor (2) // Export a reference to this object to a file // obtém uma referência para o objeto // em formato de string String ref = orb.object_to_string ( p ); // abre um arquivo para escrita String refFile = "C:\Temp\Hello.ref"; FileOutputStream file = new FileOutputStream(refFile); PrintStream out = new PrintStream(file); // escreve a referência no arquivo em formato de string out.println( ref );

29 Exemplo – ativação do servidor (3) // Run the object implementation boa.impl_is_ready ( null );

30 Exemplo – cliente em Java (1) // Initialize ORB ORB orb = ORB.init ( args, new java.util.Properties ( ) );

31 Exemplo – cliente em Java (2) // Get "hello" object reference from a file // abre o arquivo para leitura String refFile = "C:\Temp\Hello.ref"; FileInputStream file = new FileInputStream(refFile); DataInputStream in = new DataInputStream(file); // lê a referência em formato de string String ref = in.readLine();

32 Exemplo – cliente em Java (3) // Convert IOR String reference to object reference org.omg.CORBA.Object obj = orb.string_to_object(ref); // Throw an exception in case of failure if (obj == null) throw new RuntimeException(); // Cast generic Corba.Object reference to // Hello interface reference Hello h = HelloHelper.narrow(obj); // Finally, use the reference ! h.trabalhe ( ); // remote method invocation

33 CORBA Services

34 ORB e serviços CORBA Naming Service Event Service Security Service Persistence Object Service Transaction Service ORB ClienteObjetoClienteObjeto

35 Services - categorias - Information management Task management System management Infrastructure

36 Services - information management - property relationship query externalization persistent object collection

37 Services - task management - events concurrency transaction

38 Services - system management - naming lifecycle licensing trader

39 Services - infrastructure - Security Time Services Messaging

40 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

41 Property Service - produtos OpenFusion Property Service (PrismTech) OpenFusion Property Service (PrismTech) Property Service with Java & C++ bindings. Property Service (Carsten Zerbst) Property Service (Carsten Zerbst) Property Service implemented using Tcl and Mico.

42 Relationship Service permite estabelecer ligacões entre objetos evita que objetos mantenham object references explicitamente cria objetos adicionais: Relationship Role

43 Relationship Service - produtos Enabled Systems Persistent Relationship Service (Enabled Systems) Enabled Systems Persistent Relationship Service (Enabled Systems) Relationship Service with Java & C++ bindings. OpenFusion Relationship Service (PrismTech) OpenFusion Relationship Service (PrismTech) Relationship Service with Java & C++ bindings.

44 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

45 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)

46 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

47 Persistent Object Service - produtos Secant Extreme Persistent Object Service for C++ and Java (Secant) Secant Extreme Persistent Object Service for C++ and Java (Secant) Persistent Object Service with Java & C++ bindings.

48 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

49 Collection Service - produtos OpenFusion Collection Service (PrismTech) OpenFusion Collection Service (PrismTech) Collection Service with Java & C++ bindings.

50 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

51 Events Service - produtos NetEvents (Exemplar Development) NetEvents (Exemplar Development) Java implementation of the Event Service. OpenFusion Event Service (PrismTech) OpenFusion Event Service (PrismTech) Event Service with Java & C++ bindings.

52 Notification Service - produtos DSTC Notification Service (DSTC) DSTC Notification Service (DSTC) C++ implementation of the Notification Service. OpenFusion Notification Service (PrismTech) OpenFusion Notification Service (PrismTech) Notification Service with Java & C++ bindings. ORBacus Notify (OOC) ORBacus Notify (OOC) C++ implementation of the Notification Service. Orbital Notification Service (NEC) Orbital Notification Service (NEC) C++ implementation of the Notification Service.

53 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)

54 Concurrency Service - produtos OpenFusion Concurrency Service (PrismTech) OpenFusion Concurrency Service (PrismTech) Concurrency Service with Java & C++ bindings.

55 Transaction Service OTS: Object 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

56 Transaction Service - produtos CORBAplus Transaction Service (Expersoft) CORBAplus Transaction Service (Expersoft) C++ implementation of the OTS Java Transaction Service (JTS) (JavaSoft) Java Transaction Service (JTS) (JavaSoft) Java implementation of the OTS JTSArjuna (Arjuna Solutions) JTSArjuna (Arjuna Solutions) Java implementation of the Java Transaction Service OTSArjuna (Arjuna Solutions) OTSArjuna (Arjuna Solutions) C++ implementation of the OTS TPBroker (Hitachi) TPBroker (Hitachi) C++ implementation of OTS, and Java Implementation of OTS and JTS. VisiBroker ITS (Borland) VisiBroker ITS (Borland) Implementation of CORBA OTS and JTS

57 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)

58 Naming Service - produtos DSTC Scalable Naming Service (DSTC) DSTC Scalable Naming Service (DSTC) C++ implementation of the Naming Service ENames - CORBA Naming Service Browser [German] (Entrance Software) ENames - CORBA Naming Service Browser [German] (Entrance Software) Java / Swing Naming Service Browser jNames (OutBack Resource Group) jNames (OutBack Resource Group) Java implementation of the Naming Service OpenFusion Naming Service (PrismTech) OpenFusion Naming Service (PrismTech) Naming Service with Java & C++ bindings ORBacus Names (OOC) ORBacus Names (OOC) Java implementation of the Naming Service TRC Naming Service (Technical Resource Connection) TRC Naming Service (Technical Resource Connection) Java implementation of the Naming Service.

59 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)

60 Lifecycle Service - produtos OpenFusion Lifecycle Service (PrismTech) OpenFusion Lifecycle Service (PrismTech) Lifecycle Service with Java & C++ bindings.

61 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

62 Licensing Service - produtos SilkMeter (Segue Software) SilkMeter (Segue Software) C++ and Java implementations of the Licensing Service.

63 Trading 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)

64 Trading Service - produtos DSTC Object Trader (DSTC) DSTC Object Trader (DSTC) C++ implementation of the Trading Object Service. JTrader (Bruno Böttcher) JTrader (Bruno Böttcher) Java Trading Service, implementing Manager - Factory pattern OpenFusion Trading Service (PrismTech) OpenFusion Trading Service (PrismTech) Trading Object Service with Java & C++ bindings. ORBacus Trader (OOC) ORBacus Trader (OOC) Java implementation of the Trading Object Service. TOI (IKV) TOI (IKV) C++ implementation of the Trading Object Service. Trader (Washington University in St. Louis) Trader (Washington University in St. Louis) C++ implementation of the Trading Object Service.

65 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

66 Security Service - produtos ORBAsec (Adiron) ORBAsec (Adiron) Java implementation of the Security Service (Level 1 and Level 2) SecureBroker (Promia) SecureBroker (Promia) Java implementation of the Security Service (Level 1 and Level 2)

67 Timing 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

68 Timing Service - produtos OpenFusion Time Service (PrismTech) OpenFusion Time Service (PrismTech) Time Service with Java & C++ bindings. Time Service (Carsten Zerbst) Time Service (Carsten Zerbst) Time Service implemented using C++.

69 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

70 Messaging e Tolerância a Falhas The Ensemble Project (Cornell University)The Ensemble Project (Cornell University) Piranha: A CORBA Tool For High AvailabilityPiranha: A CORBA Tool For High Availability Q/CORBA (University of Colorado) TIB/ObjectBus 2.0 White Paper (TIBCO)


Carregar ppt "CORBA Alcides Calsavara. Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento além dos limites práticos de sistemas."

Apresentações semelhantes


Anúncios Google