SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
Comunicação Distribuída – CORBA
         Prof. Adriano Teixeira de Souza
   Estratégias diferentes que permitem a
    comunicação entre aplicações distribuídas.

   Tipos distintos de comunicação em um sistema
    distribuído:

    ◦ Sockets
    ◦ RPC – Remote Procedure Call
    ◦ RMI - Remote Method Invocation
    ◦ CORBA – Commom Object Request Broker Architecture
    ◦ EJB – Enterprise Java Bean
    ◦ Web Services


                              Prof. Adriano Teixeira de Souza
   Motivação:
    ◦ Socket
      Desenvolvimento lento
    ◦ RPC
      Procedural
      Dependente de linguagem
    ◦ RMI
      O.O
      Dependente de Linguagem

    ◦ Suporte a diversas linguagens, possibilitando a
      comunicação entre módulos escritos em linguagens
      distintas

                               Prof. Adriano Teixeira de Souza
   Objetivo
    ◦ Tornar fácil a implementação de aplicações distribuídas

    ◦ Para sistemas Orientado a Objetos e procedurais

    ◦ Independentes de:
       plataforma
       sistema operacional
       linguagem de programação
       protocolo de comunicação

    ◦ Permitindo chamadas de procedimento remoto como se
      fossem locais



                                Prof. Adriano Teixeira de Souza
   História
    ◦ OMG
      A arquitetura CORBA é desenvolvida pela OMG
       (Object Management Group). www.omg.org

      A OMG foi fundada em 1989 por oito membros
       fundadores (3Com, American Airlines, Canon, Data
       General, HP, Philips, Sun e Unisys).

      No ano 2000 tinha mais de 800 membros,
       incluindo IBM e Microsoft (apenas como observadora).




                             Prof. Adriano Teixeira de Souza
   CORBA - Common Object Request Broker
    Architecture,

   Especificação que permite aos objetos de sistemas
    distribuídos comunicarem-se entre si de forma
    transparente

   Componentes principais da OMA - Object
    Management Architecture
    ◦   Objetos da aplicação
    ◦   Facilidades CORBA
    ◦   Serviços de Objeto
    ◦   ORB


                               Prof. Adriano Teixeira de Souza
   Conceito de ORB (Object Request Broker)
    ◦ componente que auxilia o cliente a invocar um
      método em um objeto de forma transparente
      (transparência de acesso)

      localização do objeto
      ativação do objeto se necessário
      comunicar ao objeto sobre a requisição do cliente




                              Prof. Adriano Teixeira de Souza
   Chamada através de um ORB




                      Prof. Adriano Teixeira de Souza
   Objetivo: possibilitar que clientes invoquem métodos a
    objetos remotos (objetos CORBA), e que ambos possam
    ser implementados em linguagens distintas

   A linguagem de implementação do cliente não precisa ser
    necessariamente orientada a objetos

   Funcionalidades
    ◦ invocações estáticas
       interface remota do objeto CORBA é conhecida em tempo de
        compilação (utilização dos stubs e skeletons)
    ◦ invocações dinâmicas
       interface remota do objeto CORBA não é conhecida em
        tempo de compilação

                                Prof. Adriano Teixeira de Souza
   Estrutura de um ORB




                          Prof. Adriano Teixeira de Souza
   Semântica de invocação
    ◦ semântica at-most-once (default)
    ◦ semântica OneWay
      métodos sem resultados ou callbacks, o cliente não bloqueia na
       espera de uma resposta
    ◦ Semântica at-most-once
      O cliente continua imediatamente e pode mais tarde
       bloquear-se à espera da resposta
   Objeto CORBA: objeto remoto
    ◦ implementa uma interface IDL
    ◦ possui uma referência de objeto remoto
    ◦ capaz de responder a invocações aos métodos de sua
      interface


                                 Prof. Adriano Teixeira de Souza
client                                                          server
                          implementation     interface
                            repository      repository           object skeleton
                                                                 adapter

 client proxy   ORB
                                   Request                ORB                       Servant
