CORBA Common Object Request Broker Architecture

Slides:



Advertisements
Apresentações semelhantes
Raphael Gatti Thomás Bryan
Advertisements

Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
CARACTERIZAÇÃO E IMPLEMENTAÇÃO DE MECANISMOS DE RESILIÊNCIA A ATAQUES Alex Borges Outubro de
Operadores e Funções do LINGO
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
Infra-Estrutura de TI: Hardware e Software
ANÁLISE DE SOFTWARES APLICÁVEIS A UNIDADES E SERVIÇOS DE INFORMAÇÃO
Sistemas Distribuídos Web Services
Sistemas Distribuídos
RMI-IIOP.
CORBA Um Padrão Industrial para Objetos Distribuídos
Repositório de Interfaces em CORBA
Comunicação Distribuída
Web Services Erika Hmeljevski Estefania Borm Leonardo Malagoli
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
Sistemas Distribuídos CORBA
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
1 Arquitetura CORBA Repositório de Implementação Repositório de Interface cliente programa cliente proxy ORB Core ou invocação dinâmica servidor ORB Core.
Comunicação Entre Objetos Distribuídos
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Área de Desenvolvimento de Sistemas
Objetos Distribuídos Padrão CORBA
DAS Sistemas Distribuídos para Automação Industrial
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
Aula 2 Aspectos Preliminares
Aula 4 Nomes, Vinculações, Tipos e Escopos
HellermannTyton Brasil Sistema de Gerenciamento Integrado HellermannTyton Brasil Sistema de Gerenciamento Integrado Alexandre Martins Consultor de Negócios.
1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e.
Classes e objetos P. O. O. Prof. Grace.
Provas de Concursos Anteriores
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Introdução a Arquitetura Orientada a serviços
Middleware e Sistemas Distribuídos
Aluno: Mário Monteiro Orientador: Sérgio Soares 1.
Object Oriented Software Construction (MEYER, Bertrand)
Pontos por Função medindo tamanho de software Prof. Rodrigo Nin
Arquitetura CORBA e Objetos Distribuídos
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
CORBA e Desenvolvimento Baseado em Componentes
GERENCIAMENTO DE REDES UTILIZANDO O PROTOCOLO SNMP
Sistemas Distribuídos
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07.
Concorrência e Java RMI
Projeto de Banco de Dados
Administração e Integração de Redes em Sistemas Distribuídos
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Tecgraf PUC-Rio maio de 2011 Principais conceitos de CORBA.
TMV Gestão de Redes e de Sistemas Distribuídos ???? Sumário  Arquitectura de Gestão SNMP  Arquitectura de Gestão OSI/TMN  Novas Arquitecturas.
Máquina de Turing Universal
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
Arquiteturas de Gerenciamento
CORBA Apresentação do Padrão CORBA Maurício Maron Mendes Ramiro Pereira de Magalhães
Tecgraf PUC-Rio Setembro de 2013 Introdução ao Openbus.
Integrações de Aplicações Empresariais Prof. Paulo Fernando da Silva UNC – Universidade do Contestado Pós-Graduação em Sistemas de Informação Aplicados.
Java RMI João Gabriel (jggxm).
RPC and Web Service André Pereira.
Padrões de Interação com o Usuário
Integração de Ferramentas CASE
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
Desenvolvimento de Aplicações para WEB Para inserir o logotipo da empresa neste slide No menu 'Inserir' Selecione 'Figura' Localize o arquivo com o logotipo.
Java – Remote Method Invocation (RMI)
Infra-Estrutura para Computação Distribuída
Computação Distribuída João Bosco Mangueira Sobral CORBA Common Object Request Broker.
RMI Remote Method Invocation
Tecgraf PUC-Rio maio de 2011 Introdução ao Openbus.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Principais conceitos de CORBA.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
Sistemas Distribuídos Prof. Marcus Rodrigues
Aula Prática de Corba ® Aula de Monitoria: Bruno Pereira - bpe Davi Pires - dpr Guilherme Barros – gbs2 Thiago Cavalcanti - trc.
Transcrição da apresentação:

CORBA Common Object Request Broker Architecture Unicamp Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br

Objetivos Apresentação Tecnologia CORBA Conceitos Básicos e Terminologia Considerações Gerais

O Problema Necessidade de compartilhamento de informações entre empresas e integração de hardware e software de plataformas diversas de forma a resolver problemas presentes e futuros

