2015年5月13日水曜日

JBoss BPM Suite クイックガイド: JBoss EAP 6.4 を使ったアプリケーションをビルドするには

原文: JBoss BPM Suite Quick Guide: Changes You Need for Building Applications with JBoss EAP 6.4 Modules by Eric D. Schabell

今週の tips & tricksは、4月16日(木)にリリースされた JBoss BRMS 6.1についてご紹介します。

以前の記事でもご紹介しましたが、この新しいリリースには、いくつもの興味深い新機能が含まれています。

JBoss Demo Centralで公開されているデモプロジェクトのアップデート作業をする際、Cool Storeデモのウェブアプリケーションのコードは、JBoss BRMS 6.1のベースプラットフォームである JBoss EAP 6.4を対象にビルドした方が良いと気づきました。

Figure 1: JBoss EAP 6.1に含まれる JBoss BRMSモジュール
以前のバージョン( JBoss BRMS か JBoss BPM Suite)をインストールした際に生成されるモジュールに対し、ウェブアプリケーションをビルドされる場合、モジュールは JBoss EAPサーバーの modulesディレクトリにありました。パスは figure 1をご確認ください。

figure1は、JBoss BRMS用の図となりますのでご注意ください。JBoss BPM Suiteでも同様の階層構造になりますが、フォルダー名が brmsではなく bpmsとなります。

JBoss EAP 6.4をベースとした JBoss BRMS 6.1 か JBoss BPM Suite 6.1に対し、同じ maven configurationであなたのプロジェクトをビルドされた場合、うまくいかない事に気付くでしょう。

figure 2にある JBoss EAP 6.4の modulesディレクトリーを figure 1と比較すると、理由がわかるはずです。

layers配下に、インストール時に生成されるモジュールがありません。ビルドされたいプロジェクトの maven configurationを修正し、JBoss Maven リポジトリーから依存関係を取得する必要があります。

Figure 2: JBoss EAP 6.4にはモジュールが無い
修正方法が気になりますよね。

ほんの数分で Maven configurationを修正できます。簡単ですよ。

以前の記事で、JBoss Mavenリポジトリから依存関係を取得する方法をご案内しました。今回は完結に、configurationに記載すべきコードをご案内します:

<repositories>
 <repository>
  <id>jboss-maven-repository</id>
  <name>JBoss Maven Repository</name>
  <url>http://maven.repository.redhat.com/techpreview/all/</url>
  <layout>default</layout>
  <releases>
   <enabled>true</enabled>
   <updatePolicy>never</updatePolicy>
  </releases>
  <snapshots>
   <enabled>false</enabled>
   <updatePolicy>never</updatePolicy>
  </snapshots>
 </repository>
</repositories>

<pluginrepositories>
 <pluginrepository>
  <id>jboss-maven-repository</id>
  <name>JBoss Maven Repository</name>
  <url>http://maven.repository.redhat.com/techpreview/all/</url>
  <layout>default</layout>
  <releases>
   <enabled>true</enabled>
   <updatePolicy>never</updatePolicy>
  </releases>
  <snapshots>
   <enabled>false</enabled>
   <updatePolicy>never</updatePolicy>
  </snapshots>
 </pluginrepository>
</pluginrepositories>


ビジネスの自動化を検討されていますか?
configurationの設定が終われば、依存関係を取得できるはずです。以前 JBoss BRMS/BPM Suiteのベースとなる JBoss EAP 6.1の modulesディレクトリから依存関係を取得されていた方は、JBoss Mavenリポジトリを使い同様のことが実現できるわけです。

この記事についてご質問がある方は、気軽にコメントをください。

原文: JBoss BPM Suite Quick Guide: Changes You Need for Building Applications with JBoss EAP 6.4 Modules by Eric D. Schabell

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