program for A   core                                      core                         A
                                    Reply


  or dynamic invocation                                       or dynamic skeleton




                                            Prof. Adriano Teixeira de Souza
   Adaptador de objeto (Object Adapter)
    ◦ interliga os objetos CORBA e as classes do
      servidor
    ◦ cria as referências a objetos remotos para os
      objetos CORBA
    ◦ despacha cada RMI através de um skeleton
      para o servidor apropriado
    ◦ ativa objetos (se necessário)
    ◦ CORBA 2.2: POA (Portable Object Adapter)
      permite que aplicações e servidores sejam executados
       em ORBs produzidos por desenvolvedores diferentes


                             Prof. Adriano Teixeira de Souza
   Skeleton (servidor)
    ◦ geradas na linguagem do servidor por um compilador
      IDL
    ◦ RMIs são despachadas através do skeleton apropriado a
      um servidor
    ◦ marshaling e unmarshaling


   Stubs/proxies (cliente)
    ◦   geradas na linguagem do cliente por um compilador IDL
    ◦   proxy (linguagens orientadas a objeto)
    ◦   stub (linguagens procedurais)
    ◦   marshaling e unmarshaling


                               Prof. Adriano Teixeira de Souza
   Repositório de implementação
    ◦ ativa por demanda os servidores registrados, e localiza
      os servidores em execução
    ◦ armazena tabela com o mapeamento dos nomes dos
      adaptadores de objetos para suas implementações
    ◦ na ativação de objeto remoto, o hostname e o número
      da porta no servidor são adicionados na tabela
    ◦ possibilita armazenar outras informações sobre os
      servidores (e.g. controle de acesso)
    ◦ permite replicação
      aumento de disponibilidade e tolerância a falhas




                                Prof. Adriano Teixeira de Souza
   Repositório de interface

    ◦ provê informações sobre interfaces IDL
      registradas (e.g. métodos, argumentos,
      exceções)
    ◦ cliente sem proxy de objeto pode obter
      informações necessárias (métodos e
      argumentos)
    ◦ necessário para invocações dinâmicas
    ◦ nem todos os ORBs provêm um repositório de
      interfaces



                          Prof. Adriano Teixeira de Souza
   Interface de invocação dinâmica

    ◦ permite que clientes façam invocações dinâmicas
      a objetos CORBA desconhecidos

    ◦ cliente obtém informações necessárias sobre um
      objeto CORBA a partir do repositório de
      interfaces, e utiliza esta informação para
      construir uma invocação e enviá-la ao servidor




                          Prof. Adriano Teixeira de Souza
   Passo para uma Inovação Dinâmica
    1. Identificar o objeto que queremos invocar
       (provavelmente através do Trader Service do
       CORBAservices);

    2. Recuperar sua interface (buscá-la no Repositório
       de Interfaces);

    3. Construir a invocação;

    4. Invocar a requisição, e receber os resultados.


                             Prof. Adriano Teixeira de Souza
   Interface skeleton dinâmica

    ◦ permite um objeto CORBA aceitar invocações em
      uma interface sem skeleton
      interface não era conhecida em tempo de
       compilação

    ◦ skeleton dinâmico
      recebe a invocação
      inspeciona o conteúdo da requisição para descobrir
       o objeto destino, o método para ser invocado e os
       argumentos
      invoca o destino

                            Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
   Facilidades para definir módulos, interfaces, tipos,
    atributos e métodos
   sintaxe similar a C++ incluindo mais algumas
    palavras-chaves
   Módulos IDL
    ◦ permite agrupar interfaces e outros tipos IDL em
      unidades lógicas
    ◦ módulo define um nome de escopo (evita conflito
      entre nomes)
   Interfaces IDL
    ◦ descrevem os métodos e atributos que são disponíveis
      por objetos CORBA que implementam a interface


                            Prof. Adriano Teixeira de Souza
   Transparência de localização
    ◦ Tratamento igual para Função local


   Deficiências de projeto e processo

   Problemas com implementações

   Firewalls




                            Prof. Adriano Teixeira de Souza

Más contenido relacionado

La actualidad más candente

Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Leinylson Fontinele
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoRangel Javier
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockWellington Oliveira
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonAlvaro Oliveira
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...Leinylson Fontinele
 
Spark tunning in Apache Kylin
Spark tunning in Apache KylinSpark tunning in Apache Kylin
Spark tunning in Apache KylinShi Shao Feng
 
Data warehouse 01 introdução
Data warehouse   01 introduçãoData warehouse   01 introdução
Data warehouse 01 introduçãoRafael Pinheiro
 

La actualidad más candente (20)

Modelagem de Dados
Modelagem de DadosModelagem de Dados
Modelagem de Dados
 
Banco de dados aula 2
Banco de dados  aula 2Banco de dados  aula 2
Banco de dados aula 2
 
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
 
Python Orientação a Objeto
Python Orientação a ObjetoPython Orientação a Objeto
Python Orientação a Objeto
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 Deadlock
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Uml - Exemplos de Modelagem em UML
Uml - Exemplos de Modelagem em UMLUml - Exemplos de Modelagem em UML
Uml - Exemplos de Modelagem em UML
 
