web services na distribuição de dados conceitos e aplicações farley millano {[email protected]}...

48
Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {[email protected]} Professor: Fernando Fonseca

Upload: internet

Post on 19-Apr-2015

111 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Web Services na Distribuição de DadosConceitos e Aplicações

Farley Millano{[email protected]}

Professor:Fernando Fonseca

Page 2: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Motivação

• Mitigação para problemas de integração– Dados, plataformas,etc.

• Simplificação da comunicação entre aplicações– Menores custos de desenvolvimento,

manutenção, implantação, etc.

• Eliminação do forte acoplamento das tecnologias RPC-style– RPC, CORBA, RMI, e DCOM– Flexibilidade e adaptabilidade

• Reuso para outras aplicações– Heterogeneidade

Page 3: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Roteiro

• O que é?• Background Standards

– XML– SOAP– WSDL– UDDI

• Vantagens sobre outras tecnologias– Quadro comparativo– WS x RMI– WS x CORBA

• Frameworks– Comparação– Axis

• Aplicação em BDD– Cenário

• Contextos de uso– Web Services + Distribuição

• ELPIF• BioSimGRID• DHRD

• Conclusões

Page 4: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

O que é? – Definição [1/2]

• De forma extremamente simplista... – “Um site sem GUI”– Imagine poder usar o engenho

de busca do Google mas poder definir sua própria GUI

– Estabelecimento de um contrato de serviço para o cliente:

• Requisição => tratamento de resultados

Page 5: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

O que é? – Definição [2/2]

• ... formalizando:“conjuntos de protocolos e padrões que permitem que aplicações se comuniquem via uma rede (geralmente Internet). Esta comunicação baseada em padrões permite que as aplicações descrevam o que fazem e permite então chamar ou utilizar os serviços de outra aplicação.”

Page 6: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

O que é? - Critérios

• Ser hábil para mostrar e descrever a si mesmo para outras aplicações

• Localização por outras aplicações (registro de serviço em diretório on-line)

• Poder ser chamado pela aplicação original usando o protocolo de rede

Page 7: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Background Standards

• Stack

Directory: Publish & Find Services: UDDI

Description: Formal Service Description: WSDL

Wire Format: Services Interactions: SOAP

Universal Data Format: XML

Ubiquitous Communications: Internet/HTTP

Page 8: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

XML - Background Standards • eXtensible Markup Language• Tecnologia aberta• Linguagem de descrição hierárquica de

dados definida pela W3C• Composta por tags

– Schemas: significado às tags• Forma de representação e estruturação

de todos os documentos envolvidos em Web Services– Dados nas mensagens

recebidas/enviadas• Um documento XML correto tem que ser

válido (Schema ou DTD) e bem formado (sintaxe)

• Schema define os elementos presentes na comunicação do Web Service

Page 9: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

XML - Background Standards

• Exemplo: Schema + documento

<?xml version="1.0"?> <xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema xmlns=“document" ><xs:element name = “DOCUMENT”>

<xs:element name=“CUSTOMER"> </xs:element></xs:element></xs:schema>

<?xml version="1.0"?> <xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema xmlns=“document" ><xs:element name = “DOCUMENT”>

<xs:element name=“CUSTOMER"> </xs:element></xs:element></xs:schema>

pedido.xsd

<?xml version=“1.0”?><DOCUMENT xmlns=“document” xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Xsi:schemaLocation=“order.xsd”><DOCUMENT>

<CUSTOMER>sam smith</CUSTOMER><CUSTOMER>sam smith</CUSTOMER>

</DOCUMENT>

<?xml version=“1.0”?><DOCUMENT xmlns=“document” xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Xsi:schemaLocation=“order.xsd”><DOCUMENT>

<CUSTOMER>sam smith</CUSTOMER><CUSTOMER>sam smith</CUSTOMER>

</DOCUMENT>

Documentoderivado doschema

Page 10: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

SOAP – Background Standards

• Simple Object Access Protocol• Encapsulamento das chamadas a

serviços (parâmentros, chamadas e retornos)

• Baseado em XML• Response e Request paradigm• SOAP Messages

– Provê um “envelope” padrão onde está contida a mensagem

– Não informa nada sobre seu conteúdo, cabe ao remetente/ receptor tratá-la

Page 11: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

SOAP – Background Standards

• SOAP Messages– Conteúdo:– Um Envelope– Um Header

(optional)– Um Body– O Body pode

