objetos distribuídos padrão corba trabalho de fundamentos da engenharia de software profº ricardo...
TRANSCRIPT
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