Arquitetura e Objetos Distribuídos em CORBA Aula 3 Especificações OMA Object Web The Client/Server Evolution O que é a tecnologia CORBA? • CORBA • Common Object Request Broker Architecture – Uma camada de software que distribui objetos – Oferece uma série de serviços de objeto – É padonizada pela OMG • IDL - Interface Definition Language – – – – Padrão para definição dos Serviços dos objetos Linguagem semelhate ao C Portabilidade para Java, C++, Delphi, Smalltalk, etc.. Permite integração entre sistemas heterogêneos. OMA – Object Management Architecture Integração Cliente/Servidor Invoca método () no objeto Z IDL Objeto Z método() IDL Requisições de Objeto ORB – barramento de objetos Object Request Broker Os serviços são distribuidos na forma de Objetos em um barramento Estrutura do CORBA 2.0 CORBA algumas características • Invocação estática – Os parâmetros podem ser conhecidos • Invocação dinâmica – Os parâmetros podem ser “descobertos” • Escalabilidade – Criação de uma rede de serviços intergalática • Segurança, Transparência e Controle – Serviços disponíveis pela arquitetura • Coexistência com sistemas atuais (legados) Evolução dos Componentes Anatomia do CORBA 2.0 interface Servico Cliente _SKELTON _STUB ORB BOA IIOP - Internet InterORB Protocol A IDL modela as interfaces A linguagem IDL suporta Os princípios da Orientação a Objetos Account float balance makeDeposit makeWithdrawal Exemplo de interface IDL Account float balance makeDeposit makeWithdrawal // IDL interface Account { //Attributes attribute float balance; readonly attribute string owner; //Operations void makeDeposit(in float amount, out float newBalance); void makeWithdrawal(in float amount, out float newBalance); }; idl2java Cliente InterfaceHolder.java InterfaceHelper.java _st_Interface Interface.idl idl2java _sk_Interface _InterfaceImplBase.java VisiBroker for Java Interface.java Servidor _exemplo_Interface.java CORBA e Java • O uso de Java na Arquitetura CORBA ... – ... Dá mobilidade de código. – ... Facilita o CORBA para a WEB. • Java “concorre” com CORBA no RMI e EJB (alternativas semelhantes) Método para desenvolvimento Servidor Java/outras Análise Modelo Codigo Interface IDL Projeto Cliente Java/outras Modelagem UML/CORBA Implementação CORBA/Java Integração entre as tecnologias Dominio do Problema UML Analise e Projeto CORBA Arquitetura da Solucao Java Ambiente de Implementacao Aplicações Distribuídas • Aplicações que são funcionalmente separadas em processos distintos rodando em computadores diferentes sobre uma rede. • Os processos interoperam para resolver um problema computacional comum. • Consistem de interface de usuário, dados do usuário e os processos em diferentes computadores. Arquitetura Cliente/Servidor • Anos 90 – Capacidade dos Desktops – Redes Locais – Técnicas de Acesso a bases de dados – Interfaces Gráficas – Principal modelo escolhido para as soluções fornecidas pela Computação Distribuída. Arquitetura Cliente/Servidor • Uma aplicação distribuída é conceitualmente modelada para ser composta por dois processos cooperantes: o processo-cliente e o processo servidor. Componentes da Computação Distribuída • • • • Controle da Concorrência Rede de Computadores Chamadas Remotas a Procedimentos Serviços de Nomes e Diretórios Distribuídos • Sistemas de Arquivos Distribuídos • SGBDs Cliente/Servidor Componentes da Computação Distribuída • Interfaces Gráficas • Sistemas de Correio Eletrônico • Sistemas de Processamento de Transações OnLine ( OLTP ) • Sistemas de Gerenciamento de Redes • Serviços de Segurança • Servidores de Objetos Distribuídos • Tecnologia Web e a Internet • Middleware ( camada de distribuição ) Middleware • Middleware é um software que permite elementos de aplicações interoperarem através de redes, apesar das diferenças nos protocolos de comunicação, arquiteturas de sistemas, sistemas operacionais, bases de dados e outro serviços de aplicação. (Rymer 1996) Objetos • Os objetos fornecem uma forma para organizar a complexidade nos modernos sistemas de computação. • A combinação natural de dados, comportamento e a separação explícita entre interface e implementação, proporcionam uma solução ótima para a distribuição de dados e processos de uma aplicação. Objetos Distribuídos • Objetos podem ser usados para construir aplicações distribuídas seguindo o modelo Cliente/Servidor. • Assim, devem poder ser localizados e acessados através de uma rede de computadores. Modelos de Objetos • Modelos definidos, seguindo o paradigma de orientação a objetos, para servir de base para a construção de implementações de objetos distribuídos. • SOM (System Object Model) - IBM • COM (Component Object Model) - MicroSoft • CORBA (Commom Object Request Broker Architecture) - OMG (Object Management Group) Produtos para Computação Distribuída • DCE (Distributed Computing Environment) OSF - Open Software Foundation) 1988 IBM, DEC, Bull, HP, Nixdorf, Apollo, Phillips, Siemens, Hitachi • Produtos CORBA (diversos) • DCOM (MicroSoft) • DSOM (IBM) .... Muitos outros Evolução de Tecnologias WEB Modelo da Object WEB baseado em Java e CORBA Tendências Objetos Distribuídos Componentes de SW Agentes Móveis Redes e Gerência Segurança em Redes Objetos Distribuídos MOM versus RPC Server Framework Adaptor Objeto Composto em CORBA Documentos Compostos • É um documento composto de textos, gráficos, planilhas eletrônicas, elementos da multimídia (áudio, imagens). • Um documento composto nada mais é que uma coleção (container) visualmente organizada de componentes. Frameworks • Frameworks de documentos compostos – OLE e OpenDoc proporcionam duas tecnologias chaves: 1) Uma base visual de componentes para criar browsers Web abertos. 2) A tecnologia de containers para distribuição, visualização e armazenagem de componentes relacionados e seus dados. Tecnologias para Documentos Compostos • OpenDoc • Em março de 1996, a OMG adotou OpenDoc como a base para sua tecnologia de documento composto. Isso significa que CORBA agora tem uma arquitetura consistente para ambos os lados, o cliente e o servidor. Tecnologias para Documentos Compostos • OpenDoc torna possível clientes e servidores CORBA trocarem componentes via documentos móveis. OpenDoc e CORBA Business Object Facility • OMG está correntemente especificando Frameworks para domínios de aplicação: manufatura, comércio eletrônico, transportes, telecomunicação, saúde, finanças, entre outros. • Mas o que estes frameworks constroem ? O BOF define um componente CORBA genérico chamado, business object. The Object Web II Vision • Documentos compostos como browsers Web abertos: - O browser Web construído inteiramente de componentes. - O próprio browser é um container visual de componentes. - Um componente também pode imbutir outro componente. The Object Web II Vision • Um browser Web pode ser construído como um container OpenDoc ou OLE (Microsoft) • O desktop é o browser. • A próxima geração de browsers Internet consistirão de um conjunto de componentes e containers de documentos compostos. • Onde você encontrará um destes browsers Web baseados em componentes ? Evolução dos Browsers Modelos de Cliente para Web Segundo Modelo • Tudo sobre o desktop é habilitado à Web. • A idéia que você será capaz de acessar a Web de dentro de qualquer aplicação ou componente, sem executar um browser. Terceiro Modelo • Shippable Places: Você pode acessar a web de dentro de seus places. Um place é uma montagem visual de componentes relacionados. Um shippable place é um container móvel de componentes. Links interessantes • http://www.omg.org • http:/www.cetus-links.org