conter um elemento Fault

SOAP BODY

SOAP ENVELOPE

FAULT

SOAP HEADER

Transport protocol

MIME header

Envolve todo documento

Informações adicionais

Núcleo da mensagem -chamada RPC ou mensagemXML própria

Informação de condição excepcional

Page 12: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

SOAP – Background Standards

• Exemplo:

Page 13: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

SOAP – Background Standards

• Exemplo Request:– Método: – int doubleAnInteger (int numberToDouble);

Page 14: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

SOAP – Background Standards

• Exemplo Response:

Page 15: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

WSDL – Background Standards

• Web Services Description Language• XML Schema para descrição dos Web

Services– “Receita do serviço”– Descrição dos serviços (operações,

mensagens, parâmetros, etc)• Definição da interface do serviço

– Abstrai a semântica para o Web Service• Definição da implementação do serviço

– Contém destino reais e endereços de onde os Web Services podem ser chamados

• Delineação entre a mensagem “concreta” e a “abstrata”

Page 16: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

WSDL – Background Standards

• WSDL Schema – Interface...

•<definitions> nó raiz do WSDL

•<import> permite inclusão de outrasEntidades

•<types> definição da informação – Xsd

•<message> define os parâmetros dafunção Web Service

•<portType> define operações deentrada/saída

•<binding> especifica como cada mensagem é enviada pelo canal

Page 17: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

WSDL – Background Standards

• WSDL Schema - ...Implementação

•<service> especifica detalhessobre a implementação

•<port> contém o próprio endereço

Exemplo – tradutor BabelFish

Page 18: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

UDDI – Background Standards• Universal Description, Discovery

and Integration – Publicação/ pesquisa/ desoberta de

WebServices• Serviço de diretório

– Permite que aplicações, agentes, provedores de Web service, usuários de Web service, pessoas, objetos, e procedimentos a localizar uns aos outros

– Páginas brancas – entidades encontradas por nome

– Páginas amarelas – entidades encontradas por características e capacidades

– UDDI corresponde a ambos mas é passivo, simples base de dados

Page 19: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

UDDI – Background Standards

-businessKey-name-description-businessServices-categoryBag-identifierBag

businessEntity

-serviceKey-businessKey-name-description-bindingTemplates-categoryBag

businessService

-bindingKey-serviceKey-description-accessPoint

bindingTemplate

-name-description-overviewDoc-categoryBag-identifierBag

tModel

identifierBag

categoryBag

-keyName-keyValue

keyedReference

-description-overviewDoc

tModelInstanceInfo

Page 20: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

UDDI – Background Standards

• Estrutura de dados

businessEntity: informações sobrea parte que publica informação sobre

o serviço

businessEntitycontém businessServices

businessService: informação descritiva sobre uma família

particular de serviços técnicos

businessServices contém bindingTemplates

bindingTemplate: informação técnica sobre ponto de entrada de

um serviço e especificações deimplementação

tModel: descrições para especificações de serviços ou conjunto de valores. Base para

identificação técnica

bindingTemplates contémreferências para tModelsestas desginam interfacespara o serviço

Page 21: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

UDDI – Background Standards

• Correspondência com WSDL

<import>

<port>

<port>

BusinessEntity

BusinessService

BindingTemplate

BindingTemplate

Service Implementation

UDDI

<service>

Service Interface

<types>

<message>

<portType>

<binding>

tModel

WSDL

Page 22: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

UDDI – Background Standards• Requisição para um UDDI Registry

<?xml version="1.0" encoding="UTF-8"?><find_business xmlns="urn:uddi-

org:api_v3"> <findQualifiers> <findQualifier> uddi:uddi.org:findqualifier:exactmatch </findQualifier> </findQualifiers> <!--find information about all businesses

with the exact name "WeatherService Inc." --> <name>WeatherService Inc.</name></find_business>

Page 23: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

UDDI – Background Standards• Resposta para um UDDI Registry <?xml version="1.0" encoding="UTF-8"?><businessList> <businessInfos> <businessInfo businessKey="...KO..."> <name>WeatherService, Inc.</name> <serviceInfos> <serviceInfo serviceKey="...KN..." businessKey="...K1..."> <name>Temperature Service</name> </serviceInfo> </serviceInfos> </businessInfo> </businessInfos></businessList>

Page 24: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Background - Esquema

Page 25: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Comparação

• Quadro comparativo geral

Page 26: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Web Service X RMI