Facilidades A arquitetura CORBA permite: Acesso a recursos computacionais e informações distribuídas a partir de aplicações populares Tornar dados e aplicações legadas disponíveis como recursos de rede Atualizar sistemas baseados em rede de forma a refletir novas topologias ou recursos

Integração das Aplicações Integração baseada em um modelo orientado a objetos Modelo provê técnicas para análise, projeto e implementação de software que seja extensível, reusável e menos dispensioso para produzir e manter Próxima geração de software

Computação Distribuída com Objetos Dois ingredientes essenciais Associação da computação distribuída com um modelo de objetos Uso de um corretor (broker) Corba torna o reuso de software possível através da computação distribuída com objetos,que combina os conceitos de computação distribuída com computação orientada a objetos.Existem dois componentes essenciais na computação distribuída com objetos: A associaçao da computação distribuída com um modelo de objetos Cada parceiro contribui não apenas com suas melhores qualidades e também complementa as qualidades do outro. CORBA torna possível que aplicações acesseme compartilhem os objetos um do outro, tornando em efeito estes objetos comuns a todos as aplicações que implementem CORBA CORBA usa um corretor (broker), ou intermediário, para cuidar de mensagens (denominadas requests), entre clientes e servidores no sistema. O broker é capaz de escolher servidores que melhor atendam aos pedidos dos clientes e separa a interface que o cliente enxerga da sua implementação no servidor (por implementação entenda-se o software que atende ao pedido de um cliente para operação sobre um objeto). Esta separação se presta bem para produzir enfoque flexível, modular,onde se pode mascarar dos clientes as mudanças efetuadas no servidor. Dado que a interface e seus comportamentos não são alterados, um novo servidor pode ser criado ou modificado sem que se precise modificar os clientes.

Arquitetura Cliente/Servidor

CORBA Broker Servidor Cliente Cliente Broker Servidor Cliente Servidor

Computação Distribuída Dois ou mais elementos de software compartilhando informação entre si. Grande parte das implementações de computação distribuída existentes são baseados no modelo cliente/servidor: software cliente: pedidos software servidor: informação ou serviço

Benefícios da Computação Distribuída Uso mais eficiente de recursos computacionais Compartilhamento de recursos escassos e dispendiosos Distribuição da carga computacional Execução de aplicações nos ambientes mais adequados

Evolução de Sistemas Distribuídos

Sistemas monolíticos e mainframes A interface com o usuário, a lógica do negócio e a funcionalidade de acesso aos dados estavam todas contidas em uma única aplicação

Arquitetura Cliente/Servidor Parte do processamento realizado por microcomputadores na mesa dos usuários Computação mais acessível Maior poder para os usuários

Desvantagens Funcionalidade de acesso ao banco de dados e lógica do negócio contidas no componente cliente Mudanças na lógica do negócio envolvem a substituição dos clientes Aplicações mais frágeis

Arquitetura Cliente/Servidor de Múltiplas Camadas Modelo mais comum são sistemas particionados em três camadas lógicas: interface com o usuário regras do negócio acesso ao banco de dados

Vantagens Cliente isolado das mudanças no restante da aplicação Componentes executáveis menores resultando em maior facilidade na distribuição das aplicações múltiplos bancos de dados, servidores, distribuição da carga de processamento Maior isolamento entre as camadas da aplicação mudanças na aplicação não afetam o componente cliente

Sistemas Distribuídos O modelo de sistemas distribuídos expõe toda a funcionalidade da aplicação como objetos, cada um dos quais pode usar qualquer dos serviços oferecidos por outros objetos do sistema, sendo extremamente flexível e configurável

Interação entre Objetos Flexibilidade obtida pela adoção da definição de interfaces específicas para cada componente A interface de cada componente especifica para os demais quais serviços são oferecidos e como devem ser usados Enquanto a interface de um componente se mantiver inalterada sua implementação pode ser radicalmente alterada sem afetar os demais objetos P. ex., informação armazenada em bancos de dados relacionais podem ser mudadas para bancos de dados orientados a objetos

Interfaces Protocolo de comunicação a ser utilizado entre dois componentes de um sistema Descreve que serviços são oferecidos por qual componente e o protocolo para utilizar estes serviços Para objetos, a interface pode ser entendida como um conjunto de métodos definidos por aquele objeto, incluindo os parâmetros de entrada e saída Uma interface define o protocolo de comunicação a ser utilizado entre dois componentes de um sistema. A interface descreve que serviços são oferecidos por qual componente e o protocolo para utilizar estes serviços. No caso de um objeto, a interface pode ser entendida como um conjunto de métodos definidos por aquele objeto, incluindo os parâmetros de entrada e saída.Uma interface pode ser entendida como um contrato; em certo sentido, o componente oferecendo uma interface promete honrar pedidos por serviços solicitados conforme definido na interface.

