※この投稿は、丸太式 Advent Calendar 2014の10日目です
ビジネスルールエンジンについて、しばらく考察を続けています。
今日は(あまりまとまっていませんが)現状のメモをまとめておきます。
どれくらい先になるかはわかりませんが、将来的に整理しなおすつもりです。
以下メモ
アプリケーションとは独立した、ビジネスルールを処理するための仕組みや実装を、ビジネスルールエンジン、または単にルールエンジンという。
基幹業務パッケージの導入においては、導入先の企業の業務フローに合わせたカスタマイズが必要となる。
特定の業種に対して横展開で受注を獲得しているパッケージの場合を考えてみる。
各企業向けのカスタマイズ部分を基となるコードに密結合させてしまうと、似たようなカスタマイズを繰り返し行うことになりかねない。
このような場合にルールエンジンの概念を導入すると、工数を削減できる可能性がある。
例えば、画面の入力値をバリデーションし、結果に応じてデータを修正し保存する処理があったとする。
この処理をビジネスルールとすると、バリデーション、データの修正、保存の三つに分けることができる。
これらをルールエンジン上に構築することで、アプリケーションの更新とは別にルールの組み替えや追加が可能となる。
先述の例で言うと、データを保存した後に"特定のユーザに対してメールで通知する"という処理を追加する場合、ルールエンジンではあらかじめ規定しておいたルールを追加するだけで良い。