introduccion a los servicios web rest
DESCRIPTION
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=5187TRANSCRIPT
![Page 1: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/1.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Introducción a Servicios Web
David J. Brenes MartínezDesarrollador en Grupo Índigo
Curso de Extensión UniversitariaDesarrollo de aplicaciones web mediante servicios web y APIs abiertas
Universidad de Oviedo
2009/07/20
![Page 2: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/2.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
La visión del desconocimiento
La aplicación es unbloqueTodas las operacionesestán dentro de lamisma aplicación.Los datos están en lapropia aplicación.
![Page 3: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/3.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Una visión un poco más realista
La aplicación estáformada porcomponentes.Algunas operacionesno pertenecen a laaplicación.Los datos están ensitios externos.
![Page 4: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/4.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Una visión un poco más óptima
Componentes endiferentesordenadores.Comunicaciónmediante protocolos.Desacoplamientoentre aplicaciones.
![Page 5: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/5.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Una visión un poco distribuida
Compartición dedatos entreaplicaciones.Posible medio decomunicación entreaplicaciones.
![Page 6: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/6.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Una visión distribuida
Partes de laaplicación en otrosordenadores.Solicitud de servicios.Mayordesacoplamientoentre aplicaciones.
![Page 7: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/7.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Una visión realmente distribuida
Componentesreaprovechables.Simplificación dedesarrollo.
![Page 8: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/8.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Abundantes escenarios
Conexión a Base de DatosAplicaciones clientes-servidor.Conexiones FTP/TelnetNavegador Web
![Page 9: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/9.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Ya... ¿pero cómo?
Protocolos ad-hoc.Las aplicaciones se mandan mensajes unas a otras.Los mensajes pueden ser órdenes a ejecutar.Los interlocutores deben tener la lógica para enviarmensajes.
![Page 10: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/10.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Pidiendo cosas... RPC
Remote Procedure CallLlamadas a operaciones en aplicaciones remotas.Se mandan los parámetros y la orden a ejecutar. Serecibe el resultado.Hay muy diversas implementaciones
Java RMI.NET Remoting¡¡CORBA!!
![Page 11: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/11.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Pidiendo cosas... RPC
Ejemplo de RPCobjeto.metodo();
El método podría ejecutarse en remoto...Normalmente se acompañan de lenguajes dedescripción
Facilidad de programaciónEstandarizaciónAutomatización
![Page 12: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/12.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Formatos ad-hoc
Se ajustan el 100% al problemaPueden ser optimizados y modificadosTienen una adopción más rápida en escenariossimples
![Page 13: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/13.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Formatos ad-hoc
Cada implementación empieza de ceroRequieren un proceso de diseño del protocoloRequiere la adopción del protocolo por parte del clientey el servidor
![Page 14: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/14.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
¿Qué se necesita?
Estándar reconocidoMúltiples implementacionesSoporte de envío de mensajesFormato ‘simple’ que soporte cosas complejas
![Page 15: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/15.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Who are you gonna call?
![Page 16: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/16.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Estructurando el mensaje
XML permite representar entidadesLos mensajes consisten de entidades (Llamada amétodo, tipos, parámetro, valor de retorno, fallo. . . )El formato permite intercambiar mensajes equivalentesa llamadas de métodos
![Page 17: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/17.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Estructurando el mensaje
Ejemplo de RPC<?xml version="1.0"?><methodCall><methodName>examples.getStateName</methodName><params><param><value><i4>40</i4></value></param></params></methodCall>
![Page 18: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/18.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Implementaciones
PHPC++Java.NETRubyPythonObjetive-C (Mac)PerlAction Script¡Haskell!
![Page 19: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/19.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Ventajas
Todo lenguaje...
Capaz de realizar peticiones HTTP puede realizar lacomunicación.Capaz de procesar XML puede procesar la respuesta.
XML-RPC = HTTP + XML
![Page 20: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/20.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Más información sobre el servicio
XML-RPC describe las llamadas que se puedenrealizar.Más información podría llevar a una mayorautomatización.XML-RPC no está preparado para crecer.
![Page 21: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/21.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Más información sobre el servicio
SOAP permite una mayor descripciónMás información => mayor automatización.Más información => más funcionalidad
![Page 22: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/22.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Datos sobre SOAP
Evolución de XML-RPCFormato adoptado por el W3CEstá en su versión 2.0, aunque la más soportada es la1.1Forma parte del conjunto WS-*
![Page 23: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/23.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Describiendo el servicio
SOAP recupera los lenguajes de descripción deservicio.Se describen tipos, operaciones, excepciones, ‘puntosde entrada’ y másLa descripción se realiza mediante un fichero WSDL
![Page 24: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/24.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Describiendo el servicio
Ejemplo de WSDL<?xml version="1.0" encoding="UTF-8"?><description xmlns="http://www.w3.org/ns/wsdl"xmlns:tns="http://www.example.com/wsdl20sample"xmlns:whttp="http://www.w3.org/ns/wsdl/http"xmlns:wsoap="http://www.w3.org/ns/wsdl/soap"targetNamespace="http://www.example.com/wsdl20sample">...</description>
![Page 25: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/25.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Creando tipos
En XML-RPC se pueden crear estructuras nuevasEN SOAP se permite la definición de nuevos tiposUso de XML-Schema
![Page 26: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/26.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Creando tipos
Ejemplo de WSDL - Tipos<types><xs:schemaxmlns="http://www.example.com/wsdl20sample"xmlns:xs="http://www.w3.org/2001/XMLSchema" target-Namespace="http://www.example.com/wsdl20sample"><xs:element name="request"><xs:complexType><xs:attribute name="method" type="xs:string"use="required"/></xs:complexType></xs:element></xs:schema></types>
![Page 27: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/27.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Definiendo la interface
Se define qué operaciones se permitenSe definen los parámetros y respuestasSe definen las excepciones
![Page 28: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/28.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Definiendo la interface
Ejemplo de WSDL - Interfaces<interface name="RESTfulInterface"><fault name="ClientError" element="tns:response"/><operation name="Get"pattern="http://www.w3.org/ns/wsdl/in-out"><input messageLabel="GetMsg" element="tns:request"/><output messageLabel="SuccessfulMsg"element="tns:response"/></operation></interface>
![Page 29: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/29.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Especificando la capa de transporte
SOAP permite a priori varias capas de transporte, nosolo HTTP.Se pueden especificar varios protocolos de transporte.
![Page 30: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/30.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Especificando la capa de transporte
Ejemplo de WSDL - Binding
<binding name="RESTfulInterfaceHttpBinding"interface="tns:RESTfulInterface"type="http://www.w3.org/ns/wsdl/http"><operation ref="tns:Get" whttp:method="GET"/><operation ref="tns:Post" whttp:method="POST"whttp:inputSerialization="application/x-www-form-urlencoded"/><operation ref="tns:Put" whttp:method="PUT"whttp:inputSerialization="application/x-www-form-urlencoded"/><operation ref="tns:Delete" whttp:method="DELETE"/></binding>
![Page 31: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/31.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Indicando el punto de entrada
Se puede indicar la URL en la que responderá elservicio webHay un solo punto de entrada para todas lasoperacionesSOAP indica en el mensaje la operación concreta quedeseamos
![Page 32: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/32.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Indicando el punto de entrada
Ejemplo de WSDL - Servicicios<service name="RESTfulService"interface="tns:RESTfulInterface"><endpoint name="RESTfulServiceHttpEndpoint"binding="tns:RESTfulInterfaceHttpBinding"address="http://www.example.com/rest/"/></service>
![Page 33: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/33.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
El ecosistema WS-*
Conjunto de especificaciones sobre servicios webSOAPCada especificación se especializa en un aspecto delos Servicios WebJuntos forman un conjunto bastante coherente
![Page 34: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/34.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
El ecosistema WS-*
WS-Addressing: Encaminamiento de mensajes SOAP.WS-Transfer: Transferencia de recursos involucradosen WS-AdressingWS-Eventing: Suscripción a otros Servicios WebWS-Policy: Soporte de políticas (de uso, de servicio. . . )WS-Security: Aspectos de seguridadWS-BPEL y WS-Choreography: Relaciones entreservicios web para definir procesos de negocio
![Page 35: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/35.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
¿Suficiente descripción?
La toma de decisiones no se automatizaNecesidad de aplicar sistemas de razonamiento einferenciaWeb Semántica + Servicios Web = Servicios WebSemánticos
![Page 36: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/36.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Implementación
El desarrollo de un WSDL puede ser muy duroEl procesado de los mensajes y sus respuestas ya noes trivialExistencia de múltiples herramientas de automatización‘Necesidad’ de dichas herramientas
![Page 37: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/37.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Generación de código
Ejemplos:
PHP: NuSOAPJAVA: wsdl2java.NET: Visual Studio
![Page 38: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/38.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Generación de código
Se indica el fichero descriptorLa herramienta genera clases que se encargan de todala comunicación por HTTPSe crean clases que simbolizan las operaciones ytienen métodos para realizar la llamada.En lenguajes dinámicos las clases se crean al vuelo
![Page 39: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/39.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Generación de WSDL
Ejemplos:
PHP: NuSOAPPHP (Symfony): ckWebServiceJAVA: java2wsdl.NET: Visual Studio
![Page 40: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/40.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Generación de WSDL
Se indican las operaciones a exponerLa herramienta genera la descripción de los serviciosSe crean tipos para hacer corresponder con losremotos
![Page 41: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/41.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Ventajas
Mayor descripción del servicioMás funcionalidades (especificaciones para seguridad,orquestación de servicios. . . )Herramientas que facilitan el desarrollo
![Page 42: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/42.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Ventajas
Más estables y fiables (la descripción indica losdetalles sobre la comunicación)las modificaciones solo requieren ejecutar de nuevo laherramenta de generación de códigoUsados en entornos donde se requiere muy altafiabilidad
![Page 43: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/43.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Back to basics
SOAP exige una descripción más detalladaSOAP da soporte a muchas funcionalidades extra(seguridad, confianza. . . )SOAP requiere herramientas adecuadas
SOAP es demasiado complejo.
![Page 44: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/44.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Back to basics
HTTP es un método de transporte válidoHTTP ofrece alguna funcionalidad extra (HTTPS paraconexiones seguras)HTTP dispone de diversos ‘verbos’ para distintasacciones (GET, POST, PUT. . . )
![Page 45: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/45.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Filosofía REST
Las peticiones se hacen a recursos, no a métodosNo es ‘dame los datos del alumno 1’ sino ‘acceder alalumno 1’
Cada recurso equivale a un punto de entrada para elservicio web
SOAP disponía de 1 punto de accesoLos métodos que se pueden invocar son los delestándar HTTP
Para el mismo punto de acceso (recurso) se puedenejecutar distintas acciones
Está basado en HTTP
![Page 46: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/46.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Filosofía REST
Concepto publicado por Roy Fielding en su tesis doctoral.
REST enables intermediate processing by constrainingmessages to be self-descriptive: interaction is statelessbetween requests, standard methods and media types areused to indicate semantics and exchange information, andresponses explicitly indicate cacheability.
![Page 47: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/47.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Filosofía REST
No es un estándarNo define formatosEs una manera de desarrollar servicios web
![Page 48: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/48.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
REST y CRUD
En un sistema basado en métodos (RPC) hay ‘n’acciones posiblesEn un sistema basado en recursos (RES) hay ‘n’recursos, pero solo 4 acciones básicasUn recurso:
Se creaSe obtieneSe actualizaSe elimina
![Page 49: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/49.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
REST y CRUD
Problema básico de gestión de datos: CRUD
CREATERETRIEVEUPDATEDELETE
![Page 50: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/50.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
REST y CRUD
Problema básico de gestión de datos: CRUD => PGPD
CREATE => PUTRETRIEVE => GETUPDATE => POSTDELETE => DELETE
![Page 51: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/51.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Método PUT
RFC 2616, HTTP PUTThe PUT method requests that the enclosed entity bestored under the supplied Request-URI.If the Request-URI refers to an already existing resource,the enclosed entity SHOULD be considered as a modifiedversion of the one residing on the origin server.
![Page 52: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/52.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Método PUT
![Page 53: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/53.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Método GET
RFC 2616, HTTP GETThe GET method means retrieve whatever information (inthe form of an entity) is identified by the Request-URI.
![Page 54: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/54.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Método GET
![Page 55: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/55.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Método POST
RFC 2616, HTTP POSTThe POST method is used to request that the origin serveraccept the entity enclosed in the request as a newsubordinate of the resource identified by the Request-URI inthe Request-Line.
![Page 56: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/56.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Método POST
RFC 2616, HTTP POST- Annotation of existing resources;- Extending a database through an append operation.
![Page 57: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/57.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Método POST
![Page 58: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/58.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Método DELETE
RFC 2616, HTTP DELETEThe DELETE method requests that the origin server deletethe resource identified by the Request-URI.
![Page 59: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/59.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Método DELETE
![Page 60: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/60.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
REST y otros protocolos
REST no detalla formatosXML-RPC podría implementarse sobre RESTSOAP 2.0 permite crear servicios web RESTful
![Page 61: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/61.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Definición del servicio
REST no habla de definición de servicioLa respuesta puede tener el formato que se quiera(XML, JSON, HTML. . . )REST no contempla el lanzamiento de excepciones
HTTP posee códigos de error para indicar problemas
Puede usarse un lenguaje de descripción sobre REST
![Page 62: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/62.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Funcionalidades añadidas
Las funcionalidades están presentes en HTTP
Seguridad mediante HTTPSAutenticación mediante HTTP-AuthGestión de erroresPosibilidad de incorporar certificados digitalesManejo de sesiones en el servidor
![Page 63: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/63.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Comunicación entre aplicaciones
Una aplicación aislada está muy limitada.La separación de funciones permite optimizardesarrollos y aplicacionesLa comunicación puede realizarse entre distintosordenadoresLas aplicaciones pueden comunicarse con variasaplicaciones
![Page 64: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/64.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Formatos de comunicación
Un formato ad-hoc es rápido de diseñar (mal)Un formato estándar puede no ajustarse al 100%Un formato estandar cuenta con más experienciaUn formato estándar contará con implementaciónHTTP es un formato estándar de comunicaciones
![Page 65: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/65.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Servicios Web
Intercambio de mensajes a través de HTTPXML-RPC: Formato básico de llamada a procedimientoremoto.SOAP: Formato RPC más elaborado y con variosestándares a su alrededorREST: Filosofía de desarrollo de Servicios Webbasada en HTTP
![Page 66: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/66.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Servicios Web
Y basta de teoría por hoy
![Page 67: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/67.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Créditos
Los ejemplos sobre SOAP provienen de la Wikipedia
![Page 68: Introduccion a los Servicios Web Rest](https://reader034.vdocumento.com/reader034/viewer/2022050808/54bd642c4a7959843d8b4595/html5/thumbnails/68.jpg)
Introducción aServicios Web
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Estructura deuna aplicación
¿Cómo secomunican lasaplicaciones?
HTTP comoprotocolo detransporteXML-RPC
SOAP
REST
Conclusiones
Créditos yLicencia
Licencia
Estas transparencias se publican bajo licencia CreativeCommons y se pueden redistribuir o modificar bajo lassiguientes condiciones:
Se dé reconocimiento al autor de estas transparencias.No se use con propósitos comerciales.Se distribuya con la misma licencia.
Texto de la licencia: http://creativecommons.org/licenses/by-nc-sa/3.0/