Capitulo 02 sommerville
Capitulo 02 sommervilleCapitulo 02 sommerville
Capitulo 02 sommerville
 
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
 
Spark tunning in Apache Kylin
Spark tunning in Apache KylinSpark tunning in Apache Kylin
Spark tunning in Apache Kylin
 
Curso de Node JS Básico
Curso de Node JS BásicoCurso de Node JS Básico
Curso de Node JS Básico
 
Java modulo 01 - Introdução
Java modulo 01 - IntroduçãoJava modulo 01 - Introdução
Java modulo 01 - Introdução
 
Data warehouse 01 introdução
Data warehouse   01 introduçãoData warehouse   01 introdução
Data warehouse 01 introdução
 
Aula 2 - Comandos DDL DML DQL E DCL
Aula 2 - Comandos DDL DML DQL E DCLAula 2 - Comandos DDL DML DQL E DCL
Aula 2 - Comandos DDL DML DQL E DCL
 

Destacado

Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOAAdriano Teixeira de Souza
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosArthur Emanuel
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaArthur Emanuel
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Arthur Emanuel
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisAdriano Teixeira de Souza
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebArthur Emanuel
 
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de TempoSistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de TempoArthur Emanuel
 
Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuídoTiago R. Sampaio
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketAdriano Teixeira de Souza
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Arthur Emanuel
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Arthur Emanuel
 
Sistemas De Arquivos Distribuídos (SAD)
Sistemas De Arquivos Distribuídos (SAD)Sistemas De Arquivos Distribuídos (SAD)
Sistemas De Arquivos Distribuídos (SAD)Frederico Madeira
 
Sistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosSistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosValdir Junior
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareAdriano Teixeira de Souza
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Arthur Emanuel
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosGustavo Monteiro
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosrobsons75
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoAdriano Teixeira de Souza
 

Destacado (20)

Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOA
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids Computacionais
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos Web
 
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de TempoSistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
 
Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuído
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - Socket
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01
 
Sistemas De Arquivos Distribuídos (SAD)
Sistemas De Arquivos Distribuídos (SAD)Sistemas De Arquivos Distribuídos (SAD)
Sistemas De Arquivos Distribuídos (SAD)
 
Sistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosSistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de Dados
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – Middleware
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas Distribuídos
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidos
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
 
Sistemas Distribuídos - Clusters
Sistemas Distribuídos - ClustersSistemas Distribuídos - Clusters
Sistemas Distribuídos - Clusters
 

Similar a CORBA: Arquitetura para Comunicação Distribuída entre Aplicações

Objetos distribuídos e invocação remota - CORBA
Objetos distribuídos e invocação remota - CORBAObjetos distribuídos e invocação remota - CORBA
Objetos distribuídos e invocação remota - CORBAWagner Bonfim
 
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
 
Sistemas distribuídos com RMI
Sistemas distribuídos com RMISistemas distribuídos com RMI
Sistemas distribuídos com RMICharleston Anjos
 
Banco de dados orientados a objetos
Banco de dados orientados a objetos Banco de dados orientados a objetos
Banco de dados orientados a objetos Raquel Machado
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkMario Guedes
 
Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordtchandy
 
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...Lucas A. Romão
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivoelliando dias
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicRicardo Guerra Freitas
 
Introdução ao NHibernate
Introdução ao NHibernateIntrodução ao NHibernate
Introdução ao NHibernateLuís Amorim
 
Introdução ao NHibernate ORM Framework - Luis Amorim
Introdução ao NHibernate ORM Framework - Luis AmorimIntrodução ao NHibernate ORM Framework - Luis Amorim
Introdução ao NHibernate ORM Framework - Luis AmorimComunidade NetPonto
 

Similar a CORBA: Arquitetura para Comunicação Distribuída entre Aplicações (20)

Objetos distribuídos e invocação remota - CORBA
Objetos distribuídos e invocação remota - CORBAObjetos distribuídos e invocação remota - CORBA
Objetos distribuídos e invocação remota - CORBA
 
J530 4 rmi
J530 4 rmiJ530 4 rmi
J530 4 rmi
 
Trabalho
TrabalhoTrabalho
Trabalho
 
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
 
Sistemas distribuídos com RMI
Sistemas distribuídos com RMISistemas distribuídos com RMI
Sistemas distribuídos com RMI
 
Funmentos de Objetos Remotos
Funmentos de Objetos RemotosFunmentos de Objetos Remotos
Funmentos de Objetos Remotos
 
