(この記事は、北米在住の Red Hat シニアソリューションアーキテクトである Jey Paulrajの執筆記事から一部抜粋しています)
JBoss BPM Suiteの最新リリースである 6.1*には、ルール、イベント、プランニングなど多数改善が含まれています。1度にたくさんのアップデートについて話すのではなく、興味をお持ちいただけるトピック毎にアップデートを紹介した方が良いと考えました。
この記事では、ビジネスルールを実行する為の統合プラットフォームである Realtime Decision Serverコンポーネントに焦点をあてます。
Rule Execution Server のアーキテクチャー |
ルールを使ったほとんどのプロジェクトでは、ルールを記述するだけでなく、アプリケーションでルールが想定どおりに利用されているか確認する為に実行コード(最低でもテストコード)も実装する必要がありました。ルール作成者とアプリケーション開発者は緊密に連携する必要があったのです。
Realtime Decision Serverがあれば状況は改善します。ルールオーナーは提供されたツールでルールを記述し、JBoss BPM Suite上の business-centralでルールプロジェクトをビルドできます。同じく JBoss BPM Suite上にある実行コンテナへプロジェクトをデプロイできます。
提供される実行コンテナは 完結した(self-contained)環境であり、コンパイルされたルールパッケージのインスタンスとデプロイされたルールインスタンスを保持する為に提供れています。また、RestAPIを使いルールの実行が可能です。これにより、アプリケーションはシームレスにデプロイされたルールを利用することが可能です。
JBoss BPM Suiteプロジェクト内で、ルールの開発とルール実行用のアプリケーション開発をきれいに分離できることを意味します。
バックグラウンド
Realtime Decision Serverは、webアプリケーションアーカイブ(WAR)形式で提供されています。JBoss BRMS/BPM Suite 6.1 の deploymentsディレクトリ配下に、kie-server.war というファイル名で配備されています。
実行サーバーにアクセスするには 別途ロール(kie-server)をログインユーザーに付与する必要があります。JBoss BPM Suite サーバーの下記パスにある application-roles.properties にロールを追加してください:
jboss-eap-x/standalone/configuration/application-roles.properties
Realtime Decision Serverを使用する為に必要な作業をまとめます:
- deployment – kie-server.war が JBoss BPM Suite の deploymentsディレクトリに設置されていることを確認
- user role – JBoss BPM Suite サーバーの設定ファイル application-roles.properties にロール(kie-server)を追加
Realtime Decision Serverを簡単にお試しいただく為のデモプロジェクトを用意しました。プロジェクトには、step-by-stepの説明が含まれているので、あなたご自身の Raltime Decision Serverを作りあげるヒントとなるでしょう。
以下に記述する簡単な作業で、プロジェクトをセットアップできます:
- ダウンロードして解凍
- installsディレクトリに製品を配置
- 'init.sh'もしくは 'init.bat'ファイルを実行
- ./target/jboss-eap-6.4/bin/standalone.sh を実行し、JBoss Serverを起動
- http://localhost:8080/business-central にログイン
- admin, analyst ロールを持ったユーザーでログイン (u:erics / p:jbossbrms1!)
http://localhost:8080/kie-server/services/rest/server.
- 提供されている ルールプロジェクトを使うか、business central上で新規プロジェクトを作成
- modelを作成するか、既存の modelを import
- 前述した modelを使い、簡単な ruleを作成
- プロジェクトを buildしデプロイ
以下の手順でルールプロジェクトを Rule Execution Serverにデプロイすることで、アプリケーションは提供された RestAPIを使いルールを実行できます。
JBoss Demo Centralで公開されている Realtime Decision Serverデモプロジェクトがベースになっています。
- Deploy -> Rule Deployments from business-central を選択
- Register をクリックし、下記 server情報を登録する
- Endpoint: http://localhost:8080/kie-server/services/rest/server/
- Name: DevServer
- Username: erics
- Password: jbossbrms1!
- connect をクリックすると、サーバーが作成されるはずです
- サーバーの脇にある + マークをクリック
- ルールプロジェクト用にコンテナを作成する為のポップアップスクリーンが表示されるはずです
- Name: container-loan1.0
- groupid - artifactId - version
- 情報を思い出せない場合は business centralを使い検索してください。アーティファクトが見つかれば、selectボタンを押すことで importできます
- ルールプロジェクト用に作成され、REST serviceとして公開されたコンテナを、あなたのアプリケーションから利用することが可能です
- DevServerという名前のサーバーを選択し、右上にある Startをクリック
Realtime Decision Server用デモプロジェクトでは、Firefoxの REST Client extensionを使ったテスト方法をご紹介しています。もちろん、SoapUIなど、使い慣れたクライアントツールを使っていただいてかまいません。
このような endpointをご確認いただけるはずです。以下の例は私の環境で確認したものです:
http://localhost:8080/kie-server/services/rest/server/containers/container-loan1.0
<response type="SUCCESS" msg="Info for container container-loan1.0">
<kie-container container-id="container-loan1.0" status="STARTED">
<release-id>
<artifact-id>loandemo</artifact-id>
<group-id>com.redhat.demos</group-id>
<version>1.0</version>
</release-id>
<resolved-release-id>
<artifact-id>loandemo</artifact-id>
<group-id>com.redhat.demos</group-id>
<version>1.0</version>
</resolved-release-id>
<scanner status="DISPOSED"/>
</kie-container>
</response>
適切な XMLでリクエストすることで、アプリケーションから公開したルールパッケージに REST経由でアクセスできます。
詳細については、Realtime Decision Server用デモプロジェクトに含まれる手順をご覧ください。サーバーにデプロイされたルールとどのように連携するか説明されています。
(*今回の記事は JBoss BPM Suiteを使いご案内しましたが、Realtime Decision Serverは、JBoss BPM Suite もしくは JBoss BRMS いずれの製品でも利用可能です。*)
原文: JBoss BPM Suite Quick Guide - Getting Started with the Realtime Decision Server by Eric D. Schabell
0 件のコメント:
コメントを投稿