You are on page 1of 25

APLICACIONES

DISTRIBUIDAS
Servicios Web en JAVA EE

Profesor: M. Sc. Ing. Osvaldo Pereira Barzaga


Objetivos

– Introducción a los Web Services.


– Tipos de Web Services:
• Web Services with JAX – WS.
• Web Services with JAX – RS.
– Decidir que tipo de Web Services usar.
Servicios

Definición

A nivel conceptual, un servicio es un componente


de software proporcionado a través de un punto
accesible desde la red. Donde el cliente y el
proveedor del servicio usan mensajes de petición y
respuesta para intercambiar información.
Servicios de Negocio
Definición
Un servicio de negocio es un componente reutilizable de software, con
significado funcional completo (que implementa una lógica del
negocio) y que esta compuesto por:

– Contrato: especificación de la finalidad, funcionalidad, forma de


uso y restricciones del servicio.
– Interfaz: mecanismo de exposición del servicio a los usuarios.
– Implementación: debe contener la implementación de la lógica
del negocio y de acceso a datos.
Servicios de Negocio

Contrato
Lógica del
Negocio
Servicio Implementación

Acceso a Datos

Interfaz
Web Service

Definición
Los Web Services son un conjunto de aplicaciones clientes y
servidoras que se comunican a través de los protocolos de
transferencia de hipertexto (Http/Https) de la World Wide Web
(WWW).

Los mismos proporcionan un medio estándar de interoperar


entre aplicaciones que se ejecutan en una variedad de
plataformas y frameworks.

Traducido de Oracle: https://docs.oracle.com/javaee/6/tutorial/doc/gijvh.html


Web Services
Tipos en JAVA

1. JAX–WS (SOAP Web Services o Big Web Services)


– JAX – WS: Java API for XML Web Services.

2. JAX–RS (RESTFul Web Services)


– JAX – RS: Java API for RESTful Web Services .
• RESTFul: Representational State Transfer.
Web Services
JAX – WS

Es una tecnología para crear servicios web y clients que


se comunican mediante XML.

Permite a los desarrolladores escribir servicios web


orientados a mensajes así como orientados a llamadas
de procedimiento remote (JAX-RPC).
Web Services
JAX – WS

En JAX-WS, la llamada a una operación dentro del servicio


web está representada por un protocolo basado en XML,
como SOAP.

La especificación SOAP define la estructura del sobre, las


reglas de codificación y las convenciones para representar
las llamadas y respuestas al y del servicio web
respectivamente. Estas llamadas y respuestas se transmiten
como mensajes SOAP (archivos XML) a través de HTTP.
Web Services
JAX – WS
Aunque los mensajes SOAP son complejos, la API de JAX-WS oculta esta
complejidad del desarrollador de aplicaciones.

En el lado del servidor, el desarrollador especifica las operaciones del servicio


web mediante la definición de métodos en una interfaz escrita en el lenguaje
de programación Java.

Los programas para los clientes también son fáciles de codificar. Un cliente
crea un proxy (un objeto local que representa el servicio) y simplemente
invoca métodos en el proxy.

Con JAX-WS, el desarrollador no genera ni analiza mensajes SOAP. Es el


sistema de tiempo de ejecución de JAX-WS que convierte las llamadas y las
respuestas de la API desde y hacia los mensajes SOAP.
Web Services
JAX – WS

Con JAX-WS, los clientes y los servicios web tienen una


gran ventaja: La independencia de la plataforma del
lenguaje de programación Java.
Además, JAX-WS no es restrictivo: un cliente JAX-WS
puede acceder a un servicio web que no se está
ejecutando en la plataforma Java y viceversa. Esta
flexibilidad es posible porque JAX-WS utiliza tecnologías
definidas por el W3C: HTTP, SOAP y WSDL. WSDL
especifica un formato XML para describir un servicio.
Web Services
JAX – WS
Web Services
JAX – RS

Los servicios web RESTful están diseñados para funcionar


mejor en la Web.

Representational State Transfer (REST) es un estilo


arquitectónico que especifica restricciones, que si se aplican
a un servicio web inducen propiedades deseables como:
rendimiento, escalabilidad y modificabilidad, que permiten
que los servicios funcionen mejor en la Web.
Web Services
JAX – RS

En el estilo arquitectónico REST, los datos y la funcionalidad


se consideran recursos y se accede mediante URI (Uniform
Resource Identifiers), normalmente enlaces en la Web.

En el estilo arquitectónico REST, los datos y la funcionalidad


se consideran recursos y se accede mediante URI (Uniform
Resource Identifiers), normalmente enlaces en la Web.
Web Services
JAX – RS

El estilo arquitectónico REST limita la arquitectura a una


arquitectura cliente / servidor y está diseñado para utilizar
un protocolo de comunicación sin estado, típicamente
HTTP.

En el estilo de arquitectura REST, los clientes y servidores


intercambian representaciones de recursos mediante el uso
de una interfaz y un protocolo normalizados.
Web Services
JAX – RS
Los siguientes principios alientan las aplicaciones RESTful a ser
simples, ligeras y rápidas:

1. Identificación de recursos mediante URI:

Un servicio web RESTful expone un conjunto de recursos que


identifican los objetivos de la interacción con sus clientes.

Los recursos se identifican mediante URI, que proporcionan un


