PublicouHugo Mendes Alterado mais de 4 anos atrás
3 Módulo 4 - Sumário CORBA – Common Object Request Broker Arquitecture –Introdução; –Arquitetura CORBA; –Estudo de Caso; –Atividade;
4 CORBA Introdução CORBA começou a ser desenvolvido em 1989, quando um grupo de empresas reuniu- se em uma organização, denominada OMG; É um padrão para interoperabilidade entre objetos distribuídos: –permitem que objetos escritos em diferentes linguagens e, compilados por diferentes compiladores comuniquem-se; –comunicação através de protocolos padronizados de forma transparente;
5 CORBA Introdução Padrão CORBA é uma especificação aberta, independente de linguagem e fabricante; Assegura a possibilidade de se desenvolver sistemas baseados em interação, que incorporam componentes de múltiplas origens;
6 CORBA Arquitetura OMA:Object Manegement Architecture; A OMA agrupa um conjunto de objetos CORBA em serviços e facilidades; Object Request Broker (ORB) habilita clientes e objetos a se comunicarem em um ambiente distribuído;
7 CORBA Arquitetura Há quatro categorias de interfaces: –Objetos de Serviços (Object Services) são interfaces para serviços gerais; –Facilidades Comuns (Common Facilities) são interfaces para facilidades horizontais orientadas para usuário; –Interfaces de Domínio (Domain Interfaces) são interfaces de aplicações de um domínio específico; –Interfaces de Aplicação (Application Interfaces) são interfaces não padronizadas para aplicações específicas.
8 CORBA Arquitetura
9 CORBA Arquitetura - ORB É um mecanismo pelo qual objetos fazem ou recebem requisições de outros objetos; O cliente não precisa estar ciente: –do mecanismo usado para comunicar ou ativar um objeto; –de como o objeto é implementado; –onde o objeto está localizado; Permite interoperabilidade;
10 CORBA Arquitetura - ORB
11 CORBA Arquitetura – ORB Parte Cliente Client IDL Stubs: –Prove interfaces estáticas para o acesso aos objetos remotos; –Agem como um proxy para o objeto remoto do servidor –Gerados a partir de uma IDL; –Fazem marshalling;
12 CORBA Arquitetura – ORB Parte Cliente Dynamic Invocation Interface (DII): –Permite descobrir métodos de servidores remotos em tempo de execução; –CORBA define APIs para a localização de meta-dados que definem as interfaces dos servidores: para a geração dos parâmetros, para invocação remota, e para o retorno dos dados;
13 CORBA Arquitetura – ORB Parte Cliente Interface Repository APIs (IR): –Permitem obter a descrição de todas as interfaces dos componentes registrados, os métodos que eles suportam, e os parâmetros que eles utilizam; –É uma base de dados distribuída que contém as definições das interfaces no formato da IDL;
14 CORBA Arquitetura – ORB Parte Servidor Server IDL Stubs: –fornecem interfaces estáticas para cada serviço exportado pelo servidor; –Também são criados pelo compilador IDL; –Fazem unMarshalling;
15 CORBA Arquitetura – ORB Parte Servidor Dynamic Skeleton Interface (DSI): –fornece mecanismos de ligação (binding) em tempo de execução; –para servidores que necessitam manipular requisições de objetos que não possuem stubs nem skeletons compilados; –O DSI do servidor é equivalente ao DII do cliente;
16 CORBA Arquitetura – ORB Parte Servidor Object Adapter: –localiza-se no topo dos serviços de comunicação do ORB; –recebe as requisições dos serviços antes dos objetos do servidor; Provê um ambiente de execução: –para a instanciação dos objetos dos servidores; –para a passagem das requisições;
17 CORBA Arquitetura – ORB Parte Servidor Implementation Repository (IR): –fornece um repositório de informações sobre as classes que um objeto suporta e os objetos que estão instanciados; –Utilizado para armazenar informações adicionais associadas com as implementações de cada ORB, entre elas segurança e dados administrativos;
18 CORBA Arquitetura - Comunicação client server proxy or dynamic invocation implementation repository object adapter ORB skeleton or dynamic skeleton client program interface repository Request Reply core for A Servant A
19 CORBA Serviços CORBA (CORBAservices) Serviço de Nomeação (Naming Service): –Provê capacidade para ligar um nome a um objeto; –Resolver um nome é determinar o objeto associado a um determinado nome;
20 CORBA Serviços CORBA (CORBAservices) Serviço de Evento (Event Service): –Suporta eventos assíncronos (desacoplamento do produtor e consumidor); –Através de implementações apropriadas de canais de eventos oferece uma entrega confiável dos eventos;
21 CORBA Serviços CORBA (CORBAservices) Serviço de Persistência; Serviço de Controle de Concorrência; Serviço de Consulta; Serviço de Segurança; Serviço de Tempo;...
22 CORBA IDL e Mapeamento linguagem independente; OMG IDL é derivada do C++; suporta tipos como: –inteiro com ou sem sinal; –tipos enumerados, estruturas, uniões, seqüências; –exceções;
23 CORBA IDL e Mapeamento interface Printer { void print ( ); }; interface ColorPrinter: Printer { enum ColorMode {BackAndWhite, FullColor}; void set-color (in ColorMode mode); long numero( ); };
24 CORBA IDL e Mapeamento Mapeamento especifica como a IDL pode ser traduzida para outra linguagem; –Em C++ as interfaces IDL são mapeadas para classes e as operações são mapeadas para funções dessas classes; Mapeamentos OMG IDL padronizados: –C, C++, Smalltalk, Cobol, Ada e Java;
25 CORBA Estudo de Caso Boas Vindas ao CORBA; Código da interface: –BoasVindas.idl; Implementação objeto remoto: –Msg_Boas_VindasImpl.java; Servidor: servidor.java; Cliente: cliente.java;
26 CORBA Estudo de Caso Gerar stubs: idlj –fall BoasVindas.idl; –_Msg_Boas_VindasStub - Proxy –Msg_Boas_Vindas - Interface CORBA –Msg_Boas_VindasOperations – Operacoes –Msg_Boas_VindasHelper - Auxiliar –Msg_Boas_VindasHolder - Auxiliar –Msg_Boas_VindasPOA- Skeleton
27 CORBA Estudo de Caso Compilar Servidor: –javac BoasVindas\servidor.java; Compilar Cliente: –javac cliente.java;
28 CORBA Estudo de Caso Executar ORB: –orbd –ORBInitialPort 2000; Executar Servidor: –java BoasVindas.servidor –ORBInitialPort 2000; Executar Cliente: –java cliente –ORBInitialPort 2000 – ORBInitialHost localhost;
29 CORBA Atividade Testar estudo de caso em diferentes computadores; Passar e retornar parâmetro na mensagem; –Alterar interface; –Alterar servidor; –Alterar cliente;
30 CORBA Atividade – Calculadora Remota Interface Calculadora.idl; Desenvolver: –cliente; –servidor; –calc_numericaImpl.java Executar: –Gerar Stubs; –Compilar Servidor / Cliente; –Executar ORB; –Executar Servidor / Cliente;
31 CORBA Atividade Alterar exemplo da calculadora; Adicionar dois métodos na interface: –sendClientName; –getServerName;
32 CORBA Atividade - Extra Definir um tema; Se organizar em duplas de máquinas; Um lado desenvolve o cliente; Outro lado desenvolve o servidor; Estabelecer a comunicação;