Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Principais conceitos de CORBA.

Slides:



Advertisements
Apresentações semelhantes
Programa de Pós-Graduação Lato Sensu MBA em Gestão de Software
Advertisements

RMI-IIOP.
Modelos de Comunicação em Sistemas Distribuídos
RPC Remote Procedure Call
CORBA Um Padrão Industrial para Objetos Distribuídos
Comunicação Distribuída
Web Services Erika Hmeljevski Estefania Borm Leonardo Malagoli
Conceitos do Servidor Funcionamento Básico do Servidor Tarefas necessárias para estabelecer um servidor para receber requests do Cliente.
Desenvolvimento de Aplicações Distribuídas
Sistemas Distribuídos CORBA
Invocação de Métodos Remotos RMI
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)
Comunicação Inter-Processos
Objetos Distribuídos Padrão CORBA
DAS Sistemas Distribuídos para Automação Industrial
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
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
Introdução à Programação Distribuída em Java
Middleware e Sistemas Distribuídos
Arquitetura CORBA e Objetos Distribuídos
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
CORBA e Desenvolvimento Baseado em Componentes
Marcela Bezerra da Silva Cin - UFPE
Sistemas Distribuídos
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07.
Concorrência e Java RMI
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
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.
CORBA Commom Object Request Broker Architecture Conhecendo o Padrão da OMG 3º Engenharia da Computação Vitor C. Tamarozi Romeu L. Furlan Júnior Prof. Edson.
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.
Da Introdução à Prática
Java RMI João Gabriel (jggxm).
RMI - JAVA.
CORBA Grupo: Sergio Cosme N. C. Filho Tatiana Cardia Petra.
RPC and Web Service André Pereira.
Comunicação.
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
GESTOR: TIC/TIC-E&P/GIDSEP versão 1 - julho/2013 Tecgraf PUC-Rio Fevereiro de 2014 IDL.
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
Tecgraf PUC-Rio setembro de 2013 IDL. Interface Definition Language Linguagem neutra Define a interface dos objetos CORBA struct Book { string author;
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)
Modelos de Comunicação em Sistemas Distribuídos
Modelos de Comunicação em Sistemas Distribuídos
Conceitos do Cliente Funcionamento Básico do Cliente Como Clientes acessam e usam Objetos Distribúidos.
Computação Distribuída João Bosco Mangueira Sobral CORBA Common Object Request Broker.
Programação com Objetos Distribuídos – CMP167 – Prof. Cláudio Geyer CORBA Artigo – Programming with Object Groups in CORBA Por Pascal Felber e Rachid Guerraoui.
RMI Remote Method Invocation
Sistemas Distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Flávia Rainone - 1 Computação Paralela com CORBA.
Introdução ao SCS Tecgraf PUC-Rio Setembro de 2013.
Tecgraf PUC-Rio maio de 2011 Introdução ao Openbus.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
Sistemas Distribuídos Prof. Marcus Rodrigues
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 IDL.
Aula Prática de Corba ® Aula de Monitoria: Bruno Pereira - bpe Davi Pires - dpr Guilherme Barros – gbs2 Thiago Cavalcanti - trc.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Transcrição da apresentação:

versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Principais conceitos de CORBA

versão 1 - julho/2013 Common Object Request Broker Architecture Uma arquitetura aberta para o desenvolvimento de aplicações distribuídas em um ambiente multilinguagem e multiplataforma. Principais características: – Arquitetura SOA – Tecnologia madura (década de 90) – Orientação a objetos – Eficiência no transporte de dados, inclusive binários

versão 1 - julho/2013 Principais conceitos da arquitetura Clientes e servidores ORB IDL Client stubs e Server skeletons Servants e Objetos CORBA Adaptadores e POA Protocolo de comunicação IIOP IOR Mecanismos de interceptação

versão 1 - julho/2013 Clientes e Servidores Um sistema desenvolvido em CORBA adota um modelo de comunicação cliente-servidor: Um servidor é um provedor de serviços Um cliente é um consumidor de serviços Em CORBA, um sistema pode atuar tanto como cliente como servidor

