Web services

Preview:

Citation preview

Servicios web

Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Los clientes envían solicitudes de ejecución de métodos y funciones y sus argumentos

Los servidores responden enviando los resultados solicitados

Servicios web

Java EE 6 incluye “grandes” servicios web (basados en la especificación JAX-WS) y servicios web “reposados” (basados en la especificación JAX-RS)

Los servicios reposados optimizan el ancho de banda y son más sencillos de desarrollar

Servicios web

Los grandes servicios web transmiten la información a través de un protocolo universal basado en XML, llamado SOAP

Mediante servicios web, programas escritos con tecnologías diferentes (Java EE, .NET) pueden compartir información y procedimientos de acceso a ella estandarizados

Servicios web La utilización de un servicio web

involucra:

Un programa servidor capaz de publicar a través de un registro referencias a objetos servidores y a sus métodos y de serializar y desserializar objetos.

Un protocolo de publicación y acceso a métodos y a objetos serializados.

Un programa cliente capaz de acceder a referencias publicadas de objetos servidores, de hacer llamadas a sus métodos y de serializar y desserializar otros objetos.

Grandes servicios web: Requisitos Las clases cuyas instancias son objetos

servidores se anotan mediante @WebService. Los métodos accesibles públicamente se anotan mediante @WebMethod.

Una herramienta auxiliar, wsgen, genera artefactos necesarios para el despliegue del servicio, incluyendo ficheros de clase que los clientes pueden cargar a través de la red.

Grandes servicios web: Restricciones Los @WebServices han de tener un

constructor sin argumentos

Los @WebMethods tienen que ser públicos

Los argumentos y los objetos devueltos por @WebMethods tienen que ser tipos simples o Java Beans.

Implementación de servicios web desde NetBeans

Crear un proyecto de aplicación web (también se puede hacer con una aplicación Enterprise).

Crear el servicio web desde el proyecto, con un paquete. Netbeans crea la clase @WebService asociada, cuyo nombre es el del servicio.

Implementación de servicios web desde NetBeans, II Definir los Beans auxiliares y los

@WebMethods.

Al construir y desplegar la aplicación, Netbeans ejecuta wsgen y gestiona la publicación del servicio.

Se puede probar el servicio desde un navegador seleccionando la opción “Test” sobre el mismo.

Ejemplo de servicio web

Una aplicación que permite buscar documentos que contienen una palabra y devolverlos ordenados según el número de veces que aparece la palabra se puede implementar como sigue: Clase servidora: Buscador

Método accesible: List<Doc> busca(palabra)

Bean auxiliar: Doc

Ejemplo de servicio web, II @WebService

public class Buscador {…@WebMethodList<Doc> busca(String palabra)}

class Doc {int apariciones(String palabra)… // Métodos set y get}

Esquema del funcionamiento de servicios web

ServidorCliente

obj.f(arg)objRef.f(arg)

objobjRef

registro

Interfaz común

Programación del cliente

Esquema de funcionamiento del cliente: Instanciar una referencia al servicio Obtener una referencia a un objeto

servidor Ejecutar métodos …

Ejemplo de cliente

public class BuscadorClient { …public static void main(String[] args) {

ws.client.BuscadorService serv =

new ws.client.BuscadorService();ws.client.Buscador busc =

serv.getBuscadorPort();List<Doc> rec =

busc.busca(“servidor”);…

Recommended