2014年3月31日月曜日

Red Hat JBoss BRMS - オンラインワークショップで Cool Storeを作る(Lab 4 Domain Specific Languageの作成)

原文: Red Hat JBoss BRMS - Online Workshop Building The Cool Store (Lab 4 Create a Domain Specific Language) by Eric D. Schabell

JBoss Business Rules Management System(BRMS)とBusiness Process management(BPM)Suite のオンラインワークショップシリーズです。早速、今週分のラボをご案内します。

このワークショップを通し、これら2つの商品があなたのビジネスにもたらす可能性についてご紹介します。

毎週、1週間分のワークショップを push する予定です。ワークショップでは、ルール、イベント、ルールフローを活用したオンラインリテーラーによるウェブショッピングサイトを構築します。

すでにCool Storeデモとして完成されたプロジェクトをご利用していただけますが、スクラッチからアプリケーションを実装していただくことでお楽しみいただけるはずと考えました。

ワークショップの後半でも同様の演習が続きますが、今度は JBoss BPM Suite をご利用いただきます。ビジネスプロセス、ルール連携、ヒューマンタスクを活用したアプリケーションになります。その他、あなただけの入力フォームをデザインしていただいたり、色々とお楽しみいただける内容を盛り込んでいます。

先週はドメインモデルを作成しました。
Cool StoreのDomain Specific Languageを作る

今週は、Domain Specific Language(DSL) で Cool Storeプロジェクトを展開する方法を学びます。DSLにより、ビジネスユーザーは業務で使用する言葉を利用し、ルールを作成することができます。

翌週以降も演習を通して Cool Sotre の実装を経験していただき、1段階上の開発レベルへあなたをお連れします。

ワークショップで利用されるすべてのマテリアルは OpenShift を利用し、オンラインにホストされます。あなが必要なものはインターネットに接続できるブラウザーです。

参加者は Java開発者である必要はありません。今回のワークショップは、ビジネスアナリストにも参加していただくことを想定し、製品に同梱されるウェブダッシュボードの使用がメインとなります。唯一技術的な作業は製品の初期インストールでしょうが、詳細に作業手順を解説しておりますのでご安心ください。また、作業自体は3ステップのみで構成されており、数分で完了する内容です。

では、さっそく始めましょう。

Cool Store の Domain Specific Language(DSL)を作成する


過去のラボを実施されていない方は、過去の資料をご確認いただけるのでキャッチアップできます:

1. イントロダクションJBoss BRMSのインストール
2. 新規プロジェクトを作成
3. ドメインモデルの作成
4. Domain Specific Language(DSL)の作成

来週以降のワークショップシリーズにご注目ください。次回の記事では Cool Store の完成に迫ります。

メモ: 何らかの理由でオンラインのマテリアルにアクセスできない場合、ご遠慮なさらずお知らせください。

原文: Red Hat JBoss BRMS - Online Workshop Building The Cool Store (Lab 4 Create a Domain Specific Language) by Eric D. Schabell






2014年3月30日日曜日

Red Hat Summit 2014 に Mr.梅野が登壇!

サンフランシスコで開催予定の Red Hat Summit 2014では、日本人のプレゼンテーターが登壇するセッションがあります。

Migrating JRules to Red Hat JBoss BRMS

2012年にSoftbank社が実施した JRules から Red Hat JBoss BRMS へのマイグレーションについて、梅野さんがビシッと紹介されます。

過去に日本国内で開催された Red Hat Forum では度々登壇されている梅野さんですが、今回はサンフランシスコから世界に向けて情報を発信されます。Webinarが用意されているので、セッション当日は日本から皆で参加しましょう!

2014年3月26日水曜日

Red Hat JBoss BRMS - オンラインワークショップで Cool Storeを作る(Lab 3 ドメインモデルの作成)

原文: Red Hat JBoss BRMS - Online Workshop Building The Cool Store (Lab 3 Create a Domain Model) by Eric D. Schabell

JBoss Business Rules Management System(BRMS)とBusiness Process management(BPM)Suite のオンラインワークショップシリーズです。早速、今週分のラボをご案内します。

このワークショップを通し、これら2つの商品があなたのビジネスにもたらす可能性についてご紹介します。

毎週、1週間分のワークショップを push する予定です。ワークショップでは、ルール、イベント、ルールフローを活用したオンラインリテーラーによるウェブショッピングサイトを構築します。

すでにCool Storeデモとして完成されたプロジェクトをご利用していただけますが、スクラッチからアプリケーションを実装していただくことでお楽しみいただけるはずと考えました。

