lunes, 18 de febrero de 2013

Web Services - REST y SOAP

Recientemente he estado trabajando en lo que era un mundo desconocido para mi, lo que son los Web Services, SOAP, REST y demás, no voy a hacer un post currao de más porque no tengo demasiao tiempo pero quería dejar por aquí un inicio para que los nuevos como yo que se metan en este mundillo tengan idea de como empezar a trapichear.


Algo de cultura

Lo primero que es un Web Service, tiene relación con SOA (Service Oriented Arquitecture), que es una manera de hacer aplicaciones distribuidas, que ofrezcan servicios independientes entre sí, de manera que no tengamos que cambiar todos si tocamos uno, una de las maneras de ofrecer estos servicios es como servicios web.

Concretando un poco más y yendo a lo que podemos hacer nosotros, la idea es trabajar con aplicaciones que no están físicamente donde esta tu ordenador, simplificando mucho, ejecutamos un método a través de una página web, no tenemos que saber ni en que lenguaje esta escrito ni como, solo sabemos como tenemos que comunicarnos con él para que nos de lo que nos interesa.

Más info en la wiki: es.wikipedia.org/wiki/Servicio_web

Después la wiki de dos de las maneras que lo petan más para este tipo de sistemas:

http://en.wikipedia.org/wiki/Representational_State_Transfer

http://es.wikipedia.org/wiki/Simple_Object_Access_Protocol

Resumiendo SOAP es un protocolo para intercambiar información entre sistemas usando XML, REST no es un protocolo, sino un estilo de arquitectura para desarrollar aplicaciones en la WWW, pero como se adapta perfectamente a la web y es de cierta manera bastante más sencillo que SOAP esta ganando adeptos. Además REST se esta usando con JSON, aunque se puede usar con otros lenguajes, pero la simplicidad de JSON hace que pegue bastante bien con REST, así que digamos que hay un frente abierto entre SOAP/XML y REST/JSON.

Si queréis más información consultad las siguientes webs:
Buscando por google tenéis bastantes más pero estos me parecen bastante interesantes.

A programar

Ahora que tenemos algo de base vamos al lio. He estado currando con la versión JEE de Eclipse, actualmente la última es Juno, pinchad en la imagen para ir al sitio de descarga:


La idea general será siempre hacer una aplicación que actuará de servidor, y luego otra para el cliente.

Para empezar a trabajar con SOAP/XML podéis hacerlo directamente, revisad los siguientes tutoriales:
Lo bueno es que Eclipse prácticamente te hace todo el trabajo, en el fondo solo tienes que hacer el programa en sí, que Eclipse se ocupa de lo demás, aunque es interesante revisar todo para tener una idea de que esta pasando (archivos WSDL, revisar el mensaje SOAP, y tal).

Para trabajar con REST hay bastante más lio, o al menos a mi me ha pasado, primero encontré la librería RESTlet, pero encontrar ejemplos en condiciones fue una tarea prácticamente imposible así que seguí buscando y encontré Jersey, una implementación de JAX-RS (The Java API for RESTful Web Services) que me ha venido perfecta.

El mejor tutorial que he encontrado ha sido el siguiente:

http://www.vogella.com/articles/REST/article.html

Muchos ejemplos, distintas maneras de hacerlo y bien explicado, y usando Eclipse JEE también con lo que no tenemos que cambair de IDE.

Para hacer las aplicaciones cliente hay muchas maneras, tanto para SOAP como para REST, en concreto para REST en esos tutoriales no lo muestra pero se puede hacer algo parecido al cliente .jsp de las de SOAP, simplemente reutilizando el código y pegándolo en el .JSP, cambiando la forma de los import y demás.

Bueno aquí lo dejo, mucha información en poco espacio pero para empezar perfecto.

Un saludo!

No hay comentarios:

Publicar un comentario

Ponte un nombre aunque sea falso, que Anó-nimo queda mu feo :(