70
CORBA Alcides Calsavara

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

Embed Size (px)

Citation preview

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

CORBAAlcides Calsavara

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

Sistemas Distribuídos- objetivos -

Melhor relação custo/benefícioCapacidade de processamento além dos limites práticos de sistemas centralizados (velocidade da luz, aquecimento)Maior domínio de aplicaçõesMaior confiabilidade e disponibilidadeCrescimento gradativo da capacidade de processamento

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

Sistemas Distribuídos- objetivos -

Compartilhamento de dados comuns entre usuáriosCompartilhamento de recursos de hardware e softwareComunicação entre pessoasFlexibilidade na distribuição de tarefas de acordo com as aplicações

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

Sistemas Distribuídos- requisitos -

Controle de concorrênciaConsistênciaExtensibilidade (openness)Escalabilidade (crescimento gradativo suave)Tolerância a falhasTransparência

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

Sistemas Distribuídos- transparência -

AcessoLocalizacãoConcorrênciaReplicaçãoFalhaMigraçãoDesempenhoEscalaParalelismo

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

Sistemas Distribuídos- componentes básicos -

ComunicaçãoSistema de nomesManutenção de consistência Alocação de carga de trabalho

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

Sistemas Distribuídos- comunicação -

modelo: cliente/servidor grupo

abstracão: processos e mensagens objetos e operações (RPC)

sincronismo: síncrona assíncrona

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

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.

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

CORBA

Conceitos e Exemplos

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

10

CORBA- contexto -

OMG: Object Management GroupOMA: 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, ...

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

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)

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

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)

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

CORBA- referências básicas -

Orfali & Harkey & Edwards. The Essential Distributed Objects Survival Guide. 1995Mowbray & Zahavi. The Essential CORBA. 1995Mowbray & Ruh. Inside CORBA. 1997www.omg.org

OMA Guide CORBA Revision 2 CORBAservices CORBAfacilities

Distributed Object Computing Magazine, OMGhttp://mini.net/cetus

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

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

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

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

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

CORBA- abordagem -

orientacão a objetosmodelo cliente/servidorcomunicação via RPCmecanismos disponíveis através de: servicos, facilidades e domíniosindependência de: hardware, SO, linguagem

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

17

ORB

Cliente Implementaçãodo Objeto

ORB

Request

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

18

Modelo de objetosClientes 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 19: CORBA Alcides Calsavara. Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento além dos limites práticos de sistemas

19

OperaçõesA 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, inoutO 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)

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

20

Arquitetura ORB

Cliente Implementaçãodo objeto

InvocaçãoDinâmica

StubsIDL

InterfaceORB

EsqueletoIDL

Adaptadordo Objeto

Núcleo ORB

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

21

Componentes ORBInterface 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 22: CORBA Alcides Calsavara. Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento além dos limites práticos de sistemas

22

IDL: Interface Definition Language

DefiniçõesIDL

IDL stub

Repositóriode Interfaces

EsqueletoIDL

Implementação(em linguagem)

Repositório deImplementação

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

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 24: CORBA Alcides Calsavara. Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento além dos limites práticos de sistemas

Exemplo – arquivo IDL// IDL - arquivo Hello.idl

interface Hello{

void trabalhe ( );};

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

Exemplo – arquivos relacionados à IDL

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

Arquivos gerados:Hello.hHello.cppHello_skel.hHello_skel.cpp

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

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!"); }}

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

Exemplo – ativação do servidor (1)// Initialize the ORBORB orb =

ORB.init ( args, new java.util.Properties ( ) ) ;

// Initialize the Basic Object AdapterBOA boa =

orb.BOA_init ( args, new java.util.Properties ( ) ) ;

// Create the implementation objectHello_impl p = new Hello_impl ( ) ;

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

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 stringString ref = orb.object_to_string ( p );

// abre um arquivo para escritaString refFile = "C:\Temp\Hello.ref";FileOutputStream file = new FileOutputStream(refFile);PrintStream out = new PrintStream(file);

// escreve a referência no arquivo em formato de stringout.println( ref );

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

Exemplo – ativação do servidor (3)// Run the object implementation

boa.impl_is_ready ( null );

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

Exemplo – cliente em Java (1)

// Initialize ORBORB orb =

ORB.init ( args, new java.util.Properties ( ) );

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

Exemplo – cliente em Java (2)

// Get "hello" object reference from a file

// abre o arquivo para leituraString refFile = "C:\Temp\Hello.ref";FileInputStream file = new FileInputStream(refFile);DataInputStream in = new DataInputStream(file);

// lê a referência em formato de stringString ref = in.readLine();

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

Exemplo – cliente em Java (3)

// Convert IOR String reference to object referenceorg.omg.CORBA.Object obj = orb.string_to_object(ref);

// Throw an exception in case of failureif (obj == null) throw new RuntimeException();

// Cast generic Corba.Object reference to// Hello interface referenceHello h = HelloHelper.narrow(obj);

// Finally, use the reference !h.trabalhe ( ); // remote method invocation

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

CORBA

Services

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

ORB e serviços CORBA

NamingService

EventService

SecurityService

PersistenceObjectService

TransactionService

