Post on 03-Oct-2018
1
CORBAIntegração com a Web
Mário Meireles Teixeiramario@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
2
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.
3
Cliente-servidor na Web(duas camadas)
Evolução das TecnologiasFase I
4
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)
5
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 TecnologiasFase II-a
6
Evolução das TecnologiasFase 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-LeeDiretor, W3C
7
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
8
Objetos Distribuídos na Web
• Java - Transparência de Implementação(portabilidade)
CORBA - 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
9
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,
S/S)
X
Escalabilidade no lado servidor X
10
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
11
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, . . .
12
Evolução das TecnologiasFase III
Principais Empresasna 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
13
Principais Empresasna 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
14
XMLeXtensible 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.
15
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 desenvol-vimento 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
16
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).
17
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.
18
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 CasoCORBA 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.
19
Estudo de CasoVisã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 CasoServiç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.
20
Estudo de CasoServiços Implementados
Estudo de CasoTecnologia 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
21
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...
22
Interação C/S baseada em Web Services