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