序章
Drools Guvnor には独自のバージョン管理システムがあり、実稼働環境ではアプリケーションのユーザーがビジネスの変化に適応するためにルールと意思決定表を変更できます。それでも、アプリの新機能が開発される開発バージョン管理システムには、同じアセットが引き続き存在します。
この投稿は、Drools ルールと Guvnor を使用する際のルール開発とデプロイに関する洞察/アイデア/経験を探すためのものです。
以下は、私が困惑してきたいくつかの重要な概念です。
Guvnor への展開
まず第一に、drl ファイルとデシジョン テーブルを本番環境に展開する最良の方法は何ですか? それらをzipパッケージに入れてから、Web-Davフォルダーに解凍するだけですか?Drools について調べてみましたが、一度に複数のファイルをインポートする方法が見つかりませんでした。ただし、ファクト モデルは jar アーカイブとして追加できます。Guvnor にはある種の REST API があるようですが、それを使用するにはカスタムのデプロイ スクリプトが必要です。
変更管理
第 2 に、アプリケーションが本番環境に入ると、ユーザーは、プレミアム クライアントなどの割引率を高く設定するために、デシジョン テーブルの値を変更する可能性があります。アプリのバージョン 2.0。
この時点で私たちが持っているのは
- バージョン管理システムの drl ファイルとデシジョン テーブル
- Guvnor によってバージョン管理された、ユーザーが変更した実稼働環境の drl ファイルとデシジョン テーブル
これで、Guvnor からルールとデシジョン テーブルを取得するところまで来ました。また、これには Web-Dav フォルダーが最適ですが、他にどのようなオプションがありますか?
今日のマージ ツールは、Excel ファイルの差分も処理できますが、大規模なプロジェクトではマージ地獄のように思えます。
ファクト モデルの下位互換性を維持する
もう 1 つのトピックは、ファクト モデルの完全性です。想定されるバージョン 2.0 の場合、開発者は常にリファクタリングを行い、ファクト モデル全体を逆さまにしたいと考えています。それでも、以前のバージョンに依存するユーザーが変更したルールが存在する可能性があるため、以前のバージョンとの下位互換性を維持する必要があります。これに関するヒントはありますか?ファクト モデルをシンプルかつクリーンに保ちますか? 事前に計画し、ユーザーが何を変更したいかを提案しますか?
概要
Drools と Guvnor を使用した展開と変更管理のオプションを検討したのは、私が初めてではなく、最後でもありません。したがって、私が聞きたいのは、これらの状況を処理するための最良の (そしてそれらを回避するための最悪の) プラクティスに関するコメント、ディスカッション、ヒントなどです。
ありがとう。