Comments
Description
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