REST Web Services Bruno C. de Paula 2º Semestre 2009 > PUCPR > 23/10/09 Bruno C. de Paula Web Services REST 2º Semestre 2009 > PUCPR > Pós em BD
Trabalharemos agora com os serviços REST; 23/10/09 Resumo da aula Trabalharemos agora com os serviços REST; Entender uma arquitetura orientada a recursos é importante para valorizar uma arquitetura orientada a serviços.
Modelos de Web Service: SOAP x REST 23/10/09 Modelos de Web Service: SOAP x REST 23/10/09 3
23/10/09 23/10/09 SOAP Fonte: http://www.flickr.com/photos/soapylove/506548235/ 23/10/09 4 4
23/10/09 23/10/09 5
Analogia com restaurante! 23/10/09 Analogia com restaurante! Você busca nas páginas amarelas (UDDI) um restaurante para comer; Chegando lá, recebe um cardápio (WSDL) com as opções de comida; Faz o pedido ao garçom (SOAP) que andando, leva à cozinha (HTTP); Lá na cozinha, você não sabe o que tem dentro (e não importa), o Cozinheiro prepara a comida (Sistema); Depois de pronto, recebe uma resposta (SOAP). 23/10/09 6
Padrões para desenvolver SOAP Pilha WS-* 23/10/09 Padrões para desenvolver SOAP Pilha WS-* Dezenas de padrões; “BigWebServices”; Segurança: WS-Security, WS-Policy, XML-Signature, XML-Encryption; Notificação de eventos: WS-Notification, WS-Eventing; Endereçamento: WS-Addressing; Tolerância a falhas: WS-Reliability; Transações: WS-Transaction. 23/10/09 7
23/10/09 “BigWebServices?” WS-* >> ASAP (Asynchronous Service Access Protocol), BPEL4WS (Business Process Execution Language), ebSOA TC (Electronic Business Service Oriented Architecture), ebXML (Electronic Business XML), International Health Continuum TC, oBIX TC , SAML (Security Assertion Markup Language), SOAP (Simple Object Access Protocol), SOAP MTOM (SOAP Message Transmission Optimization Mechanism), ranslation WS TC , UBL (Universal Business Language), UDDI (Universal Description, Discovery, and Integration), WS-Addressing, WS- AtomicTransaction, WSBPEL (Business Process Execution Language), WS-CAF (WS Composite Application Framework ), WS-CF (WS Coordination Framework), WS- Choreography , WS-CDL (Web Services Choreography Description Language), WS- Coordination, WS-CTX, WS Context, WS-Discovery (Web Services Dynamic Discovery), WSDL (WS Description Language), WSDM (WS Distributed Management), WS-Enumeration, WS-Eventing, WS-Federation (Web Services Federation Language), WSIL (WS Inspection Language), WS-Manageability, WS- MetadataExchange (Web Services Metadata Exchange), WS-MessageDelivery, WS- Notification, WS-Policy, WS-Provisioning, WS-Reliability, WS Reliable Messaging, WS-RF (WS-Resource Framework), WS-Reliablemessaging , WSRP (WS Remote Portals), WS-Security, WS-SecureConversation, WS-SecurityPolicy, WS Security Services TC, WS-TM (WS Transaction Management), WS-Transfer, WS-Trust, XML- Encryption, XML-Signature 23/10/09 8
23/10/09 23/10/09 REST Fonte: http://www.flickr.com/photos/hamed/303386242/sizes/l/ 23/10/09 9 9
REST Cada url deve representar um recurso (ROA); 23/10/09 REST Cada url deve representar um recurso (ROA); Geralmente, via método GET, cada recurso deve ser diferenciável; Usa os verbos HTTP; NÃO TEM WSDL e nem UDDI! Retorno livre: XML; JSON; Etc. 23/10/09 10
Exemplo de chamada a um serviço 23/10/09 23/10/09 Exemplo de chamada a um serviço Mais exemplos: http://local.yahooapis.com/MapsService/V1/mapImage?appid=YD-4g6HBf0_JX0yq2IsdnV1Ne9JTpKxQ3Miew--&city=Curitiba http://json-random.appjet.net/?num=5&min=10&max=20&callback=randomcallback http://iplocationtools.com/ip_query_country.php?ip=74.125.45.100 http://www.spore.com/static/model/500/226/147/500226147573.xml ... http://local.yahooapis.com/MapsService/V1/mapImage?appid=YD- 4g6HBf0_JX0yq2IsdnV1Ne9JTpKxQ3Miew--&city=Curitiba http://json- random.appjet.net/?num=5&min=10&max=20&callback=randomcallback http://iplocationtools.com/ip_query_country.php?ip=74.125.45.100 http://www.spore.com/static/model/500/226/147/500226147573.xml 23/10/09 11 11
23/10/09 Verbos HTTP Origem da imagem: http://i.msdn.microsoft.com/dd941696.image004%28pt- br%29.png
Exemplo voltado para Banco de Dados – Amazon S3 23/10/09 Exemplo voltado para Banco de Dados – Amazon S3 Amazon's Simple Storage Service; Serviço de armazenamento e transferência de arquivos sob demanda; 23/10/09 13
Exemplo voltado para Banco de Dados – Amazon S3 - Comandos 23/10/09 Exemplo voltado para Banco de Dados – Amazon S3 - Comandos GET / - Lista seus depósitos de dados; GET /depósito – Lista objetos de um depósito; PUT /depósito – Cria um depósito; GET /depósito/objeto – Obtém o valor e metadados sobre um objeto; DELETE /depósito/objeto – Exclui um objeto. Verbos simples, voltados à manipulação de recursos! 23/10/09 14
Programação de serviços REST 23/10/09 Programação de serviços REST Java: JSR-311 (JAX-RS), RestLet, Apache CFX, GlassFish Jersey, Gomba … .Net: WCF REST Starter Kit; ... Você não precisa de nenhum kit para implementar REST, é só entender como desenvolver um aplicativo Web! 23/10/09 15
este não é um curso de Programação! 23/10/09 Lembre-se: este não é um curso de Programação! 23/10/09 16
Orquestração de serviços REST via geradores de mashup 23/10/09 Orquestração de serviços REST via geradores de mashup Vamos usar o Yahoo! Pipes: http://pipes.yahoo.com Serviços Similares: IBM ManyEyes e IBM Lotus Mashups; Intel MashMaker; OpenKapow; Serena Business Mashups; JackBe; 23/10/09 17
23/10/09 Referência sugerida RESTFul Serviços Web – Leonard Richardson & Sam Ruby 23/10/09 18