2009-08-22 10 views
4

Wie externalisiere ich die Geschäftsregeln aus den Geschäftsprozessen, sodass ich Regeln hinzufügen kann, ohne die Geschäftsprozesslogik zu berühren?Geschäftsregeln von Geschäftsprozessen trennen

Zum Beispiel habe ich zwei Geschäftsprozesse, sagen "Produkt hinzufügen" und "Produkt aktualisieren", gibt es ein paar gemeinsame Regeln, die diese beiden Prozesse teilen, und Regeln können später hinzugefügt werden. Ich beabsichtige, den Geschäftsprozess einmal zu schreiben, der alle für einen bestimmten Prozess verfügbaren Regeln ausführt, und wenn keine Ausnahme ausgelöst wird, wird der Geschäftsprozess erfolgreich abgeschlossen.

Ich habe nicht vor, eine Regel-Engine zu verwenden, da ich denke, dass dies für meine Architektur zu schwer sein könnte.

Danke und Grüße,
Ajay

+0

Was ist los mit der Rules Engine? –

+1

Die Frage ist gültig, aber derjenige, der -1 gesetzt hat, kannst du bitte dein Gesicht zeigen und einen Kommentar darüber schreiben, was mit dieser Frage falsch ist? Ich gebe +1 für gültige Frage. –

+0

Meine Anwendungsdomäne erfordert keine sehr komplexen Regeln mit mehreren Parametern, die vom Kontext usw. abhängen.Ich denke, dass die Rules-Engine zu einer aufgeblähten Architektur wird. – Ajay

Antwort

1

Die Antwort auf diese Frage ist komplizierter, als ich hier schreiben könnte. Dies berührt die Wissenschaften von Datenbeziehungen, Sicherheit, Grundsatzdoktrinen und administrativen Zwängen Ihres Geschäfts/Ihrer Branche.

Ich könnte Ihre Frage falsch interpretieren, wenn Sie etwas weniger vage als "Geschäftsregeln" und "Geschäftsrichtlinien" meinten.

0

Die Fragen sind ziemlich breit, also werde ich in Bezug auf ein allgemeines Muster antworten.

Was ich in vielen Fällen getan habe, ist, den Prozess so zu definieren, dass man eine Reihe von "Torwächter" -Aktivitäten in geeigneten Phasen in den Prozess einfügt. Jeder dieser Torwächter ist für die Durchsetzung einer bestimmten Untergruppe der Geschäftsregeln verantwortlich. So könnte beispielsweise eine solche Aktivität die Datenqualität erzwingen. Ein anderer könnte eine Routing-Entscheidung basierend auf Geschäftsregeln treffen. Ein anderer Preis. Und so weiter.

Die eigentlichen Regeln selbst werden außerhalb des Workflows gehalten und können unabhängig davon geändert werden. Der Trick besteht darin, die "Prozesskonsequenz" der Regelauswertung einzuschränken, so dass man weiterhin einen vorhersagbaren (und testbaren) Prozess haben kann.

1

Sie können die Regeln mit vielen Techniken vom Prozessablauf trennen. Auf einer gewissen Ebene nennen Sie eine "Methode" von verschiedenen Punkten in Ihrem Geschäftsprozess. Die Frage wird dann zu einem der Mechanismen, mit denen diese Methode geändert werden kann, ohne den Geschäftsprozess selbst zu verändern.

Man könnte die Methode in eine eigene Bibliothek (dll, jar oder was auch immer) packen und dieses jar durch eine neue Version ersetzen. Ändern Sie die Bibliothek, ändern Sie die Geschäftsregeln.

Man könnte die Logik in der Methode in Bezug auf konfigurierbare Parameter aus einer Datenbank ausdrücken. Ändern Sie die Datenbank, ändern Sie die Geschäftsregeln.

Wenn die Komplexität hoch genug ist, stellen Sie fest, dass Sie Ihre eigene Regel-Engine implementiert haben.

Irgendwann wird es effizienter, eine vorhandene Regel-Engine zu verwenden, anstatt dieses Rad neu zu erfinden.

Für detailliertere Ratschläge müssen Sie uns mehr darüber erzählen, was Sie tun.

Verwandte Themen