SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
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
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
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
Sistemas Distribuídos
    Principais demandas:
■
        Escalabilidade;
    

        Extensibilidade;
    

        Interoperabilidade.
    




    Principais padronizações:
■
        RMI;
    

        CORBA;
    

        SOAP.
    




    Conhecimento:
■
        Literatura;
    

        Na ementa;
    

        Casos de uso.
    


                                                  4
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
RMI




  6
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
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
RMI




  9
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
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
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
CORBA




    13
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
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
Sistemas Distribuídos



                Fim




               Contato
Página pessoal: http://hypercast.info/
     E-mail: liusfc@gmail.com


                                         16

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Aula05 padrões sem fio
Aula05   padrões sem fioAula05   padrões sem fio
Aula05 padrões sem fio
 
Endereçamento IP
Endereçamento IPEndereçamento IP
Endereçamento IP
 
Layer 2 & layer 3 switching
Layer 2 & layer 3 switchingLayer 2 & layer 3 switching
Layer 2 & layer 3 switching
 
Desenho da rede
Desenho da redeDesenho da rede
Desenho da rede
 
Lesson 6: Dynamic Host Configuration Protocol A
Lesson 6: Dynamic Host Configuration Protocol ALesson 6: Dynamic Host Configuration Protocol A
Lesson 6: Dynamic Host Configuration Protocol A
 
Introdução ao dhcp
Introdução ao dhcpIntrodução ao dhcp
Introdução ao dhcp
 
Ftp: a slideshow on File transfer protocol
Ftp: a slideshow on File transfer protocol Ftp: a slideshow on File transfer protocol
Ftp: a slideshow on File transfer protocol
 
Dhcp
DhcpDhcp
Dhcp
 
Sistemas Distribuídos - Aula 03
Sistemas Distribuídos - Aula 03Sistemas Distribuídos - Aula 03
Sistemas Distribuídos - Aula 03
 
Telnet
TelnetTelnet
Telnet
 
First hop redundancy
First hop redundancyFirst hop redundancy
First hop redundancy
 
Instalação e configuração - Servidor DHCP
Instalação e configuração - Servidor DHCPInstalação e configuração - Servidor DHCP
Instalação e configuração - Servidor DHCP
 
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCSistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
 
Servidor proxy
Servidor proxy Servidor proxy
Servidor proxy
 
Dhcp
DhcpDhcp
Dhcp
 
U N I X
U N I XU N I X
U N I X
 
Trabalho sobre Proxy
Trabalho sobre ProxyTrabalho sobre Proxy
Trabalho sobre Proxy
 
Transitioning IPv4 to IPv6
Transitioning IPv4 to IPv6Transitioning IPv4 to IPv6
Transitioning IPv4 to IPv6
 
Protocolos de Redes
Protocolos de RedesProtocolos de Redes
Protocolos de Redes
 
Arp rarp
Arp rarpArp rarp
Arp rarp
 

Destacado

Tutorial passo a passo sobre RMI
Tutorial passo a passo sobre RMITutorial passo a passo sobre RMI
Tutorial passo a passo sobre RMISimão Neto
 
Sistemas distribuídos com RMI
Sistemas distribuídos com RMISistemas distribuídos com RMI
Sistemas distribuídos com RMICharleston Anjos
 
Artigo distribuidos programação java com rmi e cobra
Artigo distribuidos programação java com rmi e cobraArtigo distribuidos programação java com rmi e cobra
Artigo distribuidos programação java com rmi e cobraGoncalvinho
 

Destacado (6)

Tutorial passo a passo sobre RMI
Tutorial passo a passo sobre RMITutorial passo a passo sobre RMI
Tutorial passo a passo sobre RMI
 
RMI em Java
RMI em JavaRMI em Java
RMI em Java
 
Rmi
RmiRmi
Rmi
 
Computacao distribuida com rmi
Computacao distribuida com rmiComputacao distribuida com rmi
Computacao distribuida com rmi
 
Sistemas distribuídos com RMI
Sistemas distribuídos com RMISistemas distribuídos com RMI
Sistemas distribuídos com RMI
 
Artigo distribuidos programação java com rmi e cobra
Artigo distribuidos programação java com rmi e cobraArtigo distribuidos programação java com rmi e cobra
Artigo distribuidos programação java com rmi e cobra
 

Similar a Sistemas Distribuídos: RMI, CORBA e SOA

Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Javaarmeniocardoso
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com JavaTI Infnet
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRodrigo Recio
 
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Douglas Roeder
 
Java Platform, Enterprise Edition
Java Platform, Enterprise EditionJava Platform, Enterprise Edition
Java Platform, Enterprise EditionDaniel Arndt Alves
 