• Vantagens:– Suporte a operações assíncronas– Orientado a documento

• XML

– Protocolo de comunicação independente de linguagem

• SOAP

– Descrição de serviço independente de linguagem

• WSDL

– Interoperabilidade sobre plataformas• RMI consegue parcialmente através de

IIOP

Page 27: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Web Service X CORBA• Vantagens:

– Fraco acoplamento cliente-servidor– Independente de linguagem– Localização por URL– Aplicabilidade a sistemas de arquitetura de

segurança com Firewall• HTTP porta 80

– Mais aplicável a sistemas com interface Web• Conversão: SOAP message => HTML

– Melhor suporte à mobilidade e à distribuição• Troca de mensagens = facilidade para troca de

endereços• Proxies realizam trabalho transparente para os

envolvidos• Simples reenvio da mensagem em caso de erro

– Clientes limitados (ex: celulares)• Necessidade: enviar / receber SOAP messages• Parser ajustado apenas pela funcionalidade

requerida pela aplicação do cliente

Page 28: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Vantagens• Interoperabilidade• Disponibilização de serviços• Integração com sistemas legados• Liberdade de escolha• Suporte a vários tipos de cliente• Aumento de produtividade• O mercado não absorveu RMI nem

CORBA como ideal para integração B2B• Apoio de empresas como: Microsoft,

IBM, Sun e Oracle• Materialização da idéia de “venda de

serviços”– “Eu publico meu algoritmo XYZ e cobro

pelo seu uso”– Fim da pirataria?

Page 29: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Frameworks – Java

• Visam automatizar a tarefa de geração dos serviços

• Mais comuns:– Axis1.x– Axis2– Celtix– Glue– JBossWS– XFire1.2– GlassFish

Page 30: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Frameworks - comparação

Page 31: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Frameworks em XML

• Apache Axis– Originalmente nomeado IBM SOAP4J,

depois doado e virou Apache SOAP, e finalmente Apache Axis (2002)

– Open– Baseado em Java e XML– Possui uma versão para C++– Dois modos de criação dos Web

Services:• JWS (Java Web Service) – mais

simples• WSDD (Web Service Deployment

Descriptor) – descrição detalhada de como serão criados

• Geração dos WSDL com a interface para os Web Services

Page 32: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Aplicações em BDD

• Cenário de Distribuição

?

Page 33: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Aplicações em BDD

• Evolução

Page 34: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Aplicações em BDD

• Ilustração geral

Page 35: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Aplicações em BDD

• Empresas, parceiros e fornecedores precisam se comunicar– Risco: morte por isolamento– Perda de mercado

• Web Service permite a interligação de diferentes clientes, dispositivos, plataformas, linguagens...

• É a “Web programável”– Fraco acoplamento– Interfaces bem definidas

Page 36: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Aplicações em BDD

• 3ª geração da web

Page 37: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Contexto de uso – Web Services + Distribuição de Dados

• Empresas como UPS, FedEx provêm soluções internas– Ferramentas on-line XML e HTML– WebTools FedEx API– Facilidade para desenvolvedores?

• Desenvolvedores não enxergam uma interface de serviço comum– Implementações específicas– Plataformas proprietárias, limitações...

• Com Web Services fica fácil transpor essas limitações– As companhias implementam uma

interface padrão– Registram seus serviços (UDDI)– Os usuários tem suas requisições

distribuídas de forma mais fácil

Page 38: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Contexto de uso – Web Services + Distribuição de Dados

• Contexto atual

Serviços básicos

Ordem de compraServidor B2B em e-commerce

Status para o usuário

Page 39: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Contexto de uso – Web Services + Distribuição de Dados

• E-Logistics Processes Integration Framework– “Integração” dos serviços das

companhias de entrega para os clientes

• “Distribuição” na visão das empresas– Componentes:

• Common Alliance Interface – abstração para os clientes dos serviços

• Adaptation Layer – conector entre os Web Services e os sistemas legados de cada companhia

• Dynamic Data Binding – função realizada pela camada anterior, conecta o template da conexão aos dados da transação

Page 40: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Contexto de uso – Web Services + Distribuição de Dados

• Ilustração - arquitetura

Fornecimento do template e correspondência dos dados

Submarino, Americanas.com …

procura

usa

Page 41: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Contexto de uso – Web Services + Distribuição de Dados

• BioSimGRID– Framework para distribuição de

dados na área de saúde– Os dados de simulação estão