Serviços de Catálogo (Directory Services) Conjunto de serviços que permitem com que objetos (servidores, empresas ou até mesmo pessoas) sejam localizados por outros objetos

Monitores de Transação Mantém o sincronismo entre diversos componentes, garantindo um estado consistente entre todos os participantes em uma transação, cancelando ou efetuando operações

Porque CORBA? CORBA oferece um mecanismo padrão para a definição de interfaces entre componentes e ferramentas para facilitar a implementação destas interfaces nas linguagens escolhidas pelos desenvolvedores

Independência de Linguagens de Programação objetos e clientes CORBA podem ser implementados em qualquer linguagem de programação objetos CORBA não precisam saber como foram implementados os objetos com os quais se comunicam

Independência de Plataforma Computacional Objetos CORBA podem ser usados em qualquer plataforma para a qual exista a implementação de um CORBA ORB (Object Request Broker), ou seja, praticamente qualquer sistema computacional existente

CORBA Visão Geral

Object Request Broker (ORB) Componente de software cuja função é facilitar a comunicação entre objetos localização de objetos remotos passagem e recepção de parâmetros (marshaling/unmarshaling) Uma parte fundamental da arquitetura CORBA é o ORB (Object Request Broker). O conceito de ORB é o seguinte: quando um componente de uma aplicação deseja usar um serviço oferecido por outro componente, ele precisa antes obter uma referência ao objeto que oferece este serviço. Após obtida a referência, o componente pode invocar métodos naquele objeto, acessando os serviços desejados providos pelo objeto.A principal responsabilidade de um ORB é resolver pedidos de referência a objetos, habilitando componentes de aplicações a estabelecer conexões uns com os outros.

Marshaling/Unmarshaling Marshaling - formatação dos parâmetros para transmissão via rede on-the-wire format - formato para transmissão via rede Unmarshaling - transformação do formato on-the-wire para o formato local Processo ocorre sem intervenção do programador Diferenças entre plataformas são resolvidas pelo ORB Após um componente ter obtido uma referência para um objeto cujos serviços o componente deseje usar, o componente pode invocar métodos daquele objeto. Geralmente estes métodos tomam parâmetros como entrada e retornam outros parâmetros como saída. Outra responsabilidade do ORB é receber os parâmetros de entrada do componente que está invocantdo o método e formatar (marshal) estes parâmetros. O que isto significa é que o ORB traduz os parâmetros em um formato que pode ser transmitido através da rede até o objeto remoto. O ORB formata os parâmetros recebidos convertendo-os do formato de rede para um formato que o componente original entende. Todo este processo se dá sem a necessidade de programação. A aplicação cliente simplesmente invoca os métodos remotos desejados - os quais aparentam ser métodos locais, e um resultado é retornado, novamente,exatamente como ocorreria com um método local. Todo o processo de formatação dos parâmetros de entrada, ativação da invocação do método no servidor e formatar os resultados para envio ao método original, é executado automatica e transparentemente pelo ORB. Como todo o processo é gerenciado pelo ORB, de forma totalmente transparente tanto ao cliente quanto ao servidor, o desenvolvedor não precisa se preocupar com os detalhes do mecanismo através do qual os parâmetros de entrada e saída são transmitidos e formatados.

Interface Definition Language (IDL) Interfaces CORBA são definidas em uma linguagem de sintaxe neutra conhecida como Interface Definition Language ou IDL Fundamental para a independência de linguagem Interfaces descritas em IDL podem mapear para qualquer linguagem de programação Seu único propósito é definir interfaces e estruturas de dados Não é utilizada para escrever algoritimos

IDL: Vantagens/Desvantagens IDL é uma linguagem neutra que permite que clientes e servidores sejam implementados em linguagens diferentes. Um cliente Java pode interagir com aplicações COBOL empacotadas com CORBA IDL permite que a especificação dos serviços seja separada da implementação. Desvantagens Difícil de usar Um passo extra de compilação é necessário

Arquivo OMG IDL Descreve o formato dos dados, operações e objetos que o cliente pode usar para fazer um pedido e que o servidor precisa prover para a implementação de um objeto

