objetos distribuídos padrão corba trabalho de fundamentos da engenharia de software profº ricardo...

23
Objetos Objetos Distribuídos Distribuídos Padrão Padrão CORBA CORBA Trabalho de Fundamentos da Engenharia de Trabalho de Fundamentos da Engenharia de Software Software Profº Ricardo Luiz Schneider Profº Ricardo Luiz Schneider Alunos: Alunos: Fábio Campos Lourenço Fábio Campos Lourenço Fernando Azeredo Andrade Fernando Azeredo Andrade

Upload: internet

Post on 17-Apr-2015

105 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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

Page 2: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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.

Page 3: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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.

Page 4: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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.

Page 5: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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.

Page 6: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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.

Page 7: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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.

Page 8: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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.

Page 9: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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.

Page 10: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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..

Page 11: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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.

Page 12: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

Arquitetura CORBAArquitetura CORBA

C++ JavaDelphi

IDL IDL IDL

CLIENTE

C++ JavaDelphi

IDL IDL IDL

SERVIDOR

ORB

Page 13: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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.

Page 14: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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.

Page 15: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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.

Page 16: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

REPOSITÓRIO DE INTERFACE

REPOSITÓRIO DE IMPLEMENTAÇÃO

CLIENTE

DII IDL STUBS

INTERFACE ORB

SERVIDOR

ESQUELETO IDL

ADAPTADOR DE OBJETOS

Page 17: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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

Page 18: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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

Page 19: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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

Page 20: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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)

Page 21: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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.

Page 22: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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.

Page 23: Objetos Distribuídos Padrão CORBA Trabalho de Fundamentos da Engenharia de Software Profº Ricardo Luiz Schneider Alunos: Fábio Campos Lourenço Fernando

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