ワークショップの後半でも同様の演習が続きますが、今度は JBoss BPM Suite をご利用いただきます。ビジネスプロセス、ルール連携、ヒューマンタスクを活用したアプリケーションになります。その他、あなただけの入力フォームをデザインしていただいたり、色々とお楽しみいただける内容を盛り込んでいます。

Workbench domain modeler
先週は製品の紹介後、JBoss BRMS(ラボでは提供されませんが、オンラインからダウンロードしていただけます) のインストールを実施しました。最後にプロジェクトの作成を行い、ラボのキックオフが終了しました。

今週は、workbench domain modelerコンポーネントを使い、ドメインモデルを作成する方法をご紹介します。

翌週以降も演習を通して Cool Sotre の実装を経験していただき、1段階上の開発レベルへあなたをお連れします。

ワークショップで利用されるすべてのマテリアルは OpenShift を利用し、オンラインにホストされます。あなが必要なものはインターネットに接続できるブラウザーです。

参加者は Java開発者である必要はありません。今回のワークショップは、ビジネスアナリストにも参加していただくことを想定し、製品に同梱されるウェブダッシュボードの使用がメインとなります。唯一技術的な作業は製品の初期インストールでしょうが、詳細に作業手順を解説しておりますのでご安心ください。また、作業自体は3ステップのみで構成されており、数分で完了する内容です。

では、さっそく始めましょう。

Cool Storeのドメインモデルを作成する:


過去のラボを実施されていない方は、過去の資料をご確認いただけるのでキャッチアップできます:

1. イントロダクション
2. JBoss BRMS をインストール
3. 新規プロジェクトを作成

来週以降のワークショップシリーズにご注目ください。次回の記事では Cool Store の完成に迫ります。

メモ: 何らかの理由でオンラインのマテリアルにアクセスできない場合、ご遠慮なさらずお知らせください。

原文: Red Hat JBoss BRMS - Online Workshop Building The Cool Store (Lab 3 Create a Domain Model) by Eric D. Schabell

2014年3月24日月曜日

Red Hat JBoss BPM Suite - LDAP用の初期権限(default role)設定を変更する

原文: Red Hat JBoss BPM Suite - changing the default roles for LDAP configuration by Eric D. Schabell

企業が保有する既存の権限(ロール)やユーザー情報を活用する為、JBoss BPM Suite に LDAPを使う設定をされた場合、ロールの初期値がLDAPの管理下にうつります。

JBoss BPM Suite をデプロイした際に用意される以下のロールを変更するにはどうすればよいでしょう?: admin、developer、analyst、user、manager

workbenchの設定で変更することができます。下記修正箇所に設定された5つのユニークなロールが、LDAPの管理下にあることを確認してください。

# Edit the file found in the deployments directory of your jboss server,
# business-central.war/WEB-INF/classes/workbench-policy.properties and
# at the bottom you will find the following entries that can be adjusted
# to the LDAP roles you would like to assign to each.
#
roles.wb_everything=admin
roles.wb_for_developers=developer
roles.wb_for_business_analysts=analyst
roles.wb_for_business_users=user
roles.wb_for_managers=manager


# You will also need to adjust the file found in the deployments directory 
# of your jboss server at business-central.war/WEB-INF/web.xml to adjust 
# to match your new LDAP roles. The following entries are shown with the 
# original five roles, adjust the 'role-name' to the new roles as needed.
#

    Administrator - Administrates the BPMS system. Has full 
      access rights to make any changes necessary. Also has the
      ability to add and remove users from the system.
    
    admin



    Analyst - Responsible for creating and designing processes
      into the system. Creates process flows and handles
      process change requests. Needs to test processes that
      they create. Also creates forms and dashboards.
    
    analyst



    Developer - Implements code required for process to work. 
      Mostly uses the JBDS connection to view processes, but may use the
      web tool occasionally.
    
    developer



    Business user - Daily user of the system to take actions 
      on business tasks that are required for the processes to continue 
      forward. Works primarily with the task lists.
    
    user



    Manager/Viewer-only User - Viewer of the system that is 
      interested in statistics around the  business processes and their 
      performance, business indicators, and other reporting of the system 
      and people who interact with the system.
    
    manager


この tips は、Adam Baxter によって提供されました。感謝のコメントをされたい方は、ぜひ直接彼にコンタクトしてください。

原文: Red Hat JBoss BPM Suite - changing the default roles for LDAP configuration by Eric D. Schabell

2014年3月20日木曜日

Red Hat JBoss BPM Suite - Business Activity Monitor(BAM)のレポートパーミッションを変更する

