Вы находитесь на странице: 1из 23

Servicios Web

Servicios web
Son programas con funcionalidad accesible
a travs de protocolo http que permiten la
ejecucin remota de mtodos y funciones
Los clientes envan solicitudes de ejecucin
de mtodos y funciones y sus argumentos
Los servidores responden enviando los
resultados solicitados

Servicios web, II
Java EE 6 incluye grandes servicios web
(basados en la especificacin JAX-WS) y
servicios web reposados (basados en la
especificacin JAX-RS)
Los servicios reposados optimizan el
ancho de banda y son ms sencillos de
desarrollar

Servicios web, III


Los grandes servicios web transmiten la
informacin a travs de un protocolo
universal basado en XML, llamado SOAP
Mediante servicios web, programas
escritos con tecnologas diferentes (Java
EE, .NET) pueden compartir informacin y
procedimientos de acceso a ella
estandarizados

Servicios web, IV
La utilizacin de un servicio web involucra:
Un programa servidor capaz de publicar a
travs de un registro referencias a objetos
servidores y a sus mtodos y de serializar y
desserializar objetos.
Un protocolo de publicacin y acceso a
mtodos y a objetos serializados.
Un programa cliente capaz de acceder a
referencias publicadas de objetos servidores,
de hacer llamadas a sus mtodos y de
serializar y desserializar otros objetos.

Ejercicio para clase [SW0]


Describir un servicio web con una clase
servidora que publica dos mtodos
Describir una aplicacin web que utiliza el
servicio anterior
Se deber entregar un documento de
Word con la descripcin del servicio al
nivel de abstraccin y detalle en que se
han definido los servicios web en las
transparencias anteriores

Grandes servicios web:


Requisitos
Las clases cuyas instancias son objetos
servidores se anotan mediante @WebService.
Los mtodos accesibles pblicamente 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 travs de la red.

Grandes servicios web:


Restricciones
Los @WebServices han de tener un
constructor sin argumentos
Los @WebMethods tienen que ser
pblicos
Los argumentos y los objetos devueltos
por @WebMethods tienen que ser tipos
simples o Java Beans.

Implementacin de servicios web


desde NetBeans
ATENCIN: En los ejercicios se deben
implementar los servicios web en la forma
que se describe a continuacin.
Crear un proyecto de aplicacin web
(tambin se puede hacer con una
aplicacin Enterprise).
Crear el servicio web desde el proyecto,
con un paquete. Netbeans crea la clase
@WebService asociada, cuyo nombre es
el del servicio.

Implementacin de servicios
web desde NetBeans, II
Definir los Beans auxiliares y los
@WebMethods.
Al construir y desplegar la aplicacin,
Netbeans ejecuta wsgen y gestiona la
publicacin del servicio.
Se puede probar el servicio desde un
navegador seleccionando la opcin Test
sobre el mismo.

Ejercicio para clase [SW1]


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

Ejemplo de servicio web


Una aplicacin que permite buscar
documentos que contienen una palabra y
devolverlos ordenados segn el nmero
de veces que aparece la palabra se puede
implementar como sigue:
Clase servidora: Buscador
Mtodo accesible: List<Doc> busca(palabra)

Bean auxiliar: Doc

Ejemplo de servicio web, II


@WebService
public class Buscador {
@WebMethod
List<Doc> busca(String palabra)
class Doc {
int apariciones(String palabra)
// Mtodos set y get

Esquema del funcionamiento de


servicios web
registro

objRef

objRef.f(arg)

Cliente

Interfaz comn

obj

obj.f(arg)

Servidor

Implementacin desde NetBeans


de aplicaciones Java clientes
Crear un proyecto de aplicacin 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 aplicacin web
del servidor seguida del nombre del servicio
terminado con Service?wsdl
El paquete es el del servicio seguido de
.client

Implementacin 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)
Mtodo de obtencin 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 mtodos publicados

Implementacin 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
mtodos disponibles; Doc en el ejemplo)
ATENCIN: En los ejercicios se deben
implementar los clientes de servicios web
en la forma descrita en las ltimas
transparencias.

Programacin del cliente


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

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

Depuracin
Wsmonitor (wsmonitor.dev.java.net)
permite interceptar las llamadas de SOAP.
Para la depuracin 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)

Ejercicio para clase [SW2]


Implementar una de las aplicaciones Java
propuestas por otro compaero que
accede a un servicio web, y comprobar el
funcionamiento correcto de la aplicacin y
del servicio

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 aplicacin web que permita al


usuario introducir el identificador de una
persona y le devuelva su saldo total obtenido
accediendo al servicio web anterior.

Ejercicio optativo [SWJSF]


Aplicacin web con dos pginas 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

Вам также может понравиться