objetos distribuídos padrão corba trabalho de fundamentos da engenharia de software profº ricardo...
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062623/552fc10d497959413d8c4466/html5/thumbnails/23.jpg)
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