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

Mais conteúdo relacionado

Mais procurados

Banco de Dados Orientado a Objeto
Banco de Dados Orientado a ObjetoBanco de Dados Orientado a Objeto
Banco de Dados Orientado a Objeto
elliando dias
 
Redes I - 5.1 Tecnologias de Redes LAN
Redes I - 5.1 Tecnologias de Redes LANRedes I - 5.1 Tecnologias de Redes LAN
Redes I - 5.1 Tecnologias de Redes LAN
Mauro Tapajós
 
Aula 07 - Projeto de Topologia e Exercícios - Parte II
Aula 07 - Projeto de Topologia e Exercícios - Parte IIAula 07 - Projeto de Topologia e Exercícios - Parte II
Aula 07 - Projeto de Topologia e Exercícios - Parte II
Dalton Martins
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
Adriano Teixeira de Souza
 
Redes de computadores II - 3.Roteamento
Redes de computadores II - 3.RoteamentoRedes de computadores II - 3.Roteamento
Redes de computadores II - 3.Roteamento
Mauro Tapajós
 
Protocolo http
Protocolo httpProtocolo http
Protocolo http
Biel2013a
 

Mais procurados (20)

Redes de computadores 2 - Aula 6 - DNS, DHCP
Redes de computadores 2 - Aula 6 - DNS, DHCPRedes de computadores 2 - Aula 6 - DNS, DHCP
Redes de computadores 2 - Aula 6 - DNS, DHCP
 
Arquitetura de Redes de Computadores
 Arquitetura de Redes de Computadores Arquitetura de Redes de Computadores
Arquitetura de Redes de Computadores
 
Introdução aos Serviços de Rede
Introdução aos Serviços de RedeIntrodução aos Serviços de Rede
Introdução aos Serviços de Rede
 
Banco de Dados Orientado a Objeto
Banco de Dados Orientado a ObjetoBanco de Dados Orientado a Objeto
Banco de Dados Orientado a Objeto
 
Camada de Transporte Redes Tanenbaum
Camada de Transporte Redes TanenbaumCamada de Transporte Redes Tanenbaum
Camada de Transporte Redes Tanenbaum
 
Memória Interna - Arquitetura e Organização de Computadores
Memória Interna - Arquitetura e Organização de ComputadoresMemória Interna - Arquitetura e Organização de Computadores
Memória Interna - Arquitetura e Organização de Computadores
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
Linguagem de Programação Java para Iniciantes
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em Java
 
CEF: Modelo OSI
CEF: Modelo OSICEF: Modelo OSI
CEF: Modelo OSI
 
Modelo OSI Visão Geral
Modelo OSI   Visão GeralModelo OSI   Visão Geral
Modelo OSI Visão Geral
 
Redes I - 5.1 Tecnologias de Redes LAN
Redes I - 5.1 Tecnologias de Redes LANRedes I - 5.1 Tecnologias de Redes LAN
Redes I - 5.1 Tecnologias de Redes LAN
 
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
 
Modelo TCP/IP
Modelo TCP/IPModelo TCP/IP
Modelo TCP/IP
 
Aula 07 - Projeto de Topologia e Exercícios - Parte II
Aula 07 - Projeto de Topologia e Exercícios - Parte IIAula 07 - Projeto de Topologia e Exercícios - Parte II
Aula 07 - Projeto de Topologia e Exercícios - Parte II
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
Redes de computadores II - 3.Roteamento
Redes de computadores II - 3.RoteamentoRedes de computadores II - 3.Roteamento
Redes de computadores II - 3.Roteamento
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos Básicos
 
Dhcp
DhcpDhcp
Dhcp
 
Protocolo http
Protocolo httpProtocolo http
Protocolo http
 

Destaque

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
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids Computacionais
Adriano Teixeira de Souza
 
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
Adriano Teixeira de Souza
 
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
Adriano Teixeira de Souza
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidos
robsons75
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
Adriano Teixeira de Souza
 

Destaque (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 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
 
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
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 

Semelhante a Sistemas Distribuídos - Comunicação Distribuída – CORBA

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
 
Sistemas distribuídos com RMI
Sistemas distribuídos com RMISistemas distribuídos com RMI
Sistemas distribuídos com RMI
Charleston Anjos
 
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
Ricardo Guerra Freitas
 

Semelhante a Sistemas Distribuídos - Comunicação Distribuída – CORBA (20)

Conceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosConceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos Distribuidos
 
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
 

Mais de 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árias
Adriano 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 - JMS
Adriano 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 Java
Adriano 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
 

Mais 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)
 

Último

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
 

Último (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
 
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 - 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 - 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
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 

Sistemas Distribuídos - Comunicação Distribuída – CORBA

  • 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