versão 1 - julho/2013 Comunicação Distribuída A comunicação distribuída baseada em Sockets oferece um nível muito baixo de API para o desenvolvedor – Não define nenhum protocolo de comunicação entre o cliente e o servidor – Base para a implementação de outras tecnologias de nível mais alto A comunicação baseada em Chamada Remota de Procedimentos (RPC) oferece uma abstração de nível mais alto para comunicação distribuída

versão 1 - julho/2013 RPC - Remote Procedure Call Nível mais alto do que sockets Executa chamadas remotas como se fossem locais – Stubs Cliente (proxy) Servidor Podem ser gerados automaticamente Diversas implementações: Sun RPC, XML RPC, etc

versão 1 - julho/2013 RPC - Remote Procedure Call ClienteServidor Stub soma_stub(x, y)soma(x, y) Descrição do procedimento Geração dos stubs marshallingunmarshalling Rede Retorno do procedimento

versão 1 - julho/2013 Comunicação entre Objetos Distribuídos Evolução do conceito de RPC – Noção de objetos distribuídos (OO) Integração de ambientes heterogêneos – Plataformas de hardware e sistemas operacionais – Linguagens de programação Transparência de localidade dos objetos Linguagem neutra para descrição dos serviços

versão 1 - julho/2013 ORB – Object Request Broker É o nome dado a uma implementação da especificação CORBA. É responsável pela comunicação entre os objetos clientes e servidores – Localização de um objeto – Marshall – traduzir os parâmetros e valores de retorno da requisição para o formato da transmissão (on-the-wire) – Unmarshall - traduzir os parâmetros e valores de retorno transmitidos (on-the-wire) para o formato da requisição

versão 1 - julho/2013 ORB – Object Request Broker Um dos principais benefícios do ORB é o tratamento dos dados da requisição de forma independente de plataforma – parâmetros são convertidos “on-the-fly” entre formatos de máquinas diferentes, pelo mecanismo de marshall e unmarshall O programador não precisa se precupar em como isso é feito: as chamada aos objetos remotos ocorrem como se fossem chamadas locais

versão 1 - julho/2013 ORB – Object Request Broker Client Server ORB network get object reference locates server Client Server ORB network method invocation marshall paramsunmarshall paramsmarshall params method invocation Client Server ORB network return value unmarshall returnmarshall return return value Passo 1: Passo 2: Passo 3:

versão 1 - julho/2013 IDL – Interface Definition Language É a linguagem usada para definir a interface dos serviços Garante a interação entre componentes independente da linguagem de implementação dos clientes e dos servidores – Por exemplo, o tipo long definido pela IDL é um valor inteiro de 32-bits com sinal que pode ser mapeado para um long C++ (depedendo da plataforma) ou para um System.Int32 C#

