Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo...

Post on 17-Apr-2015

105 views 1 download

Transcript of Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo...

Objetos DistribuídosObjetos DistribuídosPadrão Padrão CORBACORBA

Trabalho de Fundamentos da Engenharia de SoftwareTrabalho de Fundamentos da Engenharia de Software

Profº Ricardo Luiz SchneiderProfº Ricardo Luiz Schneider

Alunos:Alunos:Fábio Campos LourençoFábio Campos Lourenço

Fernando Azeredo AndradeFernando Azeredo Andrade

Desenvolvimento de Software Desenvolvimento de Software Atualmente Não Possui o Devido Nível Atualmente Não Possui o Devido Nível

de Maturidade:de Maturidade: Não atende totalmente às qualidades Não atende totalmente às qualidades

desejadas.desejadas. Prazos de entrega não são cumpridos.Prazos de entrega não são cumpridos. Requisitos funcionais do sistema não Requisitos funcionais do sistema não

satisfeitos ou desatualizados quando satisfeitos ou desatualizados quando entregues. entregues.

Orçamentos previstos “estouram”.Orçamentos previstos “estouram”. Custos de manutenção são altos.Custos de manutenção são altos. Difícil integração dos sistemas.Difícil integração dos sistemas.

Melhorando o Desenvolvimento Melhorando o Desenvolvimento de Sistemasde Sistemas

Tecnologia de Orientação a ObjetosTecnologia de Orientação a Objetos

EncapsulamentoEncapsulamento

– Os dados de um objeto estão encapsulados e são Os dados de um objeto estão encapsulados e são acessados pelos métodos de interface.acessados pelos métodos de interface.

– Dá mais ênfase à interface dos objetos e à Dá mais ênfase à interface dos objetos e à interoperabilidade entre classes.interoperabilidade entre classes.

Vantagens da Orientação a Vantagens da Orientação a Objetos (O.O.)Objetos (O.O.)

Melhor produtividade e redução do tempo de Melhor produtividade e redução do tempo de desenvolvimento.desenvolvimento.

Reuso.Reuso.

Flexibilidade.Flexibilidade.

Redução de custos.Redução de custos.

Facilidade de manutenção.Facilidade de manutenção.

Arquitetura Cliente / ServidorArquitetura Cliente / Servidor

Tem por objetivo compartilhar recursos, Tem por objetivo compartilhar recursos, dados, software e hardware.dados, software e hardware.

Cada computador em uma rede pode Cada computador em uma rede pode oferecer serviços como um servidor e oferecer serviços como um servidor e utilizar outros serviços como cliente.utilizar outros serviços como cliente.

Objetos DistribuídosObjetos Distribuídos

Combinação de Orientação a Objetos e Combinação de Orientação a Objetos e Computação Distribuída.Computação Distribuída.

Permite uma completa Permite uma completa interoperabilidade entre componentes interoperabilidade entre componentes de aplicações em ambientes de aplicações em ambientes distribuídos e heterogêneos.distribuídos e heterogêneos.

Middleware.Middleware.

MiddlewareMiddleware

Conectar aplicações distribuídas.Conectar aplicações distribuídas.

Solucionar problemas de falta de Solucionar problemas de falta de transparência entre componentes.transparência entre componentes.

Permitir uma gerência simples e eficaz.Permitir uma gerência simples e eficaz.

Modelo IntegradorModelo Integrador

Identificar a compatibilidade entre tipos Identificar a compatibilidade entre tipos definidos em modelos diferentes.definidos em modelos diferentes.

Compatibilizar o modelo de execução Compatibilizar o modelo de execução de objetos de diferentes arquiteturas de objetos de diferentes arquiteturas que precisam interagir.que precisam interagir.

Aplicações Distribuídas em Aplicações Distribuídas em CamadasCamadas

Two-tier (2 camadas)Two-tier (2 camadas)– Falta de controle centralizado.Falta de controle centralizado.

N-tier (3 camadas)N-tier (3 camadas)– Desktop - Interface com o usuário.Desktop - Interface com o usuário.– Servidor de Aplicação - Lógica do negócio Servidor de Aplicação - Lógica do negócio

e lógica de dados.e lógica de dados.– Servidor de Banco de Dados - Serviços de Servidor de Banco de Dados - Serviços de

dados e arquivos.dados e arquivos.

Visão Geral de CORBAVisão Geral de CORBA

