PowerPoint Template

Download Report

Transcript PowerPoint Template

Curso de Java y Aplicaciones Web
WebServices con
Java
Facultad Politécnica – U.N.A.
Ing. Esteban Ramírez
[email protected]
Servicios web - Ejemplo
Servicios web - Introducción
- Un web service es una aplicación que puede ser
-Descripta
-Publicada
-Localizada
-Invocada
a través 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 programación.
Servicios web - Introducción
- La interoperabilidad se consigue mediante la adopción de estándares
abiertos.
- Fue concebido con el propósito de proveer una plataforma para la
computación distribuida sobre la Web.
- Arquitectura sin estado (StateLess).
- Comunicación/proceso asíncrono.
- Se comunica con otras aplicaciones codificando los mensaje en XML y
enviando estos mensaje a través de protocolos estándares 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 tecnologías pueden implementar o
acceder web services. Muy pronto estarán presentes en teléfonos, autos e
incluso máquinas expendedoras, las que avisarán a la central cuando el
stock sea menor al indicado.
Servicios web - Ventajas
Encapsulación:
Lo importante es la interface que el servicio provee y no como esta
implementado, por lo cual la complejidad se reduce.
Facilidad:
El concepto detrás de los web services es fácil de entender, incluso existen
toolkits de vendedores como IBM o Microsoft que permiten a los
desarrolladores crear web services en forma rápida y fácil.
Soporte:
Todos las empresas de software importantes soportan SOAP, e incluso
están 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 podrían ser consumidos por
un web service desarrollado utilizando VisualAge de IBM y viceversa.
Servicios web - Invocación
1
Publicar la URL del servicio Web
y su descripción
2
Descubrir el servicio Web
3
Localizar la URL del servicio Web
4
Leer la descripción .wsdl
5
Vincular el servicio Web XML al proxy
6
Invocar el
servicio Web
desde la
aplicación
cliente.
Web
Form
5
Proxy
1
Universal Description, Discovery and Integration
2
1
3
.disco
4
.wsdl
6
Servicio Web
Servicios web - Proxy
Servicios web - SOAP
Simple Object Access Protocol
SOAP es un protocolo para el intercambio de
información en un ambiente descentralizado y
distribuido.
Esta basado en XML y potencialmente puede ser utilizado en
combinación con una variedad de protocolos de comunicación,
siendo el más 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 comunicación 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 información solicitada o enviando un mensaje de error en caso de que
el requerimiento no haya sido válido.
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 información acerca
del requerimiento, mientras que
el cuerpo SOAP contiene el
método llamado y los parámetros
con los que se llama al mismo.
Servicios web - SOAP
Mensajes SOAP - Request
Este ejemplo invoca al servicio StockQuote
llamando al método GetLastTradePrice con el
símbolo DIS por parámetro.
Servicios web - SOAP
Mensajes SOAP - Responce
Este es la respuesta al requerimiento
anterior, el cual retorna el precio de la
acción 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 pública a los servicios Web.
La versión 1.0 fue la primera recomendación por parte del W3C y la
versión 1.1 no alcanzó nunca tal estatus. La versión 2.0 se convirtió en la
recomendación 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 través
de los mensajes que envía 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 utilizarán para construir los
mensajes de petición 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 operación
no es más que un grupo de mensajes que
serán intercambiados. Cada operación
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 estándar 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 dirección
donde se encuentra el servicio que
acepta mensajes en ese formato.
Servicios web - Práctica
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
-Distribución de Java, en versión 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 raíz 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
dirección 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 librerías 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 línea 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 números
enviados por parámetro.
Crear un cliente para este WS y
realizar varias pruebas con Junit a
cada método.
Curso de Java y Aplicaciones Web.
Ing. Esteban Ramírez
[email protected]