In jüngster Zeit wurde viel darüber nachgedacht, wie REST-HTTP-Aufrufe das Konzept der Nachrichtenwarteschlange ersetzen könnten.
Wenn Sie das Konzept eines Prozesses und einer Aufgabe als Ressource einführen, beginnt der Bedarf an mittlerer Messaging-Schicht zu schwinden.
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
Eine Aufgabe kann mehrere Schritte für die Initialisierung umfassen, und ein Prozess kann den Status bei Abfrage zurückgeben oder nach Abschluss an eine Rückruf-URL senden.
Dies ist denkbar einfach und wird sehr leistungsfähig, wenn Sie feststellen, dass Sie jetzt einen RSS / Atom-Feed aller laufenden Prozesse und Aufgaben ohne mittlere Ebene abonnieren können. Jedes Warteschlangensystem erfordert ohnehin eine Art Web-Frontend, und dieses Konzept hat es ohne eine weitere Ebene von benutzerdefiniertem Code eingebaut.
Ihre Ressourcen sind vorhanden, bis Sie sie löschen. Dies bedeutet, dass Sie historische Informationen lange nach Abschluss des Prozesses und der Aufgabe anzeigen können.
Sie haben die Serviceerkennung selbst für eine Aufgabe mit mehreren Schritten ohne besonders komplizierte Protokolle integriert.
GET /task/name
- returns form with required fields
POST (URL provided form's "action" attribute)
Ihre Serviceerkennung ist ein HTML-Formular - ein universelles und für Menschen lesbares Format.
Der gesamte Fluss kann programmgesteuert oder von einem Menschen unter Verwendung allgemein anerkannter Werkzeuge verwendet werden. Es ist kundenorientiert und daher RESTful. Jedes für das Web erstellte Tool kann Ihre Geschäftsprozesse steuern. Sie haben immer noch alternative Nachrichtenkanäle, indem Sie asynchron auf ein separates Array von Protokollservern POSTEN.
Nachdem Sie eine Weile darüber nachgedacht haben, lehnen Sie sich zurück und stellen fest, dass REST möglicherweise keine Messaging-Warteschlange und keinen ESB mehr benötigt.
http://www.infoq.com/presentations/BPM-with-REST