Fundamentos de Objetos Remotos
Fundamentos de Objetos RemotosFundamentos de Objetos Remotos
Fundamentos de Objetos Remotos
 
Banco de dados orientados a objetos
Banco de dados orientados a objetos Banco de dados orientados a objetos
Banco de dados orientados a objetos
 
Rmi (remote method invocation)
Rmi (remote method invocation)Rmi (remote method invocation)
Rmi (remote method invocation)
 
CORBA
CORBACORBA
CORBA
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
RMI (Remote Method Invocation)
RMI (Remote Method Invocation) RMI (Remote Method Invocation)
RMI (Remote Method Invocation)
 
ORM e EF
ORM e EFORM e EF
ORM e EF
 
Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecord
 
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivo
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 
Introdução ao NHibernate
Introdução ao NHibernateIntrodução ao NHibernate
Introdução ao NHibernate
 
Introdução ao NHibernate ORM Framework - Luis Amorim
Introdução ao NHibernate ORM Framework - Luis AmorimIntrodução ao NHibernate ORM Framework - Luis Amorim
Introdução ao NHibernate ORM Framework - Luis Amorim
 

Más de Adriano Teixeira de Souza

Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Adriano Teixeira de Souza
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasAdriano Teixeira de Souza
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Adriano Teixeira de Souza
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaAdriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Adriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)Adriano Teixeira de Souza
 

Más de Adriano Teixeira de Souza (20)

Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
 
Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
 
Estrutura de dados - Árvores Binárias
Estrutura de dados - Árvores BináriasEstrutura de dados - Árvores Binárias
Estrutura de dados - Árvores Binárias
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
 