Produtividade em Integração de Aplicações com Apache Camel
Produtividade em Integração de Aplicações com Apache CamelProdutividade em Integração de Aplicações com Apache Camel
Produtividade em Integração de Aplicações com Apache CamelAlessandro Kieras
 
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Adriano Tavares
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Aécio Costa
 
Técnicas de Programação para a Web
Técnicas de Programação para a WebTécnicas de Programação para a Web
Técnicas de Programação para a WebLuiz Cláudio Silva
 
Minicurso Ruby on Rails - Wake Up Systems
Minicurso Ruby on Rails - Wake Up SystemsMinicurso Ruby on Rails - Wake Up Systems
Minicurso Ruby on Rails - Wake Up SystemsWakeUpSystems
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5Helder da Rocha
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem JavaUFPA
 

Similar a Sistemas Distribuídos: RMI, CORBA e SOA (20)

Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Java
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com Java
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
 
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01
 
Java Platform, Enterprise Edition
Java Platform, Enterprise EditionJava Platform, Enterprise Edition
Java Platform, Enterprise Edition
 
Produtividade em Integração de Aplicações com Apache Camel
Produtividade em Integração de Aplicações com Apache CamelProdutividade em Integração de Aplicações com Apache Camel
Produtividade em Integração de Aplicações com Apache Camel
 
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!
 
Técnicas de Programação para a Web
Técnicas de Programação para a WebTécnicas de Programação para a Web
Técnicas de Programação para a Web
 
Minicurso Ruby on Rails - Wake Up Systems
Minicurso Ruby on Rails - Wake Up SystemsMinicurso Ruby on Rails - Wake Up Systems
Minicurso Ruby on Rails - Wake Up Systems
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5
 
Tecnologia Java
Tecnologia JavaTecnologia Java
Tecnologia Java
 
Java20141215 17[1]
Java20141215 17[1]Java20141215 17[1]
Java20141215 17[1]
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Apache e Java
Apache e JavaApache e Java
Apache e Java
 
Manual
ManualManual
Manual
 
Introdução ao java
Introdução ao javaIntrodução ao java
Introdução ao java
 
JavaME - Aula 1
JavaME - Aula 1JavaME - Aula 1
JavaME - Aula 1
 
Java virtual machine quantas linguas fala a jvm2
Java virtual machine   quantas linguas fala a jvm2Java virtual machine   quantas linguas fala a jvm2
Java virtual machine quantas linguas fala a jvm2
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem Java
 

Más de Líus Fontenelle Carneiro (18)

DSPic
DSPicDSPic
DSPic
 
Transputer
TransputerTransputer
Transputer
 
AVR
AVRAVR
AVR
 
Wavecom
WavecomWavecom
Wavecom
 
PSoC
PSoCPSoC
PSoC
 
HC11
HC11HC11
HC11
 
Blackfin
BlackfinBlackfin
Blackfin
 
ARM
ARMARM
ARM
 
Zilog
ZilogZilog
Zilog
 
Apresentação sobre o kernel Linux v2.0
Apresentação sobre o kernel Linux v2.0Apresentação sobre o kernel Linux v2.0
Apresentação sobre o kernel Linux v2.0
 
Microcontroladores AVR
Microcontroladores AVRMicrocontroladores AVR
Microcontroladores AVR
 
Java Web Start
Java Web StartJava Web Start
Java Web Start
 
Rtai Apresentacao
Rtai ApresentacaoRtai Apresentacao
Rtai Apresentacao
 
Apresentacao sobre o KURT
Apresentacao sobre o KURTApresentacao sobre o KURT
Apresentacao sobre o KURT
 
Apresentacao sobre o QNX Neutrino
Apresentacao sobre o QNX NeutrinoApresentacao sobre o QNX Neutrino
Apresentacao sobre o QNX Neutrino
 
Sistemas Operacionais de Tempo Real
Sistemas Operacionais de Tempo RealSistemas Operacionais de Tempo Real
Sistemas Operacionais de Tempo Real
 
Programação para Redes de Computadores: Multithread e Multicast
Programação para Redes de Computadores: Multithread e MulticastProgramação para Redes de Computadores: Multithread e Multicast
Programação para Redes de Computadores: Multithread e Multicast
 
Kernel Linux
Kernel LinuxKernel Linux
Kernel Linux
 

Sistemas Distribuídos: RMI, CORBA e SOA

  • 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. 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. 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. Sistemas Distribuídos Principais demandas: ■ Escalabilidade;  Extensibilidade;  Interoperabilidade.  Principais padronizações: ■ RMI;  CORBA;  SOAP.  Conhecimento: ■ Literatura;  Na ementa;  Casos de uso.  4
  • 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
  • 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. 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
  • 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. 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. 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. CORBA 13
  • 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. 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. Sistemas Distribuídos Fim Contato Página pessoal: http://hypercast.info/ E-mail: liusfc@gmail.com 16