Sistemas Distribuídos: RMI, CORBA e SOA

7,250 views
7,059 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
7,250
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
247
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Sistemas Distribuídos: RMI, CORBA e SOA

  1. 1. Redes de Computadores Programação para Redes de Computadores Sistemas Distribuídos com RMI, CORBA e SOA Líus Fontenelle Carneiro http://hypercast.info/ 1
  2. 2. Flashback Multicast IP ■ Otimização do uso do link eliminando redundância;  Múltiplas notificações divididas por grupos.  Facilidade de desenvolvimento;  Permite que a aplicação cresça.  2
  3. 3. Tipos de aplicações de redes Apenas dois tipos: ■ Transferência de dados e/ou informações:  FTP ➔ ➔ SMTP ➔ HTTP ➔ POP ➔ IMAP ➔ etc... Execução de programas em outros hosts:  RPC ➔ ➔ Telnet ➔ SSH ➔ rlogin Onde podemos encaixar os sistemas distribuídos? 3
  4. 4. Sistemas Distribuídos Principais demandas: ■ Escalabilidade;  Extensibilidade;  Interoperabilidade.  Principais padronizações: ■ RMI;  CORBA;  SOAP.  Conhecimento: ■ Literatura;  Na ementa;  Casos de uso.  4
  5. 5. RMI RMI (“Remote Method Invocation”); ■ Implementação em Java como uma Core API disponível na ■ JVM da Sun; Abstração na localização dos objetos. Para o desenvolvedor e ■ para a JVM, todos eles estão no host local; Ilusão para ao JVM de um único espaço de memória com todo ■ o código e dados necessários. 5
  6. 6. RMI 6
  7. 7. RMI – Problemas que precisar ser resolvidos O servidor precisa de uma interface para expor seus métodos ■ para JVMs remotas; O cliente precisa pensar que está acessando objetos locais; ■ A passagem de objetos e variáveis por valor e por referência ■ precisa ser resolvida.  Resposta: Serialização. 7
  8. 8. RMI Serialização em Java: ■ Classes Serialização permitida Tipos primitivos Sim Tipos básicos que implementam Serializable Sim Conteiners caso os objetos sejam serializáveis Sim Classes que herdam tipos serializáveis (Integer herda Number) Sim Exceções e erros Sim Conteiners, componentes e eventos AWT e Swing Sim Classes matemáticas (java.math) Sim Classes de reflexão (java.lang.reflect) Não Adapter, filters e classes filhas Não Streams, readers, writers e outras classes de I/O Não 8
  9. 9. RMI 9
  10. 10. RMI Implementação: ■ Definir interfaces de exposição remota;  Escrever implementações da classe remota;  Gerar arquivos Stubs da classe de implementação  remota; Escrever inicialização do servidor;  Escrever chamada à classe remota no cliente;  Execução: ■ Iniciar serviço de registro no servidor;  Iniciar criação do objeto a ser compartilhado e  exposição dos métodos; Acessar o método remoto com o cliente (precisa da  classe Stub gerada no servidor para a interface de exposição). 10
  11. 11. CORBA CORBA (“Common Object Request Broker Architecture”) ■ Especificação da OMG (“Object Management Group”) ■ para sistemas distribuídos multi-plataforma, independente de fornecedor;  Outra especificação bastante conhecida: UML Possui muitas implementações, para várias linguagem e ■ arquiteturas;  Inclusive para sistemas embarcados e sistemas em tempo real (CORBART); 11
  12. 12. CORBA Interfaces de exposição descritas em linguagem ■ independente (IDL); ■ Altamente extensível; ■ Interface de comunição (ORB) é modular, e faz a gerência de transporte e entrega; ■ Problemas resolvidos com o CORBA: Dependência de linguagem;  Dependência de sistema operacional;  Isolamento de tecnologias e sistemas legados;  Falta de flexibilidade na tipagem de dados;  Falta de extensibilidade.  12
  13. 13. CORBA 13
  14. 14. SOA SOA (“Service-Oriented Architecture”); ■ Paradigma de exposição de recursos de ■ execução remota de aplicativos de forma de serviços; ■ Objetivos principais: Desacoplamento total entre os componentes do  sistema; Simplificar overhead de infra-estrutura;  14
  15. 15. SOA e Web Services Possui várias implementações, mas uma das ■ mais usadas na Internet são os Web Services: Baseado no protocolo HTTP para troca de  mensagens; Mensagens escritas em XML;  Em Java, as soluções mais utilizadas são: ■ Projeto Metro, que é composto pelas APIs:  JAX-WS (“Java API for XML-based Web Services”); ➔ ➔ JAX-RPC (“Java API for XML-based RCP”); ➔ JAXB (“Java Architecture for XML Binding”) Axis Webservices:  Tomcat (servidor de aplicações); ➔ ➔ Apache Axis (exposição de classes como serviços); ➔ Xerces (XML parser); 15
  16. 16. Sistemas Distribuídos Fim Contato Página pessoal: http://hypercast.info/ E-mail: liusfc@gmail.com 16

×