ORB

Cliente ObjetoCliente Objeto

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

Services- categorias -

Information managementTask managementSystem managementInfrastructure

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

Services- information management -

propertyrelationshipqueryexternalizationpersistent objectcollection

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

Services- task management -

eventsconcurrencytransaction

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

Services- system management -

naminglifecyclelicensingtrader

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

Services- infrastructure -

SecurityTime ServicesMessaging

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

Property Servicepropriedades são atributos dinâmicos vinculados a objetos de aplicacãopropriedades 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 objetosexemplo: uma ferramenta de debugging pode vincular informacão sobre a execucão (como breakpoints) a objetos de um programa

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

Property Service - produtos

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

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

Relationship Servicepermite estabelecer ligacões entre objetosevita que objetos mantenham object references explicitamentecria objetos adicionais: Relationship Role

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

Relationship Service - produtos

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

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

Query Serviceusado com bancos de dados comerciaissuporta bancos relacionais e OOproposto por: IBM, Sybase, SunSoftcontempla: SQL92, SQL-3, OQLqueries são dinâmicasqueries podem ser resolvidas sincrona ou assincronamente

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

Externalization Serviceconverte estruturas de dados em formato que pode ser armazenado externamente ao programa e transmitido via rederemove ponteirosparte do processo de marshallingútil também para migrar objetos (mas não inclui métodos)

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

Persistent Object Servicecriado por fornecedores de bancos de dados relacionais e OOinclui 3 protocolos de persistência: ODMG 93 direct access protocol (usa DDL, um

subconjunto de IDL) dynamic data object protocol

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

Persistent Object Service - produtos

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

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

Collection Servicegrupos de objetos listas sequenciais pilhas filas bags ...estende a funcionalidade de bibliotecas como a STL (Standard Template Library) para sistemas distribuídos

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

Collection Service - produtos

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

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

Events Servicecanal de passagem de eventos entre produtores e consumidores de eventospode ser usado para comunicacão multicastum consumidor registra seu interesse em eventos com o servicoestilos de interacão: push pull

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

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

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

Notification Service - produtos

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

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

Concurrency Servicegarante acesso atômico a objetos distribuídosportabilidade: uso de concorrência por múltiplos sistemas operacionais e linguagenstipos de lock: read, write upgrade (pode mudar para write) intention read, intention write (fine granularity)

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

Concurrency Service - produtos

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

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

Transaction ServiceOTS: Object Transaction Servicepermite a manipulacão de estados de objetos distribuídos de forma consistentetrabalha 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 protocolsuporta transações flat e nestedbaixo suporte a tolerância a falhas (Orbix + Isis)não suporta transações de longa duração

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

Transaction Service - produtos

CORBAplus Transaction Service (Expersoft) C++ implementation of the OTSJava Transaction Service (JTS) (JavaSoft) Java implementation of the OTSJTSArjuna (Arjuna Solutions) Java implementation of the Java Transaction Service OTSArjuna (Arjuna Solutions) C++ implementation of the OTSTPBroker (Hitachi) C++ implementation of OTS, and Java Implementation of OTS and JTS. VisiBroker ITS (Borland) Implementation of CORBA OTS and JTS

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

Naming Servicepermite recuperar uma referência para um objeto dado um nome vinculado a esteoperacões básicas: bind unbind resolve

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

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

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

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

Lifecycle Servicecriacão de objetos é responsabilidade das aplicacões: lista de parâmetros é imprevisívelpermite criar object factories, que criam, duplicam, movem e removem objetos de certos tipos pelo sistema distribuído (com transparência de localizacão)

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

Lifecycle Service - produtos

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

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

Licensing Servicepermite protecão de propriedade intelectual através de gerenciamento de licensas de forma dinâmicainclui, por exemplo: trabalhos de arte em computador e aplicacões comerciais.estimativa: 70% de todo software em uso no mundo é pirata

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

Licensing Service - produtos

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

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

Trading Serviceuma espécie de páginas amarelas, onde fornecedores publicam seus servicos e interessados procuram por elesnem sempre se sabe o nome do objeto que pode prover o servicoum servico é caracterizado através de sua interface (influenciado por APM ANSA Trader)

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

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

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

Security Servicedeve ser suportado diretamente pelo ORBabrange: confidencialidade, integridade, contabilidade, disponibilidade e não-repudiacãofuncões básicas: controle de acesso, auditoria, autenticacão e políticas de implementacão

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

Security Service - produtos

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

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

Timing Servicesuporta recuperacão e sincronizacão de relógios (físicos) em sistemas distribuídossuporta sincronizacão através sinais de rádio gerados localmente ou por fontes do governo

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

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

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

Messaging Servicepermite processamento assíncrono através do ORBinterfaces IDL têm semântica síncrona, por defaultestende a utilidade de CORBA para cobrir a funcionalidade disponível em MOM (message-oriented middleware)não suporta garantia de entrega de mensagens

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

Messaging eTolerância a Falhas

The Ensemble Project (Cornell University)  Piranha: A CORBA Tool For High Availability  Q/CORBA (University of Colorado)   TIB/ObjectBus 2.0 White Paper (TIBCO)