acessíveis apenas onde foi realizado os experimentos

• Combinação de resultados– Foi construído sobre platadorma

aberta• OGSI (Open Grid Services Infrastructure)• OGSA (Open Grid Service Architecture)• Padrões “de facto” em Grid Computing

– Permitem o tratamento de requisições como “uma máquina virtual única” via Web Services e Grid Computing

– Desafio: “(we estimate an initial size of >2 TB storage for ~1000 trajectories)”

Page 42: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Contexto de uso – Web Services + Distribuição de Dados

• BioSimGRID– Elementos:– GUI

• browser ou outra aplicação web– Services

• Camada dedicada à analise e mineração dos dados para as comunidades biológicas

• Há também serviços auxiliares: monitoramento, transação, e query distribuída

• SOAP/XML– Grid Middleware

• GT3: Provê serviços essenciais para o grid• Mais alguns componentes sobre ele que implementam:

segurança, recurso, gerenciamento, acesso à base de dados e comunicações

– Database/data• Distribuídos ao longo dos sites colaboradores• A camada anterior provê um acesso transparente à essa• Atualmente usa-se IBM DB2 Universal Database

Enterprise Server (Oxford and Southampton)

• Previsão de se usar OGSA-DAI (Open GridService Architecture Database Access and Integration) proverá suporte a requisições distribuídas em meio heterogêneo (DB2, Oracle9i,..)

– OGSA-DAI = DBMS + XML + Distributed SQL

Page 43: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Contexto de uso – Web Services + Distribuição de Dados

• BioSimGRID– Arquitetura

Facilidade de acessoCelular, PDA, desktop...

ServiçosDisponibilizados(UDDI Register)Transparência

ao acesso“Máquina virtual única”

Page 44: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Contexto de uso – Web Services + Distribuição de Dados

• DHRD– Distributed Heterogeneous

Relational Data Warehouse– Reduz computação central,

atraso de rede e acesso transparente à datasets para clientes locais

– As bases de dados se registram em um UDDI Registry como um Web Service

Page 45: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

DHRD - Funcionamento

• DHRD - funcionamento

Clientes enviamrequisição HTTPao Web Server

procura

Retorna basede dados

BindUso do serviço

Page 46: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Conclusões• A integração/distribuição de sistemas

tem sido crucial para as empresas– Web Service e sua interoperabilidade

sobre plataformas facilita o trabalho neste sentido

– Ampliação do leque de plataformas para as empresas

• Flexibilidade de definição de schemas para os dados e informações a serem trocados– Facilidade de mapeamento entre sistemas

• Apoio de grandes empresas• Desenvolvimento de frameworks para

automatização• Reuso• Tecnologia nova

– Potencial imenso

Page 47: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Referências[1] RADKO,John. 2002. Data integration and Web services.

http://www.computerworld.com/databasetopics/data/story/0,10801,70043,00.html?from=story_picks

[2] HANSEN,Mark; MADNICK Stuart; SIEGEL, Michael. Data Integration Using Web Services

[3] GHIJS, Mark. 2004. Web Services in .NET[4] National e-Science Centre. Introduction do Web Services protocols[5] SINGH, Munindar; HUHNS, Michael. Willey, 2005. Service-Oriented

Computing: Semantics, Processes, Agents[6] GOULART, Fernando. 2006. Web Services – Sistema Orientados a

Objetos[7] Chariot Presentations. 2005. Web Services in Java – The shortest path

to expose and consuming Web Services in Java.[8] WU, Bing; TAI, Kaishu. BIOSIMGRID: A DISTRIBUTED DATABASE FOR

BIOMOLECULAR SIMULATIONS[9] HUGHES, Andrew. 2004 Web Services for Distributed Database

Applications[10] IVANOVA, Elena. WSDL Interface of Services for Distributed Search

in Databases[11] TSENOV,Martin. Soap/Xml Method used for Data Exchangebetween Distributed Databases[12] WEI,Han-Chieh; GODFREY,Travis. Database Middleware and Web

Services for Data Distribution and Integration in Distributed Heterogeneous Database Systems

[13] IGBAL,Saima; BUNN, Julian; NEWMAN, Harvey. Distributed Heterogeneous Relational Data Warehouse In A Grid Environment

Page 48: Web Services na Distribuição de Dados Conceitos e Aplicações Farley Millano {fmmf@cin.ufpe.br} Professor: Fernando Fonseca

Dúvidas