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
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.
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.
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.
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.
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.
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.
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
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.
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!!
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
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
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
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
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?
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
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>
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!
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
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.
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
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-*
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
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>
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
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>
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
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>
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.
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>
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
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>
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
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
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
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
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
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
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
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
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
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
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.
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. . . )
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
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.
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
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
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
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
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.
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
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.
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
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.
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.
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
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.
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
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
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
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
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
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
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
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
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
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/
Top Related