Ha habido una buena cantidad de investigaciones recientes al considerar cómo las llamadas HTTP REST podrían reemplazar el concepto de cola de mensajes.
Si introduce el concepto de un proceso y una tarea como recurso, la necesidad de una capa de mensajería intermedia 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 volver al estado de encuestados o POST a una URL de devolución de llamada cuando haya terminado.
Esto es absolutamente simple, y se vuelve bastante poderoso cuando te das cuenta de que ahora puedes suscribirte a una alimentación rss/atom de todos los procesos y tareas en ejecución sin ninguna capa intermedia. Cualquier sistema de colas va a requerir algún tipo de interfaz de red de todos modos, 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 que se complete el proceso y la tarea.
Ha incorporado el descubrimiento de servicios, incluso para una tarea que tiene varios pasos, sin ningún protocolo complicado adicional.
GET /task/name
- returns form with required fields
POST (URL provided form's "action" attribute)
Su descubrimiento de servicios es un formulario HTML, un formato universal legible por humanos.
Todo el flujo puede ser utilizado por programa 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 al realizar la PUBLICACIÓN de forma asincrónica en 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 simplemente eliminar la necesidad de una cola de mensajes y un ESB en conjunto.
http://www.infoq.com/presentations/BPM-with-REST
Si se utiliza el enlace [SOAP/JMS] (http://www.w3.org/TR/soapjms/), también se obtiene un acoplamiento flexible en los servicios web. – koppor
Para múltiples servicios de micro en el lado del servidor, ¿cuál debería ser el servicio web preferido o la cola? –