...

IBM WebSphere Operational Decision Management 7.5 テクニカル ・ セミナー

by user

on
Category: Documents
33

views

Report

Comments

Transcript

IBM WebSphere Operational Decision Management 7.5 テクニカル ・ セミナー
IBM WebSphere Operational Decision Management 7.5
テクニカル・セミナー
ルール開発
万仲 龍樹
Webソリューション開発
日本アイ・ビー・エム システムズ・エンジニアリング㈱
© 2012 IBM Corporation
目次
1.WODMでのビジネス・ルール
2.ルールの開発の流れ
ルール開発プロセスと前提成果物
Rule Designerでのルール開発の流れ
3.ルールの設計
ルール・プロジェクト
実行オブジェクト・モデル
ビジネス・オブジェクト・モデルと言語化
ドメイン定義
パラメータの定義
4.ルールの記述と実行制御
ルール・パッケージとルール・フロー
アクション・ルール
意思決定表
意思決定ツリー
ルール作成のポイント
2
5.ルールのテスト・配布
Decision Validation Service
ルールの配布
6.ルールの作成支援機能
ルール分析
ルールレポート
クエリー
7.ルール実行基盤
Java SE
Java EE
8.ルールアプリケーションの実行
ルール呼び出し方法の種類
ルール呼び出しコード
まとめ
© 2012 IBM Corporation
1.WODMでのビジネス・ルール
3
© 2012 IBM Corporation
ビジネス・ルールと意思決定管理
zシステムの計算、判断、確認など柔軟に変更したい部分をプログラムコードと別に管理
z滅多に変えない堅牢なシステム基盤と、柔軟に変更・進化させたい業務ロジックの分離
z業務ロジックの可視化によるコミュニケーションの改善と監査性の向上
ディシジョン・マネージメント (WODM)
意思決定が存在する典型的な場所
‹ビジネスロジックが各所に散らばっている
‹可視化されていない(透明性の課題)
‹保守性が悪いために陳腐化する
アプリケーションコードに埋め
込まれたロジック
プロセスの中に定義され
たロジック
ユーザー・ツール
If xxxx
Then xxxxx
Else xxxxx
・・・・・・・
・・・・・・・
人の頭の中にノウハウとし
てあるロジック
各種ドキュメントの中にあ
るロジック
From : Honmoku
To : Smyrna
Order No.
RAN No.
Part Number : 24011 CJ000
Tracking Point
Status
Invoice No.
B/L No.
RAN#
PART#
SA00001
SA00002
SA00003
SA00004
SA00005
24011 CJ000
24011 CJ000
24011 CJ000
24011 CJ000
24011 CJ000
(60)B/L
Plan
060415
060415
060415
060415
060415
意思決定の
可視化
ビジネスユーザ
自らの
変更が可能
・意思決定を保存
・意思決定の
一元管理
・意思決定の共有
意思決定の
一元管理による
透明性・保守性
の確保
リポジトリー
意思決定を
展開、実行、
およびモニター
Today : 2005/04/16
Plan Actual Current (40)Vanning Completion
QTY QTY Status
Plan Revised Actual
200 200 60 060415 060415 060415
100 100 60 060415 060415 060415
200 200 40 060415 060415 060415
200 200 00 060415 060418
100 100 00 060415 060418
・意思決定の定義
・意思決定の
分析
・意思決定の保守
※業務用語
…
Revised Actual …
060415 060415
060415 060415
060417
060418
060418
結果として変更へ
の対応柔軟性を
実現
実行エンジン
4
© 2012 IBM Corporation
WODM コンポーネント間の関係
WebSphere Decision Center
Ruledocs
Ruledocs
Decision Center コンソール
Decision Center
for Business Space
Rule Solutions
for Office
デプロイ
デプロイ
Decision Center
リポジトリー
同期
同期
デプロイ
デプロイ
同期
同期
デプロイ
デプロイ
デプロイ
デプロイ
Rule Execution
Server
5
5
Rule Designer
Event Designer
WebSphere Decision Server
イベント実行
ランタイム
© 2012 IBM Corporation
WODM Ruleの全体像
業務ユーザ向け
ルール管理環境
ITユーザ向け
ルール開発環境
Rule Solutions for Office
ルール
開発者
Rule Designer
Decision Server モジュール
ルールの
配備
Decision Validation Service
ルールリポジトリ
システム
管理者
ルールの
配備
Decision Centerモジュール
本番環境
システム
管理者
Decision Serverモジュール
6
Rule Execution Server
管理コンソール
© 2012 IBM Corporation
Rule Designer
Eclipseベースの開発環境
Eclipse3.6(RAD8と同等レベル)
ルール開発の作業をすべて可能
7
© 2012 IBM Corporation
Rule Solutions for Office
業務ユーザー向けのルール編集ツール
MS Office 2007以降のOfficeのアドインとして導入
Decision CenterからルールをMS Office用のルールファイルに抽出
更新をルール管理環境へマージ
通常のWord/Excel文書で仕様定義書として再利用可能
8
© 2012 IBM Corporation
2.ルール開発の流れ
9
© 2012 IBM Corporation
ルール開発のプロセスと前提成果物
ABRD(Agile Business Rule Development)
ルール開発のための開発プロセス
ルール抽出/設計/実装をスコープとしている
ルール開発の前提成果物
•抽出・洗練されたルール候補
•論理データモデルと用語集
•テストシナリオ
Rule Designerでの
開発とテスト
ルール開発の成果物
•ルール・プロジェクト
•ルール・セット(配置可能なルール)
•DVSテストケース
•ルール・レポート
10
© 2012 IBM Corporation
ルールの主要な構成要素
ビジネス・ルール
ルールを構成するオブジェクト・モデルと語彙
ルールの実行順序を定義するルール・フロー
ルールの入出力データであるルールセット・パラメータ
各種成果物をパッケージングするルール・プロジェクト
11
© 2012 IBM Corporation
Designerでのルール開発の流れ
Rule Designerを使用したルール開発の基本的な流れはDesigner
内にあるルール・プロジェクト・マップで示される
それぞれのタスクがリンクとなっており、クリックすることでそのタスクを実行できる
「アクション・ルールの追加」をクリックすると、ウィザードが起動する、など
12
© 2012 IBM Corporation
3.ルールの設計
13
© 2012 IBM Corporation
ルールの設計
ルール・プロジェクト
プロジェクトの設計と依存関係
オブジェクト・モデルの作成
XOMとBOM
言語化
ドメインの定義
パラメータの定義
14
© 2012 IBM Corporation
ルール・プロジェクト
ルール成果物の基本的な構成単位
Eclipseレベルで見ると、プロジェクトの一種
Decision Serverに配置可能なルールの基本単位
Decision Centerでの管理単位
ルール
ルールそのもの
ルールの実行制御を行うルール・フロー
bom
ルールを構成するオブジェクト・モデル
クエリー
ルール成果物の検索
テンプレート
ルールを作成する際に再利用可能な雛形
リソース(WODM7.5 New)
ドメイン定義に使用するExcelファイルなどを保
存する
15
© 2012 IBM Corporation
ルール・プロジェクトの依存関係
ルール・プロジェクトの依存関係を定義可能
オブジェクトモデル定義の共通化
作成済みルールを再利用して、新しいルールセットを作成
業務の分類やオーナー組織など、メンテナンスを考慮する
ルールプロジェクトC1
(検証だけ実行する)
ルールプロジェクトB1
(データ検証ルール)
ルールプロジェクトC2
(検証と計算をする)
ルールプロジェクトB2
(料金計算ルール)
ルールプロジェクトA
(BOM、テンプレート)
16
Bで定義されたルールに対してルールフロー
を定義する
Aで定義されたオブジェクトモデルを利用して
ルールを定義する
共通するオブジェクトモデルやルールの
テンプレートを定義する
© 2012 IBM Corporation
オブジェクト・モデルの作成
ルールを構成する語彙
ビジネス用語を割り当て(言語化)、ルール記述を行えるようにする
実行オブジェクト・モデルとビジネス・オブジェクト・モデル
マッピング
17
© 2012 IBM Corporation
実行オブジェクト・モデル
XOM(Execution Object Model)
ビジネス・オブジェクト・モデルの実装
ルール・プロジェクトから参照される
実行時にルールエンジンはXOMを介してアプリケーション・オブジェクトやメソッドにア
クセスする
主要な実装方法は2種類
Java
Javaプロジェクトとして参照される
XML Schema(XSD)
ルールプロジェクト内に保持される
18
© 2012 IBM Corporation
ビジネス・オブジェクト・モデルと言語化
BOM(Business Object Model)
ビジネス・ルールを記述する際に使用するオブジェクトの定義
言語化によってプログラム的な要素に対してビジネス用語を関連付けている
「‘ローン’」や
「‘ローン’を却下」も
言語化された語彙
Borrowerに対して
「借り手」
creditScoreに対して
「クレジット・スコア」を
マッピング
19
© 2012 IBM Corporation
BOMとXOMの同期化
オブジェクト・モデルが変更になった場合、その変更をすぐに取り
込むことができる
以下はXOMのオブジェクトにフィールドを追加した場合の例
20
© 2012 IBM Corporation
ドメインの定義
BOMでのエレメントに対する制約を定義する
文字列型に対する値の制約条件など
String型の値に対して、A,
B, C, D, Eの五種類に限定
されるよう制約を定義して
いる。
21
定義されていない値と比較
しようとして、エラーとして
検出されている
© 2012 IBM Corporation
意思決定表でのドメイン
入力制約として利用することができる
22
© 2012 IBM Corporation
動的ドメイン
動的ドメイン
Excelベースで定義し、BOMに反映
ビジネスユーザーがメンテナンス時にも実施可能
任意のタイミング
で更新可能
23
言語化もExcel上
の定義で実行
© 2012 IBM Corporation
パラメータの定義
ルール・プロジェクトの外部インターフェースとなる入出力定義
ルールを呼び出すアプリケーションとのインターフェース
ルール・プロジェクトのプロパティで設定する
名前
型
方向
デフォルト値
言語化
24
呼び出しアプリケーションから指定する名前
BOMで定義した型やJavaの単純型を指定する
IN:入力のみ、IN_OUT:入力と出力、OUT:出力のみ
StringやIntegerなどの場合の初期値を設定できる
ルール内で利用する際の名前
© 2012 IBM Corporation
4.ルール記述と実行制御
25
© 2012 IBM Corporation
ルール記述と実行制御
ルール・パッケージとルール・フロー
プロジェクトの設計と依存関係
ビジネス・ルールの記述方法
アクション・ルール
意思決定表
意思決定ツリー
ルール作成のポイント
26
© 2012 IBM Corporation
ルール・パッケージとルール・フロー
ルール成果物はパッケージでグループ化する
ルール・フローでルールの実行順序を制御を定義する
ルール・フローの「ルール・タスク」に実行するルールを定義する
ルール・タスクには、ルール単位やパッケージ単位で追加できる
27
© 2012 IBM Corporation
ルール・エンジンの実行モード
ルールの実行を制御するパラメータのひとつ
ルール・フローの中のルール・タスクのプロパティとして設定できる
実行するルールの特性に応じて選択する
RetePlus
特徴
Sequential
Reteアルゴリズムをベー 入力されたデータに対
スとする。作業メモリとア し、実行可能なルール
ジェンダを使用して、実行 をすべて連続して実行
するルールを決定する。 する。
実行しながらパターン
マッチングを行い、実行
するルールの再評価する。
Fastpath
RetePlusのようにパ
ターンマッチングを
行って実行するルー
ルを決めていくが、
ルール実行の結果を
元に再度パターンマッ
チングは行わない。
計算
○
-
-
相関チェック
○
-
○
-
○
○
○
-
-
検証
ステートフル
28
© 2012 IBM Corporation
アクション・ルール
日本語でのルール記述方法
ひとつのif – then – elseを定義する
ルールの数え方は1ファイルで1ルール
4つの部分に分けられる
29
定義(オプション)
ルール内で使用する変数定義
仮定条件(オプション)
アクション・ルールの条件
その場合(必須)
条件に合致した場合のアクション
それ以外の場合(オプション)
条件に合致しなかった場合のアクション
© 2012 IBM Corporation
意思決定表
表形式のルール記述方法
対称性があるルールを一括で記述・管理することに向いている
ルールの数え方は、表の各行が1ルールに相当する
条件を記述している列
「等級」の列に対する警告はドメインで定義されて
いる値すべてを条件に含めていないため
30
アクションを記述している列
「保険料率」の列には実行しないアクションを明示している
© 2012 IBM Corporation
意思決定表でのチェック(1/2)
意思決定表で検出できる値の重複の例
31
© 2012 IBM Corporation
意思決定表でのチェック(2/2)
意思決定表で検出できる値のギャップの例
32
© 2012 IBM Corporation
意思決定ツリー
フローチャート形式のルール記述方法
対称性がないルールの集合を視覚化して記述できる
33
© 2012 IBM Corporation
(参考)意思決定表で記述する非対称ルール
前ページの意思決定ツリーと同等のルールを意思決定表で記述
することもできる
34
© 2012 IBM Corporation
ルール作成のポイント
ルールの可視性・メンテナンス性を高めることを意識する
ITとビジネスのコミュニケーションを促進
ルールの分類と最適な記述方法の選択
業務的な視点を意識
ルールの所有者やメンテナンス実施者
できるだけルールで記述する
アプリケーションとルールのインターフェースを変更に強く設計する
オブジェクト・モデルの構造・実装は基本的にビジネスユーザーに変更できない
ツールやスキルの制約
動的ドメインの活用
35
© 2012 IBM Corporation
ルールとオブジェクト・モデルの設計と実装(1/3)
オブジェクト・モデルはできるだけ値の受け渡しを中心に設計する
値に対するGetter/Setter
データに対する処理は基本的にルールとして記述する
表現として理解しやすいかどうかを考える
ビジネスユーザーとITユーザーが仕様を共有し、メンテナンスできる目的
Setterをそのまま利用する場合
36
© 2012 IBM Corporation
ルールとオブジェクト・モデルの設計と実装(2/3)
Setterとは別のアクションを定義する
「(数値)を追加」という表現で記述できるようにした例
37
© 2012 IBM Corporation
ルールとオブジェクト・モデルの設計と実装(3/3)
XOMで実装したほうがよいロジック
ビジネス・ロジックとして実装そのものに変更がない普遍の公式など
public static double getMonthlyRepayment(double amount, int numberOfMonth,
double yearlyRate) {
double i = yearlyRate / 12;
double p = i * amount / (1 - Math.pow(1 + i, -numberOfMonth));
return p;
}
38
© 2012 IBM Corporation
5.ルールのテストと配布
39
© 2012 IBM Corporation
ルールのテストと配布
ルールのテスト
Decision Validation Service
ルールの配布
パッケージング方法
Rule DesignerからDecision Serverへの配布
Decision Centerとの同期
40
© 2012 IBM Corporation
Decision Validation Service
ルールのテスト、シミュレーションを行う機能
Excelファイルで作成したテストケースを使ってテストを実施する
Rule Designer、Decision Center上の両方で実行可能
複数のビジネスルールについて
のシナリオやデータセット及び結
果の期待値をExcelで管理
各ビジネスルール毎
にシミュレーション結
果をWebベースの画
面で一覧表示
Web I/Fのルールシミュレーション・テスト環境
・シナリオデータと結果をまとめて管理
・結果レポートを生成し、結果値をExcelに出力
・テストデータのテンプレートを作成
・シナリオに対する期待される処理結果の値を
設定し一括検証
41
どのルールが実行されたか、実
行時間がどのくらいなのか 等も
レポートに含めることもできる。
© 2012 IBM Corporation
DVSテンプレートの作成
ファイル形式
Excelの2003形式と2007-2010形式を選択できる
デフォルトでフラットな形式とタブ付の形式を選択できる
カスタマイズも可能
確認結果に含める列
出力オブジェクトからテストケース化する項目を選択
42
© 2012 IBM Corporation
DVSの実行
Eclipse上では、DVSのExcelシートを実行する
「DVS Excelファイル」を利用して実行
結果レポートはHTMLファイルで出来上がる
Eclipseのプロセスとは別にファイルを作成・変更するため、リフレッシュが必要
43
© 2012 IBM Corporation
RuleApp作成:ルールの配布の事前作業
RuleAppとはルールセットを含む配布可能な管理単位
ルールを配布可能な形にパッケージングしたもの
1つ以上のルール・セットを含めることができる
RuleAppプロジェクトを作成する
Eclipseプロジェクトの一種
archive.xmlという構成ファイルをもつ
RuleApp
RuleSetA
RuleSetB
44
© 2012 IBM Corporation
ルールの配布
作成したRuleAppプロジェクトから配布を行うことができる
ルール実行に必要なXOMも同時に配布することもできる
45
© 2012 IBM Corporation
Decision Centerとの同期
Rule DesignerとDecision Centerの同期は「同期化」パースペク
ティブを利用して行う
公開
更新
46
© 2012 IBM Corporation
6.ルールの作成支援機能
47
© 2012 IBM Corporation
ルール・プロジェクトの分析
ルールの静的チェックによる矛盾などを検出
Java開発における静的コードチェックのようなイメージ
ルールの追加・修正による影響度分析を実行できる
○ルール単体としてのチェック
○ルール同士のSyntax(文法、矛盾がないか等)
をチェック
○ルール全体としての一貫性のチェックを実施
48
© 2012 IBM Corporation
ルール・レポート
作成したルール成果物を文書化する機能
Eclipse BIRTを使用して、出力テンプレートをカスタマイズできる
カスタマイズ可能な
ルールレポート設計
49
ƒ
必要に応じた項目を抽出したルールレポート
の作成が可能に
ƒ
Word/Excel/PPT/HTMLなど様々な形式で
のレポート作成をサポート
© 2012 IBM Corporation
クエリー
ルール・プロジェクト内を検索する機能
利用しているビジネス・オブジェクトがどのルールで使われているか、などを簡単に
確認できる
ルールのメタデータも検索条件にすることができる
パッケージングで利用する
50
© 2012 IBM Corporation
7.ルール実行環境
51
© 2012 IBM Corporation
ルールの実行基盤の選択
Java SE環境に構成する
スタンドアロンのJavaアプリケーションとして稼動させる
必要なJARを実行時Classpathに設定して実行する
ルール・エンジンとの接続構成の定義ファイル(ra.xml)を作成する
基本的な構成パラメータはJava EEサーバーでの設定と同じ
実行時にClasspathに含めて実行する
Java EEサーバー上に構成する
WAS7などのサーバー環境でルールを動作させる
WAS7の場合、プロファイル管理ツールを使用して構成可能
JCAのリソースアダプター経由でルール・エンジン呼び出し
Webベースの管理ツールの利用が可能
ルール・リポジトリの選択
実行環境でのルール配置場所
データベース
ファイルシステム
52
© 2012 IBM Corporation
ルール実行サーバーコンソール
Webベースの管理ツール
実行環境に配置されているルールの管理や実行トレースの取得、
統計情報の確認などが可能
53
© 2012 IBM Corporation
(参考) WAS上に配置されるモジュール
54
jrules-res-htds-WAS7
ルールをWeb サービス化するためのアプリケーション
jrules-res-management-WAS7
管理ツールのアプリケーション
jrules-ssp-WAS7
サーバー上でルールのテストを行うためのアプリケーション
(SSP=Scenario Service Provider)
teamserver-WAS7
Decision Centerのアプリケーション
RES XU Resource Adapter
Rule Engineに対するリソースアダプター
© 2012 IBM Corporation
8.ルールアプリケーションの実行
55
© 2012 IBM Corporation
アプリケーションとルールの統合
アプリケーションからルールを呼び出す方法には様々なテクノロ
ジーを利用することができる
要件やシステム構成にあわせて選択する
アプリケーション
ルールエンジン
ルールリポジトリ
ルール・エンジンをアプリケーションと同じJVMで実行する
ルール・エンジンをアプリケーションと異なるJVMで実行する
ルールをバッチアプリケーションで呼び出す
ルールをサービスとして呼び出す
ルールを非同期で呼び出す
BPMと連携させる
56
© 2012 IBM Corporation
ルール呼び出し方法の種類
主要なルール呼び出し方法とその特徴
呼び出し方法
特徴
Java SE
スタンドアロンのJavaアプリケーションでルールを呼び出す方法。
Java EEサーバーでも利用できる。ルールとアプリケーションが同一
JVM(Java SE)上で稼動する。
POJO
Webアプリケーション内でJava EEサーバー上のリソースアダプター
を使用する最もシンプルな呼び出し方法。ルールとアプリケーション
が同一JVM(Java EE)上で稼動する。
EJB
アプリケーションがEJBクライアントとなり、製品提供のEJBモジュー
ルを介してルールを実行する。EJBのリモート呼び出しでプロセス
やノードが分散した環境でのルール呼び出しができる。
HTDS(Hosted Transparent
Decision Service)
ルールをサービス化する方法のひとつ。配置されたルールを自動
的にサービス化する製品機能を利用して、ルール実行サーバーが
Webサービスプロバイダーとなる。
MDB
JMSアプリケーションからメッセージングでルールを呼び出す。メッ
セージを処理するMDBは製品提供のモジュールを利用できる。
SCA
ルール呼び出しアプリケーションをSCAコンポーネント化する。IBM
BPMなどとの連携が可能。
57
© 2012 IBM Corporation
ルール呼び出しのサンプルコード
必要最低限の部分を抜粋
//ルール呼び出しの準備
IlrSessionFactory factory = new IlrPOJOSessionFactory();
IlrStatelessSession session = factory.createStatelessSession();
IlrSessionRequest ruleRequest = factory.createRequest();
//実行するルールを指定
ruleRequest.setRulesetPath(IlrPath
.parsePath("/loanvalidationruleApp/loanvalidationrules"));
//ルールの呼び出しパラメータをセット
//ルール・セット・パラメータで指定した名前を必要とする
ruleRequest.setInputParameter("borrower", borrower);
ruleRequest.setInputParameter("loan", loan);
//ルールの実行
IlrSessionResponse ruleResponse = session.execute(ruleRequest);
//実行結果を取得
loan = (loan.Loan) ruleResponse.getOutputParameters().get("loan");
report = (loan.Report) ruleResponse.getOutputParameters().get("report");
58
© 2012 IBM Corporation
まとめ
59
© 2012 IBM Corporation
本日のまとめ
WODMでは、役割に応じたルール開発環境を提供する
オブジェクト・モデルはルールの根幹でもあり、ビジネス・ルールと
アプリケーションの間のインターフェースにもなる重要な設計要素
ルールを設計・実装するに当たって、ビジネス・ユーザーとITユー
ザーの双方で仕様を共有し、メンテナンスを行いやすくするよう配
慮する
DVSを利用したテストによって継続的なテストを実施できる
ルールの実行環境はJava SE、Java EEの両方に対応
アプリケーションからの呼び出しには様々なテクノロジーを利用で
きる
60
© 2012 IBM Corporation
Fly UP