SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Programando em python excecoes
Programando em python   excecoesProgramando em python   excecoes
Programando em python excecoes
samuelthiago
 
Mutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosMutexes, Monitores e Semáforos
Mutexes, Monitores e Semáforos
Thiago Poiani
 

Tendances (20)

Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
 
Aula 1: Virtualização
Aula 1: VirtualizaçãoAula 1: Virtualização
Aula 1: Virtualização
 
Modelagem Aplicações Web com UML
Modelagem Aplicações Web com UMLModelagem Aplicações Web com UML
Modelagem Aplicações Web com UML
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
POO - Aula 10 - Polimorfismo
POO - Aula 10 - PolimorfismoPOO - Aula 10 - Polimorfismo
POO - Aula 10 - Polimorfismo
 
Programando em python excecoes
Programando em python   excecoesProgramando em python   excecoes
Programando em python excecoes
 
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
 
Redis trouble shooting
Redis trouble shootingRedis trouble shooting
Redis trouble shooting
 
A Linguagem UML
A Linguagem UMLA Linguagem UML
A Linguagem UML
 
Análise Orientada a Objetos com UML
Análise Orientada a Objetos com UMLAnálise Orientada a Objetos com UML
Análise Orientada a Objetos com UML
 
SQL server part 1
SQL server  part 1SQL server  part 1
SQL server part 1
 
Exercicio de UML - Documentacao Restaurante
Exercicio de UML  - Documentacao RestauranteExercicio de UML  - Documentacao Restaurante
Exercicio de UML - Documentacao Restaurante
 
Mutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosMutexes, Monitores e Semáforos
Mutexes, Monitores e Semáforos
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
A DBA’s guide to using TSA
A DBA’s guide to using TSAA DBA’s guide to using TSA
A DBA’s guide to using TSA
 
Java 8 - A Evolução da Linguagem
Java 8 - A Evolução da LinguagemJava 8 - A Evolução da Linguagem
Java 8 - A Evolução da Linguagem
 
Criando uma arquitetura escalável para processamento de arquivos com micro s...
Criando uma arquitetura escalável para processamento de arquivos com micro s...Criando uma arquitetura escalável para processamento de arquivos com micro s...
Criando uma arquitetura escalável para processamento de arquivos com micro s...
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱
 
Proteção e segurança de sistemas operacionais
Proteção e segurança de sistemas operacionaisProteção e segurança de sistemas operacionais
Proteção e segurança de sistemas operacionais
 

En vedette (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
 

Similaire à Sistemas Distribuídos: RMI, CORBA e SOA

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 Web
Luiz 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 Systems
WakeUpSystems
 
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
Helder da Rocha
 

Similaire à 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
 

Plus de Líus Fontenelle Carneiro

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
Líus Fontenelle Carneiro
 

Plus 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
 

Dernier

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Dernier (6)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

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