web 2.0

jueves, 19 de agosto de 2010

Introducción a los WebService I: Práctico y Fácil

Nivel: Intermedio
Se requieren conocimientos de programación. Este tutorial es meramente didáctico y se ha desarrollado a modo de ser entendible para usuarios sin experiencia en el tema, de tal modo que se pudieron omitir configuraciones.

INTRODUCCIÓN

¿Alguna vez se han preguntado de que manera los Sistemas de Banca en Línea por Internet pueden ofrecer a sus usuarios servicios tales como, recarga de tiempo aire, pago de tarjeta de crédito, pago de recibos de luz y agua, etc?

En primera instancia quizá esto sea poco importante, irrelevante, pero si nos detenemos y pensamos un poco en que las diferentes compañías como Telmex, CFE, Bancomer, Sky, Movistar, etc., tienen sus Sistemas desarrollados en diferentes plataformas (.NET y Java generalmente) ¿Como es que podrían comunicarse plataformas diferentes?


Pago de Servicios de la Banca en Línea de Banco Azteca.


¿Como podrían comunicarse dos personas que hablan un idioma diferente?...

La respuesta a esto son los WebService! Los WS publican unos descriptores XML llamados WSDL que definen una interfaz de comunicación para que otros WS Cliente puedan hacer uso de ellos e invocarlos. Para entender de mejor forma lo anterior, podemos imaginar a dos personas que hablan idiomas diferentes y sin embargo desean comunicarse entre si de forma efectiva, así que uno de ellos publica una interfaz que la otra persona pueda entender como por ejemplo una serie de dibujos (escritura pictográfica) o de movimientos (mimica) y a esta interfaz es a lo que llamamos el WSDL. De esta forma ambas personas aunque hablen un idioma diferente podrán comunicarse.

Mediante los WS, por ejemplo, la Banca en Línea de Banco Azteca puede ofrecer a sus clientes el pago de diversos servicios, pues sencillamente hace uso de los WS que otras compañías publican, crea un cliente para consumir esos WS y listo! tendremos a Sistemas desarrollados en diferentes plataformas comunicandose.

Existen diversos "tipos de WebService", dos de los más comunes son los:

  • Basados en el protocolo SOAP
  • Basados en Rest
En este tutorial dividido en 2 partes veremos los más clásicos, los que utilizan el protocolo SOAP.

HERRAMIENTAS UTILIZADAS



Nota --> La instalación de Tomcat es muy sencilla y funcional siguiendo este tutorial.

DESARROLLO

Para iniciar debemos desplegar el WAR de Axis en Tomcat e invocar la siguiente URL



Debemos validar que tenemos las librerías esenciales para el correcto funcionamiento de axis, para ello basta con dar click al botón de Validate.

Ahora mediante Eclipse vamos a crear un proyecto Java común y corriente y una clase llamada Saludo:


Posteriormente crearemos un archivo xml al que llamaremos services.xml en una carpeta a la que llamaremos META-INF y estará en la raíz del proyecto, de tal forma que debe lucir algo así:





Así pues, vamos ahora a exportar dicho archivo a un JAR que los WS conocen como AAR. En eclipse damos click derecho sobre el proyecto y damos click a export. Seleccionamos JAR File y escribimos un nombre poniendo la extensión ".aar".

Finalmente vamos a la consola de Administración de Axis. Nos pedira un Usuario y Password, así que tecleamos "admin" y "axis2" respectivamente. En la parte de Upload Service podremos subir el archivo que generamos.





Si todo sale bien, en Available Service tendremos el WS que hemos subido.



Si damos click sobre el nombre del WS, nos abrirá una página en blanco, pero si vemos su código fuente, veremos el famoso archivo WSDL que será el que utilizaremos en la segunda parte de este artículo para generar un cliente que consuma este WS.




En esencia, los WS son sencillos de implementar, aunque como toda tecnología, tienen sus puntos complicados.

Saludos!!

2 comentarios:

Ruben dijo...

Muy buen articulo, muy digerible.

SOAP y REST, cuando usar uno y cuando usar otro?

Jesus Luis Fernando Hernandez Luna dijo...

Encontre el siguiente articulo, mas o menos simple de entender donde trae las ventajas y esventajas de cada uno de ellos. Espero te sea útil.

http://www.ajaxonomy.com/2008/xml/web-services-part-1-soap-vs-rest

Como comentario, algunos IDE proveen ya herramientas que facilitan mucho el desarrollo de WS, personalmente la que he uso es Netbeans.


Saludos

Publicar un comentario