23
Servicios Web

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

Embed Size (px)

Citation preview

Page 1: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Servicios Web

Page 2: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

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

Page 3: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Servicios web, II

• 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

Page 4: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Servicios web, III

• 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

Page 5: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Servicios web, IV

• 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.

Page 6: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Ejercicio para clase [SW0]

• Describir un servicio web con una clase servidora que publica dos métodos

• Describir una aplicación web que utiliza el servicio anterior

• Se deberá entregar un documento de Word con la descripción del servicio al nivel de abstracción y detalle en que se han definido los servicios web en las transparencias anteriores

Page 7: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

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.

Page 8: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

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.

Page 9: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Implementación de servicios web desde NetBeans

ATENCIÓN: En los ejercicios se deben implementar los servicios web en la forma que se describe a continuación.

• 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.

Page 10: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

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.

Page 11: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Ejercicio para clase [SW1]

• Implementar el servicio web propuesto en la primera parte de este ejercicio, y comprobar su funcionamiento correcto

Page 12: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

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

Page 13: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Ejemplo de servicio web, II

• @WebServicepublic class Buscador { …

@WebMethodList<Doc> busca(String palabra) }

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

Page 14: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Esquema del funcionamiento de servicios web

ServidorCliente

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

objobjRef

registro

Interfaz común

Page 15: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Implementación desde NetBeans de aplicaciones Java clientes

• Crear un proyecto de aplicación Java

• Crear el cliente del servicio web desde el proyecto. Netbeans pide la URL de acceso y el paquete– La URL de acceso es la de la aplicación web

del servidor seguida del nombre del servicio terminado con “Service?wsdl”

– El paquete es el del servicio seguido de “.client”

Page 16: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Implementación desde NetBeans de aplicaciones Java clientes, II

• Netbeans accede a la URL e importa en el paquete del cliente las clases necesarias para el cliente:– Referencias al servicio: La clase tiene el

nombre del servicio seguido de “Service” (BuscadorService en el ejemplo)

• Método de obtención de referencias a objetos servidores: getXXXPort(), donde XXX es el nombre del servicio (getBuscadorPort en el ejemplo)

– Referencias a objetos servidores: La clase tiene el nombre del servicio (Buscador en el ejemplo) y tiene los métodos publicados

Page 17: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Implementación desde NetBeans de aplicaciones Java clientes, III

• Incluir en el proyecto del cliente las clases de los Java Beans requeridos (argumentos y objetos devueltos por los métodos disponibles; Doc en el ejemplo)

ATENCIÓN: En los ejercicios se deben implementar los clientes de servicios web en la forma descrita en las últimas transparencias.

Page 18: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Programación del cliente

• Esquema de funcionamiento del cliente:– Instanciar una referencia al servicio– Obtener una referencia a un objeto servidor– Ejecutar métodos …

Page 19: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

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”);…

Page 20: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Depuración

• Wsmonitor (wsmonitor.dev.java.net) permite interceptar las llamadas de SOAP.

• Para la depuración el cliente debe hacer las peticiones en el puerto 4040, donde escucha Wsmonitor; éste las replica al puerto 8080

• El monitor muestra las solicitudes y respuestas (formato XML)

Page 21: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Ejercicio para clase [SW2]

• Implementar una de las aplicaciones Java propuestas por otro compañero que accede a un servicio web, y comprobar el funcionamiento correcto de la aplicación y del servicio

Page 22: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Ejercicio obligatorio [SWCC]

• Implementar un servicio web que permita gestionar las cuentas corrientes incluidas en dos bases de datos, haciendo las siguientes operaciones:– Pedir la lista total de clientes.– Pedir el saldo total de las cuentas de un cliente.

• Implementar una aplicación web que permita al usuario introducir el identificador de una persona y le devuelva su saldo total obtenido accediendo al servicio web anterior.

Page 23: Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones

Ejercicio optativo [SWJSF]

• Aplicación web con dos páginas JSF que:– La primera muestra la lista de clientes

ofrecida por el servicio web anterior y permite seleccionar uno

– La segunda muestra el saldo total del cliente selecionado, proporcionado por el servicio web anterior