...

BPC作成手順書 ビジネス・ステート・マシン編 概説 1

by user

on
Category: Documents
7

views

Report

Comments

Transcript

BPC作成手順書 ビジネス・ステート・マシン編 概説 1
®
IBM Software Group
BPC作成手順書
ビジネス・ステート・マシン編
概説
2005年12月1日
日本アイ・ビー・エム株式会社
ソフトウェア事業
© IBM Corporation
1
IBM Software Group | WebSphere software
この資料の内容
ビジネス・ステート・マシン概要
ビジネス・ステート・マシンを構成する要素
ビジネス・ステート・マシンの開発
ビジネス・ステート・マシンの稼動
まとめ
2
この資料ではWebSphere Process Server V6より新たに提供されたコンポーネントであるビジネス・ステー
ト・マシンについて説明します。
2
IBM Software Group | WebSphere software
ビジネス・
ビジネス
ステート
マシン
ビジネス・
ステート・
マシン概要
概要
ビジネス・・ステート・
ステート・・マシン概要
マシン概要
3
この章ではビジネス・ステート・マシンの概要について説明します。
3
IBM Software Group | WebSphere software
ビジネス・ステート・マシンとは
ステート・マシンとは
ある状態から次の状態へと状態を遷移させるイベントに着目してアプリケー
ションの動的な振る舞いを記述する手段
ビジネス・ステート・マシンとは
受信したイベントによってある状態から次の状態へと遷移するビジネス・モデ
ルの実装
State1
Transition
Event
State2
Transition
State3
Event
4
ステート・マシンとはある状態から次の状態へと状態を遷移させるイベントに着目してアプリケーションの動
的な振る舞いを記述したものです。
ビジネス・ステート・マシンとは受信したイベントによってある状態からある状態へと遷移するビジネス・モデ
ルの実装です。
4
IBM Software Group | WebSphere software
ビジネス・ステート・マシン概要
イベント・ベースのプロセスを効率的に
構築できるSCAコンポーネント
State
状態(State)と状態遷移(Transition)に
よってプロセスは構成される
Transition
処理はトランジションに含まれる
UML 2.0のステート・マシンを基にして
いる
内部的にはBPELが生成される
Event
5
ビジネス・ステート・マシンはイベント・ベースのプロセスを効率的に構築できるSCAのコンポーネントです。
右のダイヤグラムが研修コースを提案し、スケジューリングし実施、完了するビジネス・ステート・マシンの例です。
長方形がStateを、各長方形を繋ぐ矢印がStateの遷移(Transition)を現しています。
Stateの遷移は歯車のアイコンで表されるEventによって引き起こされます。
BPELプロセスにおいてはアクティビティと処理が対応関係であるのに対し、ビジネス・ステート・マシンではTransitionとそ
れに付属するActionが処理に対応します。
ビジネス・ステート・マシンはUML2.0のステート・マシンを基にしています。
実は内部的にはBPELが生成されているため、動作上の考慮点などはBPELプロセスと同様です。
5
IBM Software Group | WebSphere software
BPELプロセスとビジネス・ステート・マシンの使い分け
BPELプロセスを使用すべきケース:
プロセス内の処理が基本的に順次処理される
イベント待ち受けやループなどの処理が少ない
ビジネス・ステート・マシンを使用すべきケース:
プロセスがイベント・ドリブンである
イベントに対する処理がプロセスの状態によって変わってくる
前の処理に再び戻る
順次処理が少ない
6
BPELプロセスもビジネス・ステートもビジネス・プロセスをモデリングするものです。
では、この2つはどのように使い分ければいいのでしょうか?
BPELプロセスを使用すべきケースは、プロセス内の処理が基本的に順次処理されるケースです。
BPELは順次処理を記述するのに向いており、イベント待ちうけやループが多い場合には記述が難しくな
ります。
一方、ビジネス・ステート・マシンを使用すべきケースは、プロセスがイベント・ドリブンであるものです。
前の処理に再び戻ったり、同じイベントに対する処理でもプロセスの状態によって動きが変わってくるよう
なケースではビジネス・ステート・マシンが適しています。
このようなプロセスをBPELで記述すると複雑なプロセスになってしまいますが、ビジネス・ステート・マシン
を使用することで容易にモデリングすることができます。
6
IBM Software Group | WebSphere software
ビジネス・ステート・マシンの位置づけ
ビジネス・ステート・マシンはサービス・コンポーネントに位置づけられる
サービス・
コンポーネント
Business
Processes
サポーティング
・サービス
Interface
Maps
SOA コア
Human
Tasks
Business
State
Machines
Business
Relationships
Object Maps
Service Component
Architecture
Business
Objects
Business
Rules
Selectors
Common Event
Infrastructure
WebSphere Application Server (J2EE Runtime)
7
WPSにおける各コンポーネントの位置づけです。
ビジネス・ステート・マシンはBPELプロセスと同様にサービス・コンポーネントに位置づけられます。
7
IBM Software Group | WebSphere software
ビジネス・
ビジネス
ステート
マシン
構成
する
ビジネス・
ステート・
マシンを
を構成する
構成する
する要素
要素
ビジネス・・ステート・
ステート・・マシンを
マシンを
構成する要素
する要素
8
この章ではビジネス・ステート・マシンを構成する要素について説明します。
8
IBM Software Group | WebSphere software
ビジネス・ステート・マシンを構成する要素
Transition
その他
Event (Operation)
Composite State
TimeOut
Interface
Action
Reference
Condition(Guard)
Variable
State
Entry
Exit
9
ビジネス・ステート・マシンを構成する要素にはこのようなものがあります。
ここからはビジネス・ステートマシンを構成する各要素について説明をしていきます。
9
IBM Software Group | WebSphere software
Event
SCAのインターフェースにマップ
される
サービスの呼び出しをトリガー
にStateを遷移させる
Business Objectsとprimitive型
を Eventの入出力パラメータと
して使用可能
入力パラメータの1部は適切な
プロセス・インスタンスを特定す
るために使用される
(correlation)
10
Eventは各Stateの遷移のトリガーとなるもので、このEventがSCAのインターフェースにマップされます。
SCAのインターフェースとして公開されたOperationが呼び出されることでビジネス・ステート・マシンの
Stateが遷移します。
Eventの入出力パラメータとしてはBusiness Objectとstringやintといったprimitive型のものが使用可能で
す。
Eventへの入力パラメータの一部はCorrelationとして適切なプロセス・インスタンスを特定するために使用
されます。
例えば先ほどの研修コースの例では、コースコードをCorrelationとして使用することが考えられます。
複数のプロセス・インスタンス(この場合は複数の研修コース)が存在したときに、Correlationを使用するこ
とによって適切なプロセス・インスタンスの特定が可能です。
10
IBM Software Group | WebSphere software
Timeout
時間の経過によってStateを遷
移させる
以下のTypeとImplementation
を指定可能
Type
Duration
Expiration
Implementation
Visual
Java
Literal
11
Eventの他にもう1つStateを遷移させるものが有ります。それがTimeoutです。
Timeoutは時間の経過によってStateを遷移させます。
この例では研修コースが一定期間Closed状態であった場合、FinalState1へと遷移します。
Timeoutの発生は以下の2つのType(Duration, Expiration)3つのImplementation(Visual,Java,Literal)から
定義可能です。
DurationはTimeoutが発生するまでの期間を指定するのに対し、ExpirationはTimeoutが発生する時間を
指定します。
期間、時間の指定方法は、Visual、Java, Literalのいずれかを使用して行います。
VisualとはVisualEditorと呼ばれるエディターを使用してグラフィカルに指定する方法です。
JavaはJavaのコーディングによる指定、Literalとは例えば10days,10minutesといった指定方法です。
なお、EventもTimeoutも定義されていないTransitionはAutomatic Transitionと呼ばれ、
外部からのEventがなくても自動的にStateが遷移します。
Automatic Transitionを使用することで順次処理を記述可能です。
11
IBM Software Group | WebSphere software
Action
Transitionに対して Actionを定
義することが可能
ActionはStateが遷移した際に
よびだされるビジネス・ロジック
以下のものが指定可能
Visual
Java
サービス呼び出し
12
ActionはStateの遷移が発生した際に呼び出されるビジネス・ロジックです。
この例では、studentEnrolledイベントが発生した場合にaddStudent、もしくは、addToWaitingListアクション
が呼び出されます。
Actionの処理としては、Timeoutと同様にVisual,Java,サービス呼び出しが可能です。
また、Eventの入出力変数にはEventに付属するActionからのみアクセスすることが可能です。
12
IBM Software Group | WebSphere software
Condition
ConditionはTransitionに対して
設定する条件
Conditionによってどの遷移が
発生するかを決めるのに使用。
同じEventが複数の遷移を引き
起こす場合に有用
Conditionは以下のものから指
定可能
Visual
Java
サービス呼び出し
13
ConditionとはTransitionに対して設定する条件で、Guardとも呼ばれます。
ConditionによってEventによって発生するTransitionを制限することができます。
この例では、studentEnrolledイベントが発生した場合にまだ座席に空きがあれば、addStudentアクションが
呼び出され、
既に座席がいっぱいであればaddToWaitingListアクションが呼び出されることになります。
このようにConditionを用いることにより、同一のEventが複数の遷移のトリガーになる場合にどの遷移が起
きるのかを決めることができます。
Conditionとして指定できるものもVisual、Java、サービス呼び出しの3つです。
13
IBM Software Group | WebSphere software
Entry/Exit
Entry/ExitはStateに対して定義
するAction
Entry はそのStateに入る際に
実行される
Exit はそのStateから出る際に
実行される
Entry/Exitは以下のものから指
定可能
Visual
Java
サービス呼び出し
14
Entry/ExitはStateに入ったとき、または出るときに呼び出される処理です。
EntryはStateに入るとき(前のStateからこのStateに遷移したとき)に、ExitはStateか出るとき(次のStateに遷
移するとき)に呼び出されます。
Entry/Exitとして指定できる処理もVisual,Java,サービス呼び出しの3つです。
14
IBM Software Group | WebSphere software
その他の構成要素
Composite State
Stateのネストが可能
Interface
ビジネス・ステート・マシンがSCAコンポーネント
として呼び出されるときに使用される
Eventで指定
Reference
ビジネス・ステート・マシンが他のコンポーネント
を呼び出すときに使用する
Action,Condition,Entry/Exitで指定
Variable
ビジネス・ステート・マシン内で使用される変数
15
その他の構成要素です。
Composite State
Stateのネストが可能です。複雑なプロセスを記述する場合に、表記を単純化するために使います。
サブ・プロセスと異なりあくまでもこのプロセスの中でのみ使用可能なため、他のコンポーネントからの再
利用は出来ません。
Interface
ビジネス・ステート・マシンがSCAコンポーネントとして呼び出されるときに使用されます。
Eventに対してはInterfaceを指定する必要があります。
Reference
ビジネス・ステート・マシンが他のコンポーネントを呼び出すときに使用されます。
Action, Condition, Entry/Exitで指定します。アセンブリ・エディター上ではこのReferenceと他のコンポー
ネントを接続することになります。
Variable
ビジネス・ステート・マシン内で使用される変数です。
Eventの入力パラメータをActionで変数にセットすることが可能です。
15
IBM Software Group | WebSphere software
ビジネス・
ビジネス
ステート
マシン
ビジネス・
ステート・
マシンの
の開発
開発
ビジネス・・ステート・
ステート・・マシンの
マシンの
16
この章ではビジネス・ステート・マシンの開発について説明します。
16
IBM Software Group | WebSphere software
ビジネス・ステート・マシン開発の流れ
1.
モジュールの作成
2.
ビジネス・ステート・マシンの作成
ビジネス・ステート・マシン・エディターを使用してモデリング
Correlationの定義
インターフェース、リファレンスを定義
3.
ビジネス・ステート・マシンをアセンブリ・エディターに配置
4.
他のコンポーネントとワイヤリング
17
ビジネス・ステート・マシンの開発の流れは次のようになります。
1.モジュールの作成
全てのSCAのコンポーネントと同様。ビジネス・ステート・マシンを作成する際にはモジュールが必要になります。
2.ビジネス・ステート・マシンの作成
ビジネス・ステート・マシンの作成はビジネス・ステート・マシン・エディターを使用して行います。
ビジネス・ステート・マシン・エディターを使用してStateの遷移を定義し、Action、Condition、Entry/Exitの定義をします。
ビジネス・ステート・マシン・エディター上にWSDLインターフェースをドラッグ&ドロップすることで、インターフェースやリ
ファレンスの定義をすることができます。
また、ビジネス・ステート・マシンでは1つ以上のCorrelationの定義をする必要がありますが、Correlationの設定もここで行
います。
3.ビジネス・ステート・マシンをアセンブリ・エディターに配置
作成したビジネス・ステート・マシンをアセンブリ・エディター上に配置します。
4.他のコンポーネントとワイヤリング
インターフェースやリファレンスを必要に応じて他のコンポーネントとワイヤリングしたり、エクスポートやスタンドアロン・リ
ファレンスを定義します。
17
IBM Software Group | WebSphere software
ビジネス・ステート・マシン・エディター
①
②
④
③
①Palette
②ActionBar
③Canvas
⑤
④ActionBar
④Properties Area
18
ビジネス・ステート・マシン開発のほとんどはビジネス・ステート・マシン・エディター上で行います。
基本的な構成はBPELのエディターと同様です。
Canvas上にPaletteやActionBarを使用して、StateやActionを配置します。
各StateやActionなどの設定は、Properties Areaで行います。
18
IBM Software Group | WebSphere software
Correlation の定義
Correlationはビジネス・ステート・マシンのインスタ
ンスを特定するために使用される
コースコードなど
必ず1つ以上のCorrelationを定義する必要がある
CorrelationはPropertyとAliasから構成される
Property
名前と型を指定
Alias
Eventの入力パラメータの一部を指定
Correlationで使用するPropertyはintやstringと
いった単純な型である必要がある
BOは使用不可
19
Correlationはビジネス・ステート・マシンのインスタンスを特定するために使用されます。
ビジネス・ステート・マシンは外部からのEventを受けて状態を遷移させるため、必ず1つ以上のCorrelationの定義が必須
となります。
CorrelationはPropertyとAliasから構成されます。
Propertyには名前と型を指定します。
例えば、先ほどの研修コースの例では、
名前:コースコード
型:string
のように定義します。
Aliasは各Propertyに対応するEventの入力メッセージの一部です。
この例では、
open Eventの入力メッセージやstudentEnrolled Eventの入力メッセージに含まれる
コースコードを指定します。
このように設定することで、Eventが発生した際に正しいビジネス・ステート・マシンのインスタンスが特定されます。
CorrelationのPropertyとして指定できる方はintやstringといった単純な型のみとなります。
BOなどをPropertyとして指定することはできません。
19
IBM Software Group | WebSphere software
モジュールのアセンブリ
アセンブリ・エディター上でコンポーネント間をワイヤリング
ActionやConditionから呼び
出すReference
Eventとして呼び
出される
Interface
20
作成したビジネス・ステート・マシンはアセンブリ・エディター上に配置し、他のコンポーネントとワイヤリングします。
ビジネス・ステート・マシンに対してイベントを発行するEventはインターフェースに対応し、
ビジネス・ステート・マシンが呼び出すAction、Condition、Entry/Exitでのサービス呼び出しはリファレンスにマップされま
す。
ビジネス・ステート・マシン上では、どのインターフェースを使用するかの定義だけで、実際のサービスの呼び出し先の指
定は行いません。このアセンブリ・エディター上でバインディングを指定することにより呼び出し先が決定されます。
ビジネス・ステート・マシンを他のモジュールのSCAコンポーネントから呼び出す場合にはエクスポートの定義が必要です。
また、非SCAコンポーネントから呼び出す場合にはスタンドアロン・リファレンスの定義が必要です。
20
IBM Software Group | WebSphere software
ビジネス・
ビジネス
ステート
マシン
ビジネス・
ステート・
マシンの
の稼動
稼動
ビジネス・・ステート・
ステート・・マシンの
マシンの
21
この章ではビジネス・ステート・マシンの稼動上の考慮点について説明します。
21
IBM Software Group | WebSphere software
ビジネス・ステート・マシンの稼動
ビジネス・ステート・マシンはBPELに変換される
EARファイルに含まれ、通常のJ2EEアプリケーションと同様にWPSにイン
ストールされる
プロセスの定義はデータベースに格納される
ビジネス・ステート・マシンを稼動させる際の考慮点
プロセス・コンテナの構成
プロセス・テンプレートの停止
開発モードでのサーバー起動
22
ビジネス・ステート・マシンはBPELに変換されます。変換されたビジネス・ステート・マシンはEARファイルに含まれ、通常
のJ2EEアプリケーションと同様にWPSにインストールされます。
プロセスの定義はデータベースに格納されます。
ビジネス・ステート・マシンを稼動させる際には、BPELプロセスと同様に以下の点に注意が必要です。
プロセス・コンテナの構成
ビジネス・ステート・マシンを含むアプリケーションをインストール/稼動させる場合にはプロセス・コンテナが正しくセット
アップされている必要があります。プロセス・コンテナの設定は管理コンソールから、もしくはスクリプト(bpeconfig.jacl)
を使用して行います。
プロセス・テンプレートの停止
BPELプロセスを含むアプリケーションと同様に、ビジネス・ステート・マシンを含むアプリケーションをアンインストールする
際にはプロセス・テンプレートを停止する必要があります。
開発モードでのサーバー起動
サーバーを開発モードで始動した場合、アプリケーションのアンインストールの際にプロセス・テンプレートを停止する必
要がありません。テスト段階ではサーバーを開発モードで始動することで、プロセス・テンプレート停止の手間を省くこ
とができます。
22
IBM Software Group | WebSphere software
まとめ
まとめ
23
23
IBM Software Group | WebSphere software
まとめ
ビジネス・ステート・マシーンは複雑な動的な振る舞いを持つビジネス・プロ
セスの構築に用いるSCAのコンポーネント
特に、前の状態に戻るようなプロセスに有効
ビジネス・ステート・マシンを構成する要素
State
Event、Timeout
Action
Condition
Entry/Exit
Correlation
WPS上ではBPELプロセスと同様に動作
BPEContainerの設定が必要
24
ビジネス・ステート・マシンは複雑な動的な振る舞いをもつビジネス・プロセスの構築に使用するSCAのコンポーネントです。
ビジネス・ステート・マシンは
State
Event、Timeout
Action
Condition
Entry/Exit
Correlation
によって構成されます。
ビジネス・ステート・マシンはBPELに変換されるため、WPS上ではBPELプロセスと同様に動作します。
そのため、WPS上でビジネス・ステート・マシンを含むアプリケーションを動作させる場合にはBPEContainerの設定が必要
です。
24
Fly UP