CORBA Integração com a Web Mário Meireles Teixeira [email protected] 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 Serviços de objetos X Interações diversas (C/C, C/S, S/C, X X S/S) Escalabilidade no lado servidor X 9 Análise de Desempenho (ping) CORBA/ DCOM RMI IIOP Desempenho (ms) 3.5 HTTP/ Servlets Sockets CGI 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, Ecommerce, . . . 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, Ecommerce). 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