CORBA Integração com a Web Mário Meireles Teixeira mario@deinf.ufma.br Tópicos Abordados Evolução das aplicações na Web A Object Web Principais Empresas CORBA e XML Estudo de Caso Um Sistema de Informações Financeiras em CORBA e XML 1
A Evolução da Web É possível verificar quatro fases, sob o ponto de vista das aplicações: A Web como um repositório de documentos hipertexto Mosaic A Web como um servidor de aplicação simples CGI, ASP, NSAPI, HTML Dinâmico A Web como um meio de acesso a objetos servidores CORBA/IIOP, XML, DOM A Web como uma plataforma de fornecimento de serviços Web Services, XML, SOAP, WSDL, UDDI Fase I - A Era do Hipertexto (ou a criação do mundo) Mosaic Browser (1993) Aplicação C/S usando a Internet C/S em duas camadas Clientes magros, portáteis e universais Servidores gordos Independência de plataforma A Web se constituía em: um Servidor de Documentos HTML; ou um Servidor de Arquivos baseado em URLs. 2
Cliente-servidor na Web (duas camadas) Evolução das Tecnologias Fase I 3
Fase II - A Era Interativa (CGI & Cia.) CGI - Common Gateway Interface (1995) Permite executar aplicações no lado servidor Parâmetros de entrada e resultados em HTML Independência de plataforma Com o CGI, os browsers se tornaram os terminais burros de antigamente C/S em três camadas Porém... O CGI é um protocolo stateless, lento e antigo Cliente-servidor na Web (três camadas) 4
Alternativas ao CGI CGI lança um novo processo para cada requisição que chega dos clientes sobrecarga no servidor. Soluções proprietárias visando melhor desempenho e interatividade: No lado servidor: NSAPI, ISAPI, ASP, PHP, Java Servlets, JSP No lado cliente: HTML Dinâmico, JavaScript Evolução das Tecnologias Fase II-a 5
Evolução das Tecnologias Fase II-b Fase III - A Era dos Objetos Distribuídos (Object Web) Web technology and distributed object technology are naturally complementary. We want to ensure that OMG and W3C work together to define a common future. Tim Berners-Lee Diretor, W3C 6
Interação C/S com Java Objetos Distribuídos na Web O uso de CORBA/Java na Web traz os seguintes benefícios: Acaba o gargalo do CGI no servidor Propicia interações C/S não necessariamente baseadas em HTML (parâmetros tipados) CORBA guarda o estado dos clientes entre as invocações de métodos Balanceamento de carga no servidor (Adaptador de Objetos, transações distribuídas) Novas formas de interação/cooperação entre os servidores 7
Objetos Distribuídos na Web Java CORBA - Transparência de Implementação (portabilidade) - Transparência de Rede Existem vários esforços no sentido de integrar Java e CORBA: Um ORB CORBA já faz parte do Java 2 (Java IDL) Java RMI executa sobre CORBA/IIOP Enterprise Java Beans (EJB) usa CORBA como seu modelo de objetos distribuídos Objetos Distribuídos na Web 8
Objetos Distribuídos na Web Em resumo: Java permite a criação de aplicações que podem executar em qualquer máquina. Ideal para a confecção de pequenos clientes portáteis. CORBA viabiliza a criação de uma infra-estrutura de objetos distribuídos sobre a Internet. Concluindo, nesta nova visão: HTTP é ideal para recuperar documentos HTML repletos de componentes (Java Beans) ou applets. Uma vez no cliente, estes usam um ORB para se comunicar com os objetos no servidor. CORBA/IIOP vs. CGI CORBA HTTP/CGI Preserva estado entre invocações X IDL e Repositório de Interfaces X Suporte a metadados X Invocações dinâmicas X Transações X Segurança X X Serviços de objetos X Interações diversas (C/C, C/S, S/C, X S/S) Escalabilidade no lado servidor X 9
Análise de Desempenho (ping) CORBA/ IIOP DCOM RMI HTTP/ CGI Servlets Sockets Desempenho (ms) 3.5 3.8 3.3 827.9 55.6 2.1 Na comparação acima, um cliente JavaBean chama um objeto Java remoto e recebe uma resposta (ping), através de uma rede Ethernet a 10 Mbps. O Paradigma C/S na Object Web Camada 1 Executa em browsers web ou similares Novas formas de interação: drag-and-drop, crítica de dados de entrada no cliente, páginas animadas,... Presença de componentes (beans) no cliente Interações C/C, C/S, S/C (callbacks) HTTP é usado para o download das páginas CORBA é usado para a comunicação C/S 10
O Paradigma C/S na Object Web Camada 2 Executa em qualquer servidor que dê suporte a clientes HTTP e CORBA (UNIX s, Windows Server, OS/2, Mac OS, OS/400, MVS,... ). Os objetos CORBA se constituem na camada intermediária deste modelo C/S Interações entre objetos no servidor Suporte a transações distribuídas é fundamental Comunicação com a terceira camada via ORB (de preferência) ou outros protocolos. O Paradigma C/S na Object Web Camada 3 Aqui ficam todos os recursos que estão à disposição dos clientes, acessados via objetos CORBA. Por exemplo: e-mail, news, BDRs, BDOOs, aplicações de mainframe, sistemas ERP, SAP, CSCW, EAD, E- commerce,... 11
Evolução das Tecnologias Fase III Principais Empresas na Object Web Netscape/AOL Coloca um ORB Java Visibroker em cada browser Usa CORBA para a comunicação no Netscape Enterprise Server Oracle Adotou CORBA/Java como a plataforma para sua NCA (Network Computing Architecture) Oracle 8i : toda a comunicação via ORB (Visibroker) O engine de banco de dados está sendo subdividido em componentes usando CORBA Oracle Application Server 4.0 12
Principais Empresas na Object Web Sun/JavaSoft CORBA está sendo integrado ao núcleo de Java Sun adotou o Visibroker como seu ORB para o Solaris IBM/Lotus Está baseando sua plataforma de computação distribuída em CORBA Java VMs em todos os seus SO s IBM WebSphere, Domino 5.0, Visual Age Outros HP, Iona, Visigenic/Borland, Novell, GemStone, ODI, Versant, Sybase, Symantec, Expersoft CORBA / XML Uma visão histórica, anterior à era dos Web Services 13
XML extensible Markup Language XML (Fev, 1998) Uma linguagem extensível para definição de estruturas de documentos Uma maneira padrão para troca de informações complexas entre entidades computacionais Entendida pelo computador e por humanos Outros membros da família: XSL, XLink, XPointer Documentos XML têm conteúdo com estrutura semântica Daí... Um passo à frente em relação à HTML XML Porém... XML define apenas a estrutura do documento, com alguma semântica. Não diz a maneira de tratar a informação. Portanto... É necessário introduzir novos elementos (objetos ou componentes), que vão fornecer o comportamento do documento. 14
CORBA / XML XML Objetiva o armazenamento e transmissão de informação estruturada, em um formato portátil, que possa ser igualmente entendido por humanos e aplicações. Pretende ser um modelo de documentos universal. CORBA Objetiva a interoperabilidade entre aplicações distribuídas, formando sistemas únicos a partir de arquiteturas díspares. Pretende ser uma solução universal para o desenvolvimento de aplicações. CORBA / XML É possível integrar XML e CORBA de várias maneiras: (visão anterior a web services) A Perspectiva da Informação A Perspectiva de Camadas A Perspectiva de Comunicação 15
CORBA / XML Perspectiva da Informação XML pode ser usada para: Representar informações de configuração para os elementos do sistema; Criar uma camada de acesso a dados heterogêneos; Descrever o estado de uma sessão entre aplicações, registrar informações de log; Descrever interfaces de elementos do sistema (usada como IDL); Permitir que operações CORBA recebam e emitam XML; Representar metadados (útil para busca, traduções entre formatos -- XMI) CORBA / XML Perspectiva de Camadas Em geral, as arquiteturas CORBA são compostas de várias camadas. XML pode ser usada: nas interfaces entre essas camadas, como se fosse uma cola na arquitetura. para armazenamento de dados (uso controverso; problemas na busca de informação). Ideal se o sistema for document-centric (CSCW); para interações em nível de aplicação (B2B, E- commerce). 16
CORBA / XML Perspectiva de Comunicação Uso de XML como uma substituição a IDL/IIOP no acesso a sistemas CORBA: Minimiza problemas de IIOP com firewalls; Suporte a clientes não habilitados para CORBA; Controvérsia: Faz sentido usar um formato legível por humanos (mais prolixo) na comunicação entre máquinas? Não é mais fácil fazer um mapeamento da arquitetura em questão para CORBA? XML deve ser usada na comunicação em nível de sistema? Os Documentos na era da Object Web DOM - Document Object Model (Out, 1998) Permite representar cada elemento dentro de um documento HTML ou XML como um objeto, gerando uma árvore em memória. As interfaces do DOM estão definidas em IDL CORBA. Portanto, usando CORBA (ou Java, JavaScript) é possível invocar qualquer objeto DOM através da Web. Os documentos da Web tornam-se objetos distribuídos com interfaces CORBA. 17
Os Documentos na era da Object Web Com o uso conjunto dessas novas tecnologias, é possível: Arrastar e soltar componentes dentro da janela de um browser (interações C/C). Por exemplo: Arrastar um produto para dentro de um carrinho de compras; Pagar com e-cash retirado de uma carteira eletrônica e arrastado para dentro de uma ordem de pagamento; Criar documentos inteligentes, formados por componentes distribuídos; Outras formas de interação. Estudo de Caso CORBA e XML Financial Information Services (FIS) fornece informações financeiras para um grande número de empresas americanas. Inicialmente em papel, depois em CD-ROM e, agora, na Web. Este estudo de caso mostra brevemente a solução adotada para a Web, utilizando CORBA, XML e DOM. 18
Estudo de Caso Visão Geral No lado cliente: Necessidade de estruturas para representar cestas de compra e faturas; XML foi adotada, ao invés de construções em IDL como struct s e any s. No lado servidor: BasketService InvoiceService FulfillmentService CreditCardService Estudo de Caso Serviços Implementados BasketService Gerenciamento das cestas de compra. InvoiceService Processamento das faturas. FulfillmentService Em conjunto com outros serviços, faz acesso às bases de dados e retorna a informação em diferentes formatos (de XML para HTML, MS Excel, PDF,...). CreditCardService Adquirido de terceiros, responsável por processar os pagamentos com cartão de crédito. 19
Estudo de Caso Serviços Implementados Estudo de Caso Tecnologia e Produtos Serviços Basket, Invoice, Fulfillment : Sistema operacional IBM AIX Implementação em C++ com ORB da Iona Technologies Armazenamento em banco de dados Sybase (maior parte em XML) Serviço CreditCard Sistema operacional Windows NT Java OrbixWeb da Iona 20
Fase IV - A Era dos Serviços Web (Web Services) Web Service É uma aplicação, identificada por uma URI, cujas interfaces podem ser definidas, descritas e descobertas como artefatos XML. As interações de um Web Service com outras aplicações usam mensagens baseadas em XML, trocadas por meio de protocolos baseados na Internet (W3C) Requisitos (padrões): Comunicação SOAP (Simple Object Access Protocol) sobre HTTP Descrição de tipos XML Schema Descrição das interfaces dos serviços WSDL (Web Services Description Language) Descoberta dos serviços UDDI (Universal Description, Discovery and Integration) A Era dos Serviços Web O mantra dos Web Services concentra-se em: Interoperabilidade Independência de plataforma Conformidade total com os padrões do W3C (World Wide Web Consortium) XML all around... Empresas: Sun Microsystems J2EE/JWSDP Microsoft.NET IBM... 21
Interação C/S baseada em Web Services 22