Servicios web: introducción a su funcionamiento y programación
1.
2. 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
3. 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
4. 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
5. 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.
6. 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.
7. 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.
8. 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.
9. 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.
10. 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
11. Ejemplo de servicio web, II
@WebService
public class Buscador { …
@WebMethod
List<Doc> busca(String palabra)
}
class Doc {
int apariciones(String palabra)
… // Métodos set y get }
12. Esquema del funcionamiento
de servicios web
ServidorCliente
obj.f(arg)objRef.f(arg)
objobjRef
registro
Interfaz común
13. Programación del cliente
Esquema de funcionamiento del cliente:
Instanciar una referencia al servicio
Obtener una referencia a un objeto servidor
Ejecutar métodos …
14. 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”);
…