Workflows orchestrieren oder choreographieren
In einer idealen Welt würde die komplette IT nur als Services bestehen welche offene Schnittstellen besitzen.
Leute, die erstmalig mit der Idee einer SOA konfrontiert werden, stellen folgende Frage: Wo liegt eigentlich das Wissen über den Geschäftsprozess? Kennen die einzelnen Services ihn selber (sprich, man ruft einen (Wrapper-)Service auf und der weiß, was zu tun ist)? Oder gibt es eine übergeordnete Instanz welche den Workflow kennt und die einzelnen Services sind sozusagen prozessblind?
Die Antwort: Kann man beides machen. In manchen Veröffentlichungen werden dafür folgende Begriffe benutzt: Choreographieren und Orchestieren.
Orchestieren: Eine zentrale Workflow-Engine besitzt das Prozesswissen. Die Services kennen keine Prozesse und rufen sich nicht gegenseitig auf. Angenommen, es gibt die Services „Kunde-Anlegen“, „Adresse-Prüfen“ und „Bonität-Prüfen“. So wird ein zentrale Workflow zuerst „Kunde-Anlegen“ und dann „Adresse-Prüfen“ aufrufen. Anschließend gibt es eine Regel in der WF-Engine die besagt, wenn Bestellwert>1000 dann „Bonität-Prüfen“ aufrufen.
Choreographieren: Die Services sind so mächtig, dass sie wissen, was zu tun ist. Der Service „Kunde-Anlegen“ aus dem oben genannten Beispiel würde also von sich aus den Service „Adresse-Prüfen“ aufrufen und das Ergebnis verarbeiten.
Dummerweise verwechsel ich die Begriffe immer wieder und google ist gerade auch keine Hilfe. Argh …
‹ Pflichtenheft, zweiter Versuch Projektvermittler-Flut ›