espacio de direccionamiento global para el descubrimiento de
recursos y servicios.
Web Services
JAX – RS
Los siguientes principios alientan las aplicaciones RESTful a ser
simples, ligeras y rápidas:

2. Interfaz Uniforme:
Los recursos se manipulan utilizando un conjunto fijo de cuatro
operaciones de creación, lectura, actualización y eliminación:
PUT, GET, POST y DELETE.

– PUT: crea un nuevo recurso, que puede eliminarse mediante DELETE.


– GET: recupera el estado actual de un recurso en alguna
representación.
– POST: transfiere un nuevo estado a un recurso.
Web Services
JAX – RS
Los siguientes principios alientan las aplicaciones RESTful a ser simples,
ligeras y rápidas:

3. Mensajes Autodescriptivos:
Los recursos se desacoplan de su representación para que su
contenido pueda ser accedido en una variedad de formatos, como
HTML, XML, texto sin formato, PDF, JPEG, JSON y otros.

Los metadatos sobre el recurso están disponibles y se utilizan, por


ejemplo, para controlar el almacenamiento en caché, detectar errores
de transmisión, negociar el formato de representación adecuado y
realizar la autenticación o el control de acceso.
Web Services
JAX – RS
Los siguientes principios alientan las aplicaciones RESTful a ser simples,
ligeras y rápidas:

4. Interacciones de estados a través hipervínculos:


Toda interacción con un recurso es apátrida; es decir, los mensajes de
petición son autónomos.
Las interacciones de estado se basan en el concepto de transferencia
estatal explícita.
Existen varias técnicas de intercambio de estado, como: URI
reescritura, cookies y campos de formulario ocultos.
El estado se puede incrustar en el mensajes de respuesta para señalar
a futuros estados válidos de la interacción.
Web Services
JAX – RS vs JAX – WS.

REST SOAP
REST es un estilo de arquitectura SOAP es un protocolo
REST -> REpresentational State Transfer SOAP -> Simple Object Access Protocol
Los servicios web SOAP se exponen utilizando el
En general, los servicios web REST están expuestos utilizando URI es
documento WSDL (es decir, Web Service Definition Language)
decir; Uniform Resource Identifier
a través de Service Endpoint Interface (SEI)
JAX-WS (Java API para XML Web Services) es la
JAX-RS (Java API para RESTful Web Services) es la especificación para
especificación para desarrollar / desarrollar servicios web
la construcción / desarrollo de servicios web REST
SOAP
Web Services
JAX – RS vs JAX – WS.
REST SOAP
Para diferentes operaciones CRUD como insertar
/  seleccionar /  actualizar / eliminar  , diferentes métodos HTTP 1.1 están No hay métodos disponibles para los servicios web SOAP
disponibles, es decir;
POST -> insertar operación Sólo el contrato está expuesto al mundo exterior a través del
GET -> recuperar la operación
documento WSDL, que podría ser cualquier operación (depende
PUT -> operación de actualización
del desarrollador subyacente o la implementación del diseñador)
DELETE -> borrar la operación
Información de intercambio de cliente y servidor (es decir, solicitud y
respuesta) en uno de los siguientes formatos
Cliente y servidor de intercambio de información (es decir,
JSON
solicitud y respuesta) sólo un formato, es decir, XML
XML
Texto sin formato
HTML
Web Services
JAX – RS vs JAX – WS.
REST SOAP
REST requiere menos ancho de banda y recursos comparados con
SOAP requiere más ancho de banda y más recursos, ya que
SOAP, ya que la mayoría de los intercambios de solicitud / respuesta en
la petición / respuesta se intercambia sólo en formato XML
formato JSON

Los recursos de REST intercambian información sobre todo en Los mensajes SOAP (es decir, solicitud y respuesta )


formato JSON , por lo tanto su solicitud y respuesta procesada más se procesan más lentamente en comparación con REST, ya
rápidamente comparando con SOAP que SOAP sólo admite formato XML

REST no define ninguna de estas normas como SOAP, pero define SOAP define un conjunto estándar de protocolos que se
convenciones como HTTP PUT para la actualización, HTTP POST para deben seguir estrictamente, de lo contrario elevar la excepción
insertar, etc (es decir, fallas de jabón)
Web Services
JAX – RS vs JAX – WS.

REST SOAP
SOAP define su propia seguridad, ya que está estandarizada a
REST depende del transporte subyacente por razones de seguridad través de WS-Security
Nota: Altamente seguro comparando con REST

REST es muy fácil de implementar y es muy preferido entre los SOAP no es tan fácil de implementar, cuando se compara con
desarrolladores de la comunidad REST
Web Services
JAX – RS vs JAX – WS.
Mejor práctica de diseño para elegir REST vs SOAP:
SOAP: Siempre que haya aplicaciones / sistemas externos
(aplicaciones de terceros) para interactuar con nuestro
sistema/aplicaciones, entonces siempre se prefiere ir para
SOAP, ya que tiene incorporado ws-security.
REST: Mientras que para el sistema interno/aplicaciones
(o interacción intra-aplicación dentro de nuestra
organización), entonces se prefiere ir a los servicios web
REST, ya que será más rápido.
APLICACIONES
DISTRIBUIDAS
Servicios Web en JAVA EE

Profesor: M. Sc. Ing. Osvaldo Pereira Barzaga

You might also like