CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA....

22
1 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

Transcript of CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA....

Page 1: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

1

CORBAIntegração com a Web

Mário Meireles [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

Page 2: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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.

Page 3: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

3

Cliente-servidor na Web(duas camadas)

Evolução das TecnologiasFase I

Page 4: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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)

Page 5: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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

Page 6: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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

Page 7: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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

Page 8: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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

Page 9: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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

Page 10: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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

Page 11: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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, . . .

Page 12: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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

Page 13: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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

Page 14: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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.

Page 15: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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

Page 16: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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).

Page 17: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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.

Page 18: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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.

Page 19: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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.

Page 20: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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

Page 21: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

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...

Page 22: CORBA - deinf.ufma.brmario/pos/corba/corba_web.pdf · dos clientes, acessados via objetos CORBA. – Por exemplo: e-mail, news, BDRs, BDOOs, aplicações ... – Adotou CORBA/Java

22

Interação C/S baseada em Web Services