2015年5月4日月曜日

JBoss BPM Suite クイックガイド - Realtime Decision Serverを使ってみる

原文: JBoss BPM Suite Quick Guide - Getting Started with the Realtime Decision Server by Eric D. Schabell

(この記事は、北米在住の 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

もし JBoss Demo Centralで公開されている JBoss BRMS もしくは JBoss BPM Suite デモプロジェクトをご利用されている場合、すでにロールが該当設定ファイルに付与されているのに気づかれるはずです。

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を作りあげるヒントとなるでしょう。

以下に記述する簡単な作業で、プロジェクトをセットアップできます:
  1. ダウンロードして解凍
  2. installsディレクトリに製品を配置
  3. 'init.sh'もしくは 'init.bat'ファイルを実行
  4. ./target/jboss-eap-6.4/bin/standalone.sh を実行し、JBoss Serverを起動
  5. http://localhost:8080/business-central にログイン

    - admin, analyst ロールを持ったユーザーでログイン (u:erics / p:jbossbrms1!)
Realtime Decision Serverが下記 URLで稼働していることが確認できます:

http://localhost:8080/kie-server/services/rest/server.

Realtime Decision Serverを利用する為、ルールベースのプロジェクトをデプロイする必要があります。簡単に始めるための手順を記載します:
  • 提供されている ルールプロジェクトを使うか、business central上で新規プロジェクトを作成
  • modelを作成するか、既存の modelを import
  • 前述した modelを使い、簡単な ruleを作成
  • プロジェクトを buildしデプロイ
Realtime Decision Server
以下の手順でルールプロジェクトを 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をクリック
お好きな RESTクライアントを使い、プロジェクトをテストすることができます

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 件のコメント:

コメントを投稿