(57)【特許請求の範囲】
【請求項１】
フロー定義モデルにより複数種類の処理コンポーネントを組み合わせてシステムを構築する開発実行環境において、前記フロー定義モデルによって定義される、処理と当該処理の対象データとを含む要素ごとに、当該処理に用いられる処理エンジンの処理エンジン型もしくは当該処理の対象データのデータ伝送型を選択し、
前記処理エンジン型を選択された前記処理ごとに、もしくは、前記データ伝送型を選択された前記対象データごとに、各処理エンジン型と当該処理エンジン型用のモデル変換エンジンとを対応付ける第１管理テーブルと、各モデル変換エンジンが前記フロー定義モデルを定義ファイルに変換する際に用いるモデル変換ルールを処理エンジン型ごとに管理する第２管理テーブルとを参照して、当該処理もしくは当該対象データに応じたモデル変換エンジンおよびモデル変換ルールを選択し、
選択されたモデル変換エンジンおよびモデル変換ルールを用いて前記フロー定義モデルから前記定義ファイルを生成する、
処理をコンピュータに実行させる、定義ファイル生成プログラム。
【請求項２】
新規の処理エンジン型と当該新規の処理エンジン型用の新規のモデル変換エンジンとの対応関係を前記第１管理テーブルに追加登録するとともに、当該新規のモデル変換エンジンが前記フロー定義モデルを前記定義ファイルに変換する際に用いるモデル変換ルールを前記第２管理テーブルに追加登録することにより、前記新規の処理エンジン型を動的に追加する、
処理を前記コンピュータに実行させる、請求項１に記載の定義ファイル生成プログラム。
【請求項３】
前記第２管理テーブルは、各処理エンジン型での各処理の種類についての第１モデル変換ルールを前記モデル変換ルールとして管理し、
前記処理エンジン型を選択された前記処理ごとに、当該処理エンジン型に対応するモデル変換エンジンを前記第１管理テーブルから選択するとともに、当該処理の種類および当該処理エンジン型に対応するモデル変換ルールを前記第１モデル変換ルールから選択する、
処理を前記コンピュータに実行させる、請求項１または請求項２に記載の定義ファイル生成プログラム。
【請求項４】
前記第２管理テーブルは、各処理エンジン型での各データ伝送型におけるデータ伝送処理についての第２モデル変換ルールを前記モデル変換ルールとして管理し、
前記データ伝送型を選択された前記対象データごとに、当該対象データの前後におけるデータ伝送型が同一であるか否かを判断し、当該対象データの前後におけるデータ伝送型が同一である場合、当該対象データ前後の処理のいずれか一方の処理エンジン型に対応するモデル変換エンジンを前記第１管理テーブルから選択するとともに、当該いずれか一方の処理エンジン型でのデータ伝送型についてのデータ伝送処理のモデル変換ルールを前記第２モデル変換ルールから選択する、
処理を前記コンピュータに実行させる、請求項１〜請求項３のいずれか一項に記載の定義ファイル生成プログラム。
【請求項５】
前記第２管理テーブルは、各処理エンジン型での各データ伝送型から異なるデータ伝送型へのデータ変換処理についての第３モデル変換ルールと、各処理エンジン型での実行開始処理についての第４モデル変換ルールと、を前記モデル変換ルールとして管理し、
前記データ伝送型を選択された前記対象データごとに、当該対象データの前後におけるデータ伝送型が同一であるか否かを判断し、
当該対象データの前後におけるデータ伝送型が同一でない場合、
当該対象データの前段処理の処理エンジン型に対応するモデル変換エンジンを前記第１管理テーブルから選択するとともに、前記前段処理の処理エンジン型での前段データ伝送型と後段データ伝送型との組に対応するデータ変換処理のモデル変換ルールを前記第３モデル変換ルールから選択し、
当該対象データの後段処理の処理エンジン型に対応するモデル変換エンジンを前記第１管理テーブルから選択するとともに、前記後段処理の処理エンジン型での前記後段処理を所定タイミングで実行する実行開始処理のモデル変換ルールを前記第４モデル変換ルールから選択する、
処理を前記コンピュータに実行させる、請求項１〜請求項４のいずれか一項に記載の定義ファイル生成プログラム。
【請求項６】
相互に前後関係を有する複数の前記処理のそれぞれについて、前記処理エンジン型ごとに、当該処理よりも前の各処理に関して選択された処理エンジン型の１以上の組合せの中から、当該処理エンジン型の処理エンジンが最後段に追加された場合のコストが最小となる組合せを選択することで、各処理で用いられる処理エンジン型と各処理の対象データのデータ伝送型とを選択する、
処理を前記コンピュータに実行させる、請求項１〜請求項５のいずれか一項に記載の定義ファイル生成プログラム。
【請求項７】
前記コストは、前記組合せに属する各処理エンジン型の処理に要される処理コストと、前記組合せに属する処理エンジン型のうち前記前後関係において隣接する処理に係る処理エンジン型の接続に要される接続コストとを含む、請求項６に記載の定義ファイル生成プログラム。
【請求項８】
フロー定義モデルにより複数種類の処理コンポーネントを組み合わせてシステムを構築する開発実行環境において、前記フロー定義モデルによって定義される、処理と当該処理の対象データとを含む要素ごとに、当該処理に用いられる処理エンジンの処理エンジン型もしくは当該処理の対象データのデータ伝送型を選択し、
前記処理エンジン型を選択された前記処理ごとに、もしくは、前記データ伝送型を選択された前記対象データごとに、各処理エンジン型と当該処理エンジン型用のモデル変換エンジンとを対応付ける第１管理テーブルと、各モデル変換エンジンが前記フロー定義モデルを定義ファイルに変換する際に用いるモデル変換ルールを管理する第２管理テーブルとを参照して、当該処理もしくは当該対象データに応じたモデル変換エンジンおよびモデル変換ルールを選択し、
選択されたモデル変換エンジンおよびモデル変換ルールを用いて前記フロー定義モデルから前記定義ファイルを生成する、定義ファイル生成方法。
【請求項９】
処理部と記憶部とを有し、
前記処理部は、
フロー定義モデルにより複数種類の処理コンポーネントを組み合わせてシステムを構築する開発実行環境において、前記フロー定義モデルによって定義される、処理と当該処理の対象データとを含む要素ごとに、当該処理に用いられる処理エンジンの処理エンジン型もしくは当該処理の対象データのデータ伝送型を選択し、前記フロー定義モデルによって定義される処理ごとに、当該処理に用いられる処理エンジンの処理エンジン型と当該処理の対象データのデータ伝送型とを選択し、
前記処理エンジン型を選択された前記処理ごとに、もしくは、前記データ伝送型を選択された前記対象データごとに、各処理エンジン型と当該処理エンジン型用のモデル変換エンジンとを対応付ける第１管理テーブルと、各モデル変換エンジンが前記フロー定義モデルを定義ファイルに変換する際に用いるモデル変換ルールを管理する第２管理テーブルとを参照して、当該処理もしくは当該対象データに応じたモデル変換エンジンおよびモデル変換ルールを選択し、
選択されたモデル変換エンジンおよびモデル変換ルールを用いて前記フロー定義モデルから前記定義ファイルを生成するとともに、
前記記憶部は、前記第１管理テーブルおよび前記第２管理テーブルを保存する、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、定義ファイル生成プログラム、定義ファイル生成方法、および情報処理装置に関する。
【背景技術】
【０００２】
複数種類の処理コンポーネントを組み合わせてシステム（ソフトウェア，プログラム）を構築する開発実行環境において、ユーザは、例えば、エディタを用いてデータフローダイアグラム（ＤＦＤ）によりフロー定義モデルを作成する。そして、作成されたフロー定義モデルに基づき処理コンポーネントが決定され、前記システムが構築される。
【０００３】
フロー定義モデルは、データをどのような順番でどのように処理するかを定義するフローのモデルをいう。フロー定義モデルは、ユーザがエディタを用いて「処理（プロセス）」と「データ」とを配置することによって作成される。また、処理コンポーネントは、或る「処理」の処理型に対応する処理エンジン型の処理エンジンによって「データ」の「処理」を行なう実装を内包する。
【０００４】
ここで、処理エンジンとは、アプリケーション実行基盤，ソフトウェアプラットフォーム，アプリケーションサーバ，ミドルウェアといったソフトウェアの基盤となる部分をいう。また、処理型としては、例えばバッチ処理，リアルタイム処理などが挙げられる。バッチ処理は、例えば、データベースに蓄積された大量のデータの分類あるいは分析を一括して実行する処理である。リアルタイム処理は、例えば、何らかのイベント発生に応じてキューイングデータに対し逐次実行される処理である。
【０００５】
バッチ処理とリアルタイム処理とでは、利用可能なデータの性質や、処理形態に違いがあるため、当該違いに応じて使用するＯＳ（Operating System）やミドルウェアの機能にも違いがある。このように、バッチ処理とリアルタイム処理とでは、処理を実行する環境や要求される性能等の様々な違いがあり、各特性に応じたパフォーマンスが最大限有効になるように、別々に処理コンポーネントが開発されて別々の実装として発展している。
【０００６】
処理コンポーネントに内包される処理エンジンとしては、近年、各処理型（バッチ処理，リアルタイム処理など）について様々な種類（処理エンジン型）の処理エンジンを利用することが可能であり、その種類は、今後、ますます増加するものと考えられる。なお、以下では、処理エンジンの種類のことを処理エンジン型という場合がある。
【０００７】
また、複数種類の処理エンジンにおいて同じ処理型に対応する処理エンジンでも、処理内容に依って得手不得手があるため、或る処理エンジンの不得手な部分を補うべく複数種類の処理エンジンを組み合わせて使用することが考えられる。このとき、フロー定義モデル中の各処理で使用する処理エンジンの組合せによって、各処理エンジンの処理に要する処理コスト（実行時間，費用等）や、処理エンジン間で受け渡すデータの伝送コストや、当該データの形式，蓄積方式の変換コストを合算した総コストが異なってくる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−１０６８６６号公報
【特許文献２】特開２００２−０４９４９３号公報
【特許文献３】特開２０１２−２４７９５５号公報
【特許文献４】米国特許出願公開第２００６／０１３０００８号明細書
【特許文献５】米国特許出願公開第２００６／０１３０００９号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来技術（特許文献１〜５参照）では、新たな処理エンジン型を動的に追加し、その処理エンジン型に対応する変換ルールを選択して用いる仕組みは用意されていない。このため、新たな処理エンジン型を追加して、各処理で使用する処理エンジンの組合せを増加させることができない。
【００１０】
特に、特許文献３では、各処理型について１種類の処理エンジン型を扱うことを想定しており、新たな処理エンジン型を動的に追加し、その処理エンジン型に対応する変換ルールを選択して用いる仕組みについて何ら開示されていない。
【００１１】
また、特許文献４，５では、モデル変換エンジンを用いることで、或る一つの処理エンジン型に対応する定義ファイル（ＰＳＭ：Platform Specific Model）を生成することが可能である。しかし、動的に追加される処理エンジン型に対応する定義ファイルを生成することは、以下の二つの理由により困難である。
【００１２】
一つ目の理由は、動的に追加される処理エンジン型についての変換ルールが既存の処理エンジン型の変換ルールと干渉してしまい、一つのモデル変換エンジンで対応できない場合があることである。二つ目の理由は、互いに異なる処理エンジン型で実行される二つの処理の間のデータ変換処理についての定義ファイルを生成する変換ルールを記述することができないことである。
【００１３】
一つの側面で、本件は、動的に追加される新たな処理エンジン型に対応する定義ファイルを生成できるようにすることを目的とする。
【課題を解決するための手段】
【００１４】
本件の定義ファイル生成プログラムは、コンピュータに、以下の処理（１）〜（３）を実行させる。
【００１５】
（１）フロー定義モデルにより複数種類の処理コンポーネントを組み合わせてシステムを構築する開発実行環境において、前記フロー定義モデルによって定義される処理ごとに、当該処理に用いられる処理エンジンの処理エンジン型と当該処理の対象データのデータ伝送型とを選択する処理。
【００１６】
（２）前記処理エンジン型を選択された前記処理ごとに、もしくは、前記データ伝送型を選択された前記対象データごとに、各処理エンジン型と当該処理エンジン型用のモデル変換エンジンとを対応付ける第１管理テーブルと、各モデル変換エンジンが前記フロー定義モデルを定義ファイルに変換する際に用いるモデル変換ルールを処理エンジン型ごとに管理する第２管理テーブルとを参照して、当該処理もしくは当該対象データに応じたモデル変換エンジンおよびモデル変換ルールを選択する処理。
【００１７】
（３）選択されたモデル変換エンジンおよびモデル変換ルールを用いて前記フロー定義モデルから前記定義ファイルを生成する処理。
【発明の効果】
【００１８】
一実施形態によれば、動的に追加される新たな処理エンジン型に対応する定義ファイルを生成することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態としての定義ファイル生成機能を有する情報処理装置の機能構成の一例を示すブロック図である。
【図２】本発明の一実施形態としての定義ファイル生成機能を実現する情報処理装置のハードウェア構成の一例を示すブロック図である。
【図３】本実施形態の定義ファイル生成部の動作を説明するフローチャートである。
【図４】本実施形態の定義ファイル生成部の動作を説明するフローチャートである。
【図５】フロー定義モデル（ＤＦＤ）の一例を示す図である。
【図６】図５に示すフロー定義モデル中の処理とその処理の種類との対応関係を示す図である。
【図７】処理エンジン型と処理型との対応表の一例を示す図である。
【図８】図５に示すフロー定義モデルについて、本実施形態の処理エンジン型／データ伝送型選択部によって得られる選択結果の一例を示す図である。
【図９】（Ａ）は図８に示す選択結果に基づく処理と処理エンジン型との対応表を示す図、（Ｂ）は図８に示す選択結果に基づくデータとデータ伝送型との対応表を示す図、（Ｃ）はユーザ等によって入力設定される実行タイミング管理表の一例を示す図である。
【図１０】本実施形態におけるモデル変換エンジン管理表（第１管理テーブル）の一例を示す図である。
【図１１】（Ａ）〜（Ｄ）は本実施形態におけるモデル変換ルール管理表（第２管理テーブル）の一例を示すもので、（Ａ）は各処理エンジン型での各処理の種類についてのモデル変換ルール（第１モデル変換ルール）を示す図、（Ｂ）は各処理エンジン型での実行開始処理についてのモデル変換ルール（第４モデル変換ルール）を示す図、（Ｃ）は各処理エンジン型での各データ伝送型におけるデータ伝送処理についてのモデル変換ルール（第２モデル変換ルール）を示す図、（Ｄ）は各処理エンジン型での各データ伝送型から異なるデータ伝送型へのデータ変換処理についてのモデル変換ルール（第３モデル変換ルール）を示す図である。
【図１２】（Ａ）および（Ｂ）は処理ｐ１にモデル変換ルールＴ７を適用した例を示すもので、（Ａ）はモデル変換ルールＴ７を示す図、（Ｂ）は処理エンジン型Ｐ３の処理ｐ１に対応するDataflow.compositeのコード片を示す図である。
【図１３】（Ａ）および（Ｂ）はデータｄ１にモデル変換ルールＴ２４を適用した例を示すもので、（Ａ）はモデル変換ルールＴ２４を示す図、（Ｂ）は処理エンジン型Ｐ３のデータｄ１に対応するDataflow.compositeのコード片を示す図である。
【図１４】（Ａ）および（Ｂ）は処理ｐ２にモデル変換ルールＴ８を適用した例を示すもので、（Ａ）はモデル変換ルールＴ８を示す図、（Ｂ）は処理エンジン型Ｐ３の処理ｐ２に対応するDataflow.compositeのコード片を示す図である。
【図１５】データｄ４についての定義ファイル生成の概要を説明する図である。
【図１６】（Ａ）および（Ｂ）はデータｄ４にモデル変換ルールＴ３３を適用した例を示すもので、（Ａ）はモデル変換ルールＴ３３を示す図、（Ｂ）は処理エンジン型Ｐ３のデータｄ４に対応するDataflow.compositeのコード片を示す図である。
【図１７】（Ａ）〜（Ｃ）は処理ｐ４にモデル変換ルールＴ１８を適用した例を示すもので、（Ａ）はモデル変換ルールＴ１８を示す図、（Ｂ）は処理エンジン型Ｐ１の処理ｐ４に対応する/etc/crontabのコード片を示す図、（Ｃ）は処理エンジン型Ｐ１の処理ｐ４に対応する/usr/local/process/start_p4.shのコード全体を示す図である。
【図１８】（Ａ）および（Ｂ）は処理ｐ４にモデル変換ルールＴ３を適用した例を示すもので、（Ａ）はモデル変換ルールＴ３を示す図、（Ｂ）は処理エンジン型Ｐ１の処理ｐ２に対応するquery_23456.qlのコード片を示す図である。
【図１９】Dataflow.compositeについて生成された定義ファイルを示す図である。
【図２０】（Ａ）は/etc/crontabについて生成された定義ファイルを示す図、（Ｂ）は/usr/local/process/start_p4.shについて生成された定義ファイルを示す図、（Ｃ）はquery_23456.qlについて生成された定義ファイルを示す図である。
【図２１】図１０に示すモデル変換エンジン管理表（第１管理テーブル）に新規のモデル変換エンジンを追加した例を示す図である。
【図２２】（Ａ）〜（Ｄ）は、それぞれ、図２１に示す新規のモデル変換エンジンの追加に伴う、図１１（Ａ）〜図１１（Ｄ）に示すモデル変換ルールに対する追加内容を示す図である。
【図２３】図２１および図２２に示す追加処理を行なった場合に、図５に示すフロー定義モデルについて、本実施形態の処理エンジン型／データ伝送型選択部によって得られる選択結果を示す図である。
【図２４】（Ａ）〜（Ｃ）は図２１および図２２に示す追加を行なった場合の対応表を示すもので、（Ａ）は図２３に示す選択結果に基づく処理と処理エンジン型との対応表を示す図、（Ｂ）は図２３に示す選択結果に基づくデータとデータ伝送型との対応表を示す図、（Ｃ）はユーザ等によって入力設定される実行タイミング管理表の一例を示す図である。
【図２５】本実施形態の処理エンジン型／データ伝送型選択部の機能構成の一例を示すブロック図である。
【図２６】本実施形態の処理エンジン型／データ伝送型選択部の動作を説明するフローチャートである。
【図２７】作業用テーブルの構成例を示す図である。
【図２８】複数の最後段処理を含むフロー定義モデル（ＤＦＤ）の一例を示す図である。
【図２９】各処理までの処理エンジン型の組合せの選択処理の処理手順の一例を説明するフローチャートである。
【図３０】処理コスト記憶部の構成例を示す図である。
【図３１】ユーザ要求記憶部の構成例を示す図である。
【図３２】処理ｐ１に関する作業用レコードの第１の例を示す図である。
【図３３】処理ｐ１に関する作業用レコードの第２の例を示す図である。
【図３４】接続コスト記憶部の構成例を示す図である。
【図３５】処理ｐ２に関する作業用レコードの例を示す図である。
【図３６】図３０，図３１および図３４に示す構成例に基づき選択部によって得られる選択結果の一例を示す図である。
【発明を実施するための形態】
【００２０】
以下に、図面を参照し、本願の開示する定義ファイル生成プログラム、定義ファイル生成方法、および情報処理装置の実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【００２１】
〔１〕定義ファイル生成機能を実現する情報処理装置のハードウェア構成
まず、図２を参照しながら、本実施形態の定義ファイル生成機能を実現する情報処理装置（コンピュータ）１０のハードウェア構成について説明する。図２は、当該ハードウェア構成の一例を示すブロック図である。
【００２２】
コンピュータ１０は、プロセッサ１１，ＲＡＭ（Random Access Memory）１２，ＨＤＤ（Hard Disk Drive）１３，グラフィック処理装置１４，入力インタフェース１５，光学ドライブ装置１６，機器接続インタフェース１７およびネットワークインタフェース１８を構成要素として有する。これらの構成要素１１〜１８は、バス１９を介して相互に通信可能に構成される。
【００２３】
プロセッサ（処理部）１１は、コンピュータ１０全体を制御する。プロセッサ１１は、マルチプロセッサであってもよい。プロセッサ１１は、例えばＣＰＵ（Central Processing Unit），ＭＰＵ（Micro Processing Unit），ＤＳＰ（Digital Signal Processor），ＡＳＩＣ（Application Specific Integrated Circuit），ＰＬＤ（Programmable Logic Device），ＦＰＧＡ（Field Programmable Gate Array）のいずれか一つであってもよい。また、プロセッサ１１は、ＣＰＵ，ＭＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００２４】
ＲＡＭ（記憶部）１２は、コンピュータ１０の主記憶装置として使用される。ＲＡＭ１２には、プロセッサ１１に実行させるＯＳプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１２には、プロセッサ１１による処理に必要な各種データが格納される。アプリケーションプログラムには、コンピュータ１０によって本実施形態の定義ファイル生成機能を実現するためにプロセッサ１１によって実行される定義ファイル生成プログラムが含まれてもよい。
【００２５】
ＨＤＤ（記憶部）１３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行なう。ＨＤＤ１３は、コンピュータ１０の補助記憶装置として使用される。ＨＤＤ１３には、ＯＳプログラム，アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリ等の半導体記憶装置（ＳＳＤ：Solid State Drive）を使用することもできる。
【００２６】
グラフィック処理装置１４には、モニタ１４ａが接続されている。グラフィック処理装置１４は、プロセッサ１１からの命令に従って、画像をモニタ１４ａの画面に表示させる。モニタ１４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置等が挙げられる。
【００２７】
入力インタフェース１５には、キーボード１５ａおよびマウス１５ｂが接続されている。入力インタフェース１５は、キーボード１５ａやマウス１５ｂから送られてくる信号をプロセッサ１１に送信する。なお、マウス１５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル，タブレット，タッチパッド，トラックボール等が挙げられる。
【００２８】
光学ドライブ装置１６は、レーザ光等を利用して、光ディスク１６ａに記録されたデータの読み取りを行なう。光ディスク１６ａは、光の反射によって読み取り可能にデータを記録された可搬型の非一時的な記録媒体である。光ディスク１６ａには、ＤＶＤ（Digital Versatile Disc），ＤＶＤ−ＲＡＭ，ＣＤ−ＲＯＭ（Compact Disc Read Only Memory），ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。
【００２９】
機器接続インタフェース１７は、コンピュータ１０に周辺機器を接続するための通信インタフェースである。例えば、機器接続インタフェース１７には、メモリ装置１７ａやメモリリーダライタ１７ｂを接続することができる。メモリ装置１７ａは、機器接続インタフェース１７との通信機能を搭載した非一時的な記録媒体、例えばＵＳＢ（Universal Serial Bus）メモリである。メモリリーダライタ１７ｂは、メモリカード１７ｃへのデータの書き込み、またはメモリカード１７ｃからのデータの読み出しを行なう。メモリカード１７ｃは、カード型の非一時的な記録媒体である。
【００３０】
ネットワークインタフェース１８は、ネットワーク１８ａに接続される。ネットワークインタフェース１８は、ネットワーク１８ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行なう。
【００３１】
以上のようなハードウェア構成を有するコンピュータ１０によって、図２〜図３６を参照しながら後述する本実施形態の定義ファイル生成機能を実現することができる。
【００３２】
なお、コンピュータ１０は、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム（定義ファイル生成プログラム等）を実行することにより、本実施形態の定義ファイル生成機能を実現する。コンピュータ１０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、コンピュータ１０に実行させるプログラムをＨＤＤ１３に格納しておくことができる。プロセッサ１１は、ＨＤＤ１３内のプログラムの少なくとも一部をＲＡＭ１２にロードし、ロードしたプログラムを実行する。
【００３３】
また、コンピュータ１０（プロセッサ１１）に実行させるプログラムを、光ディスク１６ａ，メモリ装置１７ａ，メモリカード１７ｃ等の非一時的な可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１１からの制御により、ＨＤＤ１３にインストールされた後、実行可能になる。また、プロセッサ１１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００３４】
〔２〕定義ファイル生成機能を有する情報処理装置の機能構成
次に、図１を参照しながら、本実施形態の定義ファイル生成機能を有する情報処理装置（コンピュータ）１０の機能構成について説明する。図１は、当該機能構成の一例を示すブロック図である。ここで、まず、以下で用いられる用語について説明する。
【００３５】
「フロー定義モデル」は、データをどのような順番でどのように処理するかを定義するフローのモデルをいう。
【００３６】
「処理」は、フロー定義モデルによって定義される要素であり、フロー定義モデル中のデータ処理を表す要素である。
【００３７】
「データ」は、フロー定義モデルによって定義される要素であり、フロー定義モデル中のデータ処理対象となるデータ（対象データ）を表す要素である。
【００３８】
「処理型」は、処理の形態であり、例えばバッチ処理，リアルタイム処理などである。バッチ処理は、例えば、データベースに蓄積された大量のデータの分類あるいは分析を一括して実行する処理である。リアルタイム処理は、例えば、何らかのイベント発生に応じてキューイングデータに対し逐次実行される処理である。
【００３９】
「処理エンジン（処理エンジンプログラム）」は、処理に用いられるもので、アプリケーション実行基盤，ソフトウェアプラットフォーム，アプリケーションサーバ，ミドルウェアといったソフトウェアの基盤となる部分をいう。
【００４０】
「処理エンジン型」は、具体的な各処理エンジンの製品等、処理エンジンの種類の概念である。例えば、バッチ処理に用いられる処理エンジン型としては、Interstage ＢＤＰＰＳ（Big Data Parallel Processing Server）や、Interstage ＢＡ（Business Application）サーバや、Hadoopや、データマイニング系のＲシステムなどが挙げられる。また、リアルタイム処理に用いられる処理エンジン型としては、Interstage ＢＤＣＥＰ（Big Data Complex Event Processing Server）や、Esper ＣＥＰ（Complex Event Processing）などが挙げられる。
【００４１】
「データ伝送型」は、処理間でデータを送受信する際の伝送手段の種類である。データ伝送型としては、ＪＭＳ（Java Message Service）や、ＳＯＡＰ（Simple Object Access Protocol）や、ファイル渡しなどが挙げられる。データの前段側のデータ伝送型は、当該データの前段側の処理の処理エンジン型に応じて決定されてもよい。また、データの後段側のデータ伝送型は、当該データの後段側の処理の処理エンジン型に応じて決定されてもよい。
【００４２】
「前段処理」／「後段処理」は、或る処理またはデータの前／後の処理のことをいう。
「最前段処理」／「最後段処理」は、前段処理／後段処理のない処理のことをいう。
【００４３】
本実施形態のコンピュータ１０におけるプロセッサ１１は、上述したアプリケーションプログラムに含まれる定義ファイル生成プログラムを実行することで、後述する処理エンジン型／データ伝送型選択部１２０，定義ファイル生成部１４０，モデル変換ルール登録部１５０，モデル変換エンジン登録部１６０としての機能を果たす。
【００４４】
また、本実施形態のコンピュータ１０には、後述するフロー定義モデル（ＤＦＤ）１１０，実行タイミング管理表１３０Ｃ，モデル変換エンジンプログラム２００，モデル変換ルール情報２１０が入力情報として入力される。これらの入力情報１１０，１３０Ｃ，２００，２１０は、光ディスク１６ａ，メモリ装置１７ａ，メモリカード１７ｃ等の可搬型記録媒体によって入力されてもよい。入力情報１１０，１３０Ｃ，２００，２１０は、ユーザ等がキーボード１５ａやマウス１５ｂを操作することで入力されてもよい。
【００４５】
入力されたフロー定義モデル１１０は、例えばＲＡＭ１２またはＨＤＤ１３におけるＤＦＤ記憶部１２１（図２５参照）に保存され、後述する処理エンジン型／データ伝送型選択部１２０（選択部１２０ａ）によって用いられる。
【００４６】
入力されたモデル変換エンジンプログラム２００は、後述するモデル変換エンジン登録部１６０によって、例えばＲＡＭ１２またはＨＤＤ１３におけるモデル変換エンジン管理表１７０に登録保存され、後述する定義ファイル生成部１４０によって用いられる。
【００４７】
入力されたモデル変換ルール情報２１０は、後述するモデル変換ルール登録部１５０によって、例えばＲＡＭ１２またはＨＤＤ１３におけるモデル変換ルール管理表１８０に、後述するモデル変換ルール１８０Ａ〜１８０Ｄとして登録保存される。モデル変換ルール１８０Ａ〜１８０Ｄは、後述する定義ファイル生成部１４０によって用いられる。
【００４８】
入力された実行タイミング管理表１３０Ｃ（図９（Ｃ）参照）は、例えばＲＡＭ１２またはＨＤＤ１３に保存され、後述する定義ファイル生成部１４０によって用いられる。また、後述する処理エンジン型／データ伝送型選択部１２０（選択部１２０ａ）によって作成される対応表１３０Ａ，１３０Ｂ（図９（Ａ），（Ｂ）参照）は、例えばＲＡＭ１２またはＨＤＤ１３に保存され、後述する定義ファイル生成部１４０によって用いられる。
【００４９】
なお、定義ファイル生成部１４０によって生成される定義ファイル１９０は、例えばＲＡＭ１２またはＨＤＤ１３に保存されるほか、必要に応じて、グラフィック処理装置１４によってモニタ１４ａで表示される。
【００５０】
図１では図示を省略しているが、本実施形態のコンピュータ１０には、処理エンジン型／データ伝送型選択部１２０（選択部１２０ａ）によって用いられる処理コスト，接続コスト，ユーザ要求に係る情報も入力される。当該情報は、光ディスク１６ａ，メモリ装置１７ａ，メモリカード１７ｃ等の可搬型記録媒体によって入力されてもよい。また、当該情報は、ユーザ等がキーボード１５ａやマウス１５ｂを操作することで入力されてもよい。入力された当該情報は、それぞれ、例えばＲＡＭ１２またはＨＤＤ１３における処理コスト記憶部１２２（図２５参照），接続コスト記憶部１２３（図２５参照），ユーザ要求記憶部１２４（図２５参照）に保存される。
【００５１】
ついで、本実施形態の処理エンジン型／データ伝送型選択部１２０，定義ファイル生成部１４０，モデル変換ルール登録部１５０，モデル変換エンジン登録部１６０の基本的な機能について説明する。
【００５２】
処理エンジン型／データ伝送型選択部１２０は、フロー定義モデル１１０によって定義される要素ごとに、処理エンジン型もしくはデータ伝送型を選択する。
【００５３】
ここで、フロー定義モデル１１０は、フロー定義モデル１１０により複数種類の処理コンポーネントを組み合わせてシステムを構築する開発実行環境において、ユーザが、例えば、エディタを用いてＤＦＤにより作成される。フロー定義モデル１１０には、例えば図５に示すように、処理（ｐ１〜ｐ６参照）と、当該処理の対象データ（ｄ１〜ｄ６参照）とが含まれる。
【００５４】
処理エンジン型／データ伝送型選択部１２０は、フロー定義モデル１１０の処理ごとに、当該処理に用いられる処理エンジンの処理エンジン型を選択する。また、処理エンジン型／データ伝送型選択部１２０は、フロー定義モデル１１０の対象データごとに、当該対象データのデータ伝送型を選択する。処理エンジン型／データ伝送型選択部１２０の選択結果に従って、処理と処理エンジン型との対応表１３０Ａ（図９（Ａ）参照）、および、データとデータ伝送型との対応表１３０Ｂ（図９（Ｂ）参照）が作成されＲＡＭ１２またはＨＤＤ１３に保存される。特に、対応表１３０Ｂは、各データと、当該データについての前段データ伝送型および後段データ伝送型との対応関係を管理する。前段データ伝送型は、当該データの前段処理から伝送されてくる当該データのデータ伝送型である。また、後段データ伝送型は、当該データの後段処理に入力されるべき当該データのデータ伝送型である。
【００５５】
特に、本実施形態において、処理エンジン型／データ伝送型選択部１２０は、相互に前後関係を有する複数の処理のそれぞれについて、以下のような選択処理を行なう。つまり、処理エンジン型／データ伝送型選択部１２０は、処理エンジン型ごとに、当該処理よりも前の各処理に関して選択された処理エンジン型の１以上の組合せの中から、当該処理エンジン型の処理エンジンが最後段に追加された場合のコストが最小となる組合せを選択する。これにより、処理エンジン型／データ伝送型選択部１２０は、各処理で用いられる処理エンジン型と各処理の対象データのデータ伝送型とを選択する、
【００５６】
このとき、前記コストは、例えば、前記組合せに属する各処理エンジン型の処理に要される処理コストと、前記組合せに属する処理エンジン型のうち前記前後関係において隣接する処理に係る処理エンジン型の接続に要される接続コストとの合計である。
【００５７】
なお、処理エンジン型／データ伝送型選択部１２０による処理エンジン型およびデータ伝送型の選択手順については、下記項目〔６〕において図２５〜図３６を参照しながら後述する。また、以下では、「処理エンジン型／データ伝送型選択部１２０」を単に「選択部１２０」という場合がある。
【００５８】
モデル変換エンジン登録部１６０は、新規の処理エンジン型を追加する際に、当該新規の処理エンジン型用のモデル変換エンジンプログラム２００を、モデル変換エンジン管理表（第１管理テーブル）１７０に登録する。なお、「モデル変換エンジンプログラム」は単に「モデル変換エンジン」という場合がある。モデル変換エンジン２００は、例えば上述した可搬型記録媒体によってモデル変換エンジン登録部１６０に入力される。モデル変換エンジン管理表１７０は、例えば図１０に示すように、処理エンジン型（Ｐ１〜Ｐ３参照）とモデル変換エンジン２００（Ｅ１〜Ｅ３参照）とを対応付けて管理する。
【００５９】
モデル変換ルール登録部１５０は、新規の処理エンジン型を追加する際に、モデル変換ルール１８０Ａ〜１８０Ｄをモデル変換ルール管理表（第２管理テーブル）１８０に登録する。モデル変換ルール１８０Ａ〜１８０Ｄは、例えば上述した可搬型記録媒体によってモデル変換ルール登録部１５０にモデル変換ルール情報２１０として入力される。モデル変換ルール管理表１８０は、各処理エンジン型用のモデル変換エンジン２００がフロー定義モデル１１０を定義ファイル１９０に変換する際に用いるモデル変換ルール１８０Ａ〜１８０Ｄを、処理エンジン型ごとに管理する。
【００６０】
モデル変換ルール（第１モデル変換ルール）１８０Ａは、各処理エンジン型での各処理の種類についての第１モデル変換ルールを管理するテーブルとして機能するものである。モデル変換ルール１８０Ａでは、例えば図１１（Ａ）に示すように、処理エンジン型（Ｐ１〜Ｐ３参照）ごとに、各処理の種類（ProcessA〜ProcessF参照）に対して適用される変換ルール（Ｔ１〜Ｔ１２参照）が登録される。
【００６１】
モデル変換ルール（第４モデル変換ルール）１８０Ｂは、各処理エンジン型での実行開始処理についての第４モデル変換ルールを管理するテーブルとして機能するものである。モデル変換ルール１８０Ｂでは、例えば図１１（Ｂ）に示すように、処理エンジン型（Ｐ１〜Ｐ３参照）ごとに、実行開始処理に対して適用される変換ルール（Ｔ１８〜Ｔ２０参照）が登録される。
【００６２】
モデル変換ルール（第２モデル変換ルール）１８０Ｃは、各処理エンジン型での各データ伝送型におけるデータ伝送処理についての第２モデル変換ルールを管理するテーブルとして機能するものである。モデル変換ルール１８０Ｃでは、例えば図１１（Ｃ）に示すように、処理エンジン型（Ｐ１〜Ｐ３参照）ごとに、各データ伝送型（Ｄ１〜Ｄ３参照）に対して適用される変換ルール（Ｔ２２〜Ｔ２４参照）が登録される。
【００６３】
モデル変換ルール（第３モデル変換ルール）１８０Ｄは、各処理エンジン型での各データ伝送型から異なるデータ伝送型へのデータ変換処理についての第３モデル変換ルールを管理するテーブルとして機能するものである。換言すると、第３モデル変換ルールは、前段処理の処理エンジン型での前段データ伝送型と、後段処理の処理エンジン型での後段データ伝送型との組に対応するデータ変換処理の変換ルールである。モデル変換ルール１８０Ｄでは、例えば図１１（Ｄ）に示すように、処理エンジン型（Ｐ１〜Ｐ３参照）ごとに、前段データ伝送型（Ｄ１〜Ｄ３）と後段データ伝送型（Ｄ１〜Ｄ３）との組合せに対して適用される変換ルール（Ｔ２７，Ｔ２８，Ｔ３０，Ｔ３１，Ｔ３３，Ｔ３４参照）が登録される。
【００６４】
定義ファイル生成部１４０は、選択部１２０によって処理エンジン型を選択された処理ごとに、モデル変換エンジン管理表１７０とモデル変換ルール管理表１８０とを参照し、当該処理に応じたモデル変換エンジンおよびモデル変換ルールを選択する。同様に、定義ファイル生成部１４０は、選択部１２０によってデータ伝送型を選択されたデータごとに、モデル変換エンジン管理表１７０とモデル変換ルール管理表１８０とを参照し、当該データに応じたモデル変換エンジンおよびモデル変換ルールを選択する。
【００６５】
ここで、定義ファイル生成部１４０は、対応表１３０Ａ〜１３０Ｃ，モデル変換エンジン管理表１７０およびモデル変換ルール管理表１８０を参照しながら、以下のような、モデル変換エンジンおよびモデル変換ルールの選択処理(A1)〜(A3)を行なう。そして、定義ファイル生成部１４０は、選択されたモデル変換エンジンおよびモデル変換ルールを用いてフロー定義モデル１１０から定義ファイル１９０を生成する。
【００６６】
(A1) 選択部１２０によって処理エンジン型を選択された処理ごとに、定義ファイル生成部１４０は、対応表１３０Ａを参照し、当該処理に対応する処理エンジン型を把握する。そして、定義ファイル生成部１４０は、把握した処理エンジン型に対応するモデル変換エンジンを、モデル変換エンジン管理表１７０から選択する。また、定義ファイル生成部１４０は、当該処理の種類および当該処理の処理エンジン型に対応するモデル変換ルールを、モデル変換ルール管理表１８０中の第１モデル変換ルール１８０Ａから選択する。なお、当該処理の種類については、フロー定義モデル１１０における当該処理に係る記述を参照することで容易に認識することができる（図６参照）。
【００６７】
(A2) 選択部１２０によってデータ伝送型を選択されたデータごとに、定義ファイル生成部１４０は、対応表１３０Ｂを参照し、当該データの前後におけるデータ伝送型が同一であるか否かを判断する。当該データの前後におけるデータ伝送型が同一である場合、定義ファイル生成部１４０は、当該データ前後の処理のいずれか一方の処理エンジン型に対応するモデル変換エンジンを、モデル変換エンジン管理表１７０から選択する。また、定義ファイル生成部１４０は、当該データ前後の処理のいずれか一方の処理エンジン型でのデータ伝送型についてのデータ伝送処理のモデル変換ルールを、モデル変換ルール管理表１８０中の第２モデル変換ルール１８０Ｃから選択する。
【００６８】
(A3) 当該データの前後におけるデータ伝送型が同一でないと判断された場合、定義ファイル生成部１４０は、以下の選択処理(A3-1)および(A3-2)を行なう。
【００６９】
(A3-1) 定義ファイル生成部１４０は、対応表１３０Ａを参照し、当該データの前段処理に対応する処理エンジン型を把握する。そして、定義ファイル生成部１４０は、把握した当該データの前段処理の処理エンジン型に対応するモデル変換エンジンを、モデル変換エンジン管理表１７０から選択する。また、定義ファイル生成部１４０は、前記前段処理の処理エンジン型での前段データ伝送型と後段データ伝送型との組に対応するデータ変換処理のモデル変換ルールを、モデル変換ルール管理表１８０中の第３モデル変換ルール１８０Ｄから選択する。
【００７０】
(A3-2) 定義ファイル生成部１４０は、対応表１３０Ａを参照し、当該データの後段処理の処理エンジン型を把握する。そして、定義ファイル生成部１４０は、把握した当該データの後段処理の処理エンジン型に対応するモデル変換エンジンを、モデル変換エンジン管理表１７０から選択する。また、定義ファイル生成部１４０は、前記後段処理の処理エンジン型での前記後段処理を所定タイミングで実行する実行開始処理のモデル変換ルールを、モデル変換ルール管理表１８０中の第４モデル変換ルール１８０Ｂから選択する。ここで、前記所定タイミングは、前述した実行タイミング管理表１３０Ｃを用いてユーザ等によって入力指定される。
【００７１】
〔３〕定義ファイル生成部の動作
次に、図３および図４に示すフローチャートに従って、本実施形態の定義ファイル生成部１４０の動作について説明する。図３には、上記選択処理(A1)に対応するステップＳ１０１〜Ｓ１０５が示されるとともに、上記選択処理(A2)に対応するステップＳ１０６〜Ｓ１１１が示される。図４には、図３のステップＳ１１２（上記選択処理(A3)）で実行される処理が示される。より具体的に、図４には、上記選択処理(A3-1)に対応するステップＳ１２１〜Ｓ１２５が示されるとともに、上記選択処理(A3-2)に対応するステップＳ１２６〜Ｓ１３０が示される。
【００７２】
なお、定義ファイル生成部１４０が動作する時点では、既存のモデル変換エンジン２００やモデル変換ルール情報２１０が、それぞれ、モデル変換エンジン登録部１６０およびモデル変換ルール登録部１５０によって、モデル変換エンジン管理表１７０およびモデル変換ルール管理表１８０に登録されている。また、定義ファイル生成部１４０が動作する時点では、選択部１２０によってフロー定義モデル１１０について処理エンジン型やデータ伝送型が選択され、処理と処理エンジン型との対応表１３０Ａ、および、データとデータ伝送型との対応表１３０Ｂが作成されている。さらに、定義ファイル生成部１４０が動作する時点では、必要に応じて、実行タイミング管理表１３０Ｃがユーザ等によって作成されている。
【００７３】
まず、定義ファイル生成部１４０は、処理と処理エンジン型との対応表１３０Ａからレコードを一つずつ選択し、選択したレコードを参照することで、当該レコードにおいて、処理と当該処理に対応付けられた処理エンジン型とを把握する（ステップＳ１０１）。そして、定義ファイル生成部１４０は、ステップＳ１０１で把握した処理エンジン型での当該処理の種類についてのモデル変換ルールを、モデル変換ルール管理表１８０中の第１モデル変換ルール１８０Ａから選択する（ステップＳ１０２）。また、定義ファイル生成部１４０は、ステップＳ１０１で把握した処理エンジン型に対応するモデル変換エンジンを、モデル変換エンジン管理表１７０から選択する（ステップＳ１０３）。なお、ステップＳ１０３の処理は、ステップＳ１０２の処理の前に実行されてもよい。
【００７４】
そして、定義ファイル生成部１４０は、ステップＳ１０３およびＳ１０２で選択されたモデル変換エンジンとモデル変換ルールとを用いてフロー定義モデル１１０から定義ファイル１９０を生成する（ステップＳ１０４）。この後、定義ファイル生成部１４０は、対応表１３０Ａにおいて未選択の処理（レコード）があるか否かを判断する（ステップＳ１０５）。未選択の処理がある場合（ステップＳ１０５のＹＥＳルート）、定義ファイル生成部１４０は、ステップＳ１０１の処理に戻る一方、未選択の処理がない場合（ステップＳ１０５のＮＯルート）、定義ファイル生成部１４０は、ステップＳ１０６の処理に移行する。
【００７５】
ついで、定義ファイル生成部１４０は、データとデータ伝送型との対応表１３０Ｂからレコードを一つずつ選択し（ステップＳ１０６）、選択したレコード参照することで、当該レコードにおけるデータの前後におけるデータ伝送型が同一であるか否かを判断する（ステップＳ１０７）。
【００７６】
当該データの前後におけるデータ伝送型が同一である場合（前段データ伝送型＝後段データ伝送型；ステップＳ１０７のＹＥＳルート）、定義ファイル生成部１４０はステップＳ１０８〜Ｓ１１１の処理を実行する。つまり、定義ファイル生成部１４０は、当該レコードの前段データ伝送型のデータ伝送処理についてのモデル変換ルールを、モデル変換ルール管理表１８０中の第２モデル変換ルール１８０Ｃから選択する（ステップＳ１０８）。また、定義ファイル生成部１４０は、当該データの前段処理の処理エンジン型でのモデル変換エンジンを、モデル変換エンジン管理表１７０から選択する（ステップＳ１０９）。なお、ステップＳ１０９の処理は、ステップＳ１０８の処理の前に実行されてもよい。
【００７７】
そして、定義ファイル生成部１４０は、ステップＳ１０９およびＳ１０８で選択されたモデル変換エンジンとモデル変換ルールとを用いてフロー定義モデル１１０から定義ファイル１９０を生成する（ステップＳ１１０）。この後、定義ファイル生成部１４０は、対応表１３０Ａにおいて未選択の処理（レコード）があるか否かを判断する（ステップＳ１１１）。未選択の処理がある場合（ステップＳ１１１のＹＥＳルート）、定義ファイル生成部１４０は、ステップＳ１０６の処理に戻る一方、未選択の処理がない場合（ステップＳ１１１のＮＯルート）、定義ファイル生成部１４０は処理を終了する。
【００７８】
一方、当該データの前後におけるデータ伝送型が同一でない場合（前段データ伝送型≠後段データ伝送型；ステップＳ１０７のＮＯルート）、定義ファイル生成部１４０は、図４に示す手順に従って、データ伝送型が異なる場合の定義ファイル生成を行なう（ステップＳ１１２）。定義ファイル生成部１４０は、ステップＳ１１２の処理を終了すると、ステップＳ１１１の処理に移行する。
【００７９】
ついで、ステップＳ１１２で実行される、前段データ伝送型≠後段データ伝送型の場合の定義ファイル生成処理を、図４を参照しながら説明する。
【００８０】
まず、定義ファイル生成部１４０は、ステップＳ１０６で選択した当該レコードのデータを出力とする処理（前段処理）を、フロー定義モデル１１０から選択する（ステップＳ１２１）。また、定義ファイル生成部１４０は、対応表１３０Ａを参照し、ステップＳ１２１で選択した前段処理に対応する処理エンジン型を把握する（ステップＳ１２２）。
【００８１】
定義ファイル生成部１４０は、ステップＳ１２２で把握した処理エンジン型での前段データ伝送型と後段データ伝送型との組に対応するデータ変換処理についてのモデル変換ルールを、モデル変換ルール管理表１８０中の第３モデル変換ルール１８０Ｄから選択する（ステップＳ１２３）。また、定義ファイル生成部１４０は、ステップＳ１２２で把握した処理エンジン型に対応するモデル変換エンジンを、モデル変換エンジン管理表１７０から選択する（ステップＳ１２４）。なお、ステップＳ１２４の処理は、ステップＳ１２３の処理の前に実行されてもよい。
【００８２】
そして、定義ファイル生成部１４０は、ステップＳ１２４およびＳ１２３で選択されたモデル変換エンジンとモデル変換ルールとを用いてフロー定義モデル１１０から定義ファイル１９０を生成する（ステップＳ１２５）。
【００８３】
さらに、定義ファイル生成部１４０は、ステップＳ１０６で選択した当該レコードのデータを入力とする処理（後段処理）を、フロー定義モデル１１０から選択する（ステップＳ１２６）。また、定義ファイル生成部１４０は、対応表１３０Ａを参照し、ステップＳ１２６で選択した後段処理に対応する処理エンジン型を把握する（ステップＳ１２７）。
【００８４】
この後、定義ファイル生成部１４０は、ステップＳ１２７で把握した処理エンジン型における実行開始処理についてのモデル変換ルールを、モデル変換ルール管理表１８０中の第４モデル変換ルール１８０Ｂから選択する（ステップＳ１２８）。また、定義ファイル生成部１４０は、ステップＳ１２７で把握した処理エンジン型に対応するモデル変換エンジンを、モデル変換エンジン管理表１７０から選択する（ステップＳ１２９）。なお、ステップＳ１２９の処理は、ステップＳ１２８の処理の前に実行されてもよい。
【００８５】
そして、定義ファイル生成部１４０は、ステップＳ１２９およびＳ１２８で選択されたモデル変換エンジンとモデル変換ルールとを用いてフロー定義モデル１１０から定義ファイル１９０を生成し（ステップＳ１３０）、図３のステップＳ１１１の処理に戻る。
【００８６】
〔４〕定義ファイル生成部の具体的な動作
次に、図５〜図２０を参照しながら、定義ファイル生成部１４０の具体的な動作について説明する。
【００８７】
まず、以下に説明する具体的な動作の対象になるフロー定義モデル（ＤＦＤ）１１０の一例について図５を参照しながら説明する。図５において、楕円ブロックは処理を示し、楕円ブロック内の符号ｐ１〜ｐ６は、各処理を識別する識別子（処理名）を示す。また、楕円ブロック間の円筒形ブロックは、各処理の対象となるデータを示し、円筒形ブロック内の符号ｄ１〜ｄ６は、各データを識別する識別子（データ名）を示す。
【００８８】
図５では、処理ｐ１〜処理ｐ６を含むＤＦＤが示されている。処理ｐ１は、データｄ１およびｄ４をそれぞれ処理ｐ２およびｐ４へ出力する。データｄ１およびｄ４を入力される処理ｐ２およびｐ４は、それぞれ、データｄ２およびｄ５を処理ｐ３およびｐ５へ出力する。データｄ２およびｄ５を入力される処理ｐ３およびｐ５は、それぞれデータｄ３およびｄ６を一つの処理ｐ６へ出力する。つまり、データの流れは、処理ｐ１の後で分岐し処理ｐ３，ｐ５の後で合流している。
【００８９】
また、処理ｐ４については、一日分のデータを溜めてから一日分のデータに対する夜間バッチ処理を行なうことが、ユーザ等によって予め指定されている。このため、例えば図９（Ｃ）に示す実行タイミング管理表１３０Ｃには、処理ｐ４を毎日午前０時（０：００）に実行する旨が、処理ｐ４の実行タイミングとして登録されている。図９（Ｃ）に示すように、実行タイミング管理表１３０Ｃでは、各処理を実行する実行タイミングが、各処理の識別子に対応付けて登録される。
【００９０】
図５に示すフロー定義モデル１１０中の各処理ｐ１〜ｐ６と、各処理ｐ１〜ｐ６の種類との対応関係を図６に示す。図６では、処理ｐ１〜ｐ６の種類は、それぞれProcessA〜ProcessFであり、処理ｐ１〜ｐ６は、異なる種類の処理である。前述したように、各処理ｐ１〜ｐ６の種類については、フロー定義モデル１１０における各処理ｐ１〜ｐ６に係る記述を参照することで認識することができる。
【００９１】
また、以下に説明する具体的な動作において用いられる処理エンジン型と、処理型との間には、図７の対応表に示すような対応関係があり、当該対応表は、記憶部（ＲＡＭ１２やＨＤＤ１３）に予め保存されている。図７では、処理エンジン型Ｐ１，Ｐ２はバッチ処理に用いられることが示され、処理エンジン型Ｐ３はリアルタイム処理に用いられることが示されている。
【００９２】
さらに、ここでは、定義ファイル生成部１４０の動作に先立ち、図５に示すフロー定義モデル１１０について、処理エンジン型／データ伝送型選択部１２０によって、図８に示すように、処理エンジン型およびデータ伝送型が選択されている。このとき、処理エンジン型は、モデル変換ルール管理表１８０に登録されている処理エンジン型（図７や図１１（Ａ）〜図１１（Ｄ）に示す例ではＰ１，Ｐ２，Ｐ３）の中から選択される。同様に、データ伝送型は、モデル変換ルール管理表１８０に登録されているデータ伝送型（図７や図１１（Ａ）〜図１１（Ｄ）に示す例ではＤ１，Ｄ２，Ｄ３）の中から選択される。選択部１２０による処理エンジン型およびデータ伝送型の選択手順については、下記項目〔６〕において図２５〜図３６を参照しながら後述する。
【００９３】
なお、図８では、処理ｐ１〜ｐ６のそれぞれに対し処理エンジン型Ｐ３，Ｐ３，Ｐ３，Ｐ１，Ｐ２，Ｐ３が選択されることが示されている。これに伴い、図８では、データｄ１〜ｄ３前後のデータ伝送型としてＤ３／Ｄ３がそれぞれ選択されることが示されている。また、データｄ４の前段／後段データ伝送型としてＤ３／Ｄ１が選択され、データｄ５前後のデータ伝送型としてＤ１／Ｄ２が選択され、データｄ６前後のデータ伝送型としてＤ２／Ｄ３が選択されることが示されている。
【００９４】
このような選択結果に基づいて、各処理と処理エンジン型との対応表１３０Ａが、図９（Ａ）に示すごとく作成されるとともに、各データと前段／後段データ伝送型との対応表１３０Ｂが、図９（Ｂ）に示すごとく作成される。作成された対応表１３０Ａ，１３０Ｂは、ＲＡＭ１２またはＨＤＤ１３に保存される。また、処理ｐ４として、一日分のデータに対する夜間バッチ処理を行なうことが指定されていることに伴い、図９（Ｃ）に示すように、実行タイミング管理表１３０Ｃには、処理ｐ４の実行タイミングとして「毎日０：００」がユーザ等によって登録されている。
【００９５】
さらに、定義ファイル生成部１４０が動作する時点では、前述した通り、既存のモデル変換エンジン２００が、モデル変換エンジン登録部１６０によって、図１０に示すごとくモデル変換エンジン管理表１７０に登録されている。図１０では、処理エンジン型Ｐ１，Ｐ２，Ｐ３と各処理エンジン型用のモデル変換エンジンＥ１，Ｅ２，Ｅ３とをそれぞれ対応付けるモデル変換エンジン管理表（第１管理テーブル）１７０が示されている。モデル変換エンジン管理表１７０には、各処理エンジン型Ｐ１，Ｐ２，Ｐ３についてのモデル変換エンジンプログラムＥ１，Ｅ２，Ｅ３への参照が格納されている。
【００９６】
また、定義ファイル生成部１４０が動作する時点では、前述した通り、既存のモデル変換ルール情報２１０が、モデル変換ルール登録部１５０によって、図１１（Ａ）〜図１１（Ｄ）に示すごときモデル変換ルール１８０Ａ〜１８０Ｄとしてモデル変換ルール管理表（第２管理テーブル）１８０に登録されている。
【００９７】
図１１（Ａ）のモデル変換ルール（第１モデル変換ルール）１８０Ａでは、各処理エンジン型Ｐ１〜Ｐ３での各処理の種類ProcessA〜ProcessFについての変換ルールＴ１〜Ｔ１２が示されている。変換ルールＴ１〜Ｔ１２としては、実際の変換ルールへの参照が格納されている。例えば、種類ProcessAの処理は、処理エンジン型Ｐ３の処理エンジンによってのみ実行される。このため、モデル変換ルール１８０Ａにおいて、処理エンジン型Ｐ３とProcessAとに対応するセルには、処理エンジン型Ｐ３によって実行される種類ProcessAの処理に対して適用される変換ルールＴ７が登録されている。
【００９８】
図１１（Ｂ）のモデル変換ルール（第４モデル変換ルール）１８０Ｂでは、各処理エンジン型Ｐ１〜Ｐ３での実行開始処理についての変換ルールＴ１８〜Ｔ２０が示されている。変換ルールＴ１８〜Ｔ２０としては、実際の変換ルールへの参照が格納されている。つまり、モデル変換ルール１８０Ｂにおいて、処理エンジン型Ｐ１〜Ｐ３のそれぞれについて、実行開始処理に対して適用される変換ルールＴ１８〜Ｔ２０が登録されている。
【００９９】
図１１（Ｃ）のモデル変換ルール（第２モデル変換ルール）１８０Ｃでは、各処理エンジン型Ｐ１〜Ｐ３での各データ伝送型のデータ伝送処理についての変換ルールＴ２２〜Ｔ２４が示されている。変換ルールＴ２２〜Ｔ２４としては、実際の変換ルールへの参照が格納されている。処理エンジン型Ｐ１〜Ｐ３の処理エンジンは、それぞれデータ伝送型Ｄ１〜Ｄ３のデータ伝送処理に対応している。このため、モデル変換ルール１８０Ｃにおいて、例えば、処理エンジン型Ｐ３とデータ伝送型Ｄ３とに対応するセルには、処理エンジン型Ｐ３によって実行されるデータ伝送型Ｄ３に対して適用される変換ルールＴ２４が登録されている。
【０１００】
図１１（Ｄ）のモデル変換ルール（第３モデル変換ルール）１８０Ｄでは、各処理エンジン型Ｐ１〜Ｐ３での各データ伝送型から異なるデータ伝送型へのデータ変換処理についての変換ルールＴ２７，Ｔ２８，Ｔ３０，Ｔ３１，Ｔ３３，Ｔ３４が示されている。変換ルールＴ２７，Ｔ２８，Ｔ３０，Ｔ３１，Ｔ３３，Ｔ３４としては、実際の変換ルールへの参照が格納されている。モデル変換ルール１８０Ｄにおいて、例えば、処理エンジン型Ｐ３と前段データ伝送型Ｄ３から後段データ伝送型Ｄ１へのデータ変換処理とに対応するセルには、当該データ変換処理に対して適用される変換ルールＴ３３が登録されている。
【０１０１】
図９（Ａ）〜図９（Ｃ）に示す対応表１３０Ａ，１３０Ｂおよび管理表１３０Ｃと、図１０に示すモデル変換エンジン管理表１７０と、図１１（Ａ）〜図１１（Ｄ）に示すモデル変換ルール１８０Ａ〜１８０Ｄとを準備した上での、定義ファイル生成部１４０の具体的な動作について、以下に説明する。特に、ここでは、図８に示すフロー定義モデル１１０のうちの破線で囲んだ部分、つまり処理ｐ１，ｐ２，ｐ４およびデータｄ１，ｄ４に対する定義ファイル生成部１４０の動作を、図１２（Ａ）〜図２４（Ｄ）を参照しながら説明する。なお、図１１（Ａ）〜図１１（Ｄ）において、以下で説明する定義ファイル生成部１４０の具体的な動作で使用する変換ルールのセルには、ハッチが付されている。
【０１０２】
まず、定義ファイル生成部１４０による、図８の処理ｐ１に対する動作について説明する。定義ファイル生成部１４０は、図９（Ａ）に示す対応表１３０Ａを参照し、処理ｐ１に対し処理エンジン型Ｐ３が選択されていることを把握する。そして、定義ファイル生成部１４０は、図１０に示すモデル変換エンジン管理表１７０を参照し、把握した処理エンジン型Ｐ３に対応するモデル変換エンジンＥ３を選択する。
【０１０３】
また、定義ファイル生成部１４０は、図１１（Ａ）に示す第１モデル変換ルール１８０Ａを参照し、処理ｐ１の処理エンジン型Ｐ３と処理ｐ１の種類ProcessA（図６参照）とに対応する変換ルールＴ７を選択する。そして、定義ファイル生成部１４０は、選択されたモデル変換エンジンＥ３および変換ルールＴ７を用いて、フロー定義モデル１１０の処理ｐ１について定義ファイル１９０を生成する。
【０１０４】
ここで、図１２（Ａ）および図１２（Ｂ）において、処理ｐ１にモデル変換ルールＴ７を適用した例を示す。図１２（Ａ）には、モデル変換ルールＴ７が示される。図１２（Ｂ）には、処理エンジン型Ｐ３の処理ｐ１に対応するDataflow.compositeのコード片が示される。なお、図１２（Ａ）において、変換処理に係る記述には下線が付されている。また、図１２（Ｂ）において、変換処理を施された記述には下線が付されるとともに、当該記述を太字によって示している。
【０１０５】
次に、定義ファイル生成部１４０による、図８のデータｄ１に対する動作について説明する。定義ファイル生成部１４０は、図９（Ｂ）に示す対応表１３０Ｂを参照し、データｄ１に対し前段／後段データ伝送型Ｄ３／Ｄ３が選択されていることを把握し、データｄ１の前後におけるデータ伝送型が同一であるか否かを判断する。
【０１０６】
このとき、データｄ１の前後におけるデータ伝送型は同一であるので、定義ファイル生成部１４０は、図１０に示すモデル変換エンジン管理表１７０を参照し、データｄ１の前段処理ｐ１の処理エンジン型Ｐ３に対応するモデル変換エンジンＥ３を選択する。また、定義ファイル生成部１４０は、図１１（Ｃ）に示す第２モデル変換ルール１８０Ｃを参照し、処理エンジン型Ｐ３と前段データ伝送型Ｄ３とに対応する変換ルールＴ２４を選択する。そして、定義ファイル生成部１４０は、選択されたモデル変換エンジンＥ３および変換ルールＴ２４を用いて、フロー定義モデル１１０のデータｄ１について定義ファイル１９０を生成する。
【０１０７】
ここで、図１３（Ａ）および図１３（Ｂ）において、データｄ１にモデル変換ルールＴ２４を適用した例を示す。図１３（Ａ）には、モデル変換ルールＴ２４が示される。図１３（Ｂ）には、処理エンジン型Ｐ３のデータｄ１に対応するDataflow.compositeのコード片が示される。なお、図１３（Ａ）において、変換処理に係る記述には下線が付されている。また、図１３（Ｂ）において、変換処理を施された記述には下線が付されるとともに、当該記述を太字によって示している。
【０１０８】
次に、定義ファイル生成部１４０による、図８の処理ｐ２に対する動作について説明する。定義ファイル生成部１４０は、図９（Ａ）に示す対応表１３０Ａを参照し、処理ｐ２に対し処理エンジン型Ｐ３が選択されていることを把握する。そして、定義ファイル生成部１４０は、図１０に示すモデル変換エンジン管理表１７０を参照し、把握した処理エンジン型Ｐ３に対応するモデル変換エンジンＥ３を選択する。
【０１０９】
また、定義ファイル生成部１４０は、図１１（Ａ）に示す第１モデル変換ルール１８０Ａを参照し、処理ｐ２の処理エンジン型Ｐ３と処理ｐ２の種類ProcessB（図６参照）とに対応する変換ルールＴ８を選択する。そして、定義ファイル生成部１４０は、選択されたモデル変換エンジンＥ３および変換ルールＴ８を用いて、フロー定義モデル１１０の処理ｐ２について定義ファイル１９０を生成する。
【０１１０】
ここで、図１４（Ａ）および図１４（Ｂ）において、処理ｐ２にモデル変換ルールＴ８を適用した例を示す。図１４（Ａ）には、モデル変換ルールＴ８が示される。図１４（Ｂ）には、処理エンジン型Ｐ３の処理ｐ２に対応するDataflow.compositeのコード片が示される。なお、図１４（Ａ）において、変換処理に係る記述には下線が付されている。また、図１４（Ｂ）において、変換処理を施された記述には下線が付されるとともに、当該記述を太字によって示している。
【０１１１】
次に、定義ファイル生成部１４０による、図８のデータｄ４に対する動作について説明する。まず、図１５を参照しながら、データｄ４についての定義ファイル生成の概要について説明する。定義ファイル生成部１４０は、図９（Ｂ）に示す対応表１３０Ｂを参照し、データｄ４に対し前段／後段データ伝送型Ｄ３／Ｄ１が選択されていることを把握し、データｄ５の前後におけるデータ伝送型が同一であるか否かを判断する。
【０１１２】
このとき、データｄ４の前後におけるデータ伝送型は同一でない。図１５に示すように、データｄ４の前段では、処理エンジン型Ｐ３の処理エンジンが処理ｐ１を実行し、データ伝送型Ｄ３のデータｄ４が出力される。データｄ４の後段では、処理エンジン型Ｐ１の処理エンジンが、毎日午前０時の実行タイミングで、データ伝送型Ｄ１のデータｄ４について処理ｐ４を実行する。
【０１１３】
従って、図１５に示すように、処理ｐ１からのデータ伝送型Ｄ３のデータｄ４は、処理エンジン型Ｐ３の処理エンジンにおいて、データ伝送型Ｄ１に変換され、データ伝送型Ｄ１のデータｄ４として保存される。この後、データ伝送型Ｄ１のデータｄ４は、データｄ４の後段において処理エンジン型Ｐ１の処理エンジンが実行する処理ｐ４で用いられる。
【０１１４】
定義ファイル生成部１４０は、データｄ４前後のデータ伝送型Ｄ３およびＤ１であることを把握すると、図１０に示すモデル変換エンジン管理表１７０を参照し、データｄ４の前段処理ｐ１の処理エンジン型Ｐ３に対応するモデル変換エンジンＥ３を選択する。また、定義ファイル生成部１４０は、図１１（Ｄ）に示す第３モデル変換ルール１８０Ｄを参照し、処理エンジン型Ｐ３とデータｄ４前後のデータ伝送型Ｄ３／Ｄ１の組とに対応する変換ルールＴ３３を選択する。そして、定義ファイル生成部１４０は、選択されたモデル変換エンジンＥ３および変換ルールＴ３３を用いて、フロー定義モデル１１０のデータｄ４について定義ファイル１９０を生成する。
【０１１５】
ここで、図１６（Ａ）および図１６（Ｂ）において、データｄ４にモデル変換ルールＴ３３を適用した例を示す。図１６（Ａ）には、モデル変換ルールＴ３３が示される。図１６（Ｂ）には、処理エンジン型Ｐ３のデータｄ４に対応するDataflow.compositeのコード片が示される。なお、図１６（Ａ）において、変換処理に係る記述には下線が付されている。また、図１６（Ｂ）において、変換処理を施された記述には下線が付されるとともに、当該記述を太字によって示している。
【０１１６】
一方、定義ファイル生成部１４０は、図１０に示すモデル変換エンジン管理表１７０を参照し、データｄ４の後段処理ｐ４の処理エンジン型Ｐ１に対応するモデル変換エンジンＥ１を選択する。また、定義ファイル生成部１４０は、実行タイミング管理表１３０Ｃを参照し、処理ｐ４について登録された実行タイミング（毎日午前０時）を取得する。さらに、定義ファイル生成部１４０は、図１１（Ｂ）に示す第４モデル変換ルール１８０Ｂを参照し、処理ｐ４の処理エンジン型Ｐ１での処理ｐ４を所定タイミングで実行する実行開始処理のモデル変換ルールＴ１８を選択する。そして、定義ファイル生成部１４０は、選択されたモデル変換エンジンＥ１，実行タイミングおよび変換ルールＴ１８を用いて、フロー定義モデル１１０のデータｄ４について定義ファイル１９０を生成する。
【０１１７】
ここで、図１７（Ａ）〜図１７（Ｃ）において、処理ｐ４にモデル変換ルールＴ１８を適用した例を示す。図１７（Ａ）には、モデル変換ルールＴ１８が示される。図１７（Ｂ）には、処理エンジン型Ｐ１の処理ｐ４に対応する/etc/crontabのコード片が示される。図１７（Ｃ）には、処理エンジン型Ｐ１の処理ｐ４に対応する/usr/local/process/start_p4.shのコード全体が示される。なお、図１７（Ａ）において、変換処理に係る記述には下線が付されている。また、図１７（Ｂ）および図１７（Ｃ）において、変換処理を施された記述には下線が付されるとともに、当該記述を太字によって示している。
【０１１８】
次に、定義ファイル生成部１４０による、図８の処理ｐ４に対する動作について説明する。定義ファイル生成部１４０は、図９（Ａ）に示す対応表１３０Ａを参照し、処理ｐ４に対し処理エンジン型Ｐ１が選択されていることを把握する。そして、定義ファイル生成部１４０は、図１０に示すモデル変換エンジン管理表１７０を参照し、把握した処理エンジン型Ｐ１に対応するモデル変換エンジンＥ１を選択する。
【０１１９】
また、定義ファイル生成部１４０は、図１１（Ａ）に示す第１モデル変換ルール１８０Ａを参照し、処理ｐ４の処理エンジン型Ｐ１と処理ｐ４の種類ProcessD（図６参照）とに対応する変換ルールＴ３を選択する。そして、定義ファイル生成部１４０は、選択されたモデル変換エンジンＥ１および変換ルールＴ３を用いて、フロー定義モデル１１０の処理ｐ４について定義ファイル１９０を生成する。
【０１２０】
ここで、図１８（Ａ）および図１８（Ｂ）において、処理ｐ４にモデル変換ルールＴ３を適用した例を示す。図１８（Ａ）には、モデル変換ルールＴ３が示される。図１８（Ｂ）には、処理エンジン型Ｐ１の処理ｐ２に対応するquery_23456.qlのコード片が示される。なお、図１８（Ａ）において、変換処理に係る記述には下線が付されている。また、図１８（Ｂ）において、変換処理を施された記述には下線が付されるとともに、当該記述を太字によって示している。
【０１２１】
以上のようにして、図８に示すフロー定義モデル１１０のうちの破線で囲んだ部分について、定義ファイル生成部１４０によって生成された定義ファイルを、図１９および図２０（Ａ）〜図２０（Ｃ）に示す。図１９は、Dataflow.compositeについて生成された定義ファイルを示す図である。図２０（Ａ）は/etc/crontabについて生成された定義ファイルを示す図、図２０（Ｂ）は、/usr/local/process/start_p4.shについて生成された定義ファイルを示す図、図２０（Ｃ）はquery_23456.qlについて生成された定義ファイルを示す図である。なお、図１９および図２０（Ａ）〜図２０（Ｃ）において、変換処理を施された記述には下線が付されるとともに、当該記述を太字によって示している。
【０１２２】
〔５〕新規の処理エンジン型の動的追加
上述のごとく構成され動作する本実施形態のコンピュータ１０において、新規の処理エンジン型の動的追加は、モデル変換エンジン管理表１７０およびモデル変換ルール管理表１８０に対する登録処理を、以下のように行なうことで実行される。当該登録処理の具体例や当該登録処理後の動作の具体例について、図２１〜図２４を参照しながら説明する。
【０１２３】
当該登録処理では、新規の処理エンジン型と当該新規の処理エンジン型用の新規のモデル変換エンジンとの対応関係が、モデル変換エンジン登録部１６０によってモデル変換エンジン管理表（第１管理テーブル）１７０に追加登録される。また、当該登録処理では、当該新規のモデル変換エンジンがフロー定義モデル１１０を定義ファイル１９０に変換する際に用いるモデル変換ルールが、モデル変換ルール登録部１５０によってモデル変換ルール管理表（第２管理テーブル）１８０に追加登録される。
【０１２４】
以下では、図５〜図２０を参照しながら上述した具体例において新規の処理エンジン型Ｐ４が追加される場合の登録処理や当該登録処理後の動作について説明する。この場合、モデル変換エンジン登録部１６０によって、図１０に示すモデル変換エンジン管理表１７０に、図２１に示すように、新規の処理エンジン型Ｐ４と当該新規の処理エンジン型Ｐ４に対応する新規のモデル変換エンジンプログラムＥ４との対応関係が追加登録される。
【０１２５】
また、このとき、モデル変換ルール登録部１５０によって、図１１（Ａ）〜図１１（Ｄ）に示すモデル変換ルール１８０Ａ〜１８０Ｄに、それぞれ図２２（Ａ）〜図２２（Ｄ）に示すように、処理エンジン型Ｐ４と当該処理エンジン型Ｐ４のデータ伝送型Ｄ４とに対応する各種モデル変換ルール情報が追加登録される。
【０１２６】
例えば、図２２（Ａ）に示すように、モデル変換ルール１８０Ａには変換ルールＴ１３〜Ｔ１７が追加され、図２２（Ｂ）に示すように、モデル変換ルール１８０Ｂには変換ルールＴ２１が追加される。図２２（Ｃ）に示すように、モデル変換ルール１８０Ｃには、変換ルールＴ２５，Ｔ２６が追加され、図２２（Ｄ）に示すように、モデル変換ルール１８０Ｄには変換ルールＴ２９，Ｔ３２，Ｔ３５〜Ｔ４１が追加される。なお、図２２（Ａ）〜図２２（Ｄ）において、処理エンジン型Ｐ４およびデータ伝送型Ｄ４について追加されたモデル変換ルール名には下線が付されるとともに、当該モデル変換ルール名を太字によって示している。
【０１２７】
そして、上述のように新規の処理エンジン型Ｐ４およびデータ伝送型Ｄ４の追加に伴い、図５に示すフロー定義モデル１１０について、処理エンジン型／データ伝送型選択部１２０によって、処理エンジン型およびデータ伝送型の選択が再度行なわれる。このとき、処理エンジン型は、追加処理後のモデル変換ルール管理表１８０に登録されている処理エンジン型Ｐ１〜Ｐ４の中から選択される。同様に、データ伝送型は、追加処理後のモデル変換ルール管理表１８０に登録されているデータ伝送型Ｄ１〜Ｄ４の中から選択される。選択部１２０による処理エンジン型およびデータ伝送型の選択手順については、下記項目〔６〕において図２５〜図３６を参照しながら後述する。
【０１２８】
ここで、図２１および図２２に示す追加処理を行なった場合に、図５に示すフロー定義モデルについて選択部１２０によって得られる選択結果を、図２３に示す。図２３では、処理ｐ１〜ｐ６のそれぞれに対し処理エンジン型Ｐ３，Ｐ４，Ｐ４，Ｐ１，Ｐ２，Ｐ３が選択されることが示されている。これに伴い、図２３では、データｄ１前後のデータ伝送型としてＤ３／Ｄ４が選択され、データｄ２前後のデータ伝送型としてＤ４／Ｄ４が選択され、データｄ３前後のデータ伝送型としてＤ４／Ｄ３が選択されることが示されている。また、データｄ４前後のデータ伝送型としてＤ３／Ｄ１が選択され、データｄ５前後のデータ伝送型としてＤ１／Ｄ２が選択され、データｄ６前後のデータ伝送型としてＤ２／Ｄ３が選択されることが示されている。なお、図２３において、選択部１２０による選択結果が、図８に示す選択結果から変更された処理エンジン型名／データ伝送型名には、下線を付して示す。
【０１２９】
このような選択結果に基づいて、各処理と処理エンジン型との対応表１３０Ａが、図２４（Ａ）に示すごとく変更されるとともに、各データと前段／後段データ伝送型との対応表１３０Ｂが、図２４（Ｂ）に示すごとく変更される。変更された対応表１３０Ａ，１３０Ｂは、ＲＡＭ１２またはＨＤＤ１３に保存される。なお、図２４（Ａ）および図２４（Ｂ）において、図９（Ａ）および図９（Ｂ）に対応関係から変更された処理エンジン型名／データ伝送型名には下線が付されるとともに、当該処理エンジン型名／データ伝送型名を太字によって示している。また、実行タイミング管理表１３０Ｃには変更がなく、図２４（Ｃ）に示す実行タイミング管理表１３０Ｃは、図９（Ｃ）に示す実行タイミング管理表１３０Ｃと同様のものである。
【０１３０】
以上のようにして、新規の処理エンジン型Ｐ４の動的追加処理が完了すると、以降、定義ファイル生成部１４０は、図５〜図２０を参照しながら上述した動作と同様の動作を行なう。ただし、その際、定義ファイル生成部１４０は、図２４（Ａ）〜図２４（Ｃ）に示す対応表１３０Ａ，１３０Ｂおよび管理表１３０Ｃと、図２１に示すモデル変換エンジン管理表１７０と、図２２（Ａ）〜図２２（Ｄ）に示すモデル変換ルール１８０Ａ〜１８０Ｄとを参照する。
【０１３１】
このように、本実施形態のコンピュータ１０では、処理エンジン型／データ伝送型選択部１２０によって、処理と処理エンジン型との対応表１３０Ａ、および、データとデータ伝送型との対応表１３０Ｂが作成される。そして、対応表１３０Ａ，１３０Ｂを参照し、各処理エンジン型に対応する複数のモデル変換エンジンと、各処理，実行開始処理，データ伝送処理，データ変換処理についての変換ルール１８０Ａ〜１８０Ｄとを使い分けながら、各処理エンジン型における各処理，各データに対応する適切な定義ファイル１９０が生成される。
【０１３２】
特に、或るデータについて前段データ伝送型と後段データ伝送型とが異なる場合、前段の処理エンジン型についての前段データ伝送型から後段データ伝送型へのデータ変換処理や後段の処理エンジン型についての実行開始処理について、定義ファイル１９０が生成される。
【０１３３】
上述のような本実施形態のコンピュータ１０によれば、後から動的に追加した処理エンジン型についても、既存の単体の処理エンジン型に対応するモデル変換エンジンで用意する変換ルールと同じものを用いてフロー定義モデルから定義ファイルを生成することができる。つまり、モデル変換エンジン管理表１７０に新規の処理エンジン型に対応するモデル変換エンジンを追加登録するとともに、モデル変換ルール管理表１８０に当該モデル変換エンジン用の変換ルールを追加登録するだけで、新たな処理エンジン型が動的に追加される。そして、動的に追加された処理エンジン型についてフロー定義モデル１１０から定義ファイル１９０を生成することができる。
【０１３４】
〔６〕処理エンジン型／データ伝送型選択部について
次に、図２５〜図３６を参照しながら、処理エンジン型／データ伝送型選択部１２０の機能構成および動作について説明する。
【０１３５】
〔６−１〕処理エンジン型／データ伝送型選択部の機能構成
図２５は、本実施形態の処理エンジン型／データ伝送型選択部１２０の機能構成の一例を示すブロック図である。図２５において、処理エンジン型／データ伝送型選択部１２０は、選択部１２０ａを有する。選択部１２０ａは、例えば図５に示すフロー定義モデル（ＤＦＤ）１１０を構成する各処理／各データに利用する処理エンジン型／データ伝送型を選択する。なお、選択部１２０ａは、前述したように、コンピュータ１０にインストールされたプログラムをプロセッサ１１によって実行することで実現される。
【０１３６】
また、処理エンジン型／データ伝送型選択部１２０は、ＤＦＤ記憶部１２１，処理コスト記憶部１２２，接続コスト記憶部１２３，ユーザ要求記憶部１２４および作業用テーブル１２５などを利用する。各記憶部１２１〜１２５としては、ＲＡＭ１２，ＨＤＤ１３，メモリ装置１７ａを用いてもよいし、ネットワーク１８ａを介して接続される記憶装置等を用いてもよい。
【０１３７】
ＤＦＤ記憶部１２１は、例えば図５に示すようなフロー定義モデル（ＤＦＤ）１１０の定義情報を記憶する。処理コスト記憶部１２２は、フロー定義モデル（ＤＦＤ）１１０を構成する処理ごとに、当該処理に利用可能な各処理エンジン型の処理コストを記憶する。処理コストとは、処理エンジンによる処理自体に要されるコストである。
【０１３８】
接続コスト記憶部１２３は、二つの処理エンジン型の組ごとに、当該処理エンジン間における接続コストを記憶する。接続コストとは、処理の前後関係において隣接する処理のそれぞれに対する処理エンジン型の接続に要されるコストをいう。例えば、接続コストは、前段の処理に係る処理エンジンから後段の処理に係る処理エンジンへのデータの伝送や、データの変換等に要されるコストである。すなわち、各処理エンジン型において解釈可能なデータ構造は異なる。したがって、処理エンジン型間においてデータ形式（データ伝送型）の変換が必要とされる。
【０１３９】
なお、処理コストや接続コストにおける「コスト」の具体的な内容は、例えば、所要時間であってもよい。あるいは、コストは、処理エンジンの利用等によって生じる費用（金額）であってもよいし、他の概念によって表現されてもよい。また、コストは、絶対値であってもよいし、相対値であってもよい。さらに、処理コスト記憶部１２２または接続コスト記憶部１２３に記憶される処理コストまたは接続コストは、推定値または予測値であってもよい。
【０１４０】
ユーザ要求記憶部１２４は、フロー定義モデル（ＤＦＤ）１１０を構成する各処理に適用される処理型または処理エンジン型について、ユーザ等による要求を記憶する。すなわち、ユーザ等は、予め、一部または全部の処理について、処理型または処理エンジン型を指定することができる。各処理に対する処理エンジン型の選択において、ユーザによる要求は、最優先される。なお、ここで、処理型とは、処理エンジンに対するデータの入力後の処理の開始時期（開始タイミング）に関する型（種別）をいう。本実施形態において、処理型には、前述したようにバッチ処理およびリアルタイム処理がある。
【０１４１】
作業用テーブル１２５は、フロー定義モデル（ＤＦＤ）１１０を構成する各処理に使用する処理エンジン型や、各データ前後のデータ伝送型を選択する過程において利用される記憶領域である。
【０１４２】
〔６−２〕処理エンジン型／データ伝送型選択部の動作
以下、処理エンジン型／データ伝送型選択部１２０（選択部１２０ａ）が実行する処理手順について説明する。図２６は、本実施形態の処理エンジン型／データ伝送型選択部１２０の動作（選択部１２０ａが実行する処理手順の一例）を説明するフローチャート（ステップＳ１１１〜Ｓ１１９）である。
【０１４３】
ステップＳ１１１において、選択部１２０ａは、ＤＦＤ記憶部１２１に記憶されているフロー定義モデル（ＤＦＤ）１１０を構成する処理群（データ群）を、処理実行順に応じて整列する。例えば、各処理が、当該処理の後段の処理よりも順番が前になるようにソートされる。
【０１４４】
ここでは、選択部１２０ａが、図５を参照しながら前述したフロー定義モデル（ＤＦＤ）１１０を選択処理の対象とする場合について説明する。図５では、処理ｐ１〜ｐ６を含むフロー定義モデル（ＤＦＤ）１１０が示されている。図５に示すフロー定義モデル（ＤＦＤ）１１０の場合、ステップＳ１１１では、例えば、処理ｐ１，ｐ２，ｐ３，ｐ４，ｐ５，ｐ６といった順に、各処理が整列される。
【０１４５】
続いて、選択部１２０ａは、変数ｉに１を代入する（ステップＳ１１２）。変数ｉは、処理対象の処理名に対応する番号を格納する変数である。ここで、処理名がｐ１〜ｐ６の場合、対応する番号はそれぞれ１〜６とする。そして、選択部１２０ａは、処理ｐｉまでの処理エンジン型の組合せの選択処理を実行する（ステップＳ１１３）。ステップＳ１１３では、処理ｐｉに対して選択可能な処理エンジン型ごとに、処理ｉの一つ前の各処理について選択された処理エンジン型の組合せの中から、当該処理エンジン型の処理エンジンを最後段に追加された場合のコストが最小となる組合せが選択される。選択された組合せに対して、当該処理エンジン型が追加される。
【０１４６】
続いて、選択部１２０ａは、変数ｉの値が、全処理数以上であるか否かを判定する（ステップＳ１１４）。すなわち、ステップＳ１１３が、フロー定義モデル（ＤＦＤ）１１０を構成する全ての処理に関して実行されたか否かが判定される。なお、ここでは、全処理数は６である。
【０１４７】
変数ｉの値が、全処理数未満である場合（ステップＳ１１４のＮＯルート）、選択部１２０ａは、変数ｉに１を加算して（ステップＳ１１５）、ステップＳ１１３以降の処理を繰り返す。
【０１４８】
ステップＳ１１３が、全ての処理に関して実行されることにより、作業用テーブル１２５は、例えば、図２７に示されるような状態になる。
【０１４９】
図２７は、作業用テーブル１２５の構成例を示す図である。図２７に示される作業用テーブル１２５では、行方向に処理が配置され、列方向に処理エンジン型が配置されている。すなわち、Ｐ１〜Ｐ４は、それぞれ処理エンジン型を示す。
【０１５０】
図２７に示されるように、作業用テーブル１２５には、処理ｐ１〜ｐ６のそれぞれについて、当該処理に選択可能な処理エンジン型ごとに、当該処理エンジン型を最後段に含む処理エンジン型の組合せの内容と、当該組合せのコストとが記憶される。すなわち、各処理のレコード（以下、作業用レコードという）において、当該処理に対して選択可能な処理エンジン型の列の下段の行には、当該処理エンジン型を最後段とする処理エンジン型の組合せを示す情報（以下、組合せ情報という）が記憶される。上段の行には当該組合せのコストが記憶される。組合せ情報は、当該組合せを構成する処理エンジン型ごとに「＜処理名＞：＜処理エンジン型＞」の表記を含む。各表記は、処理順に配列され、「，」によって区切られる。
【０１５１】
なお、各処理に関して選択可能な処理型および処理エンジン型には、後述されるような制限がある。例えば、処理ｐ１については、処理エンジン型Ｐ３に関してのみ、コストとして３５が算出されている。後述されるように、処理ｐ１については、処理エンジン型Ｐ３を利用することが、ユーザ等により指定されているからである。
【０１５２】
一方、処理ｐ２については、処理エンジン型Ｐ３と処理エンジン型Ｐ４とが選択可能である。したがって、処理ｐ２については、処理エンジン型Ｐ３が選択された場合のコストおよび組合せ情報と、処理エンジン型Ｐ４が選択された場合のコストおよび組合せ情報とが記憶される。例えばｐ２に関して、処理エンジン型Ｐ３が選択された場合の処理エンジン型の組合せの選択結果は、「ｐ１：Ｐ３，ｐ２：Ｐ３」である。これは、処理ｐ１について処理エンジン型Ｐ３が選択され、処理ｐ２について処理エンジン型Ｐ３が選択されたことを示す。
【０１５３】
続いて、選択部１２０ａは、フロー定義モデル（ＤＦＤ）１１０において最後段処理が、複数、存在するか否かを判定する（ステップＳ１１６）。最後段処理とは、フロー定義モデル（ＤＦＤ）１１０によって定義されるフローにおいて末端となる処理をいう。図５に示されるフロー定義モデル（ＤＦＤ）１１０において、最後段処理は、処理ｐ６の一つだけである。一方、例えば、図２８に示されるフロー定義モデル（ＤＦＤ）１１０については、最後段処理は、複数存在している。
【０１５４】
図２８は、複数の最後段処理を含むフロー定義モデル（ＤＦＤ）１１０の一例を示す図である。図２８に示されるフロー定義モデル（ＤＦＤ）１１０では、処理ｐ５および処理ｐ８の二つの処理が最後段処理である。
【０１５５】
最後段処理が一つである場合（ステップＳ１１６のＮＯルート）、選択部１２０ａは、当該最後段処理に関する作業用レコードの内容を出力し（ステップＳ１１７）、選択処理を終了する。図２７の例では、処理ｐ６について、処理エンジン型Ｐ３の列に記憶されている内容が出力される。
【０１５６】
一方、最後段処理が複数存在する場合（ステップＳ１１６のＹＥＳルート）、選択部１２０ａは、各最後段処理までの処理エンジン型の組合せのコストをマージする（ステップＳ１１８）。このとき、各組合せにおいて同じ処理に関するコストの重複は排除される。例えば、図２８の例では、処理ｐ５について、「処理ｐ１→処理ｐ２→処理ｐ３→処理ｐ４→処理ｐ５」の各処理について選択された処理エンジン型の組合せが作業用テーブル１２５に記憶される。また、処理ｐ８について、「処理ｐ１→処理ｐ２→処理ｐ３→処理ｐ６→処理ｐ７→処理ｐ８」の各処理について選択された処理エンジン型の組合せが作業用テーブル１２５に記憶される。二つの組合せにおいて、「処理ｐ１→処理ｐ２→処理ｐ３」は、重複している。したがって、当該重複部分についてのコストについては、二重に加算されないように、二つの組合せのコストが合算される。具体的には、二つの組合せのコストの和から、「処理ｐ１→処理ｐ２→処理ｐ３」に係るコストが減算される。
【０１５７】
続いて、選択部１２０ａは、マージ結果を出力し（ステップＳ１１９）、選択処理を終了する。
【０１５８】
次に、ステップＳ１１３の詳細について説明する。図２９は、各処理までの処理エンジン型の組合せの選択処理の処理手順の一例を説明するフローチャート（ステップＳ２０１〜Ｓ２１５）である。
【０１５９】
ステップＳ２０１において、選択部１２０ａは、処理ｐｉに対して利用可能な処理エンジン型のうち、未処理の処理エンジン型の一つを代入する。変数ｊは、処理対象とする処理エンジン型を格納するための変数である。以下、変数ｊに係る処理エンジン型を処理エンジン型Ｐｊという。未処理の処理エンジン型とは、ステップＳ２０２以降に関して処理対象とされていない処理エンジン型をいう。
【０１６０】
処理ｐｉに対して利用可能な処理エンジン型は、処理コスト記憶部１２２を参照して特定可能である。
【０１６１】
図３０は、処理コスト記憶部１２２の構成例を示す図である。図３０において、処理コスト記憶部１２２には、フロー定義モデル（ＤＦＤ）１１０を構成する処理ｐ１〜ｐ６について、当該処理に利用可能な処理エンジン型ごとに、当該処理エンジン型による当該処理の処理コストが記憶されている。各処理について値が記憶されていない処理エンジン型については、当該処理に対して利用可能でないことを示す。なお、図３０において、列方向のＰ１〜Ｐ４は、処理エンジン型を示す。
【０１６２】
例えば、処理ｐ１であれば、処理エンジン型Ｐ３およびＰ４を利用可能であり、それぞれの処理コストは、「３５」，「６０」であることが示されている。処理ｐ６であれば、処理エンジン型Ｐ１，Ｐ３またはＰ４を利用可能であり、それぞれの処理コストは、「４００」，「１００」，「１０５」であることが示されている。
【０１６３】
なお、処理コスト記憶部１２２には、各処理エンジン型の処理型についても記憶されている。図３０では、処理エンジン型Ｐ１およびＰ２の処理型は、バッチ処理であり、処理エンジン型Ｐ３およびＰ４の処理型は、リアルタイム処理であることが示されている。
【０１６４】
続いて、選択部１２０ａは、ユーザ要求記憶部１２４から、処理ｐｉに関するレコード（以下、ユーザ要求レコードという）を取得する（ステップＳ２０２）。
【０１６５】
図３１は、ユーザ要求記憶部１２４の構成例を示す図である。図３１において、ユーザ要求記憶部１２４には、処理ｐ１〜ｐ６のうち、処理型または処理エンジン型について予めユーザによる指定がある処理について、指定された処理型または処理エンジン型が記憶されている。図３１には、処理ｐ１およびｐ６の処理エンジン型がＰ３であり、処理ｐ４の処理型がバッチ処理であることが指定された例が示されている。
【０１６６】
取得されたユーザ要求レコードに、処理型または処理エンジン型が指定されている場合（ステップＳ２０３のＹＥＳルート）、選択部１２０ａは、処理エンジン型Ｐｊが、当該ユーザ要求レコードにおける指定に適合するか否かを判定する（ステップＳ２０４）。具体的には、処理エンジン型Ｐｊの処理型が、当該ユーザ要求レコードに指定された処理型であるか、または、処理エンジン型Ｐｊが、当該ユーザ要求レコードに指定された処理エンジン型であるか否かが判定される。処理エンジン型Ｐｊが、当該ユーザ要求レコードの指定に適合しない場合（ステップＳ２０４でＮＯルート）、ステップＳ２０１以降が実行される。すなわち、処理ｐｉに対して利用可能な処理エンジン型のうち、他の処理エンジン型についてステップＳ２０２以降の処理が実行される。処理エンジン型Ｐｊが、当該ユーザ要求レコードの指定に適合する場合（ステップＳ２０４のＹＥＳルート）、選択部１２０ａは、ステップＳ２０７に移行する。
【０１６７】
一方、ステップＳ２０２において取得されたユーザ要求レコードに、処理型および処理エンジン型のいずれについても指定が無い場合（ステップＳ２０３のＮＯルート）、選択部１２０ａは、処理ｐｉに前段処理があるか否かをフロー定義モデル（ＤＦＤ）１１０に基づいて判定する（ステップＳ２０５）。処理ｐｉの前段処理とは、処理ｐｉと直列的な関係を有し、処理ｐｉの一つ前に実行される処理をいう。
【０１６８】
処理ｐｉに前段処理が無い場合（ステップＳ２０５のＮＯルート）、選択部１２０ａは、ステップＳ２０７に進む。処理ｐｉに前段処理がある場合（ステップＳ２０５のＹＥＳルート）、選択部１２０ａは、処理エンジン型Ｐｊの処理型が、いずれかの前段処理に対して選択されている処理型と同じであるか否かを判定する（ステップＳ２０６）。処理エンジン型Ｐｊの処理型が、いずれの前段処理に対して選択されている処理型とも異なる場合（ステップＳ２０６のＮＯルート）、ステップＳ２０１以降の処理が実行される。処理エンジン型Ｐｊの処理型が、いずれかの前段処理に対して選択されている処理型と同じである場合（ステップＳ２０６のＹＥＳルート）、選択部１２０ａは、ステップＳ２０７に移行する。
【０１６９】
すなわち、処理ｐｉに、処理エンジン型の指定がある場合、処理ｐｉについては、当該処理エンジン型のみが選択可能（選択候補）になる。また、処理ｐｉに処理型の指定がある場合、処理ｐｉについては、当該処理型に対応した処理エンジン型のみが選択可能（選択候補）になる。また、処理ｐｉに処理型および処理エンジン型のいずれの指定も無い場合、処理ｐｉについては、いずれかの前段処理の処理型に対応した処理エンジン型が、選択可能（選択候補）になる。ユーザ等による指定がない場合に、前段処理における処理型に合わせられるのは、ユーザの意図しないタイミングで、処理型が変更されるのを回避するためである。すなわち、本実施形態では、或る処理について処理型が指定された場合、ユーザ等は、当該処理以降に関して、同じ処理型で処理が実行されることを予測または期待することができる。
【０１７０】
ステップＳ２０７において、選択部１２０ａは、処理ｐｉに前段処理があるか否かをフロー定義モデル（ＤＦＤ）１１０に基づいて判定する。処理ｐｉに前段処理がない場合（ステップＳ２０７のＮＯルート）、選択部１２０ａは、処理ｐｉに関する処理エンジン型Ｐｊの処理コストを、処理コスト記憶部１２２から取得する（ステップＳ２０８）。続いて、選択部１２０ａは、処理ｐｉに対して処理エンジン型Ｐｊが選択されたことを示す組合せ情報（「ｐｉ：Ｐｊ」）と、取得された処理コストとを、処理ｐｉの作業用レコードの処理エンジン型Ｐｊの列に記憶する（ステップＳ２１２）。
【０１７１】
続いて、選択部１２０ａは、処理ｐｉに利用可能な処理エンジン型のうち、ユーザ要求記憶部１２４に記憶されている要求を満たす全ての処理エンジン型について、ステップＳ２０１以降の処理が実行されたか否かを判定する（ステップＳ２１３）。未処理の処理エンジン型がある場合（ステップＳ２１３のＮＯルート）、当該処理エンジン型についてステップＳ２０１以降の処理が実行される。
【０１７２】
未処理の処理エンジン型が無い場合（ステップＳ２１３のＹＥＳルート）、選択部１２０ａは、ステップＳ２１４に移行する。例えば、処理ｐｉが処理ｐ１である場合、この時点において、作業用テーブル１２５には、図３２に示されるような作業用レコードが記録されている。
【０１７３】
図３２は、処理ｐ１に関する作業用レコードの第１の例を示す図である。図３２では、処理エンジン型Ｐ３の列に、コストと組合せ情報とが記憶されている。図３０より、処理ｐ１については、処理エンジン型Ｐ３および処理エンジン型Ｐ４が利用可能であり、それぞれの処理エンジン型による処理コストは「３５」，「６０」である。ただし、図３１より、処理ｐ１については、処理エンジン型Ｐ３を利用することが、ユーザ等によって指定されている。したがって、処理ｐ１については、処理エンジン型Ｐ３に関する処理コストと、処理ｐ１に対して処理エンジン型Ｐ３が選択されたことを示す組合せ情報（「ｐ１：Ｐ３」）とが記憶される。仮に、処理ｐ１に関する処理型および処理エンジン型について、ユーザ等による指定が無い場合、処理ｐ１に関しては、図３３に示されるような作業用レコードが、作業用テーブル１２５に記憶される。
【０１７４】
図３３は、処理ｐ１に関する作業用レコードの第２の例を示す図である。図３３では、処理エンジン型Ｐ３に対する処理コストおよび組合せ情報に加え、処理エンジン型Ｐ４に対する処理コストおよび組合せ情報が記憶された例が示されている。図３３に示すように、複数の処理エンジン型に関してコストおよび組合せ情報が記憶されている状態は、当該処理までの処理エンジン型の組合せが一意に確定されていないことを示す。
【０１７５】
ステップＳ２１４において、選択部１２０ａは、処理ｐｉには後段処理が複数存在するか否かを判定する。処理ｐｉの後段処理とは、処理ｐｉと直列的な関係を有し、処理ｐｉの一つ後に実行される処理をいう。処理ｐｉの後段処理が複数ある場合とは、処理ｐｉの後で分岐が発生する場合である。図５の例では、処理ｐ１には、後段処理として処理ｐ２および処理ｐ４が存在する。
【０１７６】
処理ｐｉに後段処理が複数ある場合（ステップＳ２１４のＹＥＳルート）、選択部１２０ａは、処理ｐｉの作業用レコードのうち、コストが最小でない組合せを削除する（ステップＳ２１５）。例えば、処理ｐ１の作業用レコードが、図３３に示されるような場合、コストが「６０」である組合せに係る列は削除される。その結果、処理ｐ１の作業用レコードは、図３２に示されるようになる。
【０１７７】
すなわち、本実施形態では、処理ｐｉに後段処理が複数ある場合、処理ｐｉまでの処理エンジン型の組合せのうち、コストが最小である組合せによって、処理ｐｉまでの処理エンジン型の組合せが確定される。そうすることにより、処理ｐｉよりも後の分岐先の各処理に関してコストが最小になる処理エンジン型の組合せを探索するための計算量を削減することができる。すなわち、処理ｐｉと各後段処理における処理エンジン型との接続コストを考慮すれば、処理ｐｉまでの処理エンジン型の組合せのうち、コストが最小である組合せは、必ずしも全体の組合せに対して最適な組合せであるとは限らない。しかし、本実施形態では、このような可能性を無視することで、現実的な計算量の範囲内において、最適な解に近似した解が得られる。
【０１７８】
一方、ステップＳ２０７において、処理ｐｉに前段処理がある場合（ステップＳ２０７のＹＥＳルート）、選択部１２０ａは、処理ｐｉの全ての前段処理の作業用レコード取得する（Ｓ２０９）。すなわち、処理ｐｉが、図５に示される処理ｐ２，ｐ３，ｐ４またはｐ５のように前段処理を一つだけ有する場合は、当該一つの前段処理の作業用レコードが取得される。一方、処理ｐｉが、処理ｐ６のように前段処理を複数有する場合は、当該複数の前段処理のそれぞれの作業用レコードが取得される。
【０１７９】
続いて、選択部１２０ａは、取得された作業用レコードに記憶されている組合せごとに、当該組合せに対して処理エンジン型Ｐｊを最後段に追加（又は接続）した場合の、処理コストおよび接続コストの総和を算出する（ステップＳ２１０）。
【０１８０】
ここでは、処理ｐｉは処理ｐ２であり、処理エンジン型Ｐｊは、処理エンジン型Ｐ３であるとする。また、便宜上、前段処理である処理ｐ１の作業用レコードは、図３３に示される通りであるとする。この場合、図３３に示される、「ｐ１：Ｐ３」の組合せに対して「ｐ２：Ｐ３」を追加した「ｐ１：Ｐ３，ｐ２：Ｐ３」の組合せに対するコスト１と、「ｐ１：Ｐ４」の組合せに対して「ｐ２：Ｐ３」を追加した「ｐ１：Ｐ４，ｐ２：Ｐ３」の組合せに対するコスト２とが算出される。
【０１８１】
コスト１は、「処理エンジン型Ｐ３による処理ｐ１の処理コスト＋処理エンジン型Ｐ３どうしの接続コスト＋処理エンジン型Ｐ３による処理ｐ２の処理コスト」によって算出される。コスト２は、「処理エンジン型Ｐ４による処理ｐ１の処理コスト＋処理エンジン型Ｐ４と処理エンジン型Ｐ３との接続コスト＋処理エンジン型Ｐ３による処理ｐ２の処理コスト」によって算出される。
【０１８２】
図３０より、処理エンジン型Ｐ３による処理ｐ１の処理コストは、「３５」である。処理エンジン型Ｐ３による処理ｐ２の処理コストは、「４０」である。処理エンジン型Ｐ４による処理ｐ１の処理コストは、「６０」である。
【０１８３】
一方、接続コストは、接続コスト記憶部１２３を参照して特定することができる。図３４は、接続コスト記憶部１２３の構成例を示す図である。図３４において、接続コスト記憶部１２３は、行方向の処理エンジン型と、列方向の処理エンジン型との組ごとに、当該組に係る処理エンジン型間の接続コストを記憶する。
【０１８４】
図３４によれば、処理エンジン型Ｐ３同士の接続コストは、「５」である。処理エンジン型Ｐ４と処理エンジン型Ｐ３との接続コストは、「２０」である。
【０１８５】
上記より、
コスト１＝３５＋５＋４０＝８０
コスト２＝６０＋２０＋４０＝１２０
となる。
【０１８６】
続いて、選択部１２０ａは、コストが最小である組合せを、処理ｐｉの処理エンジン型Ｐｊに対する組合せとして選択する（ステップＳ２１１）。ここでは、コスト１に係る組合せである「ｐ１：Ｐ３，ｐ２：Ｐ３」が選択される。
【０１８７】
このように、本実施形態では、フロー定義モデル（ＤＦＤ）１１０を構成する処理ごとに、当該処理において選択可能な処理エンジン型について、コストが最小となる組合せが選択される。換言すれば、コストが最小でない組合せは、以降の処理に関して計算の対象から除外される。したがって、全ての組合せについてコストが計算される場合に比べて、計算量を削減することができる。
【０１８８】
続いて、ステップＳ２１２以降の処理が実行される。ここでは、ステップＳ２１２において、処理ｐ２の作業用レコードの処理エンジン型Ｐ３の列のコストに８０が記憶され、組合せ情報に「ｐ１：Ｐ３，ｐ２：Ｐ３」が記憶される。
【０１８９】
なお、本実施形態において、処理ｐ１に関する本来のレコードは、図３２に示される通りである。したがって、処理ｐ２の処理エンジン型Ｐ３については、コスト１のみが算出される。また、図３０より、処理ｐ２には、処理エンジン型Ｐ１，Ｐ３およびＰ４を利用可能であるが、ステップＳ２０６の作用により、処理エンジン型Ｐ１は、除外される。したがって、処理ｐ２については、処理エンジン型Ｐ３と処理エンジン型Ｐ４とのそれぞれについて、ステップＳ２０９以降の処理が実行される。その結果、処理ｐ２については、図３５に示されるような作業用レコードが記憶される。
【０１９０】
図３５は、処理ｐ２に関する作業用レコードの例を示す図である。図３５に示される処理ｐ２の作業用レコードには、処理エンジン型Ｐ３に関して「ｐ１：Ｐ３，ｐ２：Ｐ３」の組合せ情報が記憶され、処理エンジン型Ｐ４に関して「ｐ１：Ｐ３，ｐ２：Ｐ４」が記憶されている。処理ｐｉが処理ｐ２の時点では、処理ｐ２までの処理エンジン型の組合せについて、「ｐ１：Ｐ３，ｐ２：Ｐ３」と「ｐ１：Ｐ３，ｐ２：Ｐ４」とのいずれが最適であるかは確定されていない。したがって、処理ｐ２の作業用レコードには二つの組合せ情報が記憶されている。
【０１９１】
図５における処理ｐ３以降について具体的に説明する。処理ｐ３については、図３０によれば、処理エンジン型Ｐ１，Ｐ３およびＰ４を利用可能である。ただし、処理エンジン型Ｐ１については、処理ｐ３の前段処理である処理ｐ２における処理エンジン型Ｐ３およびＰ４のいずれとも処理型が異なる。したがって、処理エンジン型Ｐ１は、組合せの対象から除外され、処理エンジン型Ｐ３およびＰ４のそれぞれに関して、処理ｐ２における二つの組合せに追加された場合のコストが算出される。
【０１９２】
処理エンジン型Ｐ３が、「ｐ１：Ｐ３，ｐ２：Ｐ３」の組合せに追加された場合のコスト３と、「ｐ１：Ｐ３，ｐ２：Ｐ４」の組合せに追加された場合のコスト４とのそれぞれは、以下の通りである。
【０１９３】
コスト３＝８０＋５＋９０＝１７５
コスト４＝１０５＋２０＋９０＝２１５
コスト３＜コスト４であるから、処理ｐ３の作業用レコードにおいて、処理エンジン型Ｐ３に関するコストには「１７５」が記憶され、組合せ情報には、「ｐ１：Ｐ３，ｐ２：Ｐ３，ｐ３：Ｐ３」が記憶される（図２７参照）。
【０１９４】
一方、処理エンジン型Ｐ４が、「ｐ１：Ｐ３，ｐ２：Ｐ３」の組合せに追加された場合のコスト５と、「ｐ１：Ｐ３，ｐ２：Ｐ４」の組合せに追加された場合のコスト６とのそれぞれは、以下の通りである。
【０１９５】
コスト５＝８０＋２０＋４０＝１４０
コスト６＝１０５＋１０＋４０＝１５５
コスト５＜コスト６であるから、処理ｐ３の作業用レコードにおいて、処理エンジン型Ｐ４に関するコストには「１４０」が記憶され、組合せ情報には「ｐ１：Ｐ３，ｐ２：Ｐ３，ｐ３：Ｐ４」が記憶される（図２７参照）。
【０１９６】
処理ｐ４については、図３０によれば、処理エンジン型Ｐ１〜Ｐ４を利用可能である。ただし、処理ｐ４のユーザ要求レコード（図３１）において、処理ｐ４の処理型はバッチ型であることが指定されている。したがって、処理ｐ４については、処理エンジン型Ｐ１およびＰ２のそれぞれに関して、処理ｐ３における二つの組合せに追加された場合のコストが計算される。
【０１９７】
処理エンジン型Ｐ１が、処理ｐ４の前段処理である処理ｐ１における「ｐ１：Ｐ３」の組合せに追加された場合のコスト７は、以下の通りである。
【０１９８】
コスト７＝３５＋９０＋２００＝３２５
また、処理エンジン型Ｐ２が、処理ｐ１における「ｐ１：Ｐ３」の組合せに追加された場合のコスト８は、以下の通りである。
【０１９９】
コスト８＝３５＋８０＋３００＝４１５
したがって、処理ｐ４の作業用レコードには、処理エンジン型Ｐ１に対して、コスト「３５」が記憶され、組合せ情報「ｐ１：Ｐ３，ｐ４：Ｐ１」が記憶される。また、処理エンジン型Ｐ２に対して、コスト「４１５」が記憶され、組合せ情報「ｐ１：Ｐ３，ｐ４：Ｐ２」が記憶される。
【０２００】
処理ｐ５については、図３０によれば、処理エンジン型Ｐ２および処理エンジン型Ｐ３を利用可能である。ただし、処理ｐ５の前段処理である処理ｐ４における処理エンジン型Ｐ１およびＰ２の処理型は、いずれもバッチ処理である。したがって、処理エンジン型Ｐ２に関して、処理ｐ４における二つの組合せに追加された場合のコストが計算される。
【０２０１】
処理エンジン型Ｐ２が、処理ｐ４における「ｐ１：Ｐ３，ｐ４：Ｐ１」に追加された場合のコスト９と、処理ｐ４における「ｐ１：Ｐ３，ｐ４：Ｐ２」に追加された場合のコスト１０とのそれぞれは、以下の通りである。
【０２０２】
コスト９＝３２５＋５５＋３５０＝７３０
コスト１０＝４１５＋３０＋３５０＝７９５
コスト９＜コスト１０であるから、処理ｐ５の作業用レコードには、処理エンジン型Ｐ２に対して、コスト「７３０」が記憶され、組合せ情報「ｐ１：Ｐ３，ｐ４：Ｐ１，ｐ５：Ｐ２」が記憶される。
【０２０３】
処理ｐ６については、図３０によれば、処理エンジン型Ｐ１，Ｐ３およびＰ４を利用可能である。ただし、処理ｐ６のユーザ要求レコード（図３１）において、処理ｐ６には処理エンジン型Ｐ３を利用することが指定されている。したがって、処理ｐ６については、処理エンジン型Ｐ３に関して、処理ｐ６の前段処理である処理ｐ３の組合せと処理ｐ５の組合せとの組合せに、処理エンジン型Ｐ３が追加された場合のコストが計算される。ここで、処理ｐ３の組合せと処理ｐ５の組合せとの組合せとは、処理ｐ３における二つの組合せのそれぞれについて、処理ｐ５の一つの組合せが適用された２通りの組合せをいう。仮に、処理ｐ５に二つの組合せが有った場合、処理ｐ３の組合せと処理ｐ５の組合せとの組合せは、４通りになる。
【０２０４】
処理ｐ３における「ｐ１：Ｐ３，ｐ２：Ｐ３，ｐ３：Ｐ３」の組合せと、処理ｐ５における「ｐ１：Ｐ３，ｐ４：Ｐ１，ｐ５：Ｐ２」の組合せとの組合せに対して処理エンジン型Ｐ３が追加された場合のコスト１１は、以下の通りである。
【０２０５】
コスト１１＝７３０−３５＋８０＋１７５＋５＋１００＝１０５５
ここで、７３０は、処理ｐ５の組合せのコストである。１７５は、処理ｐ３の組合せのコストである。８０は、処理ｐ５の処理エンジン型Ｐ２と処理ｐ６の処理エンジン型Ｃとの接続コストである。５は、処理ｐ３の処理エンジン型Ｐ３と、処理ｐ６の処理エンジン型Ｐ３との接続コストである。また、−３５は、「ｐ１：Ｐ３，ｐ２：Ｐ３，ｐ３：Ｐ３」と「ｐ１：Ｐ３，ｐ４：Ｐ１，ｐ５：Ｐ２」との重複部分である「ｐ１：Ｐ３」に関する処理コストの二重の加算を回避するための項である。なお、二重の加算の回避は、図２６のステップＳ１１８においても同様に行なわれる。
【０２０６】
一方、処理ｐ３における「ｐ１：Ｐ３，ｐ２：Ｐ３，ｐ３：Ｐ４」の組合せと、処理ｐ５における「ｐ１：Ｐ３，ｐ４：Ｐ１，ｐ５：Ｐ２」の組合せとの組合せに対して処理エンジン型Ｐ３が追加された場合のコスト１２は、以下の通りである。
【０２０７】
コスト１２＝７３０−３５+８０＋１４０＋２０＋１００＝１０３５
コスト１１＞コスト１２であるから、コスト１２に係る組合せに対して、処理ｐ６の処理エンジン型Ｐ３が追加される。その結果、処理ｐ６の作業用テーブル１２５には、処理エンジン型Ｐ３に対して、コスト「１０３５」が記憶され、組合せ情報「ｐ１：Ｐ３，ｐ２：Ｐ３，ｐ３：Ｐ４，ｐ４：Ｐ１，ｐ５：Ｐ２，ｐ６：Ｐ３」が記憶される（図２７参照）。
【０２０８】
最後段処理に記憶された組合せ情報が、各処理に対して選択された処理エンジン型の組合せを示す情報である。
【０２０９】
図３６は、図３０，図３１および図３４に示す構成例に基づき選択部１２０ａによって得られる選択結果の一例を示す図である。図３６に示すように、処理ｐ１〜ｐ６について、それぞれ、処理エンジン型Ｐ３，Ｐ３，Ｐ４，Ｐ１，Ｐ２，Ｐ３の組合せが選択された例が示されている。当該組合せが、処理コストおよび接続コストを含むコストにおいて最適な解に近似した解である。このとき、処理エンジン型Ｐ１〜Ｐ４のデータ伝送型がそれぞれＤ１〜Ｄ４とすると、データｄ１前後のデータ伝送型としてＤ３／Ｄ３が選択され、データｄ２前後のデータ伝送型としてＤ３／Ｄ４が選択され、データｄ３前後のデータ伝送型としてＤ４／Ｄ３が選択される。また、データｄ４前後のデータ伝送型としてＤ３／Ｄ１が選択され、データｄ５前後のデータ伝送型としてＤ１／Ｄ２が選択され、データｄ６前後のデータ伝送型としてＤ２／Ｄ３が選択される。
【０２１０】
上述したように、本実施形態の選択部１２０を用いることで、分岐および合流や、複数の入出力を含む任意の大きさのフロー定義モデル１１０を構成する各処理について、複数の処理エンジン型の中から、適切な処理エンジン型を選択することができる。その際、ユーザ等の要求を反映しつつ、処理エンジン間のデータ伝送または変換を含めてコストが最小に近くなるような処理エンジン型やデータ伝送型を、現実的な時間で選択することができる。よって、相互に前後関係を有する複数の処理のそれぞれに利用するソフトウェアの選択を効率化することができる。
【０２１１】
なお、本実施形態の選択部１２０では、各処理に対して選択されるソフトウェアが処理エンジンである例について説明したが、他のソフトウェアの選択に関して、本実施形態の選択部１２０が適用されてもよい。例えば、ライブラリまたはコンポーネントと呼ばれるソフトウェアを組み合わせてアプリケーションを作成する場合であって、アプリケーションを構成する各処理について、複数の選択肢の中からいずれかのソフトウェアを選択する必要がある場合に、本実施形態の選択部１２０が適用されてもよい
【０２１２】
〔７〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
【０２１３】
なお、上述した実施形態では、図５に示すようなフロー定義モデル（ＤＦＤ）１１０についてコンピュータ１０（選択部１２０ａ）の動作について説明したが、本発明は、これに限定されるものではない。また、上述した実施形態では、処理型がバッチ処理またはリアルタイム処理であり、処理エンジン型が３種類または４種類であり、データ伝送方が３種類または４種類である場合について説明したが、本発明は、これに限定されるものではない。
【０２１４】
〔８〕付記
以上の各実施形態を含む実施形態に関し、さらに以下の付記を開示する。
【０２１５】
（付記１）
フロー定義モデルにより複数種類の処理コンポーネントを組み合わせてシステムを構築する開発実行環境において、前記フロー定義モデルによって定義される、処理と当該処理の対象データとを含む要素ごとに、当該処理に用いられる処理エンジンの処理エンジン型もしくは当該処理の対象データのデータ伝送型を選択し、
前記処理エンジン型を選択された前記処理ごとに、もしくは、前記データ伝送型を選択された前記対象データごとに、各処理エンジン型と当該処理エンジン型用のモデル変換エンジンとを対応付ける第１管理テーブルと、各モデル変換エンジンが前記フロー定義モデルを定義ファイルに変換する際に用いるモデル変換ルールを処理エンジン型ごとに管理する第２管理テーブルとを参照して、当該処理もしくは当該対象データに応じたモデル変換エンジンおよびモデル変換ルールを選択し、
選択されたモデル変換エンジンおよびモデル変換ルールを用いて前記フロー定義モデルから前記定義ファイルを生成する、
処理をコンピュータに実行させる、定義ファイル生成プログラム。
【０２１６】
（付記２）
新規の処理エンジン型と当該新規の処理エンジン型用の新規のモデル変換エンジンとの対応関係を前記第１管理テーブルに追加登録するとともに、当該新規のモデル変換エンジンが前記フロー定義モデルを前記定義ファイルに変換する際に用いるモデル変換ルールを前記第２管理テーブルに追加登録することにより、前記新規の処理エンジン型を動的に追加する、
処理を前記コンピュータに実行させる、付記１に記載の定義ファイル生成プログラム。
【０２１７】
（付記３）
前記第２管理テーブルは、各処理エンジン型での各処理の種類についての第１モデル変換ルールを前記モデル変換ルールとして管理し、
前記処理エンジン型を選択された前記処理ごとに、当該処理エンジン型に対応するモデル変換エンジンを前記第１管理テーブルから選択するとともに、当該処理の種類および当該処理エンジン型に対応するモデル変換ルールを前記第１モデル変換ルールから選択する、
処理を前記コンピュータに実行させる、付記１または付記２に記載の定義ファイル生成プログラム。
【０２１８】
（付記４）
前記第２管理テーブルは、各処理エンジン型での各データ伝送型におけるデータ伝送処理についての第２モデル変換ルールを前記モデル変換ルールとして管理し、
前記データ伝送型を選択された前記対象データごとに、当該対象データの前後におけるデータ伝送型が同一であるか否かを判断し、当該対象データの前後におけるデータ伝送型が同一である場合、当該対象データ前後の処理のいずれか一方の処理エンジン型に対応するモデル変換エンジンを前記第１管理テーブルから選択するとともに、当該いずれか一方の処理エンジン型でのデータ伝送型についてのデータ伝送処理のモデル変換ルールを前記第２モデル変換ルールから選択する、
処理を前記コンピュータに実行させる、付記１〜付記３のいずれか一項に記載の定義ファイル生成プログラム。
【０２１９】
（付記５）
前記第２管理テーブルは、各処理エンジン型での各データ伝送型から異なるデータ伝送型へのデータ変換処理についての第３モデル変換ルールと、各処理エンジン型での実行開始処理についての第４モデル変換ルールと、を前記モデル変換ルールとして管理し、
前記データ伝送型を選択された前記対象データごとに、当該対象データの前後におけるデータ伝送型が同一であるか否かを判断し、
当該対象データの前後におけるデータ伝送型が同一でない場合、
当該対象データの前段処理の処理エンジン型に対応するモデル変換エンジンを前記第１管理テーブルから選択するとともに、前記前段処理の処理エンジン型での前段データ伝送型と後段データ伝送型との組に対応するデータ変換処理のモデル変換ルールを前記第３モデル変換ルールから選択し、
当該対象データの後段処理の処理エンジン型に対応するモデル変換エンジンを前記第１管理テーブルから選択するとともに、前記後段処理の処理エンジン型での前記後段処理を所定タイミングで実行する実行開始処理のモデル変換ルールを前記第４モデル変換ルールから選択する、
処理を前記コンピュータに実行させる、付記１〜付記４のいずれか一項に記載の定義ファイル生成プログラム。
【０２２０】
（付記６）
相互に前後関係を有する複数の前記処理のそれぞれについて、前記処理エンジン型ごとに、当該処理よりも前の各処理に関して選択された処理エンジン型の１以上の組合せの中から、当該処理エンジン型の処理エンジンが最後段に追加された場合のコストが最小となる組合せを選択することで、各処理で用いられる処理エンジン型と各処理の対象データのデータ伝送型とを選択する、
処理を前記コンピュータに実行させる、付記１〜付記５のいずれか一項に記載の定義ファイル生成プログラム。
【０２２１】
（付記７）
前記コストは、前記組合せに属する各処理エンジン型の処理に要される処理コストと、前記組合せに属する処理エンジン型のうち前記前後関係において隣接する処理に係る処理エンジン型の接続に要される接続コストとを含む、付記６に記載の定義ファイル生成プログラム。
【０２２２】
（付記８）
コンピュータが、
フロー定義モデルにより複数種類の処理コンポーネントを組み合わせてシステムを構築する開発実行環境において、前記フロー定義モデルによって定義される、処理と当該処理の対象データとを含む要素ごとに、当該処理に用いられる処理エンジンの処理エンジン型もしくは当該処理の対象データのデータ伝送型を選択し、
前記処理エンジン型を選択された前記処理ごとに、もしくは、前記データ伝送型を選択された前記対象データごとに、各処理エンジン型と当該処理エンジン型用のモデル変換エンジンとを対応付ける第１管理テーブルと、各モデル変換エンジンが前記フロー定義モデルを定義ファイルに変換する際に用いるモデル変換ルールを処理エンジン型ごとに管理する第２管理テーブルとを参照して、当該処理もしくは当該対象データに応じたモデル変換エンジンおよびモデル変換ルールを選択し、
選択されたモデル変換エンジンおよびモデル変換ルールを用いて前記フロー定義モデルから前記定義ファイルを生成する、定義ファイル生成方法。
【０２２３】
（付記９）
前記コンピュータは、新規の処理エンジン型と当該新規の処理エンジン型用の新規のモデル変換エンジンとの対応関係を前記第１管理テーブルに追加登録するとともに、当該新規のモデル変換エンジンが前記フロー定義モデルを前記定義ファイルに変換する際に用いるモデル変換ルールを前記第２管理テーブルに追加登録することにより、前記新規の処理エンジン型を動的に追加する、付記８に記載の定義ファイル生成方法。
【０２２４】
（付記１０）
前記第２管理テーブルは、各処理エンジン型での各処理の種類についての第１モデル変換ルールを前記モデル変換ルールとして管理し、
前記コンピュータは、前記処理エンジン型を選択された前記処理ごとに、当該処理エンジン型に対応するモデル変換エンジンを前記第１管理テーブルから選択するとともに、当該処理の種類および当該処理エンジン型に対応するモデル変換ルールを前記第１モデル変換ルールから選択する、付記８または付記７に記載の定義ファイル生成方法。
【０２２５】
（付記１１）
前記第２管理テーブルは、各処理エンジン型での各データ伝送型におけるデータ伝送処理についての第２モデル変換ルールを前記モデル変換ルールとして管理し、
前記コンピュータは、前記データ伝送型を選択された前記対象データごとに、当該対象データの前後におけるデータ伝送型が同一であるか否かを判断し、当該対象データの前後におけるデータ伝送型が同一である場合、当該対象データ前後の処理のいずれか一方の処理エンジン型に対応するモデル変換エンジンを前記第１管理テーブルから選択するとともに、当該いずれか一方の処理エンジン型でのデータ伝送型についてのデータ伝送処理のモデル変換ルールを前記第２モデル変換ルールから選択する、付記８〜付記１０のいずれか一項に記載の定義ファイル生成方法。
【０２２６】
（付記１２）
前記第２管理テーブルは、各処理エンジン型での各データ伝送型から異なるデータ伝送型へのデータ変換処理についての第３モデル変換ルールと、各処理エンジン型での実行開始処理についての第４モデル変換ルールと、を前記モデル変換ルールとして管理し、
前記コンピュータは、
前記データ伝送型を選択された前記対象データごとに、当該対象データの前後におけるデータ伝送型が同一であるか否かを判断し、
当該対象データの前後におけるデータ伝送型が同一でない場合、
当該対象データの前段処理の処理エンジン型に対応するモデル変換エンジンを前記第１管理テーブルから選択するとともに、前記前段処理の処理エンジン型での前段データ伝送型と後段データ伝送型との組に対応するデータ変換処理のモデル変換ルールを前記第３モデル変換ルールから選択し、
当該対象データの後段処理の処理エンジン型に対応するモデル変換エンジンを前記第１管理テーブルから選択するとともに、前記後段処理の処理エンジン型での前記後段処理を所定タイミングで実行する実行開始処理のモデル変換ルールを前記第４モデル変換ルールから選択する、付記８〜付記１１のいずれか一項に記載の定義ファイル生成方法。
【０２２７】
（付記１３）
前記コンピュータは、相互に前後関係を有する複数の前記処理のそれぞれについて、前記処理エンジン型ごとに、当該処理よりも前の各処理に関して選択された処理エンジン型の１以上の組合せの中から、当該処理エンジン型の処理エンジンが最後段に追加された場合のコストが最小となる組合せを選択することで、各処理で用いられる処理エンジン型と各処理の対象データのデータ伝送型とを選択する、付記８〜付記１２のいずれか一項に記載の定義ファイル生成方法。
【０２２８】
（付記１４）
前記コストは、前記組合せに属する各処理エンジン型の処理に要される処理コストと、前記組合せに属する処理エンジン型のうち前記前後関係において隣接する処理に係る処理エンジン型の接続に要される接続コストとを含む、付記１３に記載の定義ファイル生成方法。
【０２２９】
（付記１５）
処理部と記憶部とを有し、
前記処理部は、
フロー定義モデルにより複数種類の処理コンポーネントを組み合わせてシステムを構築する開発実行環境において、前記フロー定義モデルによって定義される、処理と当該処理の対象データとを含む要素ごとに、当該処理に用いられる処理エンジンの処理エンジン型もしくは当該処理の対象データのデータ伝送型を選択し、前記フロー定義モデルによって定義される処理ごとに、当該処理に用いられる処理エンジンの処理エンジン型と当該処理の対象データのデータ伝送型とを選択し、
前記処理エンジン型を選択された前記処理ごとに、もしくは、前記データ伝送型を選択された前記対象データごとに、各処理エンジン型と当該処理エンジン型用のモデル変換エンジンとを対応付ける第１管理テーブルと、各モデル変換エンジンが前記フロー定義モデルを定義ファイルに変換する際に用いるモデル変換ルールを処理エンジン型ごとに管理する第２管理テーブルとを参照して、当該処理もしくは当該対象データに応じたモデル変換エンジンおよびモデル変換ルールを選択し、
選択されたモデル変換エンジンおよびモデル変換ルールを用いて前記フロー定義モデルから前記定義ファイルを生成するとともに、
前記記憶部は、前記第１管理テーブルおよび前記第２管理テーブルを保存する、情報処理装置。
【０２３０】
（付記１６）
前記処理部は、新規の処理エンジン型と当該新規の処理エンジン型用の新規のモデル変換エンジンとの対応関係を前記第１管理テーブルに追加登録するとともに、当該新規のモデル変換エンジンが前記フロー定義モデルを前記定義ファイルに変換する際に用いるモデル変換ルールを前記第２管理テーブルに追加登録することにより、前記新規の処理エンジン型を動的に追加する、付記１５に記載の情報処理装置。
【０２３１】
（付記１７）
前記第２管理テーブルは、各処理エンジン型での各処理の種類についての第１モデル変換ルールを前記モデル変換ルールとして管理し、
前記処理部は、前記処理エンジン型を選択された前記処理ごとに、当該処理エンジン型に対応するモデル変換エンジンを前記第１管理テーブルから選択するとともに、当該処理の種類および当該処理エンジン型に対応するモデル変換ルールを前記第１モデル変換ルールから選択する、付記１５または付記１６に記載の情報処理装置。
【０２３２】
（付記１８）
前記第２管理テーブルは、各処理エンジン型での各データ伝送型におけるデータ伝送処理についての第２モデル変換ルールを前記モデル変換ルールとして管理し、
前記処理部は、前記データ伝送型を選択された前記対象データごとに、当該対象データの前後におけるデータ伝送型が同一であるか否かを判断し、当該対象データの前後におけるデータ伝送型が同一である場合、当該対象データ前後の処理のいずれか一方の処理エンジン型に対応するモデル変換エンジンを前記第１管理テーブルから選択するとともに、当該いずれか一方の処理エンジン型でのデータ伝送型についてのデータ伝送処理のモデル変換ルールを前記第２モデル変換ルールから選択する、付記１５〜付記１７のいずれか一項に記載の情報処理装置。
【０２３３】
（付記１９）
前記第２管理テーブルは、各処理エンジン型での各データ伝送型から異なるデータ伝送型へのデータ変換処理についての第３モデル変換ルールと、各処理エンジン型での実行開始処理についての第４モデル変換ルールと、を前記モデル変換ルールとして管理し、
前記処理部は、
前記データ伝送型を選択された前記対象データごとに、当該対象データの前後におけるデータ伝送型が同一であるか否かを判断し、
当該対象データの前後におけるデータ伝送型が同一でない場合、
当該対象データの前段処理の処理エンジン型に対応するモデル変換エンジンを前記第１管理テーブルから選択するとともに、前記前段処理の処理エンジン型での前段データ伝送型と後段データ伝送型との組に対応するデータ変換処理のモデル変換ルールを前記第３モデル変換ルールから選択し、
当該対象データの後段処理の処理エンジン型に対応するモデル変換エンジンを前記第１管理テーブルから選択するとともに、前記後段処理の処理エンジン型での前記後段処理を所定タイミングで実行する実行開始処理のモデル変換ルールを前記第４モデル変換ルールから選択する、付記８〜付記１１のいずれか一項に記載の情報処理装置。
【０２３４】
（付記２０）
前記処理部は、相互に前後関係を有する複数の前記処理のそれぞれについて、前記処理エンジン型ごとに、当該処理よりも前の各処理に関して選択された処理エンジン型の１以上の組合せの中から、当該処理エンジン型の処理エンジンが最後段に追加された場合のコストが最小となる組合せを選択することで、各処理で用いられる処理エンジン型と各処理の対象データのデータ伝送型とを選択する、付記１５〜付記１９のいずれか一項に記載の情報処理装置。
【符号の説明】
【０２３５】
１０    コンピュータ（定義ファイル生成機能を有する情報処理装置）
１１    プロセッサ（処理部）
１２    ＲＡＭ（記憶部）
１３    ＨＤＤ（記憶部）
１４    グラフィック処理装置
１４ａ    モニタ
１５    入力インタフェース
１５ａ    キーボード
１５ｂ    マウス
１６    光学ドライブ装置
１６ａ    光ディスク
１７    機器接続インタフェース
１７ａ    メモリ装置
１７ｂ    メモリリーダライタ
１７ｃ    メモリカード
１８    ネットワークインタフェース
１８ａ    ネットワーク
１９    バス
１１０    フロー定義モデル（ＤＦＤ）
１２０    処理エンジン型／データ伝送型選択部
１２０ａ    選択部
１２１    ＤＦＤ記憶部
１２２    処理コスト記憶部
１２３    接続コスト記憶部
１２４    ユーザ要求記憶部
１２５    作業用テーブル
１３０Ａ    処理と処理エンジン型との対応表
１３０Ｂ    データとデータ伝送型との対応表
１３０Ｃ    実行タイミング管理表
１４０    定義ファイル生成部
１５０    モデル変換ルール登録部
１６０    モデル変換エンジン登録部
１７０    モデル変換エンジン管理表（第１管理テーブル）
１８０    モデル変換ルール管理表（第２管理テーブル）
１８０Ａ    モデル変換ルール（第１モデル変換ルール）
１８０Ｂ    モデル変換ルール（第４モデル変換ルール）
１８０Ｃ    モデル変換ルール（第２モデル変換ルール）
１８０Ｄ    モデル変換ルール（第３モデル変換ルール）
１９０    定義ファイル
２００    モデル変換エンジンプログラム
２１０    モデル変換ルール情報
【図１】
0006372350.tif 000002
【図２】
0006372350.tif 000003
【図３】
0006372350.tif 000004
【図４】
0006372350.tif 000005
【図５】
0006372350.tif 000006
【図６】
0006372350.tif 000007
【図７】
0006372350.tif 000008
【図８】
0006372350.tif 000009
【図９】
0006372350.tif 000010
【図１０】
0006372350.tif 000011
【図１１】
0006372350.tif 000012
【図１２】
0006372350.tif 000013
【図１３】
0006372350.tif 000014
【図１４】
0006372350.tif 000015
【図１５】
0006372350.tif 000016
【図１６】
0006372350.tif 000017
【図１７】
0006372350.tif 000018
【図１８】
0006372350.tif 000019
【図１９】
0006372350.tif 000020
【図２０】
0006372350.tif 000021
【図２１】
0006372350.tif 000022
【図２２】
0006372350.tif 000023
【図２３】
0006372350.tif 000024
【図２４】
0006372350.tif 000025
【図２５】
0006372350.tif 000026
【図２６】
0006372350.tif 000027
【図２７】
0006372350.tif 000028
【図２８】
0006372350.tif 000029
【図２９】
0006372350.tif 000030
【図３０】
0006372350.tif 000031
【図３１】
0006372350.tif 000032
【図３２】
0006372350.tif 000033
【図３３】
0006372350.tif 000034
【図３４】
0006372350.tif 000035
【図３５】
0006372350.tif 000036
【図３６】
0006372350.tif 000037