Introduccion a los Servicios Web Rest

13,484 views

Published on

En estas transparencias se hace un repaso a las ventajas de la computación distribuida y a las distintas iniciativas de Servicios Web, para terminar en los servicios de tipo REST.

Estas transparencias son la introducción a las transparencias sobre consumo de Servicios Web REST en PHP (http://www.slideshare.net/brenes/rest-en-php).

Usado en el Curso de Extensión Universitaria "Desarrollo de aplicaciones web mediante servicios web y APIs abiertas" de la Universidad de Oviedo: http://directo.uniovi.es/postgrado/cabecera_ep.asp?Curso=2008&IdPrograma=5187

Published in: Education, Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
13,484
On SlideShare
0
From Embeds
0
Number of Embeds
52
Actions
Shares
0
Downloads
277
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Introduccion a los Servicios Web Rest

  1. 1. Introducción a Servicios Web David J. Brenes Martínez Desarrollador Introducción a Servicios Web en Grupo Índigo Estructura de una aplicación David J. Brenes Martínez ¿Cómo se Desarrollador en Grupo Índigo comunican las aplicaciones? HTTP como Curso de Extensión Universitaria protocolo de Desarrollo de aplicaciones web mediante servicios web y APIs abiertas transporte Universidad de Oviedo XML-RPC SOAP REST 2009/07/20 Conclusiones Créditos y Licencia
  2. 2. La visión del desconocimiento Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo La aplicación es un bloque Estructura de una aplicación Todas las operaciones ¿Cómo se están dentro de la comunican las aplicaciones? misma aplicación. HTTP como protocolo de Los datos están en la transporte XML-RPC propia aplicación. SOAP REST Conclusiones Créditos y Licencia
  3. 3. Una visión un poco más realista Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo La aplicación está Índigo formada por Estructura de componentes. una aplicación Algunas operaciones ¿Cómo se comunican las no pertenecen a la aplicaciones? HTTP como aplicación. protocolo de transporte Los datos están en XML-RPC SOAP sitios externos. REST Conclusiones Créditos y Licencia
  4. 4. Una visión un poco más óptima Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Componentes en diferentes Estructura de una aplicación ordenadores. ¿Cómo se comunican las Comunicación aplicaciones? mediante protocolos. HTTP como protocolo de Desacoplamiento transporte XML-RPC entre aplicaciones. SOAP REST Conclusiones Créditos y Licencia
  5. 5. Una visión un poco distribuida Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Compartición de Estructura de datos entre una aplicación aplicaciones. ¿Cómo se comunican las aplicaciones? Posible medio de HTTP como comunicación entre protocolo de transporte aplicaciones. XML-RPC SOAP REST Conclusiones Créditos y Licencia
  6. 6. Una visión distribuida Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Partes de la aplicación en otros Estructura de una aplicación ordenadores. ¿Cómo se Solicitud de servicios. comunican las aplicaciones? Mayor HTTP como protocolo de desacoplamiento transporte XML-RPC entre aplicaciones. SOAP REST Conclusiones Créditos y Licencia
  7. 7. Una visión realmente distribuida Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Estructura de Componentes una aplicación reaprovechables. ¿Cómo se comunican las Simplificación de aplicaciones? HTTP como desarrollo. protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  8. 8. Abundantes escenarios Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Conexión a Base de Datos Estructura de Aplicaciones clientes-servidor. una aplicación ¿Cómo se Conexiones FTP/Telnet comunican las aplicaciones? Navegador Web HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  9. 9. Ya... ¿pero cómo? Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Protocolos ad-hoc. Estructura de Las aplicaciones se mandan mensajes unas a otras. una aplicación Los mensajes pueden ser órdenes a ejecutar. ¿Cómo se comunican las aplicaciones? Los interlocutores deben tener la lógica para enviar HTTP como mensajes. protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  10. 10. Pidiendo cosas... RPC Introducción a Servicios Web David J. Brenes Martínez Desarrollador Remote Procedure Call en Grupo Índigo Llamadas a operaciones en aplicaciones remotas. Estructura de Se mandan los parámetros y la orden a ejecutar. Se una aplicación recibe el resultado. ¿Cómo se comunican las Hay muy diversas implementaciones aplicaciones? HTTP como Java RMI protocolo de transporte .NET Remoting XML-RPC ¡¡CORBA!! SOAP REST Conclusiones Créditos y Licencia
  11. 11. Pidiendo cosas... RPC Introducción a Servicios Web David J. Brenes Martínez Ejemplo de RPC Desarrollador en Grupo Índigo objeto.metodo(); Estructura de una aplicación El método podría ejecutarse en remoto... ¿Cómo se comunican las Normalmente se acompañan de lenguajes de aplicaciones? descripción HTTP como protocolo de Facilidad de programación transporte Estandarización XML-RPC SOAP Automatización REST Conclusiones Créditos y Licencia
  12. 12. Formatos ad-hoc Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Se ajustan el 100% al problema Estructura de una aplicación Pueden ser optimizados y modificados ¿Cómo se Tienen una adopción más rápida en escenarios comunican las aplicaciones? simples HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  13. 13. Formatos ad-hoc Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Cada implementación empieza de cero Estructura de una aplicación Requieren un proceso de diseño del protocolo ¿Cómo se Requiere la adopción del protocolo por parte del cliente comunican las aplicaciones? y el servidor HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  14. 14. ¿Qué se necesita? Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Estándar reconocido Estructura de Múltiples implementaciones una aplicación ¿Cómo se Soporte de envío de mensajes comunican las aplicaciones? Formato ‘simple’ que soporte cosas complejas HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  15. 15. Who are you gonna call? Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Estructura de una aplicación ¿Cómo se comunican las aplicaciones? HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  16. 16. Estructurando el mensaje Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo XML permite representar entidades Estructura de Los mensajes consisten de entidades (Llamada a una aplicación método, tipos, parámetro, valor de retorno, fallo. . . ) ¿Cómo se comunican las aplicaciones? El formato permite intercambiar mensajes equivalentes HTTP como a llamadas de métodos protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  17. 17. Estructurando el mensaje Introducción a Servicios Web David J. Brenes Ejemplo de RPC Martínez Desarrollador en Grupo <?xml version="1.0"?> Índigo <methodCall> Estructura de <methodName>examples.getStateName</methodName> una aplicación <params> ¿Cómo se comunican las <param> aplicaciones? <value><i4>40</i4></value> HTTP como protocolo de </param> transporte XML-RPC </params> SOAP REST </methodCall> Conclusiones Créditos y Licencia
  18. 18. Implementaciones Introducción a Servicios Web David J. PHP Brenes Martínez C++ Desarrollador en Grupo Índigo Java Estructura de .NET una aplicación Ruby ¿Cómo se comunican las Python aplicaciones? HTTP como Objetive-C (Mac) protocolo de transporte Perl XML-RPC SOAP REST Action Script Conclusiones ¡Haskell! Créditos y Licencia
  19. 19. Ventajas Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Todo lenguaje... Índigo Capaz de realizar peticiones HTTP puede realizar la Estructura de una aplicación comunicación. ¿Cómo se Capaz de procesar XML puede procesar la respuesta. comunican las aplicaciones? HTTP como XML-RPC = HTTP + XML protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  20. 20. Más información sobre el servicio Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo XML-RPC describe las llamadas que se pueden realizar. Estructura de una aplicación Más información podría llevar a una mayor ¿Cómo se comunican las automatización. aplicaciones? HTTP como XML-RPC no está preparado para crecer. protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  21. 21. Más información sobre el servicio Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo SOAP permite una mayor descripción Estructura de una aplicación Más información => mayor automatización. ¿Cómo se comunican las Más información => más funcionalidad aplicaciones? HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  22. 22. Datos sobre SOAP Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Evolución de XML-RPC Estructura de Formato adoptado por el W3C una aplicación Está en su versión 2.0, aunque la más soportada es la ¿Cómo se comunican las 1.1 aplicaciones? HTTP como Forma parte del conjunto WS-* protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  23. 23. Describiendo el servicio Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo SOAP recupera los lenguajes de descripción de servicio. Estructura de una aplicación Se describen tipos, operaciones, excepciones, ‘puntos ¿Cómo se comunican las de entrada’ y más aplicaciones? HTTP como La descripción se realiza mediante un fichero WSDL protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  24. 24. Describiendo el servicio Introducción a Servicios Web David J. Brenes Martínez Ejemplo de WSDL Desarrollador en Grupo Índigo <?xml version="1.0" encoding="UTF-8"?> <description xmlns="http://www.w3.org/ns/wsdl" Estructura de una aplicación xmlns:tns="http://www.example.com/wsdl20sample" ¿Cómo se xmlns:whttp="http://www.w3.org/ns/wsdl/http" comunican las aplicaciones? xmlns:wsoap="http://www.w3.org/ns/wsdl/soap" HTTP como targetNamespace="http://www.example.com/wsdl20sample"> protocolo de transporte ... XML-RPC SOAP </description> REST Conclusiones Créditos y Licencia
  25. 25. Creando tipos Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo En XML-RPC se pueden crear estructuras nuevas Estructura de una aplicación EN SOAP se permite la definición de nuevos tipos ¿Cómo se comunican las Uso de XML-Schema aplicaciones? HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  26. 26. Creando tipos Introducción a Servicios Web Ejemplo de WSDL - Tipos David J. Brenes <types> Martínez Desarrollador <xs:schema en Grupo xmlns="http://www.example.com/wsdl20sample" Índigo xmlns:xs="http://www.w3.org/2001/XMLSchema" target- Estructura de una aplicación Namespace="http://www.example.com/wsdl20sample"> ¿Cómo se <xs:element name="request"> comunican las aplicaciones? <xs:complexType> HTTP como <xs:attribute name="method" type="xs:string" protocolo de transporte use="required"/> XML-RPC SOAP </xs:complexType> REST </xs:element> Conclusiones </xs:schema> Créditos y Licencia </types>
  27. 27. Definiendo la interface Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Se define qué operaciones se permiten Estructura de una aplicación Se definen los parámetros y respuestas ¿Cómo se comunican las Se definen las excepciones aplicaciones? HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  28. 28. Definiendo la interface Introducción a Servicios Web David J. Brenes Ejemplo de WSDL - Interfaces Martínez Desarrollador en Grupo <interface name="RESTfulInterface"> Índigo <fault name="ClientError" element="tns:response"/> Estructura de <operation name="Get" una aplicación pattern="http://www.w3.org/ns/wsdl/in-out"> ¿Cómo se comunican las <input messageLabel="GetMsg" element="tns:request"/> aplicaciones? <output messageLabel="SuccessfulMsg" HTTP como protocolo de element="tns:response"/> transporte XML-RPC </operation> SOAP REST </interface> Conclusiones Créditos y Licencia
  29. 29. Especificando la capa de transporte Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo SOAP permite a priori varias capas de transporte, no Estructura de una aplicación solo HTTP. ¿Cómo se comunican las Se pueden especificar varios protocolos de transporte. aplicaciones? HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  30. 30. Especificando la capa de transporte Introducción a Servicios Web Ejemplo de WSDL - Binding David J. Brenes <binding name="RESTfulInterfaceHttpBinding" Martínez Desarrollador interface="tns:RESTfulInterface" en Grupo Índigo type="http://www.w3.org/ns/wsdl/http"> Estructura de <operation ref="tns:Get" whttp:method="GET"/> una aplicación <operation ref="tns:Post" whttp:method="POST" ¿Cómo se comunican las whttp:inputSerialization="application/x-www-form- aplicaciones? urlencoded"/> HTTP como protocolo de <operation ref="tns:Put" whttp:method="PUT" transporte whttp:inputSerialization="application/x-www-form- XML-RPC SOAP urlencoded"/> REST Conclusiones <operation ref="tns:Delete" whttp:method="DELETE"/> Créditos y </binding> Licencia
  31. 31. Indicando el punto de entrada Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Se puede indicar la URL en la que responderá el servicio web Estructura de una aplicación Hay un solo punto de entrada para todas las ¿Cómo se operaciones comunican las aplicaciones? SOAP indica en el mensaje la operación concreta que HTTP como protocolo de deseamos transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  32. 32. Indicando el punto de entrada Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Ejemplo de WSDL - Servicicios Índigo <service name="RESTfulService" Estructura de interface="tns:RESTfulInterface"> una aplicación ¿Cómo se <endpoint name="RESTfulServiceHttpEndpoint" comunican las aplicaciones? binding="tns:RESTfulInterfaceHttpBinding" HTTP como address="http://www.example.com/rest/"/> protocolo de transporte </service> XML-RPC SOAP REST Conclusiones Créditos y Licencia
  33. 33. El ecosistema WS-* Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Conjunto de especificaciones sobre servicios web SOAP Estructura de una aplicación Cada especificación se especializa en un aspecto de ¿Cómo se comunican las los Servicios Web aplicaciones? HTTP como Juntos forman un conjunto bastante coherente protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  34. 34. El ecosistema WS-* Introducción a Servicios Web David J. Brenes Martínez WS-Addressing: Encaminamiento de mensajes SOAP. Desarrollador en Grupo Índigo WS-Transfer: Transferencia de recursos involucrados en WS-Adressing Estructura de una aplicación WS-Eventing: Suscripción a otros Servicios Web ¿Cómo se comunican las WS-Policy: Soporte de políticas (de uso, de servicio. . . ) aplicaciones? WS-Security: Aspectos de seguridad HTTP como protocolo de transporte WS-BPEL y WS-Choreography: Relaciones entre XML-RPC SOAP servicios web para definir procesos de negocio REST Conclusiones Créditos y Licencia
  35. 35. ¿Suficiente descripción? Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo La toma de decisiones no se automatiza Estructura de Necesidad de aplicar sistemas de razonamiento e una aplicación inferencia ¿Cómo se comunican las Web Semántica + Servicios Web = Servicios Web aplicaciones? HTTP como Semánticos protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  36. 36. Implementación Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo El desarrollo de un WSDL puede ser muy duro Estructura de El procesado de los mensajes y sus respuestas ya no una aplicación es trivial ¿Cómo se comunican las Existencia de múltiples herramientas de automatización aplicaciones? HTTP como ‘Necesidad’ de dichas herramientas protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  37. 37. Generación de código Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Ejemplos: Estructura de PHP: NuSOAP una aplicación ¿Cómo se JAVA: wsdl2java comunican las aplicaciones? .NET: Visual Studio HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  38. 38. Generación de código Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Se indica el fichero descriptor Índigo La herramienta genera clases que se encargan de toda Estructura de una aplicación la comunicación por HTTP ¿Cómo se Se crean clases que simbolizan las operaciones y comunican las aplicaciones? tienen métodos para realizar la llamada. HTTP como protocolo de En lenguajes dinámicos las clases se crean al vuelo transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  39. 39. Generación de WSDL Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Ejemplos: Índigo PHP: NuSOAP Estructura de una aplicación PHP (Symfony): ckWebService ¿Cómo se comunican las JAVA: java2wsdl aplicaciones? HTTP como .NET: Visual Studio protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  40. 40. Generación de WSDL Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Se indican las operaciones a exponer Estructura de una aplicación La herramienta genera la descripción de los servicios ¿Cómo se Se crean tipos para hacer corresponder con los comunican las aplicaciones? remotos HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  41. 41. Ventajas Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Mayor descripción del servicio Estructura de una aplicación Más funcionalidades (especificaciones para seguridad, ¿Cómo se orquestación de servicios. . . ) comunican las aplicaciones? Herramientas que facilitan el desarrollo HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  42. 42. Ventajas Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Más estables y fiables (la descripción indica los detalles sobre la comunicación) Estructura de una aplicación las modificaciones solo requieren ejecutar de nuevo la ¿Cómo se herramenta de generación de código comunican las aplicaciones? Usados en entornos donde se requiere muy alta HTTP como protocolo de fiabilidad transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  43. 43. Back to basics Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo SOAP exige una descripción más detallada Índigo SOAP da soporte a muchas funcionalidades extra Estructura de una aplicación (seguridad, confianza. . . ) ¿Cómo se SOAP requiere herramientas adecuadas comunican las aplicaciones? HTTP como SOAP es demasiado complejo. protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  44. 44. Back to basics Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo HTTP es un método de transporte válido Estructura de HTTP ofrece alguna funcionalidad extra (HTTPS para una aplicación conexiones seguras) ¿Cómo se comunican las HTTP dispone de diversos ‘verbos’ para distintas aplicaciones? HTTP como acciones (GET, POST, PUT. . . ) protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  45. 45. Filosofía REST Introducción a Servicios Web David J. Brenes Las peticiones se hacen a recursos, no a métodos Martínez Desarrollador No es ‘dame los datos del alumno 1’ sino ‘acceder al en Grupo Índigo alumno 1’ Cada recurso equivale a un punto de entrada para el Estructura de una aplicación servicio web ¿Cómo se SOAP disponía de 1 punto de acceso comunican las aplicaciones? Los métodos que se pueden invocar son los del HTTP como estándar HTTP protocolo de transporte Para el mismo punto de acceso (recurso) se pueden XML-RPC SOAP ejecutar distintas acciones REST Está basado en HTTP Conclusiones Créditos y Licencia
  46. 46. Filosofía REST Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Concepto publicado por Roy Fielding en su tesis doctoral. Índigo REST enables intermediate processing by constraining Estructura de una aplicación messages to be self-descriptive: interaction is stateless ¿Cómo se between requests, standard methods and media types are comunican las aplicaciones? used to indicate semantics and exchange information, and HTTP como responses explicitly indicate cacheability. protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  47. 47. Filosofía REST Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo No es un estándar Estructura de una aplicación No define formatos ¿Cómo se comunican las Es una manera de desarrollar servicios web aplicaciones? HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  48. 48. REST y CRUD Introducción a Servicios Web David J. Brenes Martínez Desarrollador En un sistema basado en métodos (RPC) hay ‘n’ en Grupo acciones posibles Índigo En un sistema basado en recursos (RES) hay ‘n’ Estructura de una aplicación recursos, pero solo 4 acciones básicas ¿Cómo se Un recurso: comunican las aplicaciones? Se crea HTTP como Se obtiene protocolo de transporte Se actualiza XML-RPC SOAP Se elimina REST Conclusiones Créditos y Licencia
  49. 49. REST y CRUD Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Problema básico de gestión de datos: CRUD Índigo CREATE Estructura de una aplicación RETRIEVE ¿Cómo se comunican las UPDATE aplicaciones? HTTP como DELETE protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  50. 50. REST y CRUD Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Problema básico de gestión de datos: CRUD => PGPD Índigo CREATE => PUT Estructura de una aplicación RETRIEVE => GET ¿Cómo se comunican las UPDATE => POST aplicaciones? HTTP como DELETE => DELETE protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  51. 51. Método PUT Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo RFC 2616, HTTP PUT Índigo The PUT method requests that the enclosed entity be Estructura de una aplicación stored under the supplied Request-URI. ¿Cómo se If the Request-URI refers to an already existing resource, comunican las aplicaciones? the enclosed entity SHOULD be considered as a modified HTTP como version of the one residing on the origin server. protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  52. 52. Método PUT Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Estructura de una aplicación ¿Cómo se comunican las aplicaciones? HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  53. 53. Método GET Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo RFC 2616, HTTP GET Estructura de una aplicación The GET method means retrieve whatever information (in ¿Cómo se comunican las the form of an entity) is identified by the Request-URI. aplicaciones? HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  54. 54. Método GET Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Estructura de una aplicación ¿Cómo se comunican las aplicaciones? HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  55. 55. Método POST Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo RFC 2616, HTTP POST Estructura de The POST method is used to request that the origin server una aplicación accept the entity enclosed in the request as a new ¿Cómo se comunican las subordinate of the resource identified by the Request-URI in aplicaciones? the Request-Line. HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  56. 56. Método POST Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo RFC 2616, HTTP POST Estructura de una aplicación - Annotation of existing resources; ¿Cómo se comunican las - Extending a database through an append operation. aplicaciones? HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  57. 57. Método POST Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Estructura de una aplicación ¿Cómo se comunican las aplicaciones? HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  58. 58. Método DELETE Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo RFC 2616, HTTP DELETE Estructura de una aplicación The DELETE method requests that the origin server delete ¿Cómo se comunican las the resource identified by the Request-URI. aplicaciones? HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  59. 59. Método DELETE Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Estructura de una aplicación ¿Cómo se comunican las aplicaciones? HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  60. 60. REST y otros protocolos Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo REST no detalla formatos Estructura de una aplicación XML-RPC podría implementarse sobre REST ¿Cómo se comunican las SOAP 2.0 permite crear servicios web RESTful aplicaciones? HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  61. 61. Definición del servicio Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo REST no habla de definición de servicio Índigo La respuesta puede tener el formato que se quiera Estructura de una aplicación (XML, JSON, HTML. . . ) ¿Cómo se REST no contempla el lanzamiento de excepciones comunican las aplicaciones? HTTP posee códigos de error para indicar problemas HTTP como protocolo de Puede usarse un lenguaje de descripción sobre REST transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  62. 62. Funcionalidades añadidas Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Las funcionalidades están presentes en HTTP Índigo Estructura de Seguridad mediante HTTPS una aplicación ¿Cómo se Autenticación mediante HTTP-Auth comunican las aplicaciones? Gestión de errores HTTP como protocolo de Posibilidad de incorporar certificados digitales transporte XML-RPC Manejo de sesiones en el servidor SOAP REST Conclusiones Créditos y Licencia
  63. 63. Comunicación entre aplicaciones Introducción a Servicios Web David J. Brenes Martínez Desarrollador Una aplicación aislada está muy limitada. en Grupo Índigo La separación de funciones permite optimizar Estructura de desarrollos y aplicaciones una aplicación ¿Cómo se La comunicación puede realizarse entre distintos comunican las aplicaciones? ordenadores HTTP como Las aplicaciones pueden comunicarse con varias protocolo de transporte aplicaciones XML-RPC SOAP REST Conclusiones Créditos y Licencia
  64. 64. Formatos de comunicación Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Un formato ad-hoc es rápido de diseñar (mal) Estructura de Un formato estándar puede no ajustarse al 100% una aplicación Un formato estandar cuenta con más experiencia ¿Cómo se comunican las aplicaciones? Un formato estándar contará con implementación HTTP como HTTP es un formato estándar de comunicaciones protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  65. 65. Servicios Web Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Intercambio de mensajes a través de HTTP Índigo XML-RPC: Formato básico de llamada a procedimiento Estructura de remoto. una aplicación ¿Cómo se SOAP: Formato RPC más elaborado y con varios comunican las aplicaciones? estándares a su alrededor HTTP como REST: Filosofía de desarrollo de Servicios Web protocolo de transporte basada en HTTP XML-RPC SOAP REST Conclusiones Créditos y Licencia
  66. 66. Servicios Web Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Estructura de una aplicación Y basta de teoría por hoy ¿Cómo se comunican las aplicaciones? HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  67. 67. Créditos Introducción a Servicios Web David J. Brenes Martínez Desarrollador en Grupo Índigo Estructura de una aplicación Los ejemplos sobre SOAP provienen de la Wikipedia ¿Cómo se comunican las aplicaciones? HTTP como protocolo de transporte XML-RPC SOAP REST Conclusiones Créditos y Licencia
  68. 68. Licencia Introducción a Servicios Web David J. Brenes Martínez Estas transparencias se publican bajo licencia Creative Desarrollador en Grupo Commons y se pueden redistribuir o modificar bajo las Índigo siguientes condiciones: Estructura de una aplicación Se dé reconocimiento al autor de estas transparencias. ¿Cómo se comunican las No se use con propósitos comerciales. aplicaciones? Se distribuya con la misma licencia. HTTP como protocolo de Texto de la licencia: http: transporte XML-RPC //creativecommons.org/licenses/by-nc-sa/3.0/ SOAP REST Conclusiones Créditos y Licencia

×