原文: Red Hat JBoss BPM Suite - changing Business Activity Monitor (BAM) report permissions by Eric D. Schabell

JBoss BPM Suite に含まれる Business Activity Monitor(BAM) を使用することで、あなたの好きなようにデータソースから必要なレポートを作成することができます。

ここで問題です。機密性の高いレポートを、マネージャーにのみ公開するにはどうしたらよいでしょう?

BAMのレポートプロパティにあるパーミッションを修正することで実現できます。

dashboard のどのセクションにアクセスできるか、ユーザーに対して権限レベルを設定することができます。admin権限であれば、ページの作成、編集、クリーンアップ、パネルの変更を実行できます。

Figure 1 - BAM dashboard のサンプル:支出レポート

JBoss BPM dashboard にログインしたとします。例えば、JBoss BRMS Generic Loan Demo プロジェクトをセットアップしたと仮定して、トップメニューから Dashboards -> Business Dashboards と選択できます。Figure 1 でご確認いただけるように、example Expense reports を Sample dashboards から選択してください。

パーミッションを確認する為、画面の上部にある Edit Page Properties tool アイコンを選択してください。

Workspaces -> Showcase -> Pages -> Sample dashboards -> Expense reports -> Page permissions を選択することで、このレポートに対するパーミッションをご確認いただけます。

Figure 2 - manager と admin に対してレポートへのアクセス権限を追加
パーミッションの初期設定は空なので、レポートに対するアクセス制限はありません。マネージャーのみ閲覧可能にしたい為、何でもできる administrator権限と、閲覧のみできる manager権限を追加します。Figure 2 でご確認いただけるように、その他の権限ではレポートにアクセスすることができません。

全体に適応される(high level)デフォルトパーミッションの内容を確認する為、Workspaces -> Showcase -> Permissions を選択すると、ショーケース用のすべてのレポートに対するパーミッションが表示されます。Figure 3 でご確認いただけるように、権限のアクセスレベルは修正可能です。

Figure 3 - BAM レポートの全体に適応される(high level)パーミッション
今回の記事では、BAM
のレポートに付与するパーミッションについて2つご案内しました。1つは個々のレポートに付与するパーミッションで、もう1つは全体に適応される(high level)パーミッションです。パーミッションの修正方法についても触れました。

今回は小規模なサンプルにすぎません。必要であれば、パネル毎にパーミッションを設定するような細かいコントロールをすることも可能です。

原文: Red Hat JBoss BPM Suite - changing Business Activity Monitor (BAM) report permissions by Eric D. Schabell

2014年3月18日火曜日

Red Hat JBoss BRMS - オンラインワークショップで Cool Storeを作る(イントロ & Lab 1-2)

原文: Red Hat JBoss BRMS - Online Workshop Building The Cool Store (Introduction & Labs 1 - 2) by Eric D. Schabell

JBoss Business Rules Management System(BRMS) と Business Process Management(BPM) Suite 用オンラインワークショップのキックオフにようこそ。

ワークショップを通し、これら2つの商品があなたのビジネスにもたらす可能性について紹介します。

毎週、1週間分のワークショップを push する予定です。ワークショップでは、ルール、イベント、ルールフローを活用したオンラインリテーラーによるウェブショッピングサイトを構築します。

すでにCool Store デモとして完成されたプロジェクトをご利用していただけますが、スクラッチからアプリケーションを実装していただくことでお楽しみいただけるはずと考えました。

ワークショップの後半でも同様の演習が続きますが、今度は JBoss BPM Suite をご利用いただきます。ビジネスプロセス、ルール連携、ヒューマンタスクを活用したアプリケーションになります。その他、あなただけの入力フォームをデザインしていただいたり、色々とお楽しみいただける内容を盛り込んでいます。

Cool Store をビルドする!
今週はキックオフということで、製品の紹介をした後、JBoss BRMSのインストール、そしてプロジェクトの作成まで行っていただきます。(JBoss BRMS は提供されませんが、オンラインからダウンロードしていただけます)

翌週以降では Cool Sotre の実装を経験していただき、1段階上の開発レベルへあなたをお連れします。

ワークショップで利用されるすべてのマテリアルは OpenShift を利用し、オンラインにホストされます。あなが必要なものはインターネットに接続できるブラウザーです。

参加者は Java開発者である必要はありません。今回のワークショップは、ビジネスアナリストにも参加していただくことを想定し、製品に同梱されるウェブダッシュボードの使用がメインとなります。唯一技術的な作業は製品の初期インストールでしょうが、詳細に作業手順を解説しておりますのでご安心ください。また、作業自体は3ステップのみで構成されており、数分で完了する内容です。

