Servicios web

4,091 views

Published on

Published in: Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,091
On SlideShare
0
From Embeds
0
Number of Embeds
2,969
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Servicios web

  1. 1. Servicios Web Alberto Molina Coballes Jos´ Domingo Mu˜oz e n Rodr´ ıguez 16 de abril de 2012
  2. 2. Introducci´n o• Es un m´todo de comunicaci´n entre m´quinas a trav´s de la red e o a e (normalmente Internet).• Se habla hoy en d´ de la web programable, que mediante ıa diferentes APIs (denominadas a veces web API) permiten configurar gran cantidad de aplicaciones basadas en recursos de la Web (Web 2.0).• Hay diferentes mecanismos para implementar servicios web, los principales son : XMLRPC (en progresivo desuso), SOAP y REST.• El protocolo de aplicaci´n m´s utilizado es HTTP, aunque SOAP o a permite utilizar otros protocolos.• Hay gran cantidad de APIs p´blicas disponibles para utilizar en u modo lectura, mientras que para utilizarlas en modo escritura, lo habitual es que utilicen alg´n mecanismo de autorizaci´n (OAuth u o p. ej.)2 de 14
  3. 3. SOAP• Simple Object Access Protocol es un est´ndar de la W3C a• Intercambia mensajes XML entre el cliente y el servidor: ◦ El cliente env´ un mensaje XML ıa ◦ El servidor responde con un mensaje XML• Para la descripci´n de las funcionalidades del servicio se suele o utilizar el dialecto XML Web Services Description Language (WSDL).• SOAP en muy completo y descriptivo, pero es relativamente complejo de implementar por lo que est´ perdiendo usos en favor a de REST.3 de 14
  4. 4. Ejemplo de Solicitud SOAP• Protocolo de aplicaci´n HTTP o• Como tenemos que enviar datos, utilizamos el m´todo POST ePOST / services / estructura . asmx HTTP /1.1Host : www . infobustussam . comContent - Type : text / xml ; charset = utf -8Content - Length : lengthSOAPAction : " http :// tempuri . org / GetLineas "<? xml version ="1.0" encoding =" utf -8"? >< soap : Envelope xmlns : xsi =" http :// www . w3 . org /2001/ XMLSchema - instance "xmlns : xsd =" http :// www . w3 . org /2001/ XMLSchema "xmlns : soap =" http :// schemas . xmlsoap . org / soap / envelope /" > < soap : Body > < GetLineas xmlns =" http :// tempuri . org /" / > </ soap : Body ></ soap : Envelope > 4 de 14
  5. 5. Ejemplo de Respuesta SOAP<? xml version ="1.0" encoding =" utf -8"? >< soap : Envelope xmlns : xsi =" http :// www . w3 . org /2001/ XMLSchema - instance "xmlns : xsd =" http :// www . w3 . org /2001/ XMLSchema "xmlns : soap =" http :// schemas . xmlsoap . org / soap / envelope /" > < soap : Body > < G e t L i n easR esp ons e xmlns =" http :// tempuri . org /" > < GetLineasResult > < InfoLinea > < label > string </ label > < nombre > string </ nombre > < sublineas > < InfoSublinea xsi : nil =" true " / > < InfoSublinea xsi : nil =" true " / > </ sublineas > </ InfoLinea > < InfoLinea > < label > string </ label > < nombre > string </ nombre > < sublineas > < InfoSublinea xsi : nil =" true " / > < InfoSublinea xsi : nil =" true " / > </ sublineas > </ InfoLinea > </ GetLineasResult > </ GetLineasResponse > </ soap : Body ></ soap : Envelope > 5 de 14
  6. 6. Ejemplos de clientes SOAP en PythonAmazon S3 (requiere autenticaci´n, s´lo mostramos la conexi´n): o o o >>> from suds . client import Client >>> cliente = Client (" http :// s3 . amazonaws . com / doc /2006 -03 -01/ AmazonS3 . wsdl ") >>> cliente . service . ListAllMyBuckets . method . soap . outputInformaci´n autobuses urbanos de Sevilla (TUSSAM): o >>> from suds . client import Client >>> cliente = Client ( ’ http :// www . infobustussam . com :9001/ services / dinamica . asmx ? wsdl ’) >>> print cliente . service . GetPasoParada ("26" ,"357" ,1)• La respuesta se procesa con m´todos propios de la instancia, e manejo de listas y diccionarios.6 de 14
  7. 7. REST (RESTful web API)• Representational State Transfer (REST)• No es un est´ndar completamente normalizado como SOAP a• Utiliza HTTP para la comunicaci´n entre el cliente y el servidor o• Se define una URI base en el servidor• Comunicaci´n entre cliente y servidor: o ◦ El cliente realiza una petici´n HTTP (GET, POST, PUT o DELETE) o ◦ El servidor contesta con un mensaje en un determinado formato (los m´s usados son XML y JSON) a• Es m´s sencillo de implementar que SOAP y est´ utiliz´ndose de a a a forma muy amplia7 de 14
  8. 8. Ejemplo de petici´n/respuesta REST (XML) oAPI de OpeStreetMap. Solicitud de nodos de bicicletas de alquiler(bicycle rental) en un ´rea rectangular que contiene la Ciudad de aSevilla.wget -O salida . osm " http :// open . mapquestapi . com / xapi / api /0.6/ node [ amenity = bicycle_rental ][ bbox = -6.0838 ,37.3074 , -5.8249 ,37.4653]"Respuesta en formato XML:<? xml version = ’1.0 ’ encoding = ’ UTF -8 ’? >< osm version ="0.6" generator =" Osmosis SNAPSHOT - r26564 " > < node id ="308961227" version ="4" timestamp ="2009 -10 -03 T21 :24:10 Z " uid ="114161" user =" Polarbear " changeset ="2729160" lat ="37.3978439" lon =" -5.9984791" > < tag k =" capacity " v ="20"/ > < tag k =" amenity " v =" bicycle_rental "/ > < tag k =" operator " v =" sevici "/ > </ node > ...</ osm > 8 de 14
  9. 9. Ejemplo de petici´n/respuesta REST (JSON) oAPI de Yahoo weather. Solicitud de informaci´n meteorol´gica actual o opara la ciudad de Sevilla:wget -O salida . json " http :// weather . yahooapis . com / forecastjson ? w =774508"Respuesta en formato JavaScript Object Notation (JSON):{" units ": {" temperature ":" F " , " speed ":" mph " , " distance ":" mi " , " pressure ":" in "} ," location ": {" location_id ":" SPXX0074 " , " city ":" Seville " , " s t a t e _ ab br e vi at i on ":" AN " , " c o u n t r y _ a b b r e v i a t i o n ":" SP " , " elevation ":16 , " latitude ":37.38000000000000 , " longitude ": -5.98000000000000} ," wind ": {" speed ":10.00000000000000 , " direction ":" N "} ,... 9 de 14
  10. 10. SOAP vs REST. XML vs JSON• ¿Qu´ se utiliza m´s SOAP o REST? e a ◦ En determinados entornos empresariales SOAP, en el resto est´ ganando cada vez m´s adeptos REST a a• ¿Qu´ se utiliza m´s XML o JSON? e a ◦ XML ha sido y es todav´ el formato m´s utilizado, pero JSON es m´s ıa a a sencillo de utilizar y para muchas aplicaciones es m´s que suficiente. a• ¿Qu´ debo aprender? e ◦ Como m´ ınimo cliente REST y manejo de XML o JSON10 de 14
  11. 11. SOAP vs REST. XML vs JSON 1 1 Fuente:http://www.programmableweb.com11 de 14
  12. 12. Web mashups• Mashup: Popurr´ ı• Podemos desarrollar gran cantidad de aplicaciones utilizando parcialmente o en su totalidad datos de terceros y combin´ndolos a como se nos ocurra. Si no lo conoces, p´sate por www.programmableweb.com a• Mapas, redes sociales, b´squedas, m´sica, etc. u u• Algunos ejemplos: ◦ http://www.foursquare.com ◦ http://twittervision.com12 de 14
  13. 13. Servicios web y administraci´n de sistemas o• Esto es muy bonito, pero ¿lo necesita un administrador de sistemas? ◦ S´ claro que s´ ı, ı.• Un Administrador necesita programar sus tareas (esto no se puede dejar en manos de los desarrolladores :-p)• ¿Sabes lo que es la nube o est´s en las nubes? a ◦ Manejo de instancias en la nube (p. ej. Amazon Web Services, OpenStack, ...) ◦ Almacenamiento remoto ◦ Sistemas de autenticaci´n externos o ◦ ...• ¿Realmente crees que un Administrador manejar´ todo eso con el ıa rat´n? o13 de 14
  14. 14. Enlaces recomendados• http://www.programmableweb.com• http://www.slideshare.net/jmusser/pw-glue-conmay201014 de 14

×