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

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

3/25/2017 CORBA Alcides Calsavara.

Apresentações semelhantes


Apresentação em tema: "3/25/2017 CORBA Alcides Calsavara."— Transcrição da apresentação:

1 3/25/2017 CORBA Alcides Calsavara

2 Sistemas Distribuídos - objetivos -
3/25/2017 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 Arquitetura Cliente-Servidor: CORBA

3 Sistemas Distribuídos - objetivos -
3/25/2017 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 Arquitetura Cliente-Servidor: CORBA

4 Sistemas Distribuídos - requisitos -
3/25/2017 Sistemas Distribuídos - requisitos - Controle de concorrência Consistência Extensibilidade (openness) Escalabilidade (crescimento gradativo suave) Tolerância a falhas Transparência Arquitetura Cliente-Servidor: CORBA

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

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

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

9 CORBA Conceitos e Exemplos

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

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

12 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 OMA Guide. OMG. 1995 CORBA Revision 2. OMG.1995 CORBAservices. OMG. 1995 CORBAfacilities. OMG. 1995 Distributed Object Computing Magazine. OMG Arquitetura Cliente-Servidor: CORBA

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

29 Arquitetura Cliente-Servidor: CORBA
Aplicacão - exemplo #include <CORBA.h> // ativacao do servidor #include <Hello_impl.h> #include <fstream.h> 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()); } Arquitetura Cliente-Servidor: CORBA

30 Arquitetura Cliente-Servidor: CORBA
Aplicacão - exemplo #include <Hello.h> // cliente #include <fstream.h> 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( ); } Arquitetura Cliente-Servidor: CORBA

31 CORBA Services, Facilities & Domains

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Carregar ppt "3/25/2017 CORBA Alcides Calsavara."

Apresentações semelhantes


Anúncios Google