Download Servicios Web
Document related concepts
no text concepts found
Transcript
Servicios Web Desarrollo de Aplicaciones Empresariales 2014-1 Contenidos • Introducción • REST • SOAP 2 Introducción • Servicio Web – Un servicio web es un sistema software diseñado para soportar interacciones máquina-a-máquina en red utilizando protocolos de la web (HTTP o HTTPS). Petición HTTP Cliente Servicio Web Respuesta HTTP 3 Ventajas • Ventajas de los servicios web – Interoperabilidad • Los protocolos utilizados por los servicios web son independientes del lenguaje en que se implementan. • Facilita la integración de sistemas independientes desarrollados con distintas tecnologías. • Facilita el desarrollo de múltiples clientes para un mismo núcleo de aplicación. 4 Ventajas • Ventajas de los servicios web – Sencillez • Los protocolos utilizados son sencillos y conocidos (HTTP y HTTPS) • Los servicios web transmiten datos utilizando texto plano, en XML (eXtensible Markup Language) o en JSON (JavaScript Object Notation) • Son protocolos y formatos soportados en la mayoría de los lenguajes, y fácilmente procesables 5 Ventajas • Ventajas de los servicios web – Diseño modular en arquitecturas de SI • Cada sistema desarrolla su función y ofrece un conjunto de servicios a través de servicios web • Los sistemas que necesiten acceder a ellos lo hacen de una forma simple y estándar • Flexibilidad y facilidad de integración 6 Tipos de servicios web • Principales paradigmas/aproximaciones – SOAP: Simple Object Access Protocol • Estándar que define cómo los dos participantes se pueden comunicar mediante el intercambio de datos XML. • WSDL: Web Services Description Language. Permite definir el servicio web mediante tipos de datos, mensajes, servicios, tipos de puerto, etc. • En general, utilizado en servicios complejos (*) 7 Tipos de servicios web • Principales paradigmas/aproximaciones – REST: Representational State Transfer • Los mensajes se transmiten directamente sobre HTTP, no se especifica un protocolo de comunicación ni descripción adicional. • Utilización de los métodos HTTP: GET, POST, PUT, DELETE… • En general, opción más simple (*) – (*) Existe un debate importante en estos puntos. 8 Implementación • Implementación en Java – Ni servicios ni clientes se programan ad-hoc – JAX-WS: API estándar de Java para servicios web • JAX-WS: Java API for XML Web Services • Distintas implementaciones del API – Distintos frameworks/librerías • Ej.: Jersey, implementación de JAX-WS • Restlet – Resultado: gran variedad de tecnologías… 9 Contenidos • Introducción • REST • SOAP 10 REST – Representational State Transfer • Principales características – Protocolo cliente/servidor sin estado • Cada mensaje HTTP contiene toda la información necesaria para completar la petición • Ni cliente ni servidor tienen que mantener un estado (*) – Operaciones bien definidas • Los métodos POST, GET, PUT y DELETE dan soporte a las operaciones CRUD (Create, Read, Update y Delete) 11 REST – Representational State Transfer • Principales características – Sintaxis universal para identificar los recursos • URI: Universal Resource Identifier (URL, caso particular) – Transferencia de datos en formatos establecidos • Texto plano, XML, JSON – Muchas empresas conocidas ofrecen acceso a sus sistemas a través de APIs REST • Ej.: Google, Twitter, Facebook – (*) ¿Es una ventaja o un inconveniente? 12 Contenidos • Introducción • REST • SOAP 13 SOAP • Presentación 18/06/2014 – Juan Lopez – Martin Pucheu – Raúl Villegas 14 Ejercicios 1. Lectura recomendada: ServiciosWebREST.pdf 2. Getting started with Jersey (hasta 1.3): https://jersey.java.net/documentation/latest/getting -started.html 3. Proyecto con misma funcionalidad que anterior pero ejecutándose en jetty (pista: Sect. 1.4 + plugin jetty en pom.xml) 4. “Servicio web REST que ofrezca alguna funcionalidad interesante, entre la identificada en la iteración 1” 15