Proposta da OMG (Object Management Proposta da OMG (Object Management Group).Group).

Interface comum aos objetos escritos Interface comum aos objetos escritos em diferentes linguagens de em diferentes linguagens de programaçãoprogramação..

Objetivo da CORBAObjetivo da CORBA

Dar a todos os seus componentes a Dar a todos os seus componentes a “mesma cara”.“mesma cara”.

Interfaces definidas em uma linguagem Interfaces definidas em uma linguagem declarativa.declarativa.

A interação ocorre através de um A interação ocorre através de um Middleware(ORB), que estabelece a Middleware(ORB), que estabelece a relação Cliente/Servidor.relação Cliente/Servidor.

Arquitetura CORBAArquitetura CORBA

C++ JavaDelphi

IDL IDL IDL

CLIENTE

C++ JavaDelphi

IDL IDL IDL

SERVIDOR

ORB

Linguagem IDLLinguagem IDL

Puramente declarativa, usada para Puramente declarativa, usada para descrever objetos CORBA.descrever objetos CORBA.

Subconjunto de C++ com instruções Subconjunto de C++ com instruções adicionais.adicionais.

Objeto CORBAObjeto CORBA

Geralmente representa conceito do Geralmente representa conceito do mundo real.mundo real.

Oferece atributos e operações que Oferece atributos e operações que compõe sua interface IDL.compõe sua interface IDL.

Objeto CORBAObjeto CORBA

Cliente/Servidor.Cliente/Servidor.

Se comunicam estando na mesma Se comunicam estando na mesma máquina ou em uma máquina remota máquina ou em uma máquina remota via Internet.via Internet.

REPOSITÓRIO DE INTERFACE

REPOSITÓRIO DE IMPLEMENTAÇÃO

CLIENTE

DII IDL STUBS

INTERFACE ORB

SERVIDOR

ESQUELETO IDL

ADAPTADOR DE OBJETOS

Serviços CORBAServiços CORBA

Componentes complementares Componentes complementares definidos como IDLdefinidos como IDL

Ex:Ex:– SegurançaSegurança– Controle de ConcorrênciaControle de Concorrência– Ciclo de VidaCiclo de Vida

Facilidades CORBAFacilidades CORBA

Especializações dos serviços CORBA.Especializações dos serviços CORBA. Ex:Ex:

– Interface do usuárioInterface do usuário– Interfaces especializadasInterfaces especializadas– Gerência de tarefasGerência de tarefas

Padrão DCOMPadrão DCOM

Distributed Component ObjectDistributed Component Object Maior competidor do CORBAMaior competidor do CORBA Criado pela MicrosoftCriado pela Microsoft

MS OLE MS COM DCOMEXTENSÃO EXTENSÃO

ActiveX

DCOM x CORBADCOM x CORBAProduto comercial novo,

poucas empresas utilizam.

Mais antigo, mais empresas utilizam.

Roda em plataformas que tenham serviço COM (Entire X).

Roda em plataformas que tenham serviço CORBA ORB (VisiBroker).

Identifica interfaces usando IIDs e a implementação de objetos usando CLSIDs

Identifica interfaces usando seu nome e a implementação de objetos por mapeamento no IR.

O mapeamento do nome do obj. é feito pelo Registry

O mapeamento do nome do obj. é feito pelo IR (Implementation Repository)

DCOM x CORBADCOM x CORBA

Informação sobre os tipospara os métodos é mantidapela Type Library.

Informação sobre os tipospara os métodos é mantidapelo Interface Repository

Responsável pela localizaçãoda implementação de um objé o Service Control Manager

Responsável pela localizaçãoda implementação de um objé o Object Request Broker

Responsável pela ativação daimplementação de um obj éo Service Control Manager

Responsável pela ativação daimplementação de um obj éo Object Adapter

Do lado do servidor o stub échamado de stub.

Do lado do servidor o stub échamado de skeleton.

DCOM x CORBADCOM x CORBA

Todos os parâmetrospassados entre Cliente eServidor são definidos naInterface, por ref ou valor

Na passagem de parâmetrosentre Cliente e Servidor,todos os tipos da interfacesão por ref, e obj por valor.

Chamada de métodos retornaum codigo de erro. Utilizaobj do tipo IErrorInfo paratratamento.

Suporta exceções de C++ eespecíficas do CORBA,permite ao usuário definirexceções.

Referências BibliográficasReferê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