[BPM] Case Management in BPM 11g

Oracle BPM 11gとケースマネージメント
多くのお客様がBPM11gを使ってケースマネージメントソリューションを開発しているのを見てきましたし、BPM11gがケースマネージメントをサポートしているのかという質問を、フォーラム上でたくさん見てきました。現在の計画では、動的なケースマネージメントに対して、BPM12gではBPM 11gに比べてずっと適したものになっているでしょう。しかし、BPM11gで強引にやろうとしているわけではありません。できるけど、ギャップが少々ある、ということです。これ以上に、BPM11gで作成されたケースマネージメントソリューションは、追加される(予定の)オプション機能を用いて簡単にBPM 12gで再利用できるはずです。

このエントリの目的は、BPM11gでケースマネージメントのためのシンプルで実績のあるパターンをご紹介することです。時間があればその後のエントリで、構築して実用的なソリューションにします。

ケースマネージメント:用語
まず、言葉の定義をしたいと思います。これにより、ケースマネージメントに対する混乱を解消したいと考えています。そして、どのように適応/動的なケースマネジメントとソーシャルBPMの概念がどのように関連しているのかを説明します。これらは主題に関する多くの記事を読んで得た私見であって、これらの用語については多くの議論があります。

ケースマネージメント
  • BPMを基礎にしたソリューションで、"ケース"と、そのデータがケース内のすべての活動の共有コンテキストを提供する
  • 通常は(UCM機能のように)BPMの外に成果物を含むが、これらはプロセスの本質的な部分を形成する
  • ナレッジワーカー駆動になる傾向がある。結果として、古典的なBPMほど規範的ではない
  • 結果として、プロセスはより「ステートマシン」になる傾向がある。つまり、フローベースではなく、イベントやデータ駆動になる
  • OracleのBPM11gでは、いくつかのギャップはあるにせよ、モデリング可能
Adaptive/Dynamic Case Management
  • ケースマネージメントが進化したもの
  • 目標やマイルストーン駆動になる傾向がある。すなわちマイルストーンに到達する限り、道のりはそれほど重要ではない
  • ケースのフェーズに関する複数の例は、実行中に選択される。場合によっては、社会的と格付けされる(例:信用調査を行うための多くの方法がある)
  • ケースの新しいフェーズを実行中に作成でき、フェーズの選択肢に追加できる。既存のフェーズを、動的に適応させることができる。
  • Oracle BPM 12gで計画中
  • "今世間で話題になっているもの" - 多くのお客様は、ACM (Advanced Case Management)が必要と考えているが、よく調べてみると、必要としていない("標準"ケースの管理で十分である)場合もしくは、技術的な観点からもたらす敏捷性を扱うことがまだできない状態である
Social BPM
  • BPM + E2.0 (Enterprise 2.0)
  • IM、Twitter、ランキングのようなコラボレーションツールやコンセプトをBPMに組み込んだもの。さらに重要なのは、ビジネスプロセスのコンテキスト内でこれらを提供すること。
  • シンプルなケースマネージメント、アダプティブなケースマネージメントの両方にとって重要な機能
  • Oracle WebCenter Spaces 11gでほとんど賄えているが、BPM 11gとの統合は100%ではない(完全統合はOracle BPM12gの予定)これにつながる可能性があるOracle Social Network最新の発表をご覧下さい。
銀行の移動のシナリオで考えてみましょう

プロセスの概要
  • 個人がある銀行に口座を有しており、銀行を移動したいと希望
  • 個々でクレジットカード、当座預金/貯蓄の口座や住宅ローン、年金などの任意の組み合わせがあり、.これらのすべてを移動しなければならない
  • 与信チェックが必要になることがあるが、これはプロセスの所有者の裁量に委ねられる
  • 手続き中で積極的役割がある(フォームに署名する必要がある、など)。それゆえ、プロセスのフェーズは長時間続く可能性がある
  • プロセスの所有者は、すべてのフェーズの進捗状況を追跡する必要がある
  • プロシージャ内の任意の時点で、プロセスの所有者は要求を取り消すことができる
  • 関連するすべてのフェーズが完了したら、プロセスの所有者は、正常に銀行移動のプロセスを終了させることができる
Step 1: ケースプロセスの作成
「ケース」プロセスはこのソリューションの最優先制御プロセスです。「ケース」のプロセスは、ソリューションのための最優先制御プロセスです。可能な限り汎用的なプロセスにするため、人間系のUIからの開始ではなく、Webサービスの呼び出しでプロセスを開始します。プロセスIDが即座に返され、これを後の相関で使います。
「フェーズ」プロセスの状態や「ケース」の完了/中断を監視しつつ、人間系のアクティビティや関連づけられたタスク/ UIにより、別の"フェーズ"のプロセスを開始するために同じ人間系アクティビティに戻る前に、ユーザーが非同期的に1つ以上のフェーズプロセス(たとえば、"信用調査"、"アカウントの移動"、"カードの注文"、等..)を開始できます。
「与信チェックのフェーズ」の呼び出しは非同期送信&受信として実装され、フェーズ自体は完全に分離されていて、再利用可能なプロセスです。


Step 2: 「与信チェック」フェーズプロセスの作成
与信チェック「フェーズ」のプロセスは、ユーザーが"ケース"から開始を選択できる多くの潜在的なフェーズの1つです。プロセスIDが即座に返り、これを後に相関で使用します。それ以降のすべての活動は、埋め込みサブプロセスに記載します。その理由は後に明らかになります(キャンセル機能を入れるため)。転送される口座の残高に基づいて、与信チェックは許可もしくは拒否、(ヒューマンタスク/UIによる)手動での承認になります。


Step 3:ケースプロセスにサブプロセスを追加して、非同期キャンセルを許可する
非同期的に、いつでもリクエストをキャンセルするためには、プロセスIDで相関関係にある割り込みイベントサブプロセス(関連するメッセージ開始イベントに実線で境界が示される)がケースプロセスに必要です。このイベントサブプロセスは、依存フェーズプロセスがこのイベントを捕まえるようにシグナルイベントを投げ、終了します。その結果、全体のケースプロセスが終了します。




Step 4:フェーズプロセスにシグナルキャッチを追加する

フェーズをキャンセルするための理想的なソリューションは、シグナルイベントを捕捉することで開始する割り込みイベントのサブプロセスを用意することでしょう。しかし計画では、BPM12gからの中断シグナルをサポートすることになっています。代替策として、割り込まずにシグナル捕捉してすぐにエラーを投げることです。このエラーを、埋め込まれたサブプロセスの境界で捕捉し、その後にフェーズプロセスを終了する終了イベントが続きます。このパターンは、依存するすべてのフェーズのプロセスで繰り返される可能性があります。


原文はこちら。
https://blogs.oracle.com/ateamsoab2b/entry/case_management_in_bpm_11g

0 件のコメント:

コメントを投稿