Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando Azeredo Andrade Desenvolvimento de Software Atualmente Não Possui o Devido Nível de Maturidade: Não atende totalmente às qualidades desejadas. Prazos de entrega não são cumpridos. Requisitos funcionais do sistema não satisfeitos ou desatualizados quando entregues. Orçamentos previstos “estouram”. Custos de manutenção são altos. Difícil integração dos sistemas. Melhorando o Desenvolvimento de Sistemas Tecnologia de Orientação a Objetos Encapsulamento – Os dados de um objeto estão encapsulados e são acessados pelos métodos de interface. – Dá mais ênfase à interface dos objetos e à interoperabilidade entre classes. Vantagens da Orientação a Objetos (O.O.) Melhor produtividade e redução do tempo de desenvolvimento. Reuso. Flexibilidade. Redução de custos. Facilidade de manutenção. Arquitetura Cliente / Servidor Tem por objetivo compartilhar recursos, dados, software e hardware. Cada computador em uma rede pode oferecer serviços como um servidor e utilizar outros serviços como cliente. Objetos Distribuídos Combinação de Orientação a Objetos e Computação Distribuída. Permite uma completa interoperabilidade entre componentes de aplicações em ambientes distribuídos e heterogêneos. Middleware. Middleware Conectar aplicações distribuídas. Solucionar problemas de falta de transparência entre componentes. Permitir uma gerência simples e eficaz. Modelo Integrador Identificar a compatibilidade entre tipos definidos em modelos diferentes. Compatibilizar o modelo de execução de objetos de diferentes arquiteturas que precisam interagir. Aplicações Distribuídas em Camadas Two-tier (2 camadas) – Falta de controle centralizado. N-tier (3 camadas) – – – Desktop - Interface com o usuário. Servidor de Aplicação - Lógica do negócio e lógica de dados. Servidor de Banco de Dados - Serviços de dados e arquivos. Visão Geral de CORBA Proposta da OMG (Object Management Group). Interface comum aos objetos escritos em diferentes linguagens de programação. Objetivo da CORBA Dar a todos os seus componentes a “mesma cara”. Interfaces definidas em uma linguagem declarativa. A interação ocorre através de um Middleware(ORB), que estabelece a relação Cliente/Servidor. Arquitetura CORBA C++ Delphi Java C++ Delphi Java IDL IDL IDL IDL IDL IDL CLIENTE SERVIDOR ORB Linguagem IDL Puramente declarativa, usada para descrever objetos CORBA. Subconjunto de C++ com instruções adicionais. Objeto CORBA Geralmente representa conceito do mundo real. Oferece atributos e operações que compõe sua interface IDL. Objeto CORBA Cliente/Servidor. Se comunicam estando na mesma máquina ou em uma máquina remota via Internet. REPOSITÓRIO DE IMPLEMENTAÇÃO REPOSITÓRIO DE INTERFACE ADAPTADOR DE OBJETOS CLIENTE DII IDL STUBS INTERFACE ORB SERVIDOR ESQUELETO IDL Serviços CORBA Componentes complementares definidos como IDL Ex: – – – Segurança Controle de Concorrência Ciclo de Vida Facilidades CORBA Especializações dos serviços CORBA. Ex: – – – Interface do usuário Interfaces especializadas Gerência de tarefas Padrão DCOM Distributed Component Object Maior competidor do CORBA Criado pela Microsoft EXTENSÃO MS OLE MS COM ActiveX EXTENSÃO DCOM DCOM Produto comercial novo, poucas empresas utilizam. x CORBA Mais antigo, mais empresas utilizam. Roda em plataformas que Roda em plataformas que tenham serviço COM (Entire tenham serviço CORBA X). ORB (VisiBroker). Identifica interfaces usando Identifica interfaces usando IIDs e a implementação de seu nome e a implementação objetos usando CLSIDs de objetos por mapeamento no IR. O mapeamento do nome do O mapeamento do nome do obj. é feito pelo Registry obj. é feito pelo IR (Implementation Repository) DCOM x CORBA Informação sobre os tipos Informação sobre os tipos para os métodos é mantida para os métodos é mantida pela Type Library. pelo Interface Repository Responsável pela localização Responsável pela localização da implementação de um obj da implementação de um obj é o Service Control Manager é o Object Request Broker Responsável pela ativação da Responsável pela ativação da implementação de um obj é implementação de um obj é o Service Control Manager o Object Adapter Do lado do servidor o stub é Do lado do servidor o stub é chamado de stub. chamado de skeleton. DCOM x CORBA Todos os parâmetros Na passagem de parâmetros passados entre Cliente e entre Cliente e Servidor, Servidor são definidos na todos os tipos da interface Interface, por ref ou valor são por ref, e obj por valor. Chamada de métodos retorna Suporta exceções de C++ e um codigo de erro. Utiliza específicas do CORBA, obj do tipo IErrorInfo para permite ao usuário definir tratamento. exceções. Referências Bibliográficas www.infosys.tuwien.ac.at/Research/Corba/OMG/arch2.htm#446864 www.nautilus.com.br/~francioli www.omg.org/corba/beginners.html Moraes, João A. G. de Queiroz e Madeira, Edmundo. CORBA: Plataforma Aberta de Objetos Distribuídos. Developers Magazine nº 21, páginas 26 a 30, Maio de1998