では、さっそく始めましょう。

まずは イントロダクション からスタートします:


次に、JBoss BRMSのインストール作業についてご案内します:


今週最後のラボを始める準備ができましたら、新規プロジェクトを作成します:


来週以降のワークショップシリーズにご注目ください。次回の記事では Cool Store の実装についてより具体的な説明をする予定です。

メモ: 何らかの理由でオンラインのマテリアルにアクセスできない場合、ご遠慮なさらずお知らせください。

2014年3月17日月曜日

Red Hat JBoss BPM Suite - サポートマトリックス ワークフローの制御パターン

原文: Red Hat JBoss BPM Suite - support matrix Control Workflow Patterns Eric D. Schabell

今回の JBoss BPM Suite のヒント/トリック集では、JBoss BPM Suite が提供する「ワークフローの制御パターン(Control Workflow Patterns)」についてご説明します。

この投稿ではまず、vdAtHKB03で定義された基礎のフロー制御パターンにふれます。そして、BPM-06-22で定義されているBPMN2の仕様により、BPM Suiteでのサポートが制限されるパターンについて解析します。

この投稿で、フローの制御パターン 全20種類をすべてカバーします。まず、5つの基礎的な制御フローパターンを説明し、次に高度な分岐や同期パターンなど 15のパターンを説明します。

パターン

オリジナルの研究論文では、著者は5つの基礎的な制御パターンをカバーしています:
  1. Sequence - ワークフロープロセス内のアクティビティは、同じプロセス内に存在する直前のアクティビティが完了した後、有効になります。
  2. Parallel Split - ワークフロー内でシングルスレッドが複数スレッドに分岐するポイント。分岐されたスレッドは同時もしくは任意の順序で実行できます。
  3. Synchronization - ワークフロープロセス内で並列で動作しているサブプロセスやアクティビティが1つのスレッドに収束するポイント。
  4. Exclusive Choice - ワークフロープロセス内で、制御データや条件により複数分岐の中から1つ選択されるポイント。
  5. Simple Merge - ワークフロープロセス内で、複数分岐先が同期せずに収束するポイント。分岐先の処理が、どれも並列に実行されていないことが前提となるパターンです。
