Il y a eu pas mal de recherches récentes sur la manière dont les appels HTTP REST pourraient remplacer le concept de file d'attente de messages.
Si vous introduisez le concept d'un processus et d'une tâche en tant que ressource, le besoin d'une couche de messagerie intermédiaire commence à s'évaporer.
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
Une tâche peut avoir plusieurs étapes pour l'initialisation, et un processus peut retourner l'état lorsqu'il est interrogé ou POST vers une URL de rappel lorsqu'il est terminé.
C'est très simple et devient assez puissant lorsque vous réalisez que vous pouvez désormais vous abonner à un flux rss / atom de tous les processus et tâches en cours d'exécution sans aucune couche intermédiaire. Tout système de mise en file d'attente nécessitera de toute façon une sorte de frontal Web, et ce concept l'a intégré sans autre couche de code personnalisé.
Vos ressources existent jusqu'à ce que vous les supprimiez, ce qui signifie que vous pouvez afficher les informations historiques longtemps après la fin du processus et de la tâche.
Vous avez intégré la découverte de services, même pour une tâche comportant plusieurs étapes, sans protocoles supplémentaires compliqués.
GET /task/name
- returns form with required fields
POST (URL provided form's "action" attribute)
Votre découverte de service est un formulaire HTML - un format universel et lisible par l'homme.
L'ensemble du flux peut être utilisé par programme ou par un humain, à l'aide d'outils universellement acceptés. C'est un client, et donc RESTful. Chaque outil créé pour le Web peut piloter vos processus métier. Vous disposez toujours de canaux de messages alternatifs en POSTANT de manière asynchrone sur un tableau distinct de serveurs de journaux.
Après y avoir réfléchi pendant un certain temps, vous vous asseyez et commencez à réaliser que REST peut simplement éliminer le besoin d'une file d'attente de messagerie et d'un ESB.
http://www.infoq.com/presentations/BPM-with-REST