Ha habido una gran cantidad de investigaciones recientes al considerar cómo las llamadas HTTP REST podrían reemplazar el concepto de la cola de mensajes.
Si introduce el concepto de un proceso y una tarea como recurso, la necesidad de una capa de mensajería media comienza a evaporarse.
Ex:
POST /task/name
- Returns a 202 accepted status immediately
- Returns a resource url for the created task: /task/name/X
- Returns a resource url for the started process: /process/Y
GET /process/Y
- Returns status of ongoing process
Una tarea puede tener múltiples pasos para la inicialización, y un proceso puede devolver el estado cuando se sondea o POST a una URL de devolución de llamada cuando se completa.
Esto es muy simple y se vuelve bastante poderoso cuando te das cuenta de que ahora puedes suscribirte a un feed rss / atom de todos los procesos y tareas en ejecución sin ninguna capa intermedia. De todos modos, cualquier sistema de colas requerirá algún tipo de front-end web, y este concepto lo tiene incorporado sin otra capa de código personalizado.
Sus recursos existen hasta que los elimine, lo que significa que puede ver información histórica mucho después de completar el proceso y la tarea.
Ha incorporado el descubrimiento de servicios, incluso para una tarea que tiene varios pasos, sin protocolos adicionales complicados.
GET /task/name
- returns form with required fields
POST (URL provided form's "action" attribute)
El descubrimiento de su servicio es un formulario HTML, un formato universal y legible por humanos.
Todo el flujo puede ser utilizado mediante programación o por un humano, utilizando herramientas universalmente aceptadas. Es un cliente impulsado y, por lo tanto, RESTful. Cada herramienta creada para la web puede impulsar sus procesos comerciales. Aún tiene canales de mensajes alternativos POSTING asincrónicamente a una matriz separada de servidores de registro.
Después de considerarlo por un tiempo, se sienta y comienza a darse cuenta de que REST puede eliminar la necesidad de una cola de mensajería y un ESB por completo.
http://www.infoq.com/presentations/BPM-with-REST