480 likes | 580 Views
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
E N D
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 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> Documento derivado do 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>
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
Transport protocol MIME header SOAP ENVELOPE SOAP HEADER SOAP BODY FAULT SOAP – Background Standards Envolve todo documento • SOAP Messages • Conteúdo: • Um Envelope • Um Header (optional) • Um Body • O Body pode conter um elemento Fault Informações adicionais Núcleo da mensagem - chamada RPC ou mensagem XML 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 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 • 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 bindingTemplates contém referências para tModels estas desginam interfaces para o serviço businessServices contém bindingTemplates bindingTemplate: informação técnica sobre ponto de entrada de um serviço e especificações de implementação
UDDI – Background Standards • Correspondência com 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>
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 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 Status para o usuário Serviços básicos 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 • 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 Facilidade de acesso Celular, PDA, desktop... • BioSimGRID • Arquitetura Serviços Disponibilizados (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 procura • DHRD - funcionamento 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,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 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 ?