Web services
-
Upload
salvador-fernandez-fernandez -
Category
Documents
-
view
1.035 -
download
6
Transcript of Web services
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”);…