SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Camada 5 - Sessão
Camada 5 - SessãoCamada 5 - Sessão
Camada 5 - Sessãoagalves
 
Intro to the Alfresco Public API
Intro to the Alfresco Public APIIntro to the Alfresco Public API
Intro to the Alfresco Public APIJeff Potts
 
The Art of Discovering Bounded Contexts
The Art of Discovering Bounded ContextsThe Art of Discovering Bounded Contexts
The Art of Discovering Bounded ContextsNick Tune
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Arthur Emanuel
 
Sistemas de ficheiros
Sistemas de ficheirosSistemas de ficheiros
Sistemas de ficheirosKaska Lucas
 
[221] docker orchestration
[221] docker orchestration[221] docker orchestration
[221] docker orchestrationNAVER D2
 
Mind The Gap - Mapping a domain model to a RESTful API - OReilly SACon 2018, ...
Mind The Gap - Mapping a domain model to a RESTful API - OReilly SACon 2018, ...Mind The Gap - Mapping a domain model to a RESTful API - OReilly SACon 2018, ...
Mind The Gap - Mapping a domain model to a RESTful API - OReilly SACon 2018, ...Tom Hofte
 
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...Jemin Huh
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoJoeldson Costa Damasceno
 
O que é necessário para montar uma lan house
O que é necessário para montar uma lan houseO que é necessário para montar uma lan house
O que é necessário para montar uma lan houseJease Bernardo
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
 
Domain-driven design - eine Einführung
Domain-driven design - eine EinführungDomain-driven design - eine Einführung
Domain-driven design - eine Einführungdie.agilen GmbH
 
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...Dalton Martins
 
Redes de computadores II - 5.Serviços em Redes TCP/IP
Redes de computadores II - 5.Serviços em Redes TCP/IPRedes de computadores II - 5.Serviços em Redes TCP/IP
Redes de computadores II - 5.Serviços em Redes TCP/IPMauro Tapajós
 

Mais procurados (20)

Camada 5 - Sessão
Camada 5 - SessãoCamada 5 - Sessão
Camada 5 - Sessão
 
Intro to the Alfresco Public API
Intro to the Alfresco Public APIIntro to the Alfresco Public API
Intro to the Alfresco Public API
 
The Art of Discovering Bounded Contexts
The Art of Discovering Bounded ContextsThe Art of Discovering Bounded Contexts
The Art of Discovering Bounded Contexts
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01
 
Sistemas de ficheiros
Sistemas de ficheirosSistemas de ficheiros
Sistemas de ficheiros
 
Tecnologias Atuais de Redes - Aula 4 - Comutação
Tecnologias Atuais de Redes - Aula 4 - ComutaçãoTecnologias Atuais de Redes - Aula 4 - Comutação
Tecnologias Atuais de Redes - Aula 4 - Comutação
 
Servidor proxy
Servidor proxy Servidor proxy
Servidor proxy
 
DDD In Agile
DDD In Agile   DDD In Agile
DDD In Agile
 
[221] docker orchestration
[221] docker orchestration[221] docker orchestration
[221] docker orchestration
 
Evolve18 | Abhishek Dwevdi & Varun Mitra | Introduction to AEM Assets
Evolve18 | Abhishek Dwevdi & Varun Mitra | Introduction to AEM Assets Evolve18 | Abhishek Dwevdi & Varun Mitra | Introduction to AEM Assets
Evolve18 | Abhishek Dwevdi & Varun Mitra | Introduction to AEM Assets
 
Mind The Gap - Mapping a domain model to a RESTful API - OReilly SACon 2018, ...
Mind The Gap - Mapping a domain model to a RESTful API - OReilly SACon 2018, ...Mind The Gap - Mapping a domain model to a RESTful API - OReilly SACon 2018, ...
Mind The Gap - Mapping a domain model to a RESTful API - OReilly SACon 2018, ...
 
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e Validação
 
O que é necessário para montar uma lan house
O que é necessário para montar uma lan houseO que é necessário para montar uma lan house
O que é necessário para montar uma lan house
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
Domain-driven design - eine Einführung
Domain-driven design - eine EinführungDomain-driven design - eine Einführung
Domain-driven design - eine Einführung
 
Aula 06 - TEP - Introdução SQLite
Aula 06 - TEP - Introdução SQLiteAula 06 - TEP - Introdução SQLite
Aula 06 - TEP - Introdução SQLite
 
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
 
Redes de computadores II - 5.Serviços em Redes TCP/IP
Redes de computadores II - 5.Serviços em Redes TCP/IPRedes de computadores II - 5.Serviços em Redes TCP/IP
Redes de computadores II - 5.Serviços em Redes TCP/IP
 
Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 

Destaque

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
 

Destaque (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
 

Semelhante 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
 

Semelhante 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
 

Mais 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