web services na distribuição de dados conceitos e aplicações farley millano {fmmf@cin.ufpe.br}...

Post on 19-Apr-2015

113 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Web Services na Distribuição de DadosConceitos 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

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

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

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

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

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

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

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

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

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

SOAP – Background Standards

• Exemplo:

SOAP – Background Standards

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

SOAP – Background Standards

• Exemplo Response:

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”

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

WSDL – Background Standards

• WSDL Schema - ...Implementação

•<service> especifica detalhessobre a implementação

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

Exemplo – tradutor BabelFish

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

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

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

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

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>

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>

Background - Esquema

Comparação

• Quadro comparativo geral

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

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

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?

Frameworks – Java

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

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

Frameworks - comparação

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

Aplicações em BDD

• Cenário de Distribuição

?

Aplicações em BDD

• Evolução

Aplicações em BDD

• Ilustração geral

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

Aplicações em BDD

• 3ª geração da web

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

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

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

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

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

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

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”

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

DHRD - Funcionamento

• DHRD - funcionamento

Clientes enviamrequisição HTTPao Web Server

procura

Retorna basede dados

BindUso do serviço

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

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

Dúvidas

top related