Exemplo interface Employee { void promote (in char new_job_class); void dismiss (in DismissalCode reason, in string description); };

Cliente e implementação no servidor Ap. Servidor Ap. Cliente Implementação Employee Referência ao empregado X interface Employee { void promote (in char new_job_class); void dismiss (in DismissalCode reason, in string description); }; operação promote Método Emp_promote operação dismiss Método Emp_dismiss

Mapeamento de Linguagens Mapeamento de linguagem é uma especificação que mapeia as construções da linguagem IDL às construções de uma determinada linguagem de programação

Protocolos Inter-ORB Especificação CORBA é neutra em relação a protocolos de rede Padrão CORBA especifica um padrão geral (GIOP - General Inter-ORB Protocol) IIOP - Internet Inter-ORB Protocol CORBA ORBs se comunicam utilizando o protocolo IIOP mais popular (transportado sobre TCP/IP)

Modelo de Comunicações Cliente: objetos que invocam um ou mais métodos em outros objetos Servidor: aplicação que cria objetos CORBA e torna os serviços oferecidos por estes objetos disponíveis para outras aplicações

Modelo de Comunicações ... IOR - Interoperable Object References quando um componente deseja acessar um objeto CORBA, é necessário obter um IOR para este objeto

CORBA: Modelo de Objetos Toda comunicação entre objetos se dá por meio de referências a objetos (IOR) BOA - Basic Object Adapter Provê a objetos CORBA um conjunto comum de métodos para acessar funções ORB. Estas funções variam desde a autenticação de usuários a ativação de objetos. Segundo a especificação CORBA, o BOA deve estar disponível em toda implementação ORB

OMG Object Management Group Organização sem fins lucrativos fundada em 1989, com 8 membros Conta hoje com mais de 800 membros Seu objetivo é promover a teoria e o uso de tecnologia OO para sistemas distribuídos

OMA: Object Management Architecture Conjunto de padrões que definem a arquitetura sob a qual aplicações distribuídas são construídas CORBA: parte da arquitetura OMA

OMA: Componentes ORB (Object Request Broker) serviços de objetos (CORBAservices) recursos comuns (CORBAfacilities) Interfaces de domínio (domain interfaces) objetos

Application Interfaces Domain Interfaces Common Facilities Object Request Broker Object Services

Stubs / Skeletons Client Stub Server Skeleton código que permite um componente cliente acessar um componente servidor. Compilado juntamente com a parte cliente da aplicação Server Skeleton código integrado quando da implementação do servidor Código gerado quando a definição das interfaces IDL são compiladas

CORBAservices/CORBAfacilities Não fazem parte da especificação CORBA, mas são um componente complementar da OMA Serviços e facilidades horizontais (comuns a todas as empresas) e verticais (comuns a um setor específico)

Aplicações Legadas Especificar a funcionalidade de aplicações legadas em termos de interfaces Criar envelopes (wrappers) CORBA para conversar com aplicações legadas Fingir que a aplicação legada é um objeto e desenvolver normalmente

CORBA Wrappers Uma aplicação legada escrita em Cobol pode ser usada em ambiente CORBA através da codificação de um “wrapper” usando as ligações para COBOL definidas pela OMG O “wrapper” conecta a aplicação ao servidor. Devido ao uso de IDL e estabelecimento das conexões via ORB, os clientes não se dão conta de estarem se comunicando com uma aplicação legada. A aplicação COBOL por sua vez pensa estar conversando com outras aplicações COBOL

Linux e CORBA GNOME IONA Orbix Utiliza CORBA para troca de dados entre aplicações Red Hat ORBit http://www.labs.redhat.com/orbit IONA Orbix versão para Linux em breve

Linux e CORBA ... IBM Websphere AT&T omniORB capacidade de executar nativamente, em breve, transações CORBA em Linux AT&T omniORB utilizado por mais de 700 desenvolvedores (ALCATEL entre eles) implementação CORBA enxuta Projeto Active Badge Livre (GPL) http://www.uk.research.att.com/omniORB

CORBA: Alternativas sockets RPC (Remote Procedure Call) DCE (Distributed Computing Environment) Microsoft DCOM (Distributed Computing) JAVA RMI (Remote Method Invocation)

Bibliografia Understanding CORBA Randy Otte, Paul Patrick, Mark Roy Prentice Hall Byte Magazine http://www.byte.com Object Management Group http://www.omg.org Links http://www.Dicas-L.unicamp.br/hotlinks/