Sei sulla pagina 1di 31

Curso de Java y Aplicaciones Web

WebServices con Java


Facultad Politcnica U.N.A.

Ing. Esteban Ramrez edre@gmail.com

Servicios web - Ejemplo

Servicios web - Introduccin


- Un web service es una aplicacin que puede ser -Descripta -Publicada -Localizada -Invocada a travs de una red, generalmente Internet. - Combinan aspectos del desarrollo basado en componentes y la Web. - La interface de los web services est definida por los mensajes que acepta y retorna, por lo cual los consumidores de los web services pueden ser implementados en cualquier plataforma y en cualquier lenguaje de programacin.

Servicios web - Introduccin

- La interoperabilidad se consigue mediante la adopcin de estndares abiertos. - Fue concebido con el propsito de proveer una plataforma para la computacin distribuida sobre la Web. - Arquitectura sin estado (StateLess). - Comunicacin/proceso asncrono. - Se comunica con otras aplicaciones codificando los mensaje en XML y enviando estos mensaje a travs de protocolos estndares de Internet tales como el HTTP - HyperText Transfer Protocol

Arquitectura
Curso de Java y Aplicaciones Web

Servicios web - Ventajas


Interoperabilidad: Cualquier web service puede interactuar con otro web service. Como los web services pueden ser implementados en cualquier lenguaje, los desarrolladores no necesitan cambiar sus ambientes de desarrollo para producir o consumir web services. Ubicuidad: Los web services se comunican utilizando HTTP y XML. Por lo tanto cualquier dispositivo que soporte estas tecnologas pueden implementar o acceder web services. Muy pronto estarn presentes en telfonos, autos e incluso mquinas expendedoras, las que avisarn a la central cuando el stock sea menor al indicado.

Servicios web - Ventajas


Encapsulacin: Lo importante es la interface que el servicio provee y no como esta implementado, por lo cual la complejidad se reduce. Facilidad: El concepto detrs de los web services es fcil de entender, incluso existen toolkits de vendedores como IBM o Microsoft que permiten a los desarrolladores crear web services en forma rpida y fcil. Soporte: Todos las empresas de software importantes soportan SOAP, e incluso estn impulsando el desarrollo de web services. Por ejemplo la nueva plataforma de Microsoft .NET esta basada en web services, haciendo muy simple el desarrollo de los mismos que luego podran ser consumidos por un web service desarrollado utilizando VisualAge de IBM y viceversa.

Servicios web - Invocacin


1

Publicar la URL del servicio Web y su descripcin Descubrir el servicio Web Localizar la URL del servicio Web Leer la descripcin .wsdl Vincular el servicio Web XML al proxy Invocar el servicio Web desde la aplicacin cliente.
3 4 5 6 2 1

2 3 4 5 6

Web Form Proxy

.disco

.wsdl
Servicio Web

Universal Description, Discovery and Integration

Servicios web - Proxy

Servicios web - SOAP


Simple Object Access Protocol
SOAP es un protocolo para el intercambio de informacin en un ambiente descentralizado y distribuido.

Esta basado en XML y potencialmente puede ser utilizado en combinacin con una variedad de protocolos de comunicacin, siendo el ms utilizado HTTP.

El protocolo completo en http://www.w3.org/TR/soap

se

puede

encontrar

Servicios web - SOAP


Modelo de comunicacion SOAP
El modelo de comunicacin de SOAP es muy similar al de HTTP.
Un cliente hace un requerimiento (request), el servidor que esta escuchando los requerimientos lo atiene y responde (response) brindando la informacin solicitada o enviando un mensaje de error en caso de que el requerimiento no haya sido vlido.

Servicios web - SOAP


Mensajes SOAP

El mensaje SOAP consiste en un elemento envelope SOAP obligatorio, una cabecera SOAP opcional y un cuerpo SOAP obligatorio como un documento XML. La cabecera SOAP es utilizado para definir informacin acerca del requerimiento, mientras que el cuerpo SOAP contiene el mtodo llamado y los parmetros con los que se llama al mismo.

Servicios web - SOAP


Mensajes SOAP - Request

Este ejemplo invoca al servicio StockQuote llamando al mtodo GetLastTradePrice con el smbolo DIS por parmetro.

Servicios web - SOAP


Mensajes SOAP - Responce

Este es la respuesta al requerimiento anterior, el cual retorna el precio de la accin solicitada.

Servicios web - WSDL


WSDL son las siglas de Web Services Description Language, un formato XML que se utiliza para describir servicios Web. WSDL describe la interfaz pblica a los servicios Web.

La versin 1.0 fue la primera recomendacin por parte del W3C y la versin 1.1 no alcanz nunca tal estatus. La versin 2.0 se convirti en la recomendacin actual por parte de dicha entidad.

