(57)【特許請求の範囲】
【請求項１】
少なくとも１つの変数を含むデータ構造が定義された複数のアクティビティを含むワークフローデータを記憶する記憶手段と、
前記ワークフローデータの第１のアクティビティに定義された第１の変数に対する関連付けの候補とする第２の変数を他のアクティビティから抽出する抽出手段と、
前記第１の変数を含む第１の変数グループと前記第２の変数を含む第２の変数グループとの関連度を算出し、前記関連度に基づいて前記第１の変数と関連付けの対象とする変数を前記第２の変数から選択する変数選択手段と
を具備したことを特徴とするワークフロー管理装置。
【請求項２】
前記変数選択手段は、
前記第１の変数について関連付けの影響範囲にある第３の変数を決定する影響範囲決定手段と、
前記第３の変数と前記第２のグループに含まれる第４の変数との関係に基づいて、前記第１の変数グループと前記第２の変数グループとの関連度を評価する関連度評価手段とを含むことを特徴とする請求項１記載のワークフロー管理装置。
【請求項３】
前記変数選択手段は、前記関連度評価手段による関連度の評価結果に基づいて、前記第１の変数と関連付けの対象とする変数を前記第２の変数から選択することを特徴とする請求項２記載のワークフロー管理装置。
【請求項４】
前記関連度評価手段による前記関連度の評価結果を表示する表示手段をさらに具備したことを特徴とする請求項２記載のワークフロー管理装置。
【請求項５】
前記表示手段は、前記評価結果として、評価が高い前記第２の変数グループに含まれる前記第２の変数を関連付けの候補として表示し、
前記変数選択手段は、前記表示手段により表示された関連づけの候補を選択する指示の入力を受け付け、この入力された指示に応じて、前記第１の変数と関連付けの対象とする変数を選択することを特徴とする請求項４記載のワークフロー管理装置。
【請求項６】
前記影響範囲決定手段は、
前記データ構造において前記第１の変数から前記影響範囲を示す距離内にある前記第３の変数を走査して求めることを特徴とする請求項２記載のワークフロー管理装置。
【請求項７】
前記関連度評価手段は、前記第１変数と前記第３の変数との前記第１のアクティビティのデータ構造における距離と、前記第２の変数と前記第４の変数との前記第２のアクティビティのデータ構造における距離とに基づいて、前記第１の変数グループと前記第２の変数グループとの関連度を求めることを特徴とする請求項２記載のワークフロー管理装置。
【請求項８】
前記ワークフローデータに定義された前記変数に対して、ユーザから指定された別名を設定する別名設定手段をさらに具備し、
前記抽出手段は、前記別名設定手段により前記第１の変数に対して設定された別名をもとにして、前記第２の変数を抽出することを特徴とする請求項１記載のワークフロー管理装置。
【請求項９】
前記変数選択手段により決定された前記第２の変数と前記第１の変数との関連付けを定義する記述を前記ワークフローデータに追加するデータ追加手段をさらに具備したことを特徴とする請求項１記載のワークフロー管理装置。
【請求項１０】
コンピュータを、
少なくとも１つの変数を含むデータ構造が定義された複数のアクティビティを含むワークフローデータを記憶させる記憶手段と、
前記ワークフローデータの第１のアクティビティに定義された第１の変数との関連付けの候補とする第２の変数を他のアクティビティから抽出する抽出手段と、
前記第１の変数を含む第１の変数グループと前記第２の変数を含む第２の変数グループとの関連度に基づいて、前記第１の変数との関連付けの対象とする変数を前記第２の変数から選択する変数選択手段として機能させるためのワークフロー管理プログラム。
【請求項１１】
前記変数選択手段は、
前記第１の変数について関連付けの影響範囲にある第３の変数を決定する影響範囲決定手段と、
前記第３の変数と前記第２のグループに含まれる第４の変数との関係に基づいて、前記第１の変数グループと前記第２の変数グループとの関連度を評価する関連度評価手段とを含む請求項１０記載のワークフロー管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ワークフローを管理するワークフロー管理装置、及びワークフロー管理プログラムに関する。
【背景技術】
【０００２】
近年、開始から終了まで連鎖的に実行される一連の作業プロセスをワークフローとして表現させるための言語として、ＢＰＥＬ（Business Process Execution Language ）等のＸＭＬ（Extensible Markup Language）を利用したワークフロー言語が普及している。ＢＰＥＬのうち、特に、ＢＰＥＬ４ＷＳ（Business Process Execution Language for Web Services）は、Ｗｅｂベースのワークフロー技術言語であるため、ブラウザ上でワークフローを表示させるのに適している。 
従来、このようなワークフローを動的に分かりやすく表示させる技術として、作業プロセスの一作業単位であるアクティビティ（処理プロセスやタスク）を表わす作業シンボルを、複数、グループ化して簡略化した作業シンボルとして表示させたり、作業シンボルの表示形態を変更させたりすることを可能にした技術がある。
【０００３】
ワークフローのアクティビティには入力／出力があり、アクティビティ間で入出力されるデータ（変数）についてＸＭＬ（ＸＭＬスキーマと呼ばれる仕様）を利用して定義される。
【０００４】
従来では、アクティビティの入力及び出力に対して所定のメタデータをそれぞれ付与しておき、このメタデータを用いて複数の要素サービスの入力又は出力間を連結するため要素サービス連結情報を生成するシステムが考えられている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２１０２２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の技術においては、アクティビティをワークフロー上に配置することは容易であるが、アクティビティ間で入出力されるデータ（変数）の定義（関連付け）を記述することが困難となっていた。例えば、アクティビティの数が多い、アクティビティ間で入出力されるデータの数が多い場合には、それぞれについての記述（関連付け）が必要となるため多大な労力を必要としていた。
【０００７】
特に、ワークフローデータは、ＸＭＬによりデータ構造が記述されるため複雑な入れ子構造（階層構造）によって定義される場合がある。こうした場合には、さらにデータの関連付けが困難となってしまう。
【０００８】
本発明の目的は、データ構造が複雑なワークフローであっても、アクティビティ間で入出力されるデータの関連づけを容易に実行することが可能なワークフロー管理装置、及びワークフロー管理プログラムを提供することである。
【課題を解決するための手段】
【０００９】
実施形態によれば、ワークフロー管理装置は、記憶手段と、抽出手段と、変数選択手段とを有する。記憶手段は、少なくとも１つの変数を含むデータ構造が定義された複数のアクティビティを含むワークフローデータを記憶する。抽出手段は、前記ワークフローデータの第１のアクティビティに定義された第１の変数に対する関連付けの候補とする第２の変数を他のアクティビティから抽出する。変数選択手段は、前記第１の変数を含む第１の変数グループと前記第２の変数を含む第２の変数グループとの関連度を算出し、前記関連度に基づいて前記第１の変数と関連付けの対象とする変数を前記第２の変数から選択する。
【図面の簡単な説明】
【００１０】
【図１】本実施形態におけるワークフロー管理装置の要部構成を示すブロック図。
【図２】本実施形態のワークフロー管理装置に搭載される主要なプログラムを示す模式図。
【図３】本実施形態におけるワークフロー管理プログラムより実現される機能構成を示すブロック図。
【図４】本実施形態における関連付け処理モジュールによるエイリアス設定処理について示すフローチャート。
【図５】本実施形態における変数定義の一例を示す図。
【図６】本実施形態における変数定義の設定画面の一例を示す図。
【図７】本実施形態における選択リストの一例を示す図。
【図８】本実施形態におけるエイリアスが定義された変数の一例を示す図。
【図９】本実施形態における関連付け処理モジュールによる関連付け処理について示すフローチャート。
【図１０】本実施形態における関連付け処理の概略について説明するための図。
【図１１】本実施形態におけるワークフローの一例を示す図。
【図１２】本実施形態におけるアクティビティＡとアクティビティＣのデータ（変数）との関連性を示す図。
【図１３】本実施形態におけるアクティビティＢとアクティビティＣのデータ（変数）との関連性を示す図。
【図１４】本実施形態における構成関連度判定処理を示すフローチャート。
【図１５】本実施形態における影響範囲決定処理を示すフローチャート。
【図１６】本実施形態における影響範囲走査処理を示すフローチャート。
【図１７】本実施形態における対象要素からの影響範囲を説明するための図。
【図１８】本実施形態における関連対象要素リストの一例を示す図。
【図１９】本実施形態における構成関連度評価処理を示すフローチャート。
【図２０】本実施形態における構成関連度評価処理において実行される入力候補要素リスト作成処理及び距離判定処理を示すフローチャート。
【図２１】本実施形態における入力候補要素距離リスト作成処理を示すフローチャート。
【図２２】本実施形態におけるアクティビティＣの対象要素「ｐａｔｈ」に対するアクティビティＡ，Ｂの入力候補要素を示す図。
【図２３】本実施形態における関連対象要素リストの要素に対する入力候補要素の一例を示す図。
【図２４】本実施形態における関連対象要素リストの要素に対する入力候補要素が複数存在する一例を示す図。
【図２５】本実施形態における入力候補要素距離リストの作成を説明するための図。
【図２６】本実施形態におけるアクティビティＣの対象要素「ｐａｔｈ」に対するアクティビティＡの入力候補要素「ｐａｔｈ」について求められた距離を示す図。
【図２７】本実施形態におけるアクティビティＣの対象要素「ｐａｔｈ」に対するアクティビティＡの入力候補要素「ｐａｔｈ」について求められた入力候補要素距離リストの一例を示す図。
【図２８】本実施形態におけるアクティビティＣの対象要素「ｐａｔｈ」に対するアクティビティＢの入力候補要素「ｐａｔｈ」について求められた距離を示す図。
【図２９】本実施形態におけるアクティビティＣの対象要素「ｐａｔｈ」に対するアクティビティＢの入力候補要素「ｐａｔｈ」について求められた入力候補要素距離リストの一例を示す図。
【図３０】本実施形態におけるアクティビティＣの対象要素「ｐａｔｈ」に対するアクティビティＢの入力候補要素「ｔｅｍｐｐａｔｈ」の入力候補要素について求められた距離を示す図。
【図３１】本実施形態におけるアクティビティＣの対象要素「ｐａｔｈ」に対するアクティビティＢの入力候補要素「ｐａｔｈ」について求められた入力候補要素距離リストの一例を示す図。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、実施形態について説明する。  
本実施形態のワークフロー管理装置１は、例えばパーソナルコンピュータにより実現することができる。すなわち、ワークフロー管理装置１は、コンピュータをワークフロー管理装置として機能させるためのアプリケーションプログラム、いわゆるワークフロー管理プログラムがインストールされたパーソナルコンピュータによって構成される。
【００１２】
図１は、本実施形態におけるワークフロー管理装置１の要部構成を示すブロック図である。ワークフロー管理装置１は、データの制御や演算等の処理を行うＣＰＵ（Central Processing Unit）１０、起動プログラム等の固定的データが予め格納されたＲＯＭ（Read Only Memory）１１、ＣＰＵ１０が処理する可変的なデータを一時的に記憶するためのメモリエリアが形成されるＲＡＭ（Random Access Memory）１２、内蔵の補助記憶装置として所定のデータを長期間保存するＨＤＤ（Hard Disk Drive）１３、ネットワークを介してサーバ等の外部装置とデータ通信を行うネットワークインターフェース１４、着脱自在に接続される記録媒体からデータの読取りを行う記録媒体インターフェース１５、キーボード、マウス等の入力デバイス１６から操作に応じた入力信号を取り込む入力コントローラ１７、ディスプレイ１８を制御し、表示データに対応する画面を表示させる表示コントローラ１９等を備えている。ＣＰＵ１０は、ＲＯＭ１１、ＲＡＭ１２、ＨＤＤ１３、ネットワークインターフェース１４、記録媒体インターフェース１５、入力コントローラ１７及び表示コントローラ１９を、アドレスバス、データバス等のバスラインで接続している。
【００１３】
図２は、本実施形態のワークフロー管理装置１に搭載される主要なプログラムを記憶するためのプログラム記憶部２０を示す模式図である。ワークフロー管理装置１は、プログラム記憶部２０をＨＤＤ１３に設けている。プログラム記憶部２０には、少なくともディスプレイ１８においてＸＭＬやＨＴＭＬ（Hyper Text Markup Language）等の記述言語により記述されたコンテンツを表示するためのブラウザ２１と、例えばＸＭＬにより記述されたワークフローを管理するためのワークフロー管理プログラム２２とを格納している。
【００１４】
プログラム記憶部２０にプログラムが格納される際は、記録媒体インターフェース１５を介して記録媒体からインストールされてもよいし、ネットワークインターフェース１４を介して外部装置からダウンロードされてもよい。記録媒体としては、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＭＯ（Magnet Optical）ディスク、ＵＳＢ（Universal Serial Bus）メモリ等のように、コンピュータによってデータの読み取りが可能なものであればよい。
【００１５】
ワークフロー管理プログラム２２は、開始から終了まで連鎖的に実行される一連の作業プロセス（タスク）を表現するワークフローを作成、編集、表示等するための機能を提供する。ワークフロー管理プログラム２２は、ワークフローを動的に分かりやすく表示させるために、例えば、作業プロセスの一作業単位であるアクティビティ（プロセスやタスク）を表わす作業シンボルを、複数、グループ化して簡略化した作業シンボルとして表示させたり、作業シンボルの表示形態を変更させたりする機能を提供する。
【００１６】
本実施形態におけるワークフロー管理プログラム２２は、アクティビティ間で入出力されるデータ（変数）の関連付け作業を容易にするための機能を提供するために、関連付け処理プログラム２２ａ、影響範囲決定処理プログラム２２ｂ、構成関連度評価処理プログラム２２ｃが含まれている。
【００１７】
関連付け処理プログラム２２ａは、データ出力側のアクティビティとデータ入力側のアクティビティとの間のデータの関連付けをするための機能を提供する。関連付け処理プログラム２２ａは、ワークフローデータにおいて記述されたアクティビティの変数定義（データ）に対して、ユーザからの指定に応じてエイリアス（別名）を設定する機能、この機能によって設定されたエイリアスをもとに抽出される関連付け候補とする変数に対する構成関連度判定処理の結果を利用した変数の関連付けの機能を提供する。
【００１８】
影響範囲決定処理プログラム２２ｂ及び構成関連度評価処理プログラム２２ｃは、関連付け候補とする変数に対する構成関連度判定処理を実行するための機能を提供する。
【００１９】
影響範囲決定処理プログラム２２ｂは、関連付け候補とする変数について、アクティビティ間の変数（データ）の関連度を判定する範囲を決定するための機能を提供する。本実施形態では、データの関連度を評価する場合、個々のデータ間の関連度だけでなく、評価対象とする変数を含むグループ間で関連度を評価する。このため、影響範囲決定処理プログラム２２ｂは、ワークフローデータにおいて記述されたプロセスやタスクの変数定義が示すデータ構造において、関連度の評価対象としている変数を基準として関連度の評価に影響するとみなす他の変数の範囲（グループ）を決定する。ワークフローデータは、例えばＸＭＬで記述されるために、データ構造が複雑な入れ子構造（階層構造）となる場合がある。本実施形態では、データの出力側と入力側のアクティビティのデータ構造をもとにして、関連度の評価対象としている変数を含むグループ（影響範囲）を決定する。
【００２０】
構成関連度評価処理プログラム２２ｃは、影響範囲決定処理プログラム２２ｂが提供する機能により判別されたグループ（影響範囲）について関連度を評価する機能を提供する。
【００２１】
図３は、ワークフロー管理プログラム２２をＣＰＵ１０により実行することにより実現される機能構成を示すブロック図である。  
図３に示すように、ワークフロー管理プログラム２２を実行することによりワークフロー管理モジュール３０の機能が実現される。ワークフロー管理モジュール３０には、関連付け処理モジュール３１、エイリアス設定ツール３１ａ、影響範囲決定処理モジュール３２、影響範囲走査処理モジュール３３、構成関連度評価処理モジュール３４、入力候補要素距離リスト作成処理モジュール３５、距離判定処理モジュール３６が含まれる。
【００２２】
関連付け処理モジュール３１は、関連付け処理プログラム２２ａを実行することにより提供される機能であり、新タスク生成時の新タスクの変数に割り当てるエイリアス（別名）の設定、エイリアスを利用した関連度の高い変数の候補の抽出、変数の候補に対する影響範囲決定処理モジュール３２及び構成関連度評価処理モジュール３４の処理結果（評価結果）に基づく変数の特定、ワークフローへの変数の関連付けの追加等を実行する。
【００２３】
エイリアス設定ツール３１ａは、ユーザからの指示に応じて、新タスクの変数に割り当てるエイリアスを設定するためのツールである。エイリアス設定ツール３１ａは、エイリアス設定画面を表示させて、ユーザからの変数に対するエイリアスの新規追加、あるいは追加済みのエイリアス群からの選択指示を受け付ける。
【００２４】
影響範囲決定処理モジュール３２は、影響範囲決定処理プログラム２２ｂを実行することにより提供される機能であり、ワークフローデータにより定義される変数のデータ構造に基づいて、関連度の評価対象としている変数の影響範囲（グループ）を決定する。影響範囲走査処理モジュール３３は、データ構造中の関連度の評価対象としている変数を基準位置として、予め設定される影響範囲距離に含まれる変数（要素）を走査する。影響範囲決定処理モジュール３２は、影響範囲走査処理モジュール３３による走査により関連対象要素リストを作成して、影響範囲内にある変数（要素）を登録する。
【００２５】
構成関連度評価処理モジュール３４は、構成関連度評価処理プログラム２２ｃを実行することにより提供される機能であり、関連対象要素リストに登録された変数を含む影響範囲（グループ）について、他のアクティビティのグループとの関連度を算出するもので、入力候補要素距離リスト作成処理モジュール３５及び距離判定処理モジュール３６を含んでいる。
【００２６】
入力候補要素距離リスト作成処理モジュール３５は、関連対象要素リストに登録された、ある対象とする変数（要素）に対して影響範囲にあるその他の変数（要素）を入力候補要素距離リストに登録する。
【００２７】
距離判定処理モジュール３６は、入力候補要素距離リストに登録された、ある対象とする変数（要素）と、データ構造に応じたその他の変数（要素）との距離を計算する。距離判定処理モジュール３６により求められた距離をもとに、評価対象とする変数を含むグループと他のアクティビティのグループとの関連度が計算される。
【００２８】
次に、本実施形態におけるワークフロー管理装置１の動作について説明する。  
まず、関連付け処理モジュール３１によるエイリアス設定処理について、図４に示すフローチャートを参照しながら説明する。  
関連付け処理モジュール３１は、ワークフローに新タスクを定義する記述がユーザの入力操作によって生成されると（ステップＡ１、Ｙｅｓ）、新タスクにおける変数定義を読み込む（ステップＡ２）。
【００２９】
関連付け処理モジュール３１は、新タスクにおいて定義された変数に対して、ユーザからの指示に応じてエイリアス（別名）を割り当てる。関連付け処理モジュール３１は、エイリアス設定ツール３１ａによりエイリアス設定画面を表示させる。
【００３０】
例えば、図５に示すように、新タスクの記述において変数定義がされたものとする。図５に示す例では、出力データの変数として「ＳｃａｎＦｉｌｅＰａｔｈ」「ＳｃａｎＦｉｌｅＰａｇｅｓ」が定義されている。
【００３１】
エイリアス設定ツール３１ａは、読み込んだ変数定義をもとにして、例えば図６に示すような設定画面を表示させる。設定画面には、変数を一覧表示させると共に、それぞれの変数に対して設定されたエイリアスを表示するための表示領域、エイリアスの選択リストを表示させるためのボタンが設けられている。図６では、変数「ＳｃａｎＦｉｌｅＰａｔｈ」に対して、エイリアス「画像フォーマット」が設定された状態を表している。
【００３２】
例えば、ユーザが変数「ＳｃａｎＦｉｌｅＰａｇｅｓ」のエイリアスを指定するためにマウス等の入力デバイス１６の操作によりボタンを選択すると、エイリアス設定ツール３１ａは、図７に示すような選択リストを表示させる。選択リストには、例えば、作成済みのタスクに定義された変数に設定されているエイリアスが一覧表示される。このエイリアスの一覧表示からは入力デバイス１６の操作により任意に何れかを選択することができる。例えば、エイリアス「画像ページ数」が選択されると、エイリアス設定ツール３１ａは、図６に示す変数一覧中の変数「ＳｃａｎＦｉｌｅＰａｇｅｓ」に対応付けて、エイリアス「画像ページ数」を表示させる。
【００３３】
また、選択リストからは、新規のエイリアスの入力を指定することができる。例えば、選択リストから「新規」が指定されると、エイリアス設定ツール３１ａは、新規のエイリアスを入力するための画面を表示して、ユーザによる入力デバイス１６（キーボード）の入力操作に応じてエイリアスを表す文字データを入力する。
【００３４】
従って、タスクを生成する際に記述された変数に対して、ユーザが分かり易い任意のエイリアスを指定することができる。ここで、新規に追加されたエイリアスは、前述したように、選択リストにおいて表示され、他の変数に対する設定に利用することができる。
【００３５】
エイリアス設定ツール３１ａは、ユーザ指定によって設定されたエイリアス、すなわち変数エイリアスを出力する。例えば、図８に示すように、変数「ＳｃａｎＦｉｌｅＰａｔｈ」「ＳｃａｎＦｉｌｅＰａｇｅｓ」のそれぞれに対して設定されたエイリアスが定義されたデータを出力する。
【００３６】
次に、関連付け処理モジュール３１による関連付け処理について、図９に示すフローチャートを参照しながら説明する。ここでは、図１０に示す例を用いて、関連付け処理の概略について説明する。  
図１０は、ワークフロー中のアクティビティの一例として、画像のスキャンを行うタスクを表すアクティビティと、スキャンされた画像データを入力して画像処理するタスクのアクティビティを示している。図１０では、最小限の２つのアクティビティのみを示しているが、ワークフローには多数のアクティビティが存在しているものとする。
【００３７】
ここでは、画像処理のアクティビティの変数「ＩｎｐｕｔＦｉｌｅＰａｔｈ」を対象として、この変数「ＩｎｐｕｔＦｉｌｅＰａｔｈ」と関連付けられる他のアクティビティの変数を検索する。
【００３８】
まず、関連付け処理モジュール３１は、対象とする変数「ＩｎｐｕｔＦｉｌｅＰａｔｈ」とのワークフロー中の位置関係に基づいて、関連づけの対象となる変数の候補を特定する（ステップＢ１）。すなわち、対象とする変数「ＩｎｐｕｔＦｉｌｅＰａｔｈ」より以前に処理されるアクティビティ（タスク）に定義された変数を候補とする。
【００３９】
次に、関連付け処理モジュール３１は、位置関係をもとに特定された変数の候補から、変数の型が一致する変数を特定する（ステップＢ２）。例えば、対象とする変数「ＩｎｐｕｔＦｉｌｅＰａｔｈ」の型が文字列「ｓｔｒｉｎｇ」である場合には、同様に文字列「ｓｔｒｉｎｇ」の型が定義された変数に絞り込む。
【００４０】
この段階では、アクティビティ「画像処理」より前に処理されるアクティビティが多数ある場合、関連づけの対象となる変数の候補も多数存在する可能性がある。ここで、関連付け処理モジュール３１は、変数「ＩｎｐｕｔＦｉｌｅＰａｔｈ」に設定されたエイリアス「画像ファイルパス」と、関連づけの対象となる変数の候補に設定されたエイリアスとを比較し、エイリアスが一致する変数の候補を関連づけの候補として抽出する（ステップＢ３）。ここでは、アクティビティ「スキャン」の変数「ＳｃａｎＦｉｌｅＰａｔｈ」に設定されたエイリアス「画像ファイルパス」が一致するため、図１０（ｄ）に示すように、変数「ＩｎｐｕｔＦｉｌｅＰａｔｈ」に対して、変数「ＳｃａｎＦｉｌｅＰａｔｈ」が関連付けの候補として抽出される。
【００４１】
なお、本実施形態では説明を簡単にするため、変数ごとの関連付けの候補を抽出するためにエイリアスを利用するが、メタデータの関連性評価による各変数の関連付けにより候補を抽出するようにしても良い。
【００４２】
このようにして、エイリアス（あるいはメタデータ）を利用して関連づけの候補を抽出することができるが、アクティビティの数が多い、アクティビティ間で入出力されるデータの数が多い場合、さらにはデータ構造が複雑な入れ子構造（階層構造）をもつ場合など、ワークフローが複雑になると、関連付け対象とする変数候補の組が増大する可能性がある。
【００４３】
このため、関連付け処理モジュール３１により抽出された関連付け候補とする変数を対象として、影響範囲決定処理モジュール３２及び構成関連度評価処理モジュール３４により構成関連度判定処理を実行する（ステップＢ４）。この構成関連度判定処理によって関連付け対象とする変数候補の組を絞り込むことにより関連付けを容易にする。
【００４４】
以下、説明を容易にするために、図１１に示す簡単なワークフローを例にして説明する。図１１に示すワークフローは、アクティビティＡ，Ｂ，Ｃの順に処理が実行されることを表し、アクティビティＡの出力データ（変数）とアクティビティＣの入力データ、アクティビティＢの出力データとアクティビティＣの入力データとが関連付けられることを示している。
【００４５】
図１２は、アクティビティＡとアクティビティＣのデータ（変数）との関連性を示す図である。図１２に示すように、例えばアクティビティＡのデータ構造は、変数「ｏｕｔｐｕｔ」に、変数「ｕｓｅｒＩＤ」「ｄｏｃｕｍｅｎｔ」「Ｐｒｏｃｅｓｓ」が含まれ、例えば変数「ｄｏｃｕｍｅｎｔ」にさらに変数「ｐａｔｈ」「ｄａｔｅ」が含まれることが定義されていることを示す。アクティビティＣについても、図１２に示すように、階層構造（木構造）によってデータ構造が定義されている。また、図１２では、アクティビティＣの変数「Ｐａｔｈ」に対して、関連づけの候補としてアクティビティＡの変数「ｐａｔｈ」が抽出されていることを示している。
【００４６】
図１３は、アクティビティＢとアクティビティＣのデータ（変数）との関連性を示す図である。図１３では、アクティビティＣの変数「Ｐａｔｈ」に対して、関連づけの候補としてアクティビティＢの変数「ｐａｔｈ」と変数「ｔｅｍｐａｔｈ」が抽出されていることを示している。
【００４７】
図１４は、本実施形態における構成関連度判定処理を示すフローチャートである。  
構成関連度判定処理では、関連付け候補とする変数を「要素」として処理する。まず、影響範囲決定処理モジュール３２は、処理対象として選択した代入対象要素に対する影響範囲決定処理を実行する（ステップＣ１）。影響範囲決定処理は、選択した代入対象要素からどの範囲の変数の関連度を検証するかを決定するための処理である。
【００４８】
次に、構成関連度評価処理モジュール３４は、影響範囲決定処理により決定された影響範囲内の要素（変数）について、構成関連度評価処理を実施する（ステップＣ２）。構成関連度評価処理では、対象要素（変数）と関連付けの候補とする要素（変数）との関連度を、それぞれの要素を含む影響範囲（グループ）内の要素との関係から評価する。
【００４９】
本実施形態におけるワークフロー管理モジュール３０は、アクティビティ間の変数の関連付けをする場合、変数単位での関連度ではなく、関連付け候補となる変数を含む影響範囲（グループ）間での関連度に基づいて、関連付けの対象とする変数を決定する。ワークフローが作成される場合には、データ出力側のアクティビティ（プロセス）のデータ構造を記述した後、このアクティビティと関連付けられるデータ入力側のアクティビティを記述する場合、データ出力側のデータ構造をコピーして記述されることが多い。また、関連のあるアクティビティ間では、データ構造が類似するだけでなく、類似した変数名が使用される場合も多い。従って、エイリアスを用いて抽出された関連付け候補とする変数が多い場合であっても、対象とする変数を含む影響範囲（グループ）間での関連度に基づいて関連付けの対象とする変数を決定することで、関連付けの精度を向上することができる。
【００５０】
まず、影響範囲決定処理モジュール３２により実行される影響範囲決定処理について説明する。図１５は、本実施形態における影響範囲決定処理を示すフローチャート、図１６は、影響範囲決定処理において実行される影響範囲走査処理を示すフローチャートである。
【００５１】
影響範囲決定処理モジュール３２は、処理の対象要素を要素ｎに代入する（ステップＤ１）。例えば、図１３に示すデータ構造では、アクティビティＣの変数「ｐａｔｈ」を要素ｎとして処理を開始する。次に、影響範囲決定処理モジュール３２は、距離ｄ＝１とし、距離限界距離ｄｍａｘに影響範囲距離を決定する（ステップＤ２）。
【００５２】
距離ｄ＝１とは、データ構造（木構造）において、親、子の関係に移動すると距離が１離れているものすることである。従って、親子関係にある変数間の距離は１となり、孫と祖父の関係にある変数間の距離は２となる。例えば、図１３に示すアクティビティＣでは、変数「Ｉｎｐｕｔ」と変数「ＵｓｅｒＩｎｆｏ」との距離は１、変数「Ｉｎｐｕｔ」と変数「ｎａｍｅ」との距離は２となる。なお、本実施形態では、例外として対象要素と同じ改装にある兄弟変数間の距離は１とする。例えば、アクティビティＣでは、変数「ｐａｔｈ」を対象要素とした場合、変数「ｐａｔｈ」と変数「ｃｏｌｏｒ」との距離は１とする。
【００５３】
図１７は、対象要素からの影響範囲を説明するための図である。図１７に示すように、対象要素（変数）から他の要素（変数）の距離を求める。
【００５４】
影響範囲距離とは、対象要素ｎ（変数「ｐａｔｈ」）を基準として影響範囲に含まれる他の要素（変数）を判別するためものである。ここでは、影響範囲距離を例えば３として設定する。すなわち、影響範囲決定処理モジュール３２は、対象要素の変数「ｐａｔｈ」から距離３までに存在する他の要素（変数）を影響範囲内の要素として判別する。影響範囲決定処理モジュール３２は、影響要素内に存在する要素（変数）と対象要素との距離を関連対象要素リストに記録する。図１８には、本実施形態における関連対象要素リストの一例を示している。
【００５５】
まず、影響範囲決定処理モジュール３２は、対象要素との兄弟要素についての処理を開始する前に、関連対象要素リストに記録する対象要素との距離ｄを対象要素と兄弟要素との距離１に設定する（ステップＤ３）。
【００５６】
次に、影響範囲決定処理モジュール３２は、ｉを初期値０、ｉ＜Ｐ（ｎ）の子要素数として設定し、ステップＤ４〜Ｄ１０までの処理を、ｉの値をインクリメントしながら繰り返して実行する。
【００５７】
なお、Ｐ（ｎ）は対象要素（要素ｎ）の親要素を示す。ここでは、Ｐ（ｎ）は、対象要素とする変数「ｐａｔｈ」の親要素「Ｄｏｃｕｍｅｎｔ」となる。
【００５８】
影響範囲決定処理モジュール３２は、親要素Ｐ（ｎ）のｉ番目の子要素Ｃ（Ｐ（ｎ））ｉを取得する（ステップＤ５）。影響範囲決定処理モジュール３２は、子要素Ｃ（Ｐ（ｎ））ｉが対象要素ｎである場合には（ステップＤ６、Ｙｅｓ）、関連対象要素リストへの記録対象とはせず、走査対象の要素を子要素Ｃ（Ｐ（ｎ））ｉとし、現在の距離を１に設定して、影響範囲走査処理モジュール３３により影響範囲走査処理を実施する（ステップＤ１１）。すなわち、影響範囲決定処理モジュール３２は、子要素Ｃ（Ｐ（ｎ））ｉの子要素へ向かって、影響範囲の要素を判別する処理を実行する。なお、データ構造が、子要素Ｃ（Ｐ（ｎ））ｉの子要素に、さらに子要素が存在する場合には、順次、再帰的に処理が実行される。影響範囲走査処理については後述する。
【００５９】
一方、子要素Ｃ（Ｐ（ｎ））ｉが対象要素ｎでない場合には（ステップＤ６、Ｎｏ）、影響範囲決定処理モジュール３２は、子要素Ｃ（Ｐ（ｎ））ｉを取得し（ステップＤ７）、この子要素Ｃ（Ｐ（ｎ））ｉを関連対象要素リストに追加記録すると共に、この要素に対応する対象要素からの距離を１として記録する（ステップＤ８）。
【００６０】
影響範囲決定処理モジュール３２は、走査対象の要素をＣ（Ｐ（ｎ））ｉ、現在の距離ｄを３として影響範囲走査処理モジュール３３により影響範囲走査処理を実施する（ステップＤ９）。すなわち、影響範囲決定処理モジュール３２は、子要素Ｃ（Ｐ（ｎ））ｉの子要素へ向かって、影響範囲の要素を判別する処理を実行する。なお、子要素Ｃ（Ｐ（ｎ））ｉの子要素は、対象要素ｎからの距離が３となるため、兄弟要素の距離を特例として１としているところを、関連対象要素リストに記録される距離ｄを本来の距離となるように３に設定する。なお、前述と同様にして、データ構造が、子要素Ｃ（Ｐ（ｎ））ｉの子要素に、さらに子要素が存在する場合には、順次、再帰的に処理する。
【００６１】
次に、影響範囲決定処理モジュール３２は、走査対象とする要素をＰ（ｎ）とし、現在の距離ｄを１として影響範囲走査処理モジュール３３により影響範囲走査処理を実施する（ステップＤ１２）。すなわち、影響範囲決定処理モジュール３２は、対象要素ｎの親要素Ｐ（ｎ）へ向かって、影響範囲の要素を判別する処理を実行する。なお、データ構造が、対象要素ｎの親要素Ｐ（ｎ）に、さらに親要素が存在する場合には、順次、再帰的に処理が実行される。
【００６２】
ここで、図１６に示す影響範囲決定処理について説明する。  
影響範囲走査処理モジュール３３は、走査対象要素を要素ｔに代入し（ステップＥ１）、対象要素ｎからの距離ｄが影響限界距離ｄｍａｘを超えているかを判別する。ここで、距離ｄが影響限界距離ｄｍａｘを超えていれば、対象要素ｎからの影響範囲を超えているので影響範囲走査処理を終了する（ステップＥ２、Ｎｏ）。
【００６３】
距離ｄが影響限界距離ｄｍａｘを超えていない場合（ステップＥ２、Ｎｏ）、影響範囲走査処理モジュール３３は、要素ｔを関連対象要素リストに追加記録すると共に、この対象に対応する対象要素からの距離をｄとして記録する（ステップＥ３）。
【００６４】
ここで、影響範囲走査処理モジュール３３は、次の階層の要素（変数）を対象とするため距離ｄを＋１する。影響範囲走査処理モジュール３３は、子要素へ向かって影響範囲の要素を判別する処理のために、ｊを初期値０、ｊ＜Ｃ（ｔ）の子要素数として設定し、ステップＥ５〜Ｅ８までの処理を、ｊの値をインクリメントしながら繰り返して実行する。
【００６５】
なお、要素Ｃ（ｔ）が関連対象要素リストに存在する場合には（ステップＥ６、Ｙｅｓ）、先に実行された親要素へ向かう要素についての影響範囲走査処理によって既に記録済みであるので、子要素Ｃ（ｔ）についての処理をしない。
【００６６】
要素Ｃ（ｔ）が関連対象要素リストに存在しない場合には（ステップＥ６、Ｎｏ）、影響範囲走査処理モジュール３３は、走査対象の要素をＣ（ｎ）ｊ、距離をｄとして影響範囲操作処理を実行する（ステップＥ７）。すなわち、捜査対象の要素の子要素内を再帰的に処理する。
【００６７】
一方、要素Ｃ（ｔ）が関連対象要素リストに存在する場合には（ステップＥ６、Ｙｅｓ）、影響範囲走査処理モジュール３３は、要素Ｐ（ｔ）が関連対象要素リストに存在するかを判別する。要素Ｐ（ｔ）が関連対象要素リストに存在する場合には（ステップＥ９、Ｙｅｓ）、先に実行された子要素へ向かう要素についての影響範囲走査処理により既に記録済みであるので、親要素Ｐ（ｔ）についての処理をしない。
【００６８】
要素Ｐ（ｔ）が関連対象要素リストに存在しない場合には（ステップＥ９、Ｎｏ）、影響範囲走査処理モジュール３３は、走査対象の要素をＰ（ｎ）、距離をｄとして影響範囲操作処理を実行する（ステップＥ１０）。すなわち、捜査対象の要素の子要素内を再帰的に処理する。
【００６９】
図１８は、影響範囲決定処理を実施することにより記録されるデータの一例を示す図である。  
図１８に示す関連対象要素リストは、図１２及び図１３に示すアクティビティＣのデータ構造における変数「ｐａｔｈ」を対象要素とした例を示している。図１８に示すように、変数「ｐａｔｈ」から影響範囲とする距離３までに存在する他の要素が関連対象要素リストに記録されると共に、それぞれの要素の対象要素との距離が記録されている。
【００７０】
次に、構成関連度評価処理モジュール３４による構成関連度評価処理について説明する。図１９は、本実施形態における構成関連度評価処理を示すフローチャート、図２０は、構成関連度評価処理において実行される入力候補要素リスト作成処理、及び距離判定処理を示すフローチャートである。構成関連度評価処理では、関連対象要素リストに登録された対象要素とする変数を含む影響範囲（グループ）について、他のアクティビティの関連付け候補とする要素（変数）を含むグループとの関連度を算出する。
【００７１】
構成関連度評価処理モジュール３４は、対象要素に対する関連付け候補とする要素（以下、入力候補要素）との関連度を算出するために、入力候補要素のそれぞれについて入力候補要素距離リストを作成する。構成関連度評価処理モジュール３４は、入力候補要素距離リストを作成していない入力候補要素が存在していれば（ステップＦ２、Ｙｅｓ）、以下の処理を実行する。
【００７２】
例えば、図１２及び図１３に示すアクティビティＣの対象要素「ｐａｔｈ」に対しては、図２２に示すように、例えばアクティビティＡの「ｐａｔｈ」と、アクティビティＢの変数「ｐａｔｈ」「ｔｅｍｐｐａｔｈ」が入力候補要素となる。構成関連度評価処理モジュール３４は、この３つの入力候補要素のそれぞれについて、入力候補要素距離リストを作成する。
【００７３】
まず、構成関連度評価処理モジュール３４は、入力候補要素距離リストを作成済みではない入力候補要素をＴとし、構成関連度評価処理モジュール３４により入力候補要素距離リスト作成処理を実行する（ステップＦ４）。
【００７４】
入力候補要素距離リスト作成処理モジュール３５は、図２０に示すフローチャートに従って、入力候補要素距離リスト作成処理を実行する。まず、入力候補要素距離リスト作成処理モジュール３５は、対象要素をｔ、入力候補要素からの距離ｄを０とする（ステップＧ１）。以下、ステップＧ２〜Ｇ６までの処理を繰り返して実行する。
【００７５】
入力候補要素距離リスト作成処理モジュール３５は、対象要素ｔと距離ｄを入力候補要素距離リストに追加する（ステップＧ３）。そして、対象要素ｔがルート要素ではない場合（ステップＧ４、Ｎｏ）、すなわち最上位階層に定義された要素（変数）でなければ、入力候補要素距離リスト作成処理モジュール３５は、対象要素ｔを上位階層の親要素Ｐ（ｔ）に代入して、入力候補要素からの距離ｄを１増やす（ステップＧ５）。同様にして、最上位階層に定義された要素（変数）に到達するまで（ステップＧ４、Ｙｅｓ）、対象要素ｔと入力候補要素からの距離ｄを入力候補要素距離リストに追加する（ステップＧ２〜Ｇ６）。
【００７６】
例えば、図２５（ａ）に示すアクティビティＡの変数「ｐａｔｈ」については、図２５（ｂ１）に示すように、変数「ｄｏｃｕｍｅｎｔ」と変数「ｏｕｔｐｕｔ」、それぞれの変数「ｐａｔｈ」からの距離が入力候補要素距離リストに記録される。
【００７７】
次に、構成関連度評価処理モジュール３４は、入力候補要素距離リストを作成していない関連対象要素リストの要素が存在していれば（ステップＦ６、Ｙｅｓ）、以下の処理を実行する。
【００７８】
例えば、図１２及び図１３に示すアクティビティＣの対象要素「ｐａｔｈ」に対しては、例えば図１８に示す関連対象要素リストに示すように、変数「ｃｏｌｏｒ」「ｓｉｚｅ」「ｄａｔａ」「Ｄｏｃｕｍｅｎｔ」「Ｉｎｐｕｔ」「ＵｓｅｒＩｎｆｏ」が関連対象要素リストの要素となる。構成関連度評価処理モジュール３４は、この６つの関連対象要素リストの要素のそれぞれについて、入力候補要素距離リストを作成する。
【００７９】
構成関連度評価処理モジュール３４は、入力候補要素距離リストを作成していない関連対象要素リストの１つの要素をＴｖとし（ステップＦ１０）、以下、ステップＦ８〜Ｆ１４までの処理を繰り返して実行する。
【００８０】
入力候補要素距離リスト作成処理モジュール３５は、関連対象要素リストの要素Ｔｖに対する入力候補要素のうち入力候補要素距離リストを作成していない要素が存在するか判別する。例えば、関連対象要素リストの要素Ｔｖを変数「ｃｏｌｏｒ」とした場合、図２３に示すように、アクティビティＡについては、関連対象要素リストの要素に対する入力候補要素「ｃｏｌｏｒ」が存在するものとして判別される。なお、関連対象要素リストの要素Ｔｖに対する入力候補要素は、例えば、関連付け処理のステップＢ３において、変数に設定されたエイリアスをもとにして特定された関連付け候補から判別することができる。
【００８１】
入力候補要素距離リストを作成していない入力候補要素が存在する場合（ステップＦ９、Ｙｅｓ）、入力候補要素距離リスト作成処理モジュール３５は、この入力候補要素をＴｉとし（ステップＦ１０）、入力候補要素距離リスト作成処理を入力候補要素Ｔｉに対して実施する（ステップＦ１１）。
【００８２】
例えば、図２５（ａ）に示すアクティビティＡの変数「ｃｏｌｏｒ」については、図２５（ｂ２）に示すように、変数「ｄａｔａ」「ｐｒｏｃｅｓｓ」「ｏｕｔｐｕｔ」と、それぞれの変数「ｃｏｌｏｒ」からの距離が入力候補要素距離リストに記録される。
【００８３】
なお、関連対象要素リストの要素Ｔｖ（変数「ｃｏｌｏｒ」）に対する入力候補要素が、例えば図２４に示すように、複数、存在する可能性がある。こうした場合には、入力候補要素距離リスト作成処理モジュール３５は、ループ処理を実行して、それぞれの入力候補要素について処理を実行し、入力候補要素距離リストに追加される要素の対象要素との距離が一番短い入力候補要素を採用する。すなわち、関連性を評価する際に最も影響が大きくなる入力候補要素を採用する。
【００８４】
次に、入力候補要素距離リスト作成処理モジュール３５は、入力候補要素Ｔと入力候補要素Ｔｉとの距離ｄを、距離判定処理によって計測する（ステップＦ１２）。
【００８５】
図２１は、距離判定処理を示すフローチャートである。入力候補要素距離リスト作成処理モジュール３５は、対象要素Ｔ，Ｔｉが兄弟要素であるか判別する。兄弟要素である場合には（ステップＨ１、Ｙｅｓ）、距離を１とする（ステップＨ４）。例えば、図２５における変数「ｐａｔｈ」と変数「ｄａｔａ」とは兄弟要素であるので距離は１とする。
【００８６】
一方、対象要素Ｔ，Ｔｉが兄弟要素でない場合（ステップＨ１、Ｎｏ）、入力候補要素距離リスト作成処理モジュール３５は、対象要素Ｔ，Ｔｉのそれぞれ入力候補要素距離リストを取得する（ステップＨ２）。そして、対象要素Ｔ，Ｔｉの入力候補要素距離リストで一致する要素の距離の和を計算する（ステップＨ３）。
【００８７】
例えば、図２５における変数「ｐａｔｈ」と変数「ｃｏｌｏｒ」の場合には、図２５（ｂ１）（ｂ２）に示す入力候補要素距離リストをもとに、一致する要素「ｏｕｔｐｕｔ」の距離の和、すなわち２＋３＝５を計算して、変数「ｐａｔｈ」と変数「ｃｏｌｏｒ」との距離とする。  
なお、入力候補要素Ｔとの距離の算出は、データ構造中の最下位の変数のみを対象としている。
【００８８】
構成関連度評価処理モジュール３４は、入力候補要素Ｔと入力候補要素Ｔｉとの距離ｄが求まると、入力候補要素Ｔｉについて関連対象要素に対する関連度を計算する（ステップＦ１３）。この関連度は、入力候補要素距離リストに記録された距離が小さいほど関連度が高くなるように求められる。
【００８９】
例えば、入力候補要素距離リストに記録された対象要素との距離と、入力候補要素との距離のそれぞれを、例えば予め設定される評価基準値から減算し、その２つの値を乗算することにより関連度とする。評価基準値は、例えば入力候補要素距離リストに記録される距離の上限値とする。
【００９０】
以下、構成関連度評価処理モジュール３４は、入力候補要素距離リストを作成済みではない関連対象要素リスト（対象要素の影響範囲にある要素）について、同様の処理を繰り返して実行する（ステップＦ５〜Ｆ１５）。
【００９１】
この結果、図２６に示すように、アクティビティＣの対象要素「ｐａｔｈ」については、対象要素「ｐａｔｈ」の影響範囲にある関連対象要素のそれぞれに対する入力候補について、アクティビティＡの入力候補要素「ｐａｔｈ」との距離が求められる。そして、図２７に示すように、関連対象要素のそれぞれについて、関連度が求められて、入力候補要素距離リストに記録される。
【００９２】
例えば、評価基準値を５とすると、関連対象要素とする変数「ｄａｔａ」については、  
（５−１）×（５−１）＝１６として関連度が算出される。
【００９３】
構成関連度評価処理モジュール３４は、入力候補要素距離リストに記録された各関連対象要素の関連度の合計を計算する（ステップＦ１６）。図２７に示す入力候補要素距離リストの場合には、関連度の合計が１６となる。この関連度合計１６が、アクティビティＣの対象要素「ｐａｔｈ」に対する、アクティビティＡの入力候補要素「ｐａｔｈ」の評価値となる。
【００９４】
構成関連度評価処理モジュール３４は、同様にして、アクティビティＣの対象要素「ｐａｔｈ」に対する他の入力候補要素、すなわちアクティビティＢの変数「ｐａｔｈ」「ｔｅｍｐｐａｔｈ」について入力候補要素距離リストを作成して、それぞれの関連度合計を計算する（ステップＦ１〜Ｆ１７）。以上の処理により構成関連度判定処理を完了する。
【００９５】
図２８は、アクティビティＣの対象要素「ｐａｔｈ」に対するアクティビティＢの入力候補要素とする変数「ｐａｔｈ」との関係を示す図である。図２８に示すように、アクティビティＢの変数「ｐａｔｈ」については、アクティビティＣの対象要素「ｐａｔｈ」の関連対象要素に対する入力候補要素として「ｃｏｌｏｒ」「ｓｉｚｅ」「ｄａｔａ」が抽出され、図２９に示すように、それぞれアクティビティＢの入力候補要素「ｐａｔｈ」との距離３，３，１が求められている。そして、各関連対象要素の関連度が計算され、さらに関連度合計が３２として算出されている。この関連度合計３２が、アクティビティＣの対象要素「ｐａｔｈ」に対する、アクティビティＢの入力候補要素「ｐａｔｈ」の評価値となる。
【００９６】
図３０は、アクティビティＣの対象要素「ｐａｔｈ」に対するアクティビティＢの入力候補要素とする変数「ｔｅｍｐｐａｔｈ」との関係を示す図である。図３０に示すように、アクティビティＢの変数「ｔｅｍｐｐａｔｈ」については、アクティビティＣの対象要素「ｐａｔｈ」の関連対象要素に対する入力候補要素として「ｃｏｌｏｒ」「ｓｉｚｅ」「ｄａｔａ」が抽出され、図３１に示すように、それぞれアクティビティＢの入力候補要素「ｐａｔｈ」との距離４，４，２が求められている。そして、各関連対象要素の関連度が計算され、さらに関連度合計が２０として算出されている。この関連度合計２０が、アクティビティＣの対象要素「ｐａｔｈ」に対する、アクティビティＢの入力候補要素「ｔｅｍｐｐａｔｈ」の評価値となる。
【００９７】
こうして、構成関連度判定処理により関連付けの対象要素（変数）に対する入力候補とする要素の評価値が求められると、関連付け処理モジュール３１は、この処理結果に基づいて、対象要素に変数の関連付け（値の代入など）を定義する記述を候補対象ワークフローデータに追加する（ステップＢ５）。例えば、関連付け処理モジュール３１は、評価値が最も高い入力候補としていた変数（データ）を選択し、この変数を対象候補としていた変数の入力とするように、ワークフローデータを変更する。
【００９８】
なお、構成関連度判定処理の処理結果に基づいて、最も評価値が高い変数と対象要素の変数とを一意に関連付けるだけでなく、構成関連度判定処理の処理結果をユーザに提示して、最終的に対象要素と関連付ける入力候補を選択させるようにしても良い。例えば、関連付け処理モジュール３１は、構成関連度判定処理により得られた評価値が上位の入力候補要素（変数）をディスプレイ１８に表示させるなどしてユーザに提示する。関連付け処理モジュール３１は、ユーザの入力デバイス１６に対する操作により、ディスプレイ１８に表示された入力候補要素（変数）から最終的に対象要素と関連付ける入力候補を選択する指示を入力する。なお、ユーザに提示する入力候補は、選択を容易にするために評価値が上位の決められた数のみに制限したり、あるいは多くの選択肢をユーザに提供するために評価値（関連度）が予め決められた値以上のものを全て提示するようにしても良い。関連付け処理モジュール３１は、ユーザにより選択された変数と対象要素の変数とを関連付けるように、ワークフローデータを変更する。
【００９９】
このようにして、本実施形態におけるワークフロー管理装置では、データの出力側と入力側のアクティビティの変数の関連付けをする場合、個々の変数（データ）間の関連度だけでなく、評価対象とする変数を含むグループ間で関連度を評価するので、多数の関連づけの候補が存在していたとしても、ユーザに対して多大な負担を与えることなく、精度良く正しい変数を抽出して関連付けすることが可能となる。
【０１００】
なお、前述した説明では、アクティビティＣの変数と関連付ける変数の候補を特定するために、アクティビティＡ，Ｂを同列に扱っているが、ワークフロー中の各アクティビティの位置関係（処理の流れ）を考慮して、優先度を設定するようにして良い。すなわち、ワークフロー中のアクティビティは、近くに配置されたアクティビティ間の方が、関連がある可能性が高い。具体的には、図１１に示すワークフローのアクティビティＣに対しては、アクティビティＡよりも直近に配置されたアクティビティＢとの方が関連がある場合が多い。従って、関連付けの候補を評価する場合に、アクティビティＡの変数（グループ）よりも、アクティビティＣに近いアクティビティＢの変数（グループ）の方が関連度が高くなるような計算により評価値（関連度）を求めることにより、アクティビティの位置関係に応じた評価が可能となる。
【０１０１】
また、前述した説明では、１つの対象候補について個々に入力候補を評価しているが、他の先に関連付けが完了している変数（要素）が同じアクティビティ内に存在する場合に、この関連付け済みの変数を、入力候補要素の評価に利用しても良い。例えば、アクティビティＣの変数「ｐａｔｈ」の前に他の変数がアクティビティＡの変数と関連付けされていた場合には、関連付けされた変数がないアクティビティＢよりもアクティビティＡの入力候補の方が関連度（評価値）が高くなるようにする。
【０１０２】
また、前述した構成関連度判定処理では、データ構造中の最下位の変数のみを対象として関連度を評価しているが、最下位の変数についての関連度だけでは評価できない場合、例えば評価値が同じ変数が複数存在する、評価値が近い変数が多数存在する、高い評価値（関連度）をもつ変数が存在しないように場合には、評価対象とする範囲を拡張するようにしても良い。例えば、対象要素の上位階層の要素を含めて関連度を求めて評価値とする。
【０１０３】
なお、前述した説明では、エイリアス設定処理により変数（データ）に対して設定されたエイリアスをもとにして、関係付けの対象とする変数の候補を選択しているが、他の方法を用いることも可能である。例えば、ワークフローデータにおいて定義されたデータの名称をもとにして、関係付けの対象とする変数の候補を選択することが可能である。この場合、対象とする変数（データ）の名称が例えば「ｐａｔｈ」であった場合、関連性の評価対象とするアクティビティに含まれる「ｐａｔｈ」と同一の名称が付された変数（データ）を、関係付けの対象とする変数の候補とする。なお、「ｐａｔｈ」と同一の名称が付された変数（データ）だけでなく、「ｐａｔｈ」を含む変数、例えば「ｔｅｍｐｐａｔｈ」を関係付けの対象とする変数の候補として含めることも可能である。さらに、完全に一致した部分を含まなくても、類似した名称が付された変数を候補とするようにしても良い。
【０１０４】
また、前述した説明では、ワークフロー管理装置１をパーソナルコンピュータにより実現するとしているが、前述したワークフロー管理装置１による機能をネットワークサービスとして提供するサーバ装置として実現することも可能である。ユーザは、例えばパーソナルコンピュータからネットワーク（インターネット等を含む）を介してサーバ装置にアクセスして、処理対象とするワークフローデータに対する処理結果を受信して、データの関連付け等の作業を実施することができる。例えば、ユーザは、サーバ装置から評価対象とするデータを含むグループについての評価結果を受信して、この評価結果をもとにして関連付けるデータの選択作業等をパーソナルコンピュータにおいて実行する。
【０１０５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１０６】
また、前述した実施の形態において記載した処理は、コンピュータに実行させることのできるプログラムとして、例えば磁気ディスク（フレキシブルディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリなどの記録媒体に書き込んで各種装置に提供することができる。また、通信媒体により伝送して各種装置に提供することも可能である。コンピュータは、記録媒体に記録されたプログラムを読み込み、または通信媒体を介してプログラムを受信し、このプログラムによって動作が制御されることにより、上述した処理を実行する。
【符号の説明】
【０１０７】
１…ワークフロー表示支援装置、１０…ＣＰＵ、１１…ＲＯＭ、１２…ＲＡＭ、１３…ＨＤＤ、１４…ネットワークインターフェース、１５…記録媒体インターフェース、１６…入力デバイス、１７…入力コントローラ、１８…ディスプレイ、１９…表示コントローラ、２０…プログラム記憶部、２１…ブラウザ、２２…ワークフロー管理プログラム、２２ａ…関連付け処理プログラム、２２ｂ…影響範囲決定処理プログラム、２２ｃ…構成関連度評価処理プログラム。
【図１】
0005202598.tif 000002
【図２】
0005202598.tif 000003
【図３】
0005202598.tif 000004
【図４】
0005202598.tif 000005
【図５】
0005202598.tif 000006
【図６】
0005202598.tif 000007
【図７】
0005202598.tif 000008
【図８】
0005202598.tif 000009
【図９】
0005202598.tif 000010
【図１０】
0005202598.tif 000011
【図１１】
0005202598.tif 000012
【図１２】
0005202598.tif 000013
【図１３】
0005202598.tif 000014
【図１４】
0005202598.tif 000015
【図１５】
0005202598.tif 000016
【図１６】
0005202598.tif 000017
【図１７】
0005202598.tif 000018
【図１８】
0005202598.tif 000019
【図１９】
0005202598.tif 000020
【図２０】
0005202598.tif 000021
【図２１】
0005202598.tif 000022
【図２２】
0005202598.tif 000023
【図２３】
0005202598.tif 000024
【図２４】
0005202598.tif 000025
【図２５】
0005202598.tif 000026
【図２６】
0005202598.tif 000027
【図２７】
0005202598.tif 000028
【図２８】
0005202598.tif 000029
【図２９】
0005202598.tif 000030
【図３０】
0005202598.tif 000031
【図３１】
0005202598.tif 000032