Category Archives: Web Services

RESTful Web Services

Portada de “RESTful Web Services”Hace ya un tiempo que me acabé este libro. Su tema principal son los servicios web en general y los acordes a los principios REST en particular.

El libro contiene una 400 páginas, las cuales podrían resumirse y condensarse en una cuarta parte sin problemas, pero el autor continuamente está dando ejemplos y situaciones para plasmar cada concepto que explica. Incluso tenemos implementado, mostrando todo el código, un servicio web completo (gracias en parte a la brevedad de ruby).

¿Qué nos podemos esperar después de leerlo? Comprender de una vez por todas qué es eso del REST, término que asiduamente es malinterpretado y se ha convertido en una de las palabras clave a mencionar para quedar como si entendieses del tema (ya si lo nombras junto con rails, j2ee y [algo] business eres el puto amo).

¿Cuáles son los contenidos? En una primera parte nos habla de los servicios web en general, algo que puede servir para poner en contexto a quien no comprenda o este al tanto de qué y cómo son realmente.

Justo a continuación se nos explica toda la teoría y conceptos relacionados con la arquitectura orientada a recursos (ROA), la base y propósito de todo libro. Luego tenemos una aplicación de estos conceptos, tanto a nivel de diseño como a nivel de implementación. Estos capítulos, totalmente prácticos, sirven para afianzar todo lo anteriormente explicado, pues en pocas páginas el autor diseña e implementa aplicaciones reales (diseña un servicio de mapas, e implementa un agregador tipo del.icio.us). Después tenemos explicaciones concretas de aspectos específicos que podría llegar a tomarse como una referencia para crear servicios web que será realmente útil para cuando volvamos a recurrir al libro en momentos concretos de dudas.

Finalmente se hacen unas comparaciones con los WS-*, para mi sorpresa, sin meterse mucho con ellos (y no será por oportunidades…), pero que después de haber leído todo lo anterior choca bastante como todavía pueden existir cosas tan increíblemente estúpidas y absurdas (¡y que encima todavía se usan!). Para concluir también tendremos el capítulo de rigor sobre ajax y sus implicaciones al usar servicios web rest (pues una aplicación ajax puede tomarse como un mero cliente de un servicio web) y un breve recorrido sobre frameworks existentes que tratan REST (rails en ruby, django en python y restlet en java).

Este es un libro que lo recomiendo encarecidamente a cualquiera que esté o vaya a crear aplicaciones Web (que a día de hoy es como decir a todo el mundo). Incluso para quien crea haber usado exitosamente REST. Pues dada su popularidad creciente, es un término que continuamente se está enseñando y usando erróneamente (me incluyo aquí el primero, y eso que mi pfc iba sobre eso). Ha sido uno de los libros más vendidos del 2007 (de desarrollo de software claro) y no ha recibido pocos elogios que digamos.

Every developer working with the Web needs to read this book

David Heinemeier Hansson, creador de Ruby on Rails

Simplemente, un libro magnifico.

Web Services really sucks

Show me the interoperable, full and free implementations of WS-* in Python, Perl, Ruby and PHP. You won’t see them, because there’s no intrinsic value in WS-* unless you’re trying to suck money out of your customers. Its complexity serves as a barrier to entry at the same time that it creates “value” that can be sold.

Mark Nottingam

Este tipo no es un cualquiera (like me), trabaja actualmente en Yahoo, anteriormente en BEA y participó (ojo al dato) en el working group del WS-Addressing. Los Web Services, WS-*, han muerto desde hace tiempo (SOAP & family), menos mal que tenemos RESTful Web Services.

Curso online sobre Java y Web Services

java logo En JavaPassion.com Sang Shin, evangelizador de tecnologías Java, ofrece cursos online gratuitos sobre diversos campos Java. Estos cursos consisten en una serie de contenidos preparados por el propio Sang, tareas a realizar para enviárselas y un foro para comunicación de problemas, preguntas, comentarios, etc… Tiene un curso sobre Java en general, posiblemente no muy útil para cualquiera que haya programado ya en esta plataforma, pero un filón de oro para quien quiera aprender y comenzar en Java; otro sobre AJAX, un tanto ambicioso y demasiado disperso en cuanto a temario para mi gusto; otro sobre J2EE que parece realmente interesante, aunque bastante duro, pues toca muuuchas cosas, pero muchas; y, finalmente, otro de servicios Web.

Pasado mañana, viernes 24, comienza el curso sobre servicios web, no parece que haya que dedicar mucho tiempo, no porque trate pocas cosas, sino porque tiene una duración bastante larga. Así resumiendo, los temas más importantes que se tratan son:

  • JAXB y JAX-WS: nuevas apis de java para XML Binding y Web services, la primera la uso hasta para hacer el café y la segunda no me gustó nada cuando la probé, y no soy el único
  • SOAP & REST: REST powah, muerte a SOAP.
  • Otros modelos SOA: BPEL, JBI, Open ESB.
  • Seguridad, gestión y rendimiento en servicios Web

Al final, si has enviado todos los ejercicios y participado activamente en las discusiones, te da un diploma. Te podrías hacer el diploma con Gimp, si, pero no sería lo mismo y lo sabes ;). Por las impresiones de gente que ha cursado otros cursos, parece que malos no son. Una lastima no haber conocido la página antes (por ejemplo cuando me tocó aprender Java).

Por mi parte, dentro de dos días comenzaré con las primeras transparencias. Muchas cosas las conozco, pero sobre todo los últimos temas creo que serán bastante interesantes.

Actualización Abril 2008: ya terminó hace unos meses, y tengo mi diploma :).