Web Services aplicado à Computação em Grade Disciplina Engenharia de Redes Professor: Dr. Michael Stanton Aluno: Marcio Belo Dezembro de 2003 Roteiro • Introdução • Web Services – XML, SOAP, WSDL, UDDI • • • • Computação em Grade OGSA Uso de Web Services no OGSA Conclusão Introdução • Web Services: tecnologia emergente para o problema de RPC • Computação em Grade: potencializar o uso de computadores ligados em rede • OGSA: padronização para ambientes em grade Web Services (1) • Mecanismo de RPC • Proposta aberta mantida pela W3C • Totalmente baseado em padrões abertos – HTTP, TCP/IP, XML, etc. • Independência de plataforma e linguagem • Interface inteligível para computadores • Utiliza a onipresente infra-estrutura da Internet Web Services (2) • RPC (Remote Procedure Call) – Surgiu com o modelo Cliente/Servidor – Implementados nos primeiros SOs de rede – Não havia padronização: cada SO implementava seus protocolos, geralmente binários – Transparência na invocação de procedimentos remotos – client stub e server stub: procedimentos procuradores para o procedimento real Web Services (3) • RPC Web Services (4) • Web Service: encapsula uma lógica de aplicação, acessível programaticamente por um cliente ou outro Web Service • Padrões RPC anteriores como CORBA, DCOM, RMI: arquitetura fortemente acoplada • Web Services: arquitetura fracamente acoplada • São acessados por um servidor HTTP Web Services: Tecnologias (5) Ponteiros para a Descrição WSDL UDDI Encontra um serviço Ponteiros para o serviço Consumidor Descreve o Serviço Web Service SOAP Mensagens em XML Web Services: XML (6) • Língua franca da Internet • Semelhança com o padrão HTML, baseado em tags • Flexibilidade na interpretação dos dados por computador/programador: dado + semântica • Documento XML pode ter outro associado que define sua gramática: DTD ou Schemas • Parser XML: interpretador de fácil acesso Web Services: XML (7) • • • • • • • • • • • • • • • • • • <?xml version="1.0"?> <MANUFACTURER>KomputerSource <PRODUCT> <CLASS>Printer <TYPE>dot matrix</TYPE> </CLASS> <NAME>Wizbang3000</NAME> <FEATURES> <SPEED Units="ppm">40</SPEED> <QUALITY Units="dpi">60</QUALITY> </FEATURES> <PRICE Units="USD"> <RETAIL>200</RETAIL> <WHOLESALE>110</WHOLESALE> </PRICE> <WEIGHT Units="lbs">10</WEIGHT> </PRODUCT> </MANUFACTURER> Web Services: SOAP (8) • Simple Object Access Protocol • Formato de mensagem para invocação de serviços, escrito em XML • Criado inicialmente por iniciativa da Microsoft para o ambiente Windows e adotado pela W3C • SOAP Envelope – SOAP Header: controle da mensagem – SOAP Body: serialização dos parâmetros Web Services: SOAP (9) • • • • • • • • • • • • • • <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Header> <n:alertcontrol env:mustUnderstand="false" xmlns:n="http://example.org/alertcontrol"> <n:priority>1</n:priority> <n:expires>2001-06-22T14:00:00-05:00</n:expires> </n:alertcontrol> </env:Header> <env:Body> <m:alert xmlns:m="http://example.org/alert"> <m:msg>Pick up Mary at school at 2pm</m:msg> </m:alert> </env:Body> </env:Envelope> Web Services: WSDL (10) • • • • • • • Web Services Description Language Descreve a interface (contrato) do serviço Semelhante a IDL de CORBA ou DCOM Escrito em XML Suficiente para produzir proxy (client stub) Acessível por HTTP via Internet Seções – Abstratas: Types, Messages e PortTypes; – Concretas: Bindings e Services; Web Services: WSDL (11) <?xml version="1.0" encoding="UTF-8" ?> ( ... ) <message name="Simple.foo"> <part name="arg" type="xsd:int"/> </message> <message name="Simple.fooResponse"> <part name="result" type="xsd:int"/> </message> <portType name="SimplePortType"> <operation name="foo" parameterOrder="arg" > <input message="wsdlns:Simple.foo"/> <output message="wsdlns:Simple.fooResponse"/> </operation> </portType> (...) Web Services: UDDI (12) • Universal Description, Discovery and Integration • Páginas amarelas de Web Services: classificadas de forma padronizada • Disponibiliza com um Web Service num nodo UDDI • É um sistema de registros: ponteiros para os serviços Computação em Grade • Capacidade de compartilhar e agregar capacidades computacionais e oferecê-las como um serviço • Surgiu com a descentralização da computação, possibilitada pela melhoria nas redes de computadores • Uso de vários computadores colaborando para um mesmo propósito, ao invés de um caríssimo mainframe • Cluster x GRID • Aplicação para problemas que exigem alto poder computacional OGSA (1) • Open Grid Services Architecture • Padrão aberto para implementação da grade • Define interface padrões para: – – – – – Descoberta de serviços Criação dinâmica de serviços Gerenciamento do ciclo de vida dos serviços Notificações Tratamento de erros OGSA (2) • Web Services: mecanismo para troca de mensagem usado no OGSA • Fornece ao OGSA as vantagens de independência e flexibilidade • Arquitetura OGSA é dividida em unidades funcionais de baixo nível: instâncias de Web Services Referências [1] Andrew S. Tanenbaum. Distributed Operating Systems. Prentice Hall. 1995. [2] W3C. Web Services Archtiecture. August, 2003. Disponível em www.w3c.org/TR/2003/WD-ws-arch-20030808/ [3] SYSTINET. Web Services: A Practical Introduction. 2003. [4] uddi.org. UDDI Executive White Paper. November 14, 2001. Site: www.uddi.org [5] uddi.org. UDDI Technical White Paper. September 6, 2000. Site: www.uddi.org [6] Rajkumar Buyya. Answers to the Enterprise Architect Magazine Query. Disponível em http://www.cs.mu.oz.au/~raj/press/EA03/EAInterview.pdf [7] I.Foster, C.Kesselman,J.M.Nick, S.Tuecke. The Phisiology of the Grid – An Open Grid Services Architecture for Distributed Systems Integration. Draft, 2002. Disponível em http://www.gridforum.org/ogsi-wg/drafts/ogsa_draft2.9_2002-06-22.pdf