Introduccion a los Servicios Web Rest

  • 12,214 views
Uploaded 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. …

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

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
12,214
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
219
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. ¿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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. ¿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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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