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

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

CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento.

Apresentações semelhantes


Apresentação em tema: "CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento."— Transcrição da apresentação:

1 CORBA Alcides Calsavara

2 Arquitetura Cliente-Servidor: CORBA 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 Arquitetura Cliente-Servidor: CORBA 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 Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - requisitos - Controle de concorrência Consistência Extensibilidade (openness) Escalabilidade (crescimento gradativo suave) Tolerância a falhas Transparência

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

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

7 Arquitetura Cliente-Servidor: CORBA Comunicacão modelo: –cliente/servidor –grupo abstracão: –processos e mensagens –objetos e operacões (RPC) sincronismo: –síncrona –assíncrona

8 Arquitetura Cliente-Servidor: CORBA 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 Arquitetura Cliente-Servidor: CORBA 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) –Adotado por: Digital, HP, Hyperdesk, NCR, Object Design, SunSoft,...

11 Arquitetura Cliente-Servidor: CORBA CORBA - produtos - Orbix (IONA) VisiBroker (Visigenic - Borland) ObjectBroker (Digital - Compaq) ILU Freeware ORB Orbacus OmniBroker (Object-Oriented Concepts) CORBUS (BBN - governo EUA)

12 Arquitetura Cliente-Servidor: CORBA CORBA - referências básicas - Orfali & Harkey & Edwards. The Essential Distributed Objects Survival Guide Mowbray & Zahavi. The Essential CORBA Mowbray & Ruh. Inside CORBA OMA Guide. OMG CORBA Revision 2. OMG.1995 CORBAservices. OMG CORBAfacilities. OMG Distributed Object Computing Magazine. OMG

13 Arquitetura Cliente-Servidor: CORBA CORBA - referências disponiveis 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

14 Arquitetura Cliente-Servidor: CORBA CORBA - objetivos - construcão de sistemas distribuídos: –criacão de novos componentes –integracão de componentes existentes 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

15 Arquitetura Cliente-Servidor: CORBA CORBA - abordagem - orientacão a objetos modelo cliente/servidor comunicacão via RPC mecanismos disponíveis através de: –servicos, facilidades e domínios independência de: –hardware, SO, linguagem

16 Arquitetura Cliente-Servidor: CORBA 16 ORB Cliente Implementação do Objeto ORB Request

17 Arquitetura Cliente-Servidor: CORBA 17 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.

18 Arquitetura Cliente-Servidor: CORBA 18 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ânticas: at-most-once; oneway (best-effort, cliente não tem resultados)

19 Arquitetura Cliente-Servidor: CORBA 19 Arquitetura ORB Cliente Implementação do objeto Invocação Dinâmica Stubs IDL Inferface ORB Esqueleto IDL Adaptador do Objeto Núcleo ORB

20 Arquitetura Cliente-Servidor: CORBA 20 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,...)

21 Arquitetura Cliente-Servidor: CORBA 21 IDL Definições IDL IDL stub Repositório de Interfaces Esqueleto IDL Implementação (em linguagem) Repositório de Implementação

22 Arquitetura Cliente-Servidor: CORBA 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(); } }

23 Arquitetura Cliente-Servidor: CORBA Aplicacão - exemplo //c++ #include int main ( ) { cout << Hello World; return 0; }

24 Arquitetura Cliente-Servidor: CORBA Aplicacão - exemplo // Java public class Welcome { public static void main ( String args [ ] ) { System.out.println ( Hello, world!); }

25 Arquitetura Cliente-Servidor: CORBA Aplicacão - exemplo // IDL - arquivo Hello.idl interface Hello { void hello ( ); };

26 Arquitetura Cliente-Servidor: CORBA Aplicacão - exemplo compilação do arquivo IDL: idl Hello.idl Arquivos gerados: Hello.h Hello.cpp Hello_skel.h Hello_skel.cpp

27 Arquitetura Cliente-Servidor: CORBA Aplicacão - exemplo // Servidor em C++ - arquivo Hello_impl.h #include class Hello_impl : public Hello_skel { public: Hello_impl (); virtual void hello(); }

28 Arquitetura Cliente-Servidor: CORBA Aplicacão - exemplo // Servidor em C++ - arquivo Hello_impl.cc #include Hello_impl::Hello_impl ( ) { } void Hello_impl::hello() { cout << Hello, world!<< endl; }

29 Arquitetura Cliente-Servidor: CORBA Aplicacão - exemplo #include // ativacao do servidor #include int main (int argc, char* argv[ ], char* [ ] ) {CORBA_ORB_var orb = CORBA_ORB_init(argc, argv); CORBA_BOA_var boa = orb -> BOA_init (argc, argv); Hello_var p = new Hello_impl ( ); CORBA_String_var s = orb -> object_to_string (p); const char* refFile = Hello.ref; // arquivo auxiliar ofstream out(refFile); out << s << endl; out.close(); boa -> impl_is_ready (CORBA_implementationDef::_nil()); }

30 Arquitetura Cliente-Servidor: CORBA Aplicacão - exemplo #include // cliente #include int main (int argc, char* argv[ ], char* [ ] ) {CORBA_ORB_var orb = CORBA_ORB_init (argc, argv); CORBA_BOA_var boa = orb -> BOA_init (argc, argv); const char* refFile = Hello.ref; // arquivo auxiliar ifstream in (refFile); char s [1000]; in >> s; CORBA_Object_var obj = orb -> string_to_object (s); Hello_var hello = Hello::_narrow (obj); hello -> hello( ); }

31 CORBA Services, Facilities & Domains

32 Arquitetura Cliente-Servidor: CORBA Services - categorias - Information management Task management System management Infrastructure

33 Arquitetura Cliente-Servidor: CORBA Services - information management - property relationship query externalization persistent object collection

34 Arquitetura Cliente-Servidor: CORBA Services - task management - events concurrency transaction

35 Arquitetura Cliente-Servidor: CORBA Services - system management - naming lifecycle licensing trader

36 Arquitetura Cliente-Servidor: CORBA Services - infrastructure - Security Time Services Messaging

37 Arquitetura Cliente-Servidor: CORBA 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

38 Arquitetura Cliente-Servidor: CORBA Relationship Service permite estabelecer ligacões entre objetos evita que objetos mantenham object references explicitamente cria objetos adicionais: –Relationship –Role

39 Arquitetura Cliente-Servidor: CORBA 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

40 Arquitetura Cliente-Servidor: CORBA 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)

41 Arquitetura Cliente-Servidor: CORBA 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

42 Arquitetura Cliente-Servidor: CORBA 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

43 Arquitetura Cliente-Servidor: CORBA 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

44 Arquitetura Cliente-Servidor: CORBA 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)

45 Arquitetura Cliente-Servidor: CORBA 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 transacões flat e nested baixo suporte a tolerância a falhas (Orbix + Isis) não suporta transacões de longa duracão

46 Arquitetura Cliente-Servidor: CORBA 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)

47 Arquitetura Cliente-Servidor: CORBA 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)

48 Arquitetura Cliente-Servidor: CORBA 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

49 Arquitetura Cliente-Servidor: CORBA Trader 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)

50 Arquitetura Cliente-Servidor: CORBA 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

51 Arquitetura Cliente-Servidor: CORBA Time 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

52 Arquitetura Cliente-Servidor: CORBA 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


Carregar ppt "CORBA Alcides Calsavara. Arquitetura Cliente-Servidor: CORBA Sistemas Distribuídos - objetivos - Melhor relação custo/benefício Capacidade de processamento."

Apresentações semelhantes


Anúncios Google