5パターンをカバーした後、著者は15の高度な分岐や同期処理パターンをカバーしています:
  1. Multi-choice - ワークフロープロセス内で、制御データや条件により複数ある分岐先の中からいくつか選択されるポイント
  2. Synchronizing Merge - ワークフロープロセス内で、複数パスが1つのスレッドに収束されるポイント。複数パスが実行されている時、有効なスレッドはすべて同期されます。1つのパスのみ実行されている時、代わりのパスは同期されずに収束されます。このパターンは、すでに実行されたパスが、他のパスが完了するのを待つあいだ再び実行されないと仮定されています。
  3. Multi-merge - ワークフロープロセス内で、複数パスが同期せずに収束するポイント。複数パスが並列で実行された場合、収束ポイント以降のアクティビティは収束ポイントを通過する毎に実行されるでしょう。
  4. Discriminator - ワークフロープロセス内で、いずれかの入力パスが実行しているアクティビティが完了するまで後続のアクティビティを実行しないポイントです。いずれかのアクティビティが完了した後、残りのアクティビティが完了しても後続のアクティビティを実行しません。すべての入力パスが実行しているアクティビティが完了した際、Discriminator は初期化され、再び前述した処理を行います。(リセット機能は重要です。でなければ、ループを使うコンテキストで利用することができません)
  5. Arbitrary Cycles - ワークフロープロセス内で、1つ以上のアクティビティを繰り返し実行するポイント。
  6. Implicit Termination - 設定されたサブプロセスは、何も処理することがない場合に終了されます。ワークフロー内で実行中のアクティビティがなく、どのアクティビティも実行されることがない状態です。(デッドロックも発生していない状況です)
  7. Multiple Instances Without Synchronization - 1つのコンテキスト(ワークフローインスタンス)に焦点をあてた場合、複数のアクティビティインスタンスが生成される可能性があります。また、管理用スレッドの生成を管理する機能(facility)があります。個々の管理用スレッドはそれぞれ独立しています。また、これらスレッドを同期する必要はありません。
  8. Multiple Instances With a Priori Design Time Knowledge - 1つのプロセスインスタンスで、アクティビティが複数回実行されます。ワークフロープロセスの設計時に、プロセスインスタンスでは何回アクティビティが実行されるか把握できます。すべてのアクティビティが完了した場合、他のアクティビティを開始する必要があります。
  9. Multiple Instances With a Priori Runtime Knowledge - ある状況下で、アクティビティが複数回実行されます。ある状況下で何回アクティビティが実行されるかは、状況の内容やリソースの空き状況により異ります。実行時のある段階(アクティビティの実行が必要になる前)で把握されます。すべてのアクティビティが完了した場合、他のアクティビティを開始する必要があります。
  10. Multiple Instances Without a Priori Runtime Knowledge - ある状況下で、アクティビティが複数回実行されます。ある状況下で何回アクティビティが実行されるかは、ワークフロープロセスの設計中も、実行中(アクティビティの実行が必要になる前)にも把握されることはありません。すべてのアクティビティが完了した場合、他のアクティビティを開始する必要があります。パターン9 との違いは、いくつかのアクティビティがすでに実行中であったり実行が完了していても、再度アクティビティを実行できる点です。
  11. Deferred Choice - ワークフロープロセスの中で、複数ある分岐先の中から1つ選ばれます。XOR-splitとは対照的に、明示的に分岐先が選択(例えば データや条件に基づいて)されず、複数の選択肢が提供されます。AND-splitとは対照的に、1つの分岐先のみ実行されます。つまり、分岐先の1つが実行され、残りの分岐先は無効化されます。重要な注意点ですが、選択は可能な限り遅くなります。分岐先の処理が開始されるまで、実際には選択が遅延されます。
  12. Interleaved Parallel Routing - アクティビティのセットが任意の順番で実行されます:セット内のアクティビティはそれぞれ実行されます。実行順序は実行時に判断され、複数アクティビティが同時に実行されることはありません。(あるワークフローインスタンス内で、2つのアクティビティが同時に実行されることはありません)
  13. Milestone - 指定された状態にある場合にのみアクティビティが実行されます。つまり、期限切れではないマイルストーンに到達した時にアクティビティが実行されます。A、B、Cという3つのアクティビティがあると仮定します。アクティビティA はアクティビティBが実行済みでアクティビティCが実行されていない状態にのみ有効化されます。つまり、Bの実行前にAは有効化されません。また、Cの実行後にAは有効化されません。
  14. Cancel Activity - 有効化されたアクティビティが無効化されます。つまり、アクティビティの実行を待っているスレッドが削除されます。
  15. Cancel Case - ケース(ワークフローのインスタンス)が削除されます。(プロセスのある箇所で複数アクティビティが実行されていたとしても、関連するすべてのスレッドは削除されます)
この時点でいよいよ JBoss BPM Suite に焦点を当て、どのパターンがどの程度サポートされるか評価することができます。

JBoss BPM Suite

前述した基礎的な制御パターンがカバーされているか製品を確認し、下記マトリックスにまとめました。JBoss BPM Suite が直接サポートしている場合、+ と表記します。直接サポートされていない場合、+/- と表記します。スパゲティのようなダイアグラムやコーディングが必要な場合、サポートがされていないと判断し - と表記します。


パターン JBoss BPM Suite
Sequence +
Parallel Split +
Synchronization +
Exclusive Choice +
Simple Merge +

JBoss BPM Suite の製品概要マトリックスでは、以下のように高度な分岐や同期処理を潜在的にサポートしていることがわかります。

パターン JBoss BPM Suite
Multi-choice +
Synchronizing Merge +
Multi-merge + / -*
Discriminator + / -*
Arbitrary Cycles +
Implicit Termination +
Multiple Instances Without Synchronization +
Multiple Instances With a Priori DT Knowledge +
Multiple Instances With a Priori RT Knowledge +
Multiple Instances Without a Priori RT Knowledge -**
Deferred Choice +
Interleaved Parallel Routing + / -*
Milestone -**
Cancel Activity +
Cancel Case +
* BPMNの仕様による制限
** BPMNの仕様ではサポートされていない

お気付きになられたかもしれませんが、JBoss BPM Suite は vdAtHKB03 でまとめられた制御パターンをほとんどサポートすることができます。限定的なサポートのみとなったパターンについては、BPM-06-22 で説明されている BPMNの仕様に起因するものです。

JBoss BPM Suite は、制御パターンを充分サポートできていることがご理解いただけたかと思います。

今後の投稿で、制御パターンが充分サポートできていることをご理解いただけるようなサンプルプロジェクトを提供する予定です。ぜひ、ご注目ください。

原文: Red Hat JBoss BPM Suite - support matrix Control Workflow Patterns Eric D. Schabell