Нещодавно було проведено багато досліджень щодо того, як дзвінки REST HTTP могли замінити концепцію черги повідомлень.
Якщо ви введете поняття процесу та завдання як ресурсу, потреба в середньому шарі обміну повідомленнями починає випаровуватися.
Наприклад:
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
Завдання може мати кілька кроків для ініціалізації, і процес може повернути статус при опитуванні або POST до URL-адреси зворотного виклику, коли завершено.
Це мертве просто, і стає досить потужним, коли ви розумієте, що тепер можете підписатися на канал rss / atom усіх запущених процесів і завдань без середнього шару. Будь-яка система черги вимагає будь-якого веб-передового кінця, і ця концепція вбудована без іншого шару спеціального коду.
Ваші ресурси існують, поки ви не видалите їх, а це означає, що ви можете переглядати історичну інформацію задовго після завершення процесу та завдання.
Ви створили службове відкриття навіть для завдання, яке має кілька кроків, без зайвих складних протоколів.
GET /task/name
- returns form with required fields
POST (URL provided form's "action" attribute)
Вашим службовим відкриттям є форма HTML - універсальний і читаний людиною формат.
Весь потік може використовуватися програмно або людиною, використовуючи загальновизнані інструменти. Це керований клієнтом і, отже, RESTful. Кожен інструмент, створений для Інтернету, може керувати вашими бізнес-процесами. У вас все ще є альтернативні канали повідомлень шляхом POSTing асинхронно окремого масиву серверів журналів.
Коли ви подумаєте про це деякий час, ви сідаєте назад і починаєте розуміти, що REST може просто усунути потребу в черзі обміну повідомленнями та ESB взагалі.
http://www.infoq.com/presentations/BPM-with-REST