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