CORBA: Arquitetura para Comunicação Distribuída entre Aplicações

  • 1. Comunicação Distribuída – CORBA Prof. Adriano Teixeira de Souza
  • 2. Estratégias diferentes que permitem a comunicação entre aplicações distribuídas.  Tipos distintos de comunicação em um sistema distribuído: ◦ Sockets ◦ RPC – Remote Procedure Call ◦ RMI - Remote Method Invocation ◦ CORBA – Commom Object Request Broker Architecture ◦ EJB – Enterprise Java Bean ◦ Web Services Prof. Adriano Teixeira de Souza
  • 3. Motivação: ◦ Socket  Desenvolvimento lento ◦ RPC  Procedural  Dependente de linguagem ◦ RMI  O.O  Dependente de Linguagem ◦ Suporte a diversas linguagens, possibilitando a comunicação entre módulos escritos em linguagens distintas Prof. Adriano Teixeira de Souza
  • 4. Objetivo ◦ Tornar fácil a implementação de aplicações distribuídas ◦ Para sistemas Orientado a Objetos e procedurais ◦ Independentes de:  plataforma  sistema operacional  linguagem de programação  protocolo de comunicação ◦ Permitindo chamadas de procedimento remoto como se fossem locais Prof. Adriano Teixeira de Souza
  • 5. História ◦ OMG  A arquitetura CORBA é desenvolvida pela OMG (Object Management Group). www.omg.org  A OMG foi fundada em 1989 por oito membros fundadores (3Com, American Airlines, Canon, Data General, HP, Philips, Sun e Unisys).  No ano 2000 tinha mais de 800 membros, incluindo IBM e Microsoft (apenas como observadora). Prof. Adriano Teixeira de Souza
  • 6. CORBA - Common Object Request Broker Architecture,  Especificação que permite aos objetos de sistemas distribuídos comunicarem-se entre si de forma transparente  Componentes principais da OMA - Object Management Architecture ◦ Objetos da aplicação ◦ Facilidades CORBA ◦ Serviços de Objeto ◦ ORB Prof. Adriano Teixeira de Souza
  • 7. Conceito de ORB (Object Request Broker) ◦ componente que auxilia o cliente a invocar um método em um objeto de forma transparente (transparência de acesso)  localização do objeto  ativação do objeto se necessário  comunicar ao objeto sobre a requisição do cliente Prof. Adriano Teixeira de Souza
  • 8. Chamada através de um ORB Prof. Adriano Teixeira de Souza
  • 9. Objetivo: possibilitar que clientes invoquem métodos a objetos remotos (objetos CORBA), e que ambos possam ser implementados em linguagens distintas  A linguagem de implementação do cliente não precisa ser necessariamente orientada a objetos  Funcionalidades ◦ invocações estáticas  interface remota do objeto CORBA é conhecida em tempo de compilação (utilização dos stubs e skeletons) ◦ invocações dinâmicas  interface remota do objeto CORBA não é conhecida em tempo de compilação Prof. Adriano Teixeira de Souza
  • 10. Estrutura de um ORB Prof. Adriano Teixeira de Souza
  • 11. Semântica de invocação ◦ semântica at-most-once (default) ◦ semântica OneWay  métodos sem resultados ou callbacks, o cliente não bloqueia na espera de uma resposta ◦ Semântica at-most-once  O cliente continua imediatamente e pode mais tarde bloquear-se à espera da resposta  Objeto CORBA: objeto remoto ◦ implementa uma interface IDL ◦ possui uma referência de objeto remoto ◦ capaz de responder a invocações aos métodos de sua interface Prof. Adriano Teixeira de Souza
  • 12. client server implementation interface repository repository object skeleton adapter client proxy ORB Request ORB Servant program for A core core A Reply or dynamic invocation or dynamic skeleton Prof. Adriano Teixeira de Souza
  • 13. Adaptador de objeto (Object Adapter) ◦ interliga os objetos CORBA e as classes do servidor ◦ cria as referências a objetos remotos para os objetos CORBA ◦ despacha cada RMI através de um skeleton para o servidor apropriado ◦ ativa objetos (se necessário) ◦ CORBA 2.2: POA (Portable Object Adapter)  permite que aplicações e servidores sejam executados em ORBs produzidos por desenvolvedores diferentes Prof. Adriano Teixeira de Souza
  • 14. Skeleton (servidor) ◦ geradas na linguagem do servidor por um compilador IDL ◦ RMIs são despachadas através do skeleton apropriado a um servidor ◦ marshaling e unmarshaling  Stubs/proxies (cliente) ◦ geradas na linguagem do cliente por um compilador IDL ◦ proxy (linguagens orientadas a objeto) ◦ stub (linguagens procedurais) ◦ marshaling e unmarshaling Prof. Adriano Teixeira de Souza
  • 15. Repositório de implementação ◦ ativa por demanda os servidores registrados, e localiza os servidores em execução ◦ armazena tabela com o mapeamento dos nomes dos adaptadores de objetos para suas implementações ◦ na ativação de objeto remoto, o hostname e o número da porta no servidor são adicionados na tabela ◦ possibilita armazenar outras informações sobre os servidores (e.g. controle de acesso) ◦ permite replicação  aumento de disponibilidade e tolerância a falhas Prof. Adriano Teixeira de Souza
  • 16. Repositório de interface ◦ provê informações sobre interfaces IDL registradas (e.g. métodos, argumentos, exceções) ◦ cliente sem proxy de objeto pode obter informações necessárias (métodos e argumentos) ◦ necessário para invocações dinâmicas ◦ nem todos os ORBs provêm um repositório de interfaces Prof. Adriano Teixeira de Souza
  • 17. Interface de invocação dinâmica ◦ permite que clientes façam invocações dinâmicas a objetos CORBA desconhecidos ◦ cliente obtém informações necessárias sobre um objeto CORBA a partir do repositório de interfaces, e utiliza esta informação para construir uma invocação e enviá-la ao servidor Prof. Adriano Teixeira de Souza
  • 18. Passo para uma Inovação Dinâmica 1. Identificar o objeto que queremos invocar (provavelmente através do Trader Service do CORBAservices); 2. Recuperar sua interface (buscá-la no Repositório de Interfaces); 3. Construir a invocação; 4. Invocar a requisição, e receber os resultados. Prof. Adriano Teixeira de Souza
  • 19. Interface skeleton dinâmica ◦ permite um objeto CORBA aceitar invocações em uma interface sem skeleton  interface não era conhecida em tempo de compilação ◦ skeleton dinâmico  recebe a invocação  inspeciona o conteúdo da requisição para descobrir o objeto destino, o método para ser invocado e os argumentos  invoca o destino Prof. Adriano Teixeira de Souza
  • 21. Facilidades para definir módulos, interfaces, tipos, atributos e métodos  sintaxe similar a C++ incluindo mais algumas palavras-chaves  Módulos IDL ◦ permite agrupar interfaces e outros tipos IDL em unidades lógicas ◦ módulo define um nome de escopo (evita conflito entre nomes)  Interfaces IDL ◦ descrevem os métodos e atributos que são disponíveis por objetos CORBA que implementam a interface Prof. Adriano Teixeira de Souza
  • 22. Transparência de localização ◦ Tratamento igual para Função local  Deficiências de projeto e processo  Problemas com implementações  Firewalls Prof. Adriano Teixeira de Souza