Integração com a Web

Propaganda
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
Download