Servicios web - WSDL

Un documento WSDL est divido en dos partes claramente diferenciadas:

Parte abstracta: Es la parte que define qu hace el servicio a travs de los mensajes que enva y recibe. Parte concreta: Es la parte que define el como y donde.

Servicios web - WSDL

types: Esta etiqueta define las estructuras de datos que se utilizarn para construir los mensajes de peticin como de respuesta. message: Describe los mensajes que se van a intercambiar entre el cliente y el Servicio Web. Un mensaje puede estar dividido en varias partes, por ejemplo, si en un mensaje queremos enviar datos y una imagen. portType: Define el conjunto de operaciones que soporta el Servicio Web. Una operacin no es ms que un grupo de mensajes que sern intercambiados. Cada operacin puede enviar o recibir al menos un mensaje cada vez.

Servicios web - WSDL

binding: Describe como formatear los mensajes para interactuar con un Servicio determinado. WSDL no define un estndar para formatear mensajes. Para ello utiliza la extensibilidad para definir como intercambiar los mensajes usando SOAP, HTTP, MIME, etc services: Este elemento indica donde se encuentra el Servicio usando la etiqueta . Cada etiqueta define el formato de los mensajes, y la direccin donde se encuentra el servicio que acepta mensajes en ese formato.

Servicios web - Prctica

Apache Axis Is an open source, XML based Web service framework.

Apache Axis2 Is a Web Services / SOAP / WSDL engine, the successor to the widely used Apache Axis SOAP stack.

Apache Tomcat

Servicios web - Practica


Herramientas -Servidor de aplicaciones (Tomcat) -Motor de servicios web Apache Axis2 -Distribucin de Java, en versin JDK -IDE Netbeans

Servicios web - Practica


-Copair la carpeta axis2-1.5.4 en c:\ Configuraciones - JAVA_HOME=<ruta al JDK de Java> - CATALINA_HOME=<ruta al directorio del Tomcat> - AXIS2_HOME=<ruta al del Axis2> - Agregar AXIS2_HOME\bin al Path del sistema - Copiamos el fichero axis2.war en CATALINA_HOME \webapps de C:\axis2-1.5.4

- Arrancamos el servidor tomcat ejecutando CATALINA_HOME\bin\startup.bat


- Accedemos a la URL http://localhost:8080/axis2

Servicios web - Practica

Servicios web - Practica


Vamos a hacer un servicio web servidor de echo al que le invoquemos con nuestro nombre y nos responda.

Servicios web - Practica


SERVIDOR - Creamos un nuevo proyecto Java normal en Netbeans llamado ServidorEchoWS. - Creamos un paquete com.cursojava.ws.servidor y ah una clase llamada Echo (copiar de carpeta compartida Echo.java). - A nivel raz del proyecto creamos una carpeta META-INF y en su interior un fichero llamado services.xml (copiar de carpeta compartida). -Vamos a crear el ensamblado de tipo .jar y lo vamos a renombrar con extencion .aar (Axis ARrchive, que viene a ser el equivalente al jar de Java).

services.xml
Curso de Java y Aplicaciones Web

Echo.java
Curso de Java y Aplicaciones Web

Servicios web - Practica


- Copiamos el fichero EchoService.aar en CATALINA_HOME\webapps\axis2\WEB-INF\services - http://localhost:8080/axis2/services/listServices

Servicios web - Practica


CLIENTE - Pediremos a Axis que nos d el WSDL de nuestro servicio EchoService invocando la siguiente direccin http://localhost:8080/axis2/services/EchoService?wsdl. -Lo guardamos en un fichero con el nombre echoservice.wsdl - Volviendo a Netbeans, creamos un proyecto Java con el nombre ClienteEchoWS e importamos las libreras de Axis2, navegamos hasta el AXIS2_HOME\lib, seleccionamos todos los .jar.

-Copiamos ahora el fichero ServidorEchoWS.wsdl en la carpeta raiz de nuestro proyecto ClienteEchoWS.


-Abrimos una consola de lnea de comandos (cmd) y nos situamos en ese mismo directorio. Una vez ah, ejecutamos el comando: wsdl2java -uri ServidorEchoWS.wsdl

Servicios web - Practica


CLIENTE Test.java

Practica
Curso de Java y Aplicaciones Web

Crear un servicio Web que sume, multiplique y divida dos nmeros enviados por parmetro. Crear un cliente para este WS y realizar varias pruebas con Junit a cada mtodo.

Curso de Java y Aplicaciones Web.

Ing. Esteban Ramrez edre@gmail.com

Potrebbero piacerti anche