Web Services na Distribuição
de Dados
Conceitos e Aplicações
Farley Millano
{[email protected]}
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 online)
• 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:
Ubiquitous Communications:
XML
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
pedido.xsd
<?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”?>
<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>
Documento
derivado do
schema
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
Envolve todo documento
Transport protocol
• SOAP Messages
MIME header
– Conteúdo:
– Um Envelope
Informações adicionais
– Um Header
da mensagem (optional) Núcleo
chamada RPC ou
– Um Body mensagem
XML própria
– O Body pode
conter um
elemento Fault
SOAP ENVELOPE
SOAP HEADER
SOAP BODY
FAULT
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 outras
Entidades
•<types> definição da informação –
Xsd
•<message> define os parâmetros da
função Web Service
•<portType> define operações de
entrada/saída
•<binding> especifica como cada
mensagem é enviada pelo canal
WSDL – Background Standards
• WSDL Schema - ...Implementação
•<service> especifica detalhes
sobre 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
businessEntity
tModel
-businessKey
-name
-description
-businessServices
-categoryBag
-identifierBag
identifierBag
businessService
categoryBag
-serviceKey
-businessKey
-name
-description
-bindingTemplates
-categoryBag
-name
-description
-overviewDoc
-categoryBag
-identifierBag
keyedReference
-keyName
-keyValue
bindingTemplate
tModelInstanceInfo
-bindingKey
-serviceKey
-description
-accessPoint
-description
-overviewDoc
UDDI – Background Standards
• Estrutura de dados
businessEntity: informações sobre
a parte que publica informação sobre
o serviço
tModel: descrições para
especificações de serviços ou
conjunto de valores. Base para
identificação técnica
businessEntity
conté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 de
implementação
bindingTemplates contém
referências para tModels
estas desginam interfaces
para o serviço
UDDI – Background Standards
• Correspondência com
WSDL
WSDL
UDDI
Service Implementation
<import>
<service>
BusinessEntity
BusinessService
<port>
<port>
BindingTemplate
BindingTemplate
Service Interface
<types>
<message>
<portType>
<binding>
tModel
UDDI – Background Standards
• Requisição para um UDDI Registry
<?xml version="1.0" encoding="UTF-8"?>
<find_business xmlns="urn:uddiorg: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
Status para o usuário
Servidor B2B em e-commerce
Ordem de compra
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
procura
usa
Submarino, Americanas.com …
Fornecimento do template e correspondência dos dados
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
•
–
Services
•
•
•
–
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
•
•
•
•
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
•
•
–
browser ou outra aplicação web
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
Facilidade de acesso
Celular, PDA, desktop...
– Arquitetura
Transparência
ao acesso
“Máquina virtual única”
Serviços
Disponibilizados
(UDDI Register)
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
procura
Retorna base
de dados
Bind
Uso do serviço
Clientes enviam
requisição HTTP
ao Web Server
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,70
043,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 Exchange
between 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
Download

Web Services em SID - Centro de Informática da UFPE