versão 1 - julho/2013 IDL – Interface Definition Language Mapeada para diversas linguagens: (C, C++, Java, Lua, COBOL, C#, …) Orientada a objetos Clareza e simplicidade na sua definição Familiar para os programadores C++, Java e C#

versão 1 - julho/2013 Exemplo de IDL struct Book { string author; string title; }; typedef sequence BookSeq; interface Biblioteca { boolean addBook(in Book pbook); BookSeq getBooks(); Book getBook(in string title); };

versão 1 - julho/2013 Stubs e Skeletons Client stubs e server skeletons atuam como a “cola” entre a especificação IDL, independente de linguagem, e o código que é específico de uma determinada linguagem O processamento das interfaces IDL gera os stubs e os skeletons para cada interface, em uma determinada linguagem

versão 1 - julho/2013 Stubs e Skeletons Client stub – gerado pelo compilador IDL, é o código que torna uma interface de um objeto CORBA disponível para um cliente – possui uma implementação dummy para cada método da interface usa o ORB para transferir a chamada para o método remoto do objeto servidor – os stubs são incluídos junto com o código do cliente que usa essas interfaces

versão 1 - julho/2013 Stubs e Skeletons Server skeleton – também gerado pelo compilador IDL, é o código “framework” que serve de base para a implementação do objeto servidor – para cada método, o compilador IDL gera um método “vazio” no skeleton – o desenvolvedor é responsável por prover a implementação para cada um desses métodos vazios

versão 1 - julho/2013 Processamento da IDL IDL Compilador Stub Esqueleto de implementação (Skeleton) Cliente Servidor Linguagem X Linguagem Y stub

versão 1 - julho/2013 Servant e Objeto CORBA CORBA utiliza o termo Servant para um objeto, implementado na linguagem hospedeira (C++, Java etc) que implementa a funcionalidade de um objeto CORBA Um Servant representa um objeto CORBA

versão 1 - julho/2013 Object Adapter Um Object Adapter serve como mediador entre o ORB e os Servants Sua principal função é agrupar e gerenciar um conjunto de Servants – cria as referências para os objetos CORBA – permite a ativação e desativação dos servants – permite a criação dos servants sob demanda

versão 1 - julho/2013 POA – Portable Object Adapter O POA (Portable Object Adapter) é um Object Adapter padrão do CORBA introduzido pela OMG a partir de CORBA 2.0 A definição do POA permitiu o desenvolvimento de aplicações portáveis entre diferentes ORBs

versão 1 - julho/2013 Hierarquia de POAs Podem existir diversas insta ̂ ncias do POA, organizadas em uma hierarquia A raiz desta hierarquia e criada pelo ORB

versão 1 - julho/2013 POA Manager O POA Manager gerencia o estado do POA com relação ao tratamento das requisições: – HOLDING Estado “off”. As requisições são enfileiradas – DISCARDING Estado “off”. As requisições são descartadas e a exceção CORBA::TRANSIENT é lançada para o cliente – ACTIVE Estado“on”. As requisições são encaminhadas para os respectivos servants – INACTIVE Estado “off”. O ORB não executando

versão 1 - julho/2013 Políticas de um POA A vantagem em organizar os servants em POAs diferentes é estabeler políticas (policies) de qualidade de serviço diferentes para cada conjunto. Exemplos: – O servant precisa ser criado antes das requisições chegarem ou podem ser criados sob demanda? – Uma vez que o servant seja criado, ele permanecerá vivo indefinidamente ou pode ser destruído e substituído por um outro? – Existe um mapeamento um-para-um entre os servants e os objetos CORBA ou um mesmo servant pode representar mais de um?

versão 1 - julho/2013 IIOP - Internet Inter-ORB Protocol Protocolo de comunicação padronizado entre um proxy e seu objeto servidor IIOP (Internet Inter-ORB Protocol) – Define o formato de representação dos valores trocados entre cliente e servidor – Permite a comunicação entre objetos em plataformas diferentes – Permite a comunicação entre diferentes implementações de CORBA

versão 1 - julho/2013 IOR - Inter-ORB Reference CORBA define um padrão para a formação de referências de objetos, permitindo que objetos de ORBs diferentes possam se comunicar IOR = endereço IP + porta socket + ID do objeto (Inter-ORB Reference) Um IOR possui uma representação em forma de string IORs não são necessariamente imutáveis (configurável)

versão 1 - julho/2013 Interceptação Mecanismo que possibilita a interceptação de mensagens CORBA durante o fluxo de uma sequência requisição/resposta – Noção de pontos de interceptação send_request / receive_request send_reply / receive reply – Anexo de informações

versão 1 - julho/2013 Exceções CORBA CORBA::TRANSIENT Ocorreu um erro na comunicação, mas pode ser possível tentar novamente (ex: não foi possível contactar o servidor) CORBA::COMM_FAILURE Erro de comunicação durante o atendimento de uma chamada (ex: falta de recursos no servidor) CORBA::OBJECT_NOT_EXISTS O objeto requisitado no servidor não existe