A-Workflow
概要
A-Workflow は,Eclipse/EMFT プロジェクトが提供する MWE2 に準拠したワークフローコンポーネント群です。 MWE2 準拠のワークフローに try-catch-finally 型の例外処理を追加します。
背景
高信頼性組込み分野では,メタモデルとメソドロジを規定する標準仕様が増えてきています。 車載ソフトウェアにおける標準仕様 AUTOSAR がその一例です。
このような仕様では,ソフトウェア開発の諸段階で,モデル変換を用いて詳細化と一般化を反復しながらソフトウェアを作りこんでいきます。
C言語を用いた開発で make
コマンドが必須だったのと相似で,モデル変換を用いた開発でも半自動化のツールと手順記法は必須です。
この需要に応えるために, Eclipse Modeling プロジェクトでは,MWE2 というモデル変換のための手順記法と実行エンジンを提供しています。
もっとも狭い意味での MWE2 は,分岐や例外のない,順次実行だけをサポートしています。 理想的には,MWE2 が提供する機能だけでモデル変換は実現できます。 しかしながら実際の開発現場では,モデル変換の途中で様々な例外が発生し,その例外の種類により動作を変更する必要が出てきます。
A-Workflow は,MWE2 のワークフローエンジンのコアを変更すること無く,Java と同様の例外処理を提供します。
ワークフローエンジンとして MWE2 を用いることのメリットは弊社発行の下記ホワイトペーパーもご参照ください。
構成
A-Workflow は,主に 3つの MWE2 コンポーネントから成り立っています。
- ワークフロー内で発生した未キャッチ例外を捕捉し, Java の catch / finally 節と同様にサブワークフローを実行する AWorkflow
- 自コンポーネント到達以前の例外状態を判断し,また自コンポーネント内で発生した未キャッチ例外を補足し情報を保持する AComponent
- MWE2 ワークフロー内で明示的に例外を送出するする AWorkflowException
これらを用いて,MWE2 エンジン実行時にコンポーネント内で発生する例外を適切に処理することができます。
提供形態
A-Workflow は,合同会社もなみ屋から,ソースコードライセンスの形態で提供されます。 ライセンスは非独占的に提供され,ライセンシは,ライセンサから受け取った A-Workflow のソースコード改変ならびに改変物を元にしたバイナリの再配布を行えます。ライセンス期間は無期限です。 ライセンスの詳細につきましては,約款を御覧ください。
類似製品との比較
Eclipse Modeling プロジェクトには,VIATRA というサブブロジェクトがあります。
VIATRA には MWE2 にループや分岐などの実行制御機能を追加するためのワークフローコンポーネントが含まれています。
しかし,VIATRA が主眼に置いているのは batch and event-driven, reactive transformations
であり,彼らのコンポーネントの狙いは MWE2 をプログラミング言語として拡張するものです。
VIATRA が提供するコンポーネントは MWE2 の自由度を上げますが,反面,MWE2 スクリプトの複雑化を招きます。
多くのモデル変換ワークフローにとっては機能が過剰であり,開発現場の学習コストは高くなる傾向となります。