以下に、図面を参照し、本願の開示する定義ファイル生成プログラム、定義ファイル生成方法、および情報処理装置の実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔1〕定義ファイル生成機能を実現する情報処理装置のハードウェア構成
まず、図2を参照しながら、本実施形態の定義ファイル生成機能を実現する情報処理装置(コンピュータ)10のハードウェア構成について説明する。図2は、当該ハードウェア構成の一例を示すブロック図である。
コンピュータ10は、プロセッサ11,RAM(Random Access Memory)12,HDD(Hard Disk Drive)13,グラフィック処理装置14,入力インタフェース15,光学ドライブ装置16,機器接続インタフェース17およびネットワークインタフェース18を構成要素として有する。これらの構成要素11〜18は、バス19を介して相互に通信可能に構成される。
プロセッサ(処理部)11は、コンピュータ10全体を制御する。プロセッサ11は、マルチプロセッサであってもよい。プロセッサ11は、例えばCPU(Central Processing Unit),MPU(Micro Processing Unit),DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device),FPGA(Field Programmable Gate Array)のいずれか一つであってもよい。また、プロセッサ11は、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
RAM(記憶部)12は、コンピュータ10の主記憶装置として使用される。RAM12には、プロセッサ11に実行させるOSプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM12には、プロセッサ11による処理に必要な各種データが格納される。アプリケーションプログラムには、コンピュータ10によって本実施形態の定義ファイル生成機能を実現するためにプロセッサ11によって実行される定義ファイル生成プログラムが含まれてもよい。
HDD(記憶部)13は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行なう。HDD13は、コンピュータ10の補助記憶装置として使用される。HDD13には、OSプログラム,アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリ等の半導体記憶装置(SSD:Solid State Drive)を使用することもできる。
グラフィック処理装置14には、モニタ14aが接続されている。グラフィック処理装置14は、プロセッサ11からの命令に従って、画像をモニタ14aの画面に表示させる。モニタ14aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置等が挙げられる。
入力インタフェース15には、キーボード15aおよびマウス15bが接続されている。入力インタフェース15は、キーボード15aやマウス15bから送られてくる信号をプロセッサ11に送信する。なお、マウス15bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル,タブレット,タッチパッド,トラックボール等が挙げられる。
光学ドライブ装置16は、レーザ光等を利用して、光ディスク16aに記録されたデータの読み取りを行なう。光ディスク16aは、光の反射によって読み取り可能にデータを記録された可搬型の非一時的な記録媒体である。光ディスク16aには、DVD(Digital Versatile Disc),DVD−RAM,CD−ROM(Compact Disc Read Only Memory),CD−R(Recordable)/RW(ReWritable)等が挙げられる。
機器接続インタフェース17は、コンピュータ10に周辺機器を接続するための通信インタフェースである。例えば、機器接続インタフェース17には、メモリ装置17aやメモリリーダライタ17bを接続することができる。メモリ装置17aは、機器接続インタフェース17との通信機能を搭載した非一時的な記録媒体、例えばUSB(Universal Serial Bus)メモリである。メモリリーダライタ17bは、メモリカード17cへのデータの書き込み、またはメモリカード17cからのデータの読み出しを行なう。メモリカード17cは、カード型の非一時的な記録媒体である。
ネットワークインタフェース18は、ネットワーク18aに接続される。ネットワークインタフェース18は、ネットワーク18aを介して、他のコンピュータまたは通信機器との間でデータの送受信を行なう。
以上のようなハードウェア構成を有するコンピュータ10によって、図2〜図36を参照しながら後述する本実施形態の定義ファイル生成機能を実現することができる。
なお、コンピュータ10は、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム(定義ファイル生成プログラム等)を実行することにより、本実施形態の定義ファイル生成機能を実現する。コンピュータ10に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、コンピュータ10に実行させるプログラムをHDD13に格納しておくことができる。プロセッサ11は、HDD13内のプログラムの少なくとも一部をRAM12にロードし、ロードしたプログラムを実行する。
また、コンピュータ10(プロセッサ11)に実行させるプログラムを、光ディスク16a,メモリ装置17a,メモリカード17c等の非一時的な可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ11からの制御により、HDD13にインストールされた後、実行可能になる。また、プロセッサ11が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
〔2〕定義ファイル生成機能を有する情報処理装置の機能構成
次に、図1を参照しながら、本実施形態の定義ファイル生成機能を有する情報処理装置(コンピュータ)10の機能構成について説明する。図1は、当該機能構成の一例を示すブロック図である。ここで、まず、以下で用いられる用語について説明する。
「フロー定義モデル」は、データをどのような順番でどのように処理するかを定義するフローのモデルをいう。
「処理」は、フロー定義モデルによって定義される要素であり、フロー定義モデル中のデータ処理を表す要素である。
「データ」は、フロー定義モデルによって定義される要素であり、フロー定義モデル中のデータ処理対象となるデータ(対象データ)を表す要素である。
「処理型」は、処理の形態であり、例えばバッチ処理,リアルタイム処理などである。バッチ処理は、例えば、データベースに蓄積された大量のデータの分類あるいは分析を一括して実行する処理である。リアルタイム処理は、例えば、何らかのイベント発生に応じてキューイングデータに対し逐次実行される処理である。
「処理エンジン(処理エンジンプログラム)」は、処理に用いられるもので、アプリケーション実行基盤,ソフトウェアプラットフォーム,アプリケーションサーバ,ミドルウェアといったソフトウェアの基盤となる部分をいう。
「処理エンジン型」は、具体的な各処理エンジンの製品等、処理エンジンの種類の概念である。例えば、バッチ処理に用いられる処理エンジン型としては、Interstage BDPPS(Big Data Parallel Processing Server)や、Interstage BA(Business Application)サーバや、Hadoopや、データマイニング系のRシステムなどが挙げられる。また、リアルタイム処理に用いられる処理エンジン型としては、Interstage BDCEP(Big Data Complex Event Processing Server)や、Esper CEP(Complex Event Processing)などが挙げられる。
「データ伝送型」は、処理間でデータを送受信する際の伝送手段の種類である。データ伝送型としては、JMS(Java Message Service)や、SOAP(Simple Object Access Protocol)や、ファイル渡しなどが挙げられる。データの前段側のデータ伝送型は、当該データの前段側の処理の処理エンジン型に応じて決定されてもよい。また、データの後段側のデータ伝送型は、当該データの後段側の処理の処理エンジン型に応じて決定されてもよい。
「前段処理」/「後段処理」は、或る処理またはデータの前/後の処理のことをいう。
「最前段処理」/「最後段処理」は、前段処理/後段処理のない処理のことをいう。
本実施形態のコンピュータ10におけるプロセッサ11は、上述したアプリケーションプログラムに含まれる定義ファイル生成プログラムを実行することで、後述する処理エンジン型/データ伝送型選択部120,定義ファイル生成部140,モデル変換ルール登録部150,モデル変換エンジン登録部160としての機能を果たす。
また、本実施形態のコンピュータ10には、後述するフロー定義モデル(DFD)110,実行タイミング管理表130C,モデル変換エンジンプログラム200,モデル変換ルール情報210が入力情報として入力される。これらの入力情報110,130C,200,210は、光ディスク16a,メモリ装置17a,メモリカード17c等の可搬型記録媒体によって入力されてもよい。入力情報110,130C,200,210は、ユーザ等がキーボード15aやマウス15bを操作することで入力されてもよい。
入力されたフロー定義モデル110は、例えばRAM12またはHDD13におけるDFD記憶部121(図25参照)に保存され、後述する処理エンジン型/データ伝送型選択部120(選択部120a)によって用いられる。
入力されたモデル変換エンジンプログラム200は、後述するモデル変換エンジン登録部160によって、例えばRAM12またはHDD13におけるモデル変換エンジン管理表170に登録保存され、後述する定義ファイル生成部140によって用いられる。
入力されたモデル変換ルール情報210は、後述するモデル変換ルール登録部150によって、例えばRAM12またはHDD13におけるモデル変換ルール管理表180に、後述するモデル変換ルール180A〜180Dとして登録保存される。モデル変換ルール180A〜180Dは、後述する定義ファイル生成部140によって用いられる。
入力された実行タイミング管理表130C(図9(C)参照)は、例えばRAM12またはHDD13に保存され、後述する定義ファイル生成部140によって用いられる。また、後述する処理エンジン型/データ伝送型選択部120(選択部120a)によって作成される対応表130A,130B(図9(A),(B)参照)は、例えばRAM12またはHDD13に保存され、後述する定義ファイル生成部140によって用いられる。
なお、定義ファイル生成部140によって生成される定義ファイル190は、例えばRAM12またはHDD13に保存されるほか、必要に応じて、グラフィック処理装置14によってモニタ14aで表示される。
図1では図示を省略しているが、本実施形態のコンピュータ10には、処理エンジン型/データ伝送型選択部120(選択部120a)によって用いられる処理コスト,接続コスト,ユーザ要求に係る情報も入力される。当該情報は、光ディスク16a,メモリ装置17a,メモリカード17c等の可搬型記録媒体によって入力されてもよい。また、当該情報は、ユーザ等がキーボード15aやマウス15bを操作することで入力されてもよい。入力された当該情報は、それぞれ、例えばRAM12またはHDD13における処理コスト記憶部122(図25参照),接続コスト記憶部123(図25参照),ユーザ要求記憶部124(図25参照)に保存される。
ついで、本実施形態の処理エンジン型/データ伝送型選択部120,定義ファイル生成部140,モデル変換ルール登録部150,モデル変換エンジン登録部160の基本的な機能について説明する。
処理エンジン型/データ伝送型選択部120は、フロー定義モデル110によって定義される要素ごとに、処理エンジン型もしくはデータ伝送型を選択する。
ここで、フロー定義モデル110は、フロー定義モデル110により複数種類の処理コンポーネントを組み合わせてシステムを構築する開発実行環境において、ユーザが、例えば、エディタを用いてDFDにより作成される。フロー定義モデル110には、例えば図5に示すように、処理(p1〜p6参照)と、当該処理の対象データ(d1〜d6参照)とが含まれる。
処理エンジン型/データ伝送型選択部120は、フロー定義モデル110の処理ごとに、当該処理に用いられる処理エンジンの処理エンジン型を選択する。また、処理エンジン型/データ伝送型選択部120は、フロー定義モデル110の対象データごとに、当該対象データのデータ伝送型を選択する。処理エンジン型/データ伝送型選択部120の選択結果に従って、処理と処理エンジン型との対応表130A(図9(A)参照)、および、データとデータ伝送型との対応表130B(図9(B)参照)が作成されRAM12またはHDD13に保存される。特に、対応表130Bは、各データと、当該データについての前段データ伝送型および後段データ伝送型との対応関係を管理する。前段データ伝送型は、当該データの前段処理から伝送されてくる当該データのデータ伝送型である。また、後段データ伝送型は、当該データの後段処理に入力されるべき当該データのデータ伝送型である。
特に、本実施形態において、処理エンジン型/データ伝送型選択部120は、相互に前後関係を有する複数の処理のそれぞれについて、以下のような選択処理を行なう。つまり、処理エンジン型/データ伝送型選択部120は、処理エンジン型ごとに、当該処理よりも前の各処理に関して選択された処理エンジン型の1以上の組合せの中から、当該処理エンジン型の処理エンジンが最後段に追加された場合のコストが最小となる組合せを選択する。これにより、処理エンジン型/データ伝送型選択部120は、各処理で用いられる処理エンジン型と各処理の対象データのデータ伝送型とを選択する、
このとき、前記コストは、例えば、前記組合せに属する各処理エンジン型の処理に要される処理コストと、前記組合せに属する処理エンジン型のうち前記前後関係において隣接する処理に係る処理エンジン型の接続に要される接続コストとの合計である。
なお、処理エンジン型/データ伝送型選択部120による処理エンジン型およびデータ伝送型の選択手順については、下記項目〔6〕において図25〜図36を参照しながら後述する。また、以下では、「処理エンジン型/データ伝送型選択部120」を単に「選択部120」という場合がある。
モデル変換エンジン登録部160は、新規の処理エンジン型を追加する際に、当該新規の処理エンジン型用のモデル変換エンジンプログラム200を、モデル変換エンジン管理表(第1管理テーブル)170に登録する。なお、「モデル変換エンジンプログラム」は単に「モデル変換エンジン」という場合がある。モデル変換エンジン200は、例えば上述した可搬型記録媒体によってモデル変換エンジン登録部160に入力される。モデル変換エンジン管理表170は、例えば図10に示すように、処理エンジン型(P1〜P3参照)とモデル変換エンジン200(E1〜E3参照)とを対応付けて管理する。
モデル変換ルール登録部150は、新規の処理エンジン型を追加する際に、モデル変換ルール180A〜180Dをモデル変換ルール管理表(第2管理テーブル)180に登録する。モデル変換ルール180A〜180Dは、例えば上述した可搬型記録媒体によってモデル変換ルール登録部150にモデル変換ルール情報210として入力される。モデル変換ルール管理表180は、各処理エンジン型用のモデル変換エンジン200がフロー定義モデル110を定義ファイル190に変換する際に用いるモデル変換ルール180A〜180Dを、処理エンジン型ごとに管理する。
モデル変換ルール(第1モデル変換ルール)180Aは、各処理エンジン型での各処理の種類についての第1モデル変換ルールを管理するテーブルとして機能するものである。モデル変換ルール180Aでは、例えば図11(A)に示すように、処理エンジン型(P1〜P3参照)ごとに、各処理の種類(ProcessA〜ProcessF参照)に対して適用される変換ルール(T1〜T12参照)が登録される。
モデル変換ルール(第4モデル変換ルール)180Bは、各処理エンジン型での実行開始処理についての第4モデル変換ルールを管理するテーブルとして機能するものである。モデル変換ルール180Bでは、例えば図11(B)に示すように、処理エンジン型(P1〜P3参照)ごとに、実行開始処理に対して適用される変換ルール(T18〜T20参照)が登録される。
モデル変換ルール(第2モデル変換ルール)180Cは、各処理エンジン型での各データ伝送型におけるデータ伝送処理についての第2モデル変換ルールを管理するテーブルとして機能するものである。モデル変換ルール180Cでは、例えば図11(C)に示すように、処理エンジン型(P1〜P3参照)ごとに、各データ伝送型(D1〜D3参照)に対して適用される変換ルール(T22〜T24参照)が登録される。
モデル変換ルール(第3モデル変換ルール)180Dは、各処理エンジン型での各データ伝送型から異なるデータ伝送型へのデータ変換処理についての第3モデル変換ルールを管理するテーブルとして機能するものである。換言すると、第3モデル変換ルールは、前段処理の処理エンジン型での前段データ伝送型と、後段処理の処理エンジン型での後段データ伝送型との組に対応するデータ変換処理の変換ルールである。モデル変換ルール180Dでは、例えば図11(D)に示すように、処理エンジン型(P1〜P3参照)ごとに、前段データ伝送型(D1〜D3)と後段データ伝送型(D1〜D3)との組合せに対して適用される変換ルール(T27,T28,T30,T31,T33,T34参照)が登録される。
定義ファイル生成部140は、選択部120によって処理エンジン型を選択された処理ごとに、モデル変換エンジン管理表170とモデル変換ルール管理表180とを参照し、当該処理に応じたモデル変換エンジンおよびモデル変換ルールを選択する。同様に、定義ファイル生成部140は、選択部120によってデータ伝送型を選択されたデータごとに、モデル変換エンジン管理表170とモデル変換ルール管理表180とを参照し、当該データに応じたモデル変換エンジンおよびモデル変換ルールを選択する。
ここで、定義ファイル生成部140は、対応表130A〜130C,モデル変換エンジン管理表170およびモデル変換ルール管理表180を参照しながら、以下のような、モデル変換エンジンおよびモデル変換ルールの選択処理(A1)〜(A3)を行なう。そして、定義ファイル生成部140は、選択されたモデル変換エンジンおよびモデル変換ルールを用いてフロー定義モデル110から定義ファイル190を生成する。
(A1) 選択部120によって処理エンジン型を選択された処理ごとに、定義ファイル生成部140は、対応表130Aを参照し、当該処理に対応する処理エンジン型を把握する。そして、定義ファイル生成部140は、把握した処理エンジン型に対応するモデル変換エンジンを、モデル変換エンジン管理表170から選択する。また、定義ファイル生成部140は、当該処理の種類および当該処理の処理エンジン型に対応するモデル変換ルールを、モデル変換ルール管理表180中の第1モデル変換ルール180Aから選択する。なお、当該処理の種類については、フロー定義モデル110における当該処理に係る記述を参照することで容易に認識することができる(図6参照)。
(A2) 選択部120によってデータ伝送型を選択されたデータごとに、定義ファイル生成部140は、対応表130Bを参照し、当該データの前後におけるデータ伝送型が同一であるか否かを判断する。当該データの前後におけるデータ伝送型が同一である場合、定義ファイル生成部140は、当該データ前後の処理のいずれか一方の処理エンジン型に対応するモデル変換エンジンを、モデル変換エンジン管理表170から選択する。また、定義ファイル生成部140は、当該データ前後の処理のいずれか一方の処理エンジン型でのデータ伝送型についてのデータ伝送処理のモデル変換ルールを、モデル変換ルール管理表180中の第2モデル変換ルール180Cから選択する。
(A3) 当該データの前後におけるデータ伝送型が同一でないと判断された場合、定義ファイル生成部140は、以下の選択処理(A3-1)および(A3-2)を行なう。
(A3-1) 定義ファイル生成部140は、対応表130Aを参照し、当該データの前段処理に対応する処理エンジン型を把握する。そして、定義ファイル生成部140は、把握した当該データの前段処理の処理エンジン型に対応するモデル変換エンジンを、モデル変換エンジン管理表170から選択する。また、定義ファイル生成部140は、前記前段処理の処理エンジン型での前段データ伝送型と後段データ伝送型との組に対応するデータ変換処理のモデル変換ルールを、モデル変換ルール管理表180中の第3モデル変換ルール180Dから選択する。
(A3-2) 定義ファイル生成部140は、対応表130Aを参照し、当該データの後段処理の処理エンジン型を把握する。そして、定義ファイル生成部140は、把握した当該データの後段処理の処理エンジン型に対応するモデル変換エンジンを、モデル変換エンジン管理表170から選択する。また、定義ファイル生成部140は、前記後段処理の処理エンジン型での前記後段処理を所定タイミングで実行する実行開始処理のモデル変換ルールを、モデル変換ルール管理表180中の第4モデル変換ルール180Bから選択する。ここで、前記所定タイミングは、前述した実行タイミング管理表130Cを用いてユーザ等によって入力指定される。
〔3〕定義ファイル生成部の動作
次に、図3および図4に示すフローチャートに従って、本実施形態の定義ファイル生成部140の動作について説明する。図3には、上記選択処理(A1)に対応するステップS101〜S105が示されるとともに、上記選択処理(A2)に対応するステップS106〜S111が示される。図4には、図3のステップS112(上記選択処理(A3))で実行される処理が示される。より具体的に、図4には、上記選択処理(A3-1)に対応するステップS121〜S125が示されるとともに、上記選択処理(A3-2)に対応するステップS126〜S130が示される。
なお、定義ファイル生成部140が動作する時点では、既存のモデル変換エンジン200やモデル変換ルール情報210が、それぞれ、モデル変換エンジン登録部160およびモデル変換ルール登録部150によって、モデル変換エンジン管理表170およびモデル変換ルール管理表180に登録されている。また、定義ファイル生成部140が動作する時点では、選択部120によってフロー定義モデル110について処理エンジン型やデータ伝送型が選択され、処理と処理エンジン型との対応表130A、および、データとデータ伝送型との対応表130Bが作成されている。さらに、定義ファイル生成部140が動作する時点では、必要に応じて、実行タイミング管理表130Cがユーザ等によって作成されている。
まず、定義ファイル生成部140は、処理と処理エンジン型との対応表130Aからレコードを一つずつ選択し、選択したレコードを参照することで、当該レコードにおいて、処理と当該処理に対応付けられた処理エンジン型とを把握する(ステップS101)。そして、定義ファイル生成部140は、ステップS101で把握した処理エンジン型での当該処理の種類についてのモデル変換ルールを、モデル変換ルール管理表180中の第1モデル変換ルール180Aから選択する(ステップS102)。また、定義ファイル生成部140は、ステップS101で把握した処理エンジン型に対応するモデル変換エンジンを、モデル変換エンジン管理表170から選択する(ステップS103)。なお、ステップS103の処理は、ステップS102の処理の前に実行されてもよい。
そして、定義ファイル生成部140は、ステップS103およびS102で選択されたモデル変換エンジンとモデル変換ルールとを用いてフロー定義モデル110から定義ファイル190を生成する(ステップS104)。この後、定義ファイル生成部140は、対応表130Aにおいて未選択の処理(レコード)があるか否かを判断する(ステップS105)。未選択の処理がある場合(ステップS105のYESルート)、定義ファイル生成部140は、ステップS101の処理に戻る一方、未選択の処理がない場合(ステップS105のNOルート)、定義ファイル生成部140は、ステップS106の処理に移行する。
ついで、定義ファイル生成部140は、データとデータ伝送型との対応表130Bからレコードを一つずつ選択し(ステップS106)、選択したレコード参照することで、当該レコードにおけるデータの前後におけるデータ伝送型が同一であるか否かを判断する(ステップS107)。
当該データの前後におけるデータ伝送型が同一である場合(前段データ伝送型=後段データ伝送型;ステップS107のYESルート)、定義ファイル生成部140はステップS108〜S111の処理を実行する。つまり、定義ファイル生成部140は、当該レコードの前段データ伝送型のデータ伝送処理についてのモデル変換ルールを、モデル変換ルール管理表180中の第2モデル変換ルール180Cから選択する(ステップS108)。また、定義ファイル生成部140は、当該データの前段処理の処理エンジン型でのモデル変換エンジンを、モデル変換エンジン管理表170から選択する(ステップS109)。なお、ステップS109の処理は、ステップS108の処理の前に実行されてもよい。
そして、定義ファイル生成部140は、ステップS109およびS108で選択されたモデル変換エンジンとモデル変換ルールとを用いてフロー定義モデル110から定義ファイル190を生成する(ステップS110)。この後、定義ファイル生成部140は、対応表130Aにおいて未選択の処理(レコード)があるか否かを判断する(ステップS111)。未選択の処理がある場合(ステップS111のYESルート)、定義ファイル生成部140は、ステップS106の処理に戻る一方、未選択の処理がない場合(ステップS111のNOルート)、定義ファイル生成部140は処理を終了する。
一方、当該データの前後におけるデータ伝送型が同一でない場合(前段データ伝送型≠後段データ伝送型;ステップS107のNOルート)、定義ファイル生成部140は、図4に示す手順に従って、データ伝送型が異なる場合の定義ファイル生成を行なう(ステップS112)。定義ファイル生成部140は、ステップS112の処理を終了すると、ステップS111の処理に移行する。
ついで、ステップS112で実行される、前段データ伝送型≠後段データ伝送型の場合の定義ファイル生成処理を、図4を参照しながら説明する。
まず、定義ファイル生成部140は、ステップS106で選択した当該レコードのデータを出力とする処理(前段処理)を、フロー定義モデル110から選択する(ステップS121)。また、定義ファイル生成部140は、対応表130Aを参照し、ステップS121で選択した前段処理に対応する処理エンジン型を把握する(ステップS122)。
定義ファイル生成部140は、ステップS122で把握した処理エンジン型での前段データ伝送型と後段データ伝送型との組に対応するデータ変換処理についてのモデル変換ルールを、モデル変換ルール管理表180中の第3モデル変換ルール180Dから選択する(ステップS123)。また、定義ファイル生成部140は、ステップS122で把握した処理エンジン型に対応するモデル変換エンジンを、モデル変換エンジン管理表170から選択する(ステップS124)。なお、ステップS124の処理は、ステップS123の処理の前に実行されてもよい。
そして、定義ファイル生成部140は、ステップS124およびS123で選択されたモデル変換エンジンとモデル変換ルールとを用いてフロー定義モデル110から定義ファイル190を生成する(ステップS125)。
さらに、定義ファイル生成部140は、ステップS106で選択した当該レコードのデータを入力とする処理(後段処理)を、フロー定義モデル110から選択する(ステップS126)。また、定義ファイル生成部140は、対応表130Aを参照し、ステップS126で選択した後段処理に対応する処理エンジン型を把握する(ステップS127)。
この後、定義ファイル生成部140は、ステップS127で把握した処理エンジン型における実行開始処理についてのモデル変換ルールを、モデル変換ルール管理表180中の第4モデル変換ルール180Bから選択する(ステップS128)。また、定義ファイル生成部140は、ステップS127で把握した処理エンジン型に対応するモデル変換エンジンを、モデル変換エンジン管理表170から選択する(ステップS129)。なお、ステップS129の処理は、ステップS128の処理の前に実行されてもよい。
そして、定義ファイル生成部140は、ステップS129およびS128で選択されたモデル変換エンジンとモデル変換ルールとを用いてフロー定義モデル110から定義ファイル190を生成し(ステップS130)、図3のステップS111の処理に戻る。
〔4〕定義ファイル生成部の具体的な動作
次に、図5〜図20を参照しながら、定義ファイル生成部140の具体的な動作について説明する。
まず、以下に説明する具体的な動作の対象になるフロー定義モデル(DFD)110の一例について図5を参照しながら説明する。図5において、楕円ブロックは処理を示し、楕円ブロック内の符号p1〜p6は、各処理を識別する識別子(処理名)を示す。また、楕円ブロック間の円筒形ブロックは、各処理の対象となるデータを示し、円筒形ブロック内の符号d1〜d6は、各データを識別する識別子(データ名)を示す。
図5では、処理p1〜処理p6を含むDFDが示されている。処理p1は、データd1およびd4をそれぞれ処理p2およびp4へ出力する。データd1およびd4を入力される処理p2およびp4は、それぞれ、データd2およびd5を処理p3およびp5へ出力する。データd2およびd5を入力される処理p3およびp5は、それぞれデータd3およびd6を一つの処理p6へ出力する。つまり、データの流れは、処理p1の後で分岐し処理p3,p5の後で合流している。
また、処理p4については、一日分のデータを溜めてから一日分のデータに対する夜間バッチ処理を行なうことが、ユーザ等によって予め指定されている。このため、例えば図9(C)に示す実行タイミング管理表130Cには、処理p4を毎日午前0時(0:00)に実行する旨が、処理p4の実行タイミングとして登録されている。図9(C)に示すように、実行タイミング管理表130Cでは、各処理を実行する実行タイミングが、各処理の識別子に対応付けて登録される。
図5に示すフロー定義モデル110中の各処理p1〜p6と、各処理p1〜p6の種類との対応関係を図6に示す。図6では、処理p1〜p6の種類は、それぞれProcessA〜ProcessFであり、処理p1〜p6は、異なる種類の処理である。前述したように、各処理p1〜p6の種類については、フロー定義モデル110における各処理p1〜p6に係る記述を参照することで認識することができる。
また、以下に説明する具体的な動作において用いられる処理エンジン型と、処理型との間には、図7の対応表に示すような対応関係があり、当該対応表は、記憶部(RAM12やHDD13)に予め保存されている。図7では、処理エンジン型P1,P2はバッチ処理に用いられることが示され、処理エンジン型P3はリアルタイム処理に用いられることが示されている。
さらに、ここでは、定義ファイル生成部140の動作に先立ち、図5に示すフロー定義モデル110について、処理エンジン型/データ伝送型選択部120によって、図8に示すように、処理エンジン型およびデータ伝送型が選択されている。このとき、処理エンジン型は、モデル変換ルール管理表180に登録されている処理エンジン型(図7や図11(A)〜図11(D)に示す例ではP1,P2,P3)の中から選択される。同様に、データ伝送型は、モデル変換ルール管理表180に登録されているデータ伝送型(図7や図11(A)〜図11(D)に示す例ではD1,D2,D3)の中から選択される。選択部120による処理エンジン型およびデータ伝送型の選択手順については、下記項目〔6〕において図25〜図36を参照しながら後述する。
なお、図8では、処理p1〜p6のそれぞれに対し処理エンジン型P3,P3,P3,P1,P2,P3が選択されることが示されている。これに伴い、図8では、データd1〜d3前後のデータ伝送型としてD3/D3がそれぞれ選択されることが示されている。また、データd4の前段/後段データ伝送型としてD3/D1が選択され、データd5前後のデータ伝送型としてD1/D2が選択され、データd6前後のデータ伝送型としてD2/D3が選択されることが示されている。
このような選択結果に基づいて、各処理と処理エンジン型との対応表130Aが、図9(A)に示すごとく作成されるとともに、各データと前段/後段データ伝送型との対応表130Bが、図9(B)に示すごとく作成される。作成された対応表130A,130Bは、RAM12またはHDD13に保存される。また、処理p4として、一日分のデータに対する夜間バッチ処理を行なうことが指定されていることに伴い、図9(C)に示すように、実行タイミング管理表130Cには、処理p4の実行タイミングとして「毎日0:00」がユーザ等によって登録されている。
さらに、定義ファイル生成部140が動作する時点では、前述した通り、既存のモデル変換エンジン200が、モデル変換エンジン登録部160によって、図10に示すごとくモデル変換エンジン管理表170に登録されている。図10では、処理エンジン型P1,P2,P3と各処理エンジン型用のモデル変換エンジンE1,E2,E3とをそれぞれ対応付けるモデル変換エンジン管理表(第1管理テーブル)170が示されている。モデル変換エンジン管理表170には、各処理エンジン型P1,P2,P3についてのモデル変換エンジンプログラムE1,E2,E3への参照が格納されている。
また、定義ファイル生成部140が動作する時点では、前述した通り、既存のモデル変換ルール情報210が、モデル変換ルール登録部150によって、図11(A)〜図11(D)に示すごときモデル変換ルール180A〜180Dとしてモデル変換ルール管理表(第2管理テーブル)180に登録されている。
図11(A)のモデル変換ルール(第1モデル変換ルール)180Aでは、各処理エンジン型P1〜P3での各処理の種類ProcessA〜ProcessFについての変換ルールT1〜T12が示されている。変換ルールT1〜T12としては、実際の変換ルールへの参照が格納されている。例えば、種類ProcessAの処理は、処理エンジン型P3の処理エンジンによってのみ実行される。このため、モデル変換ルール180Aにおいて、処理エンジン型P3とProcessAとに対応するセルには、処理エンジン型P3によって実行される種類ProcessAの処理に対して適用される変換ルールT7が登録されている。
図11(B)のモデル変換ルール(第4モデル変換ルール)180Bでは、各処理エンジン型P1〜P3での実行開始処理についての変換ルールT18〜T20が示されている。変換ルールT18〜T20としては、実際の変換ルールへの参照が格納されている。つまり、モデル変換ルール180Bにおいて、処理エンジン型P1〜P3のそれぞれについて、実行開始処理に対して適用される変換ルールT18〜T20が登録されている。
図11(C)のモデル変換ルール(第2モデル変換ルール)180Cでは、各処理エンジン型P1〜P3での各データ伝送型のデータ伝送処理についての変換ルールT22〜T24が示されている。変換ルールT22〜T24としては、実際の変換ルールへの参照が格納されている。処理エンジン型P1〜P3の処理エンジンは、それぞれデータ伝送型D1〜D3のデータ伝送処理に対応している。このため、モデル変換ルール180Cにおいて、例えば、処理エンジン型P3とデータ伝送型D3とに対応するセルには、処理エンジン型P3によって実行されるデータ伝送型D3に対して適用される変換ルールT24が登録されている。
図11(D)のモデル変換ルール(第3モデル変換ルール)180Dでは、各処理エンジン型P1〜P3での各データ伝送型から異なるデータ伝送型へのデータ変換処理についての変換ルールT27,T28,T30,T31,T33,T34が示されている。変換ルールT27,T28,T30,T31,T33,T34としては、実際の変換ルールへの参照が格納されている。モデル変換ルール180Dにおいて、例えば、処理エンジン型P3と前段データ伝送型D3から後段データ伝送型D1へのデータ変換処理とに対応するセルには、当該データ変換処理に対して適用される変換ルールT33が登録されている。
図9(A)〜図9(C)に示す対応表130A,130Bおよび管理表130Cと、図10に示すモデル変換エンジン管理表170と、図11(A)〜図11(D)に示すモデル変換ルール180A〜180Dとを準備した上での、定義ファイル生成部140の具体的な動作について、以下に説明する。特に、ここでは、図8に示すフロー定義モデル110のうちの破線で囲んだ部分、つまり処理p1,p2,p4およびデータd1,d4に対する定義ファイル生成部140の動作を、図12(A)〜図24(D)を参照しながら説明する。なお、図11(A)〜図11(D)において、以下で説明する定義ファイル生成部140の具体的な動作で使用する変換ルールのセルには、ハッチが付されている。
まず、定義ファイル生成部140による、図8の処理p1に対する動作について説明する。定義ファイル生成部140は、図9(A)に示す対応表130Aを参照し、処理p1に対し処理エンジン型P3が選択されていることを把握する。そして、定義ファイル生成部140は、図10に示すモデル変換エンジン管理表170を参照し、把握した処理エンジン型P3に対応するモデル変換エンジンE3を選択する。
また、定義ファイル生成部140は、図11(A)に示す第1モデル変換ルール180Aを参照し、処理p1の処理エンジン型P3と処理p1の種類ProcessA(図6参照)とに対応する変換ルールT7を選択する。そして、定義ファイル生成部140は、選択されたモデル変換エンジンE3および変換ルールT7を用いて、フロー定義モデル110の処理p1について定義ファイル190を生成する。
ここで、図12(A)および図12(B)において、処理p1にモデル変換ルールT7を適用した例を示す。図12(A)には、モデル変換ルールT7が示される。図12(B)には、処理エンジン型P3の処理p1に対応するDataflow.compositeのコード片が示される。なお、図12(A)において、変換処理に係る記述には下線が付されている。また、図12(B)において、変換処理を施された記述には下線が付されるとともに、当該記述を太字によって示している。
次に、定義ファイル生成部140による、図8のデータd1に対する動作について説明する。定義ファイル生成部140は、図9(B)に示す対応表130Bを参照し、データd1に対し前段/後段データ伝送型D3/D3が選択されていることを把握し、データd1の前後におけるデータ伝送型が同一であるか否かを判断する。
このとき、データd1の前後におけるデータ伝送型は同一であるので、定義ファイル生成部140は、図10に示すモデル変換エンジン管理表170を参照し、データd1の前段処理p1の処理エンジン型P3に対応するモデル変換エンジンE3を選択する。また、定義ファイル生成部140は、図11(C)に示す第2モデル変換ルール180Cを参照し、処理エンジン型P3と前段データ伝送型D3とに対応する変換ルールT24を選択する。そして、定義ファイル生成部140は、選択されたモデル変換エンジンE3および変換ルールT24を用いて、フロー定義モデル110のデータd1について定義ファイル190を生成する。
ここで、図13(A)および図13(B)において、データd1にモデル変換ルールT24を適用した例を示す。図13(A)には、モデル変換ルールT24が示される。図13(B)には、処理エンジン型P3のデータd1に対応するDataflow.compositeのコード片が示される。なお、図13(A)において、変換処理に係る記述には下線が付されている。また、図13(B)において、変換処理を施された記述には下線が付されるとともに、当該記述を太字によって示している。
次に、定義ファイル生成部140による、図8の処理p2に対する動作について説明する。定義ファイル生成部140は、図9(A)に示す対応表130Aを参照し、処理p2に対し処理エンジン型P3が選択されていることを把握する。そして、定義ファイル生成部140は、図10に示すモデル変換エンジン管理表170を参照し、把握した処理エンジン型P3に対応するモデル変換エンジンE3を選択する。
また、定義ファイル生成部140は、図11(A)に示す第1モデル変換ルール180Aを参照し、処理p2の処理エンジン型P3と処理p2の種類ProcessB(図6参照)とに対応する変換ルールT8を選択する。そして、定義ファイル生成部140は、選択されたモデル変換エンジンE3および変換ルールT8を用いて、フロー定義モデル110の処理p2について定義ファイル190を生成する。
ここで、図14(A)および図14(B)において、処理p2にモデル変換ルールT8を適用した例を示す。図14(A)には、モデル変換ルールT8が示される。図14(B)には、処理エンジン型P3の処理p2に対応するDataflow.compositeのコード片が示される。なお、図14(A)において、変換処理に係る記述には下線が付されている。また、図14(B)において、変換処理を施された記述には下線が付されるとともに、当該記述を太字によって示している。
次に、定義ファイル生成部140による、図8のデータd4に対する動作について説明する。まず、図15を参照しながら、データd4についての定義ファイル生成の概要について説明する。定義ファイル生成部140は、図9(B)に示す対応表130Bを参照し、データd4に対し前段/後段データ伝送型D3/D1が選択されていることを把握し、データd5の前後におけるデータ伝送型が同一であるか否かを判断する。
このとき、データd4の前後におけるデータ伝送型は同一でない。図15に示すように、データd4の前段では、処理エンジン型P3の処理エンジンが処理p1を実行し、データ伝送型D3のデータd4が出力される。データd4の後段では、処理エンジン型P1の処理エンジンが、毎日午前0時の実行タイミングで、データ伝送型D1のデータd4について処理p4を実行する。
従って、図15に示すように、処理p1からのデータ伝送型D3のデータd4は、処理エンジン型P3の処理エンジンにおいて、データ伝送型D1に変換され、データ伝送型D1のデータd4として保存される。この後、データ伝送型D1のデータd4は、データd4の後段において処理エンジン型P1の処理エンジンが実行する処理p4で用いられる。
定義ファイル生成部140は、データd4前後のデータ伝送型D3およびD1であることを把握すると、図10に示すモデル変換エンジン管理表170を参照し、データd4の前段処理p1の処理エンジン型P3に対応するモデル変換エンジンE3を選択する。また、定義ファイル生成部140は、図11(D)に示す第3モデル変換ルール180Dを参照し、処理エンジン型P3とデータd4前後のデータ伝送型D3/D1の組とに対応する変換ルールT33を選択する。そして、定義ファイル生成部140は、選択されたモデル変換エンジンE3および変換ルールT33を用いて、フロー定義モデル110のデータd4について定義ファイル190を生成する。
ここで、図16(A)および図16(B)において、データd4にモデル変換ルールT33を適用した例を示す。図16(A)には、モデル変換ルールT33が示される。図16(B)には、処理エンジン型P3のデータd4に対応するDataflow.compositeのコード片が示される。なお、図16(A)において、変換処理に係る記述には下線が付されている。また、図16(B)において、変換処理を施された記述には下線が付されるとともに、当該記述を太字によって示している。
一方、定義ファイル生成部140は、図10に示すモデル変換エンジン管理表170を参照し、データd4の後段処理p4の処理エンジン型P1に対応するモデル変換エンジンE1を選択する。また、定義ファイル生成部140は、実行タイミング管理表130Cを参照し、処理p4について登録された実行タイミング(毎日午前0時)を取得する。さらに、定義ファイル生成部140は、図11(B)に示す第4モデル変換ルール180Bを参照し、処理p4の処理エンジン型P1での処理p4を所定タイミングで実行する実行開始処理のモデル変換ルールT18を選択する。そして、定義ファイル生成部140は、選択されたモデル変換エンジンE1,実行タイミングおよび変換ルールT18を用いて、フロー定義モデル110のデータd4について定義ファイル190を生成する。
ここで、図17(A)〜図17(C)において、処理p4にモデル変換ルールT18を適用した例を示す。図17(A)には、モデル変換ルールT18が示される。図17(B)には、処理エンジン型P1の処理p4に対応する/etc/crontabのコード片が示される。図17(C)には、処理エンジン型P1の処理p4に対応する/usr/local/process/start_p4.shのコード全体が示される。なお、図17(A)において、変換処理に係る記述には下線が付されている。また、図17(B)および図17(C)において、変換処理を施された記述には下線が付されるとともに、当該記述を太字によって示している。
次に、定義ファイル生成部140による、図8の処理p4に対する動作について説明する。定義ファイル生成部140は、図9(A)に示す対応表130Aを参照し、処理p4に対し処理エンジン型P1が選択されていることを把握する。そして、定義ファイル生成部140は、図10に示すモデル変換エンジン管理表170を参照し、把握した処理エンジン型P1に対応するモデル変換エンジンE1を選択する。
また、定義ファイル生成部140は、図11(A)に示す第1モデル変換ルール180Aを参照し、処理p4の処理エンジン型P1と処理p4の種類ProcessD(図6参照)とに対応する変換ルールT3を選択する。そして、定義ファイル生成部140は、選択されたモデル変換エンジンE1および変換ルールT3を用いて、フロー定義モデル110の処理p4について定義ファイル190を生成する。
ここで、図18(A)および図18(B)において、処理p4にモデル変換ルールT3を適用した例を示す。図18(A)には、モデル変換ルールT3が示される。図18(B)には、処理エンジン型P1の処理p2に対応するquery_23456.qlのコード片が示される。なお、図18(A)において、変換処理に係る記述には下線が付されている。また、図18(B)において、変換処理を施された記述には下線が付されるとともに、当該記述を太字によって示している。
以上のようにして、図8に示すフロー定義モデル110のうちの破線で囲んだ部分について、定義ファイル生成部140によって生成された定義ファイルを、図19および図20(A)〜図20(C)に示す。図19は、Dataflow.compositeについて生成された定義ファイルを示す図である。図20(A)は/etc/crontabについて生成された定義ファイルを示す図、図20(B)は、/usr/local/process/start_p4.shについて生成された定義ファイルを示す図、図20(C)はquery_23456.qlについて生成された定義ファイルを示す図である。なお、図19および図20(A)〜図20(C)において、変換処理を施された記述には下線が付されるとともに、当該記述を太字によって示している。
〔5〕新規の処理エンジン型の動的追加
上述のごとく構成され動作する本実施形態のコンピュータ10において、新規の処理エンジン型の動的追加は、モデル変換エンジン管理表170およびモデル変換ルール管理表180に対する登録処理を、以下のように行なうことで実行される。当該登録処理の具体例や当該登録処理後の動作の具体例について、図21〜図24を参照しながら説明する。
当該登録処理では、新規の処理エンジン型と当該新規の処理エンジン型用の新規のモデル変換エンジンとの対応関係が、モデル変換エンジン登録部160によってモデル変換エンジン管理表(第1管理テーブル)170に追加登録される。また、当該登録処理では、当該新規のモデル変換エンジンがフロー定義モデル110を定義ファイル190に変換する際に用いるモデル変換ルールが、モデル変換ルール登録部150によってモデル変換ルール管理表(第2管理テーブル)180に追加登録される。
以下では、図5〜図20を参照しながら上述した具体例において新規の処理エンジン型P4が追加される場合の登録処理や当該登録処理後の動作について説明する。この場合、モデル変換エンジン登録部160によって、図10に示すモデル変換エンジン管理表170に、図21に示すように、新規の処理エンジン型P4と当該新規の処理エンジン型P4に対応する新規のモデル変換エンジンプログラムE4との対応関係が追加登録される。
また、このとき、モデル変換ルール登録部150によって、図11(A)〜図11(D)に示すモデル変換ルール180A〜180Dに、それぞれ図22(A)〜図22(D)に示すように、処理エンジン型P4と当該処理エンジン型P4のデータ伝送型D4とに対応する各種モデル変換ルール情報が追加登録される。
例えば、図22(A)に示すように、モデル変換ルール180Aには変換ルールT13〜T17が追加され、図22(B)に示すように、モデル変換ルール180Bには変換ルールT21が追加される。図22(C)に示すように、モデル変換ルール180Cには、変換ルールT25,T26が追加され、図22(D)に示すように、モデル変換ルール180Dには変換ルールT29,T32,T35〜T41が追加される。なお、図22(A)〜図22(D)において、処理エンジン型P4およびデータ伝送型D4について追加されたモデル変換ルール名には下線が付されるとともに、当該モデル変換ルール名を太字によって示している。
そして、上述のように新規の処理エンジン型P4およびデータ伝送型D4の追加に伴い、図5に示すフロー定義モデル110について、処理エンジン型/データ伝送型選択部120によって、処理エンジン型およびデータ伝送型の選択が再度行なわれる。このとき、処理エンジン型は、追加処理後のモデル変換ルール管理表180に登録されている処理エンジン型P1〜P4の中から選択される。同様に、データ伝送型は、追加処理後のモデル変換ルール管理表180に登録されているデータ伝送型D1〜D4の中から選択される。選択部120による処理エンジン型およびデータ伝送型の選択手順については、下記項目〔6〕において図25〜図36を参照しながら後述する。
ここで、図21および図22に示す追加処理を行なった場合に、図5に示すフロー定義モデルについて選択部120によって得られる選択結果を、図23に示す。図23では、処理p1〜p6のそれぞれに対し処理エンジン型P3,P4,P4,P1,P2,P3が選択されることが示されている。これに伴い、図23では、データd1前後のデータ伝送型としてD3/D4が選択され、データd2前後のデータ伝送型としてD4/D4が選択され、データd3前後のデータ伝送型としてD4/D3が選択されることが示されている。また、データd4前後のデータ伝送型としてD3/D1が選択され、データd5前後のデータ伝送型としてD1/D2が選択され、データd6前後のデータ伝送型としてD2/D3が選択されることが示されている。なお、図23において、選択部120による選択結果が、図8に示す選択結果から変更された処理エンジン型名/データ伝送型名には、下線を付して示す。
このような選択結果に基づいて、各処理と処理エンジン型との対応表130Aが、図24(A)に示すごとく変更されるとともに、各データと前段/後段データ伝送型との対応表130Bが、図24(B)に示すごとく変更される。変更された対応表130A,130Bは、RAM12またはHDD13に保存される。なお、図24(A)および図24(B)において、図9(A)および図9(B)に対応関係から変更された処理エンジン型名/データ伝送型名には下線が付されるとともに、当該処理エンジン型名/データ伝送型名を太字によって示している。また、実行タイミング管理表130Cには変更がなく、図24(C)に示す実行タイミング管理表130Cは、図9(C)に示す実行タイミング管理表130Cと同様のものである。
以上のようにして、新規の処理エンジン型P4の動的追加処理が完了すると、以降、定義ファイル生成部140は、図5〜図20を参照しながら上述した動作と同様の動作を行なう。ただし、その際、定義ファイル生成部140は、図24(A)〜図24(C)に示す対応表130A,130Bおよび管理表130Cと、図21に示すモデル変換エンジン管理表170と、図22(A)〜図22(D)に示すモデル変換ルール180A〜180Dとを参照する。
このように、本実施形態のコンピュータ10では、処理エンジン型/データ伝送型選択部120によって、処理と処理エンジン型との対応表130A、および、データとデータ伝送型との対応表130Bが作成される。そして、対応表130A,130Bを参照し、各処理エンジン型に対応する複数のモデル変換エンジンと、各処理,実行開始処理,データ伝送処理,データ変換処理についての変換ルール180A〜180Dとを使い分けながら、各処理エンジン型における各処理,各データに対応する適切な定義ファイル190が生成される。
特に、或るデータについて前段データ伝送型と後段データ伝送型とが異なる場合、前段の処理エンジン型についての前段データ伝送型から後段データ伝送型へのデータ変換処理や後段の処理エンジン型についての実行開始処理について、定義ファイル190が生成される。
上述のような本実施形態のコンピュータ10によれば、後から動的に追加した処理エンジン型についても、既存の単体の処理エンジン型に対応するモデル変換エンジンで用意する変換ルールと同じものを用いてフロー定義モデルから定義ファイルを生成することができる。つまり、モデル変換エンジン管理表170に新規の処理エンジン型に対応するモデル変換エンジンを追加登録するとともに、モデル変換ルール管理表180に当該モデル変換エンジン用の変換ルールを追加登録するだけで、新たな処理エンジン型が動的に追加される。そして、動的に追加された処理エンジン型についてフロー定義モデル110から定義ファイル190を生成することができる。
〔6〕処理エンジン型/データ伝送型選択部について
次に、図25〜図36を参照しながら、処理エンジン型/データ伝送型選択部120の機能構成および動作について説明する。
〔6−1〕処理エンジン型/データ伝送型選択部の機能構成
図25は、本実施形態の処理エンジン型/データ伝送型選択部120の機能構成の一例を示すブロック図である。図25において、処理エンジン型/データ伝送型選択部120は、選択部120aを有する。選択部120aは、例えば図5に示すフロー定義モデル(DFD)110を構成する各処理/各データに利用する処理エンジン型/データ伝送型を選択する。なお、選択部120aは、前述したように、コンピュータ10にインストールされたプログラムをプロセッサ11によって実行することで実現される。
また、処理エンジン型/データ伝送型選択部120は、DFD記憶部121,処理コスト記憶部122,接続コスト記憶部123,ユーザ要求記憶部124および作業用テーブル125などを利用する。各記憶部121〜125としては、RAM12,HDD13,メモリ装置17aを用いてもよいし、ネットワーク18aを介して接続される記憶装置等を用いてもよい。
DFD記憶部121は、例えば図5に示すようなフロー定義モデル(DFD)110の定義情報を記憶する。処理コスト記憶部122は、フロー定義モデル(DFD)110を構成する処理ごとに、当該処理に利用可能な各処理エンジン型の処理コストを記憶する。処理コストとは、処理エンジンによる処理自体に要されるコストである。
接続コスト記憶部123は、二つの処理エンジン型の組ごとに、当該処理エンジン間における接続コストを記憶する。接続コストとは、処理の前後関係において隣接する処理のそれぞれに対する処理エンジン型の接続に要されるコストをいう。例えば、接続コストは、前段の処理に係る処理エンジンから後段の処理に係る処理エンジンへのデータの伝送や、データの変換等に要されるコストである。すなわち、各処理エンジン型において解釈可能なデータ構造は異なる。したがって、処理エンジン型間においてデータ形式(データ伝送型)の変換が必要とされる。
なお、処理コストや接続コストにおける「コスト」の具体的な内容は、例えば、所要時間であってもよい。あるいは、コストは、処理エンジンの利用等によって生じる費用(金額)であってもよいし、他の概念によって表現されてもよい。また、コストは、絶対値であってもよいし、相対値であってもよい。さらに、処理コスト記憶部122または接続コスト記憶部123に記憶される処理コストまたは接続コストは、推定値または予測値であってもよい。
ユーザ要求記憶部124は、フロー定義モデル(DFD)110を構成する各処理に適用される処理型または処理エンジン型について、ユーザ等による要求を記憶する。すなわち、ユーザ等は、予め、一部または全部の処理について、処理型または処理エンジン型を指定することができる。各処理に対する処理エンジン型の選択において、ユーザによる要求は、最優先される。なお、ここで、処理型とは、処理エンジンに対するデータの入力後の処理の開始時期(開始タイミング)に関する型(種別)をいう。本実施形態において、処理型には、前述したようにバッチ処理およびリアルタイム処理がある。
作業用テーブル125は、フロー定義モデル(DFD)110を構成する各処理に使用する処理エンジン型や、各データ前後のデータ伝送型を選択する過程において利用される記憶領域である。
〔6−2〕処理エンジン型/データ伝送型選択部の動作
以下、処理エンジン型/データ伝送型選択部120(選択部120a)が実行する処理手順について説明する。図26は、本実施形態の処理エンジン型/データ伝送型選択部120の動作(選択部120aが実行する処理手順の一例)を説明するフローチャート(ステップS111〜S119)である。
ステップS111において、選択部120aは、DFD記憶部121に記憶されているフロー定義モデル(DFD)110を構成する処理群(データ群)を、処理実行順に応じて整列する。例えば、各処理が、当該処理の後段の処理よりも順番が前になるようにソートされる。
ここでは、選択部120aが、図5を参照しながら前述したフロー定義モデル(DFD)110を選択処理の対象とする場合について説明する。図5では、処理p1〜p6を含むフロー定義モデル(DFD)110が示されている。図5に示すフロー定義モデル(DFD)110の場合、ステップS111では、例えば、処理p1,p2,p3,p4,p5,p6といった順に、各処理が整列される。
続いて、選択部120aは、変数iに1を代入する(ステップS112)。変数iは、処理対象の処理名に対応する番号を格納する変数である。ここで、処理名がp1〜p6の場合、対応する番号はそれぞれ1〜6とする。そして、選択部120aは、処理piまでの処理エンジン型の組合せの選択処理を実行する(ステップS113)。ステップS113では、処理piに対して選択可能な処理エンジン型ごとに、処理iの一つ前の各処理について選択された処理エンジン型の組合せの中から、当該処理エンジン型の処理エンジンを最後段に追加された場合のコストが最小となる組合せが選択される。選択された組合せに対して、当該処理エンジン型が追加される。
続いて、選択部120aは、変数iの値が、全処理数以上であるか否かを判定する(ステップS114)。すなわち、ステップS113が、フロー定義モデル(DFD)110を構成する全ての処理に関して実行されたか否かが判定される。なお、ここでは、全処理数は6である。
変数iの値が、全処理数未満である場合(ステップS114のNOルート)、選択部120aは、変数iに1を加算して(ステップS115)、ステップS113以降の処理を繰り返す。
ステップS113が、全ての処理に関して実行されることにより、作業用テーブル125は、例えば、図27に示されるような状態になる。
図27は、作業用テーブル125の構成例を示す図である。図27に示される作業用テーブル125では、行方向に処理が配置され、列方向に処理エンジン型が配置されている。すなわち、P1〜P4は、それぞれ処理エンジン型を示す。
図27に示されるように、作業用テーブル125には、処理p1〜p6のそれぞれについて、当該処理に選択可能な処理エンジン型ごとに、当該処理エンジン型を最後段に含む処理エンジン型の組合せの内容と、当該組合せのコストとが記憶される。すなわち、各処理のレコード(以下、作業用レコードという)において、当該処理に対して選択可能な処理エンジン型の列の下段の行には、当該処理エンジン型を最後段とする処理エンジン型の組合せを示す情報(以下、組合せ情報という)が記憶される。上段の行には当該組合せのコストが記憶される。組合せ情報は、当該組合せを構成する処理エンジン型ごとに「<処理名>:<処理エンジン型>」の表記を含む。各表記は、処理順に配列され、「,」によって区切られる。
なお、各処理に関して選択可能な処理型および処理エンジン型には、後述されるような制限がある。例えば、処理p1については、処理エンジン型P3に関してのみ、コストとして35が算出されている。後述されるように、処理p1については、処理エンジン型P3を利用することが、ユーザ等により指定されているからである。
一方、処理p2については、処理エンジン型P3と処理エンジン型P4とが選択可能である。したがって、処理p2については、処理エンジン型P3が選択された場合のコストおよび組合せ情報と、処理エンジン型P4が選択された場合のコストおよび組合せ情報とが記憶される。例えばp2に関して、処理エンジン型P3が選択された場合の処理エンジン型の組合せの選択結果は、「p1:P3,p2:P3」である。これは、処理p1について処理エンジン型P3が選択され、処理p2について処理エンジン型P3が選択されたことを示す。
続いて、選択部120aは、フロー定義モデル(DFD)110において最後段処理が、複数、存在するか否かを判定する(ステップS116)。最後段処理とは、フロー定義モデル(DFD)110によって定義されるフローにおいて末端となる処理をいう。図5に示されるフロー定義モデル(DFD)110において、最後段処理は、処理p6の一つだけである。一方、例えば、図28に示されるフロー定義モデル(DFD)110については、最後段処理は、複数存在している。
図28は、複数の最後段処理を含むフロー定義モデル(DFD)110の一例を示す図である。図28に示されるフロー定義モデル(DFD)110では、処理p5および処理p8の二つの処理が最後段処理である。
最後段処理が一つである場合(ステップS116のNOルート)、選択部120aは、当該最後段処理に関する作業用レコードの内容を出力し(ステップS117)、選択処理を終了する。図27の例では、処理p6について、処理エンジン型P3の列に記憶されている内容が出力される。
一方、最後段処理が複数存在する場合(ステップS116のYESルート)、選択部120aは、各最後段処理までの処理エンジン型の組合せのコストをマージする(ステップS118)。このとき、各組合せにおいて同じ処理に関するコストの重複は排除される。例えば、図28の例では、処理p5について、「処理p1→処理p2→処理p3→処理p4→処理p5」の各処理について選択された処理エンジン型の組合せが作業用テーブル125に記憶される。また、処理p8について、「処理p1→処理p2→処理p3→処理p6→処理p7→処理p8」の各処理について選択された処理エンジン型の組合せが作業用テーブル125に記憶される。二つの組合せにおいて、「処理p1→処理p2→処理p3」は、重複している。したがって、当該重複部分についてのコストについては、二重に加算されないように、二つの組合せのコストが合算される。具体的には、二つの組合せのコストの和から、「処理p1→処理p2→処理p3」に係るコストが減算される。
続いて、選択部120aは、マージ結果を出力し(ステップS119)、選択処理を終了する。
次に、ステップS113の詳細について説明する。図29は、各処理までの処理エンジン型の組合せの選択処理の処理手順の一例を説明するフローチャート(ステップS201〜S215)である。
ステップS201において、選択部120aは、処理piに対して利用可能な処理エンジン型のうち、未処理の処理エンジン型の一つを代入する。変数jは、処理対象とする処理エンジン型を格納するための変数である。以下、変数jに係る処理エンジン型を処理エンジン型Pjという。未処理の処理エンジン型とは、ステップS202以降に関して処理対象とされていない処理エンジン型をいう。
処理piに対して利用可能な処理エンジン型は、処理コスト記憶部122を参照して特定可能である。
図30は、処理コスト記憶部122の構成例を示す図である。図30において、処理コスト記憶部122には、フロー定義モデル(DFD)110を構成する処理p1〜p6について、当該処理に利用可能な処理エンジン型ごとに、当該処理エンジン型による当該処理の処理コストが記憶されている。各処理について値が記憶されていない処理エンジン型については、当該処理に対して利用可能でないことを示す。なお、図30において、列方向のP1〜P4は、処理エンジン型を示す。
例えば、処理p1であれば、処理エンジン型P3およびP4を利用可能であり、それぞれの処理コストは、「35」,「60」であることが示されている。処理p6であれば、処理エンジン型P1,P3またはP4を利用可能であり、それぞれの処理コストは、「400」,「100」,「105」であることが示されている。
なお、処理コスト記憶部122には、各処理エンジン型の処理型についても記憶されている。図30では、処理エンジン型P1およびP2の処理型は、バッチ処理であり、処理エンジン型P3およびP4の処理型は、リアルタイム処理であることが示されている。
続いて、選択部120aは、ユーザ要求記憶部124から、処理piに関するレコード(以下、ユーザ要求レコードという)を取得する(ステップS202)。
図31は、ユーザ要求記憶部124の構成例を示す図である。図31において、ユーザ要求記憶部124には、処理p1〜p6のうち、処理型または処理エンジン型について予めユーザによる指定がある処理について、指定された処理型または処理エンジン型が記憶されている。図31には、処理p1およびp6の処理エンジン型がP3であり、処理p4の処理型がバッチ処理であることが指定された例が示されている。
取得されたユーザ要求レコードに、処理型または処理エンジン型が指定されている場合(ステップS203のYESルート)、選択部120aは、処理エンジン型Pjが、当該ユーザ要求レコードにおける指定に適合するか否かを判定する(ステップS204)。具体的には、処理エンジン型Pjの処理型が、当該ユーザ要求レコードに指定された処理型であるか、または、処理エンジン型Pjが、当該ユーザ要求レコードに指定された処理エンジン型であるか否かが判定される。処理エンジン型Pjが、当該ユーザ要求レコードの指定に適合しない場合(ステップS204でNOルート)、ステップS201以降が実行される。すなわち、処理piに対して利用可能な処理エンジン型のうち、他の処理エンジン型についてステップS202以降の処理が実行される。処理エンジン型Pjが、当該ユーザ要求レコードの指定に適合する場合(ステップS204のYESルート)、選択部120aは、ステップS207に移行する。
一方、ステップS202において取得されたユーザ要求レコードに、処理型および処理エンジン型のいずれについても指定が無い場合(ステップS203のNOルート)、選択部120aは、処理piに前段処理があるか否かをフロー定義モデル(DFD)110に基づいて判定する(ステップS205)。処理piの前段処理とは、処理piと直列的な関係を有し、処理piの一つ前に実行される処理をいう。
処理piに前段処理が無い場合(ステップS205のNOルート)、選択部120aは、ステップS207に進む。処理piに前段処理がある場合(ステップS205のYESルート)、選択部120aは、処理エンジン型Pjの処理型が、いずれかの前段処理に対して選択されている処理型と同じであるか否かを判定する(ステップS206)。処理エンジン型Pjの処理型が、いずれの前段処理に対して選択されている処理型とも異なる場合(ステップS206のNOルート)、ステップS201以降の処理が実行される。処理エンジン型Pjの処理型が、いずれかの前段処理に対して選択されている処理型と同じである場合(ステップS206のYESルート)、選択部120aは、ステップS207に移行する。
すなわち、処理piに、処理エンジン型の指定がある場合、処理piについては、当該処理エンジン型のみが選択可能(選択候補)になる。また、処理piに処理型の指定がある場合、処理piについては、当該処理型に対応した処理エンジン型のみが選択可能(選択候補)になる。また、処理piに処理型および処理エンジン型のいずれの指定も無い場合、処理piについては、いずれかの前段処理の処理型に対応した処理エンジン型が、選択可能(選択候補)になる。ユーザ等による指定がない場合に、前段処理における処理型に合わせられるのは、ユーザの意図しないタイミングで、処理型が変更されるのを回避するためである。すなわち、本実施形態では、或る処理について処理型が指定された場合、ユーザ等は、当該処理以降に関して、同じ処理型で処理が実行されることを予測または期待することができる。
ステップS207において、選択部120aは、処理piに前段処理があるか否かをフロー定義モデル(DFD)110に基づいて判定する。処理piに前段処理がない場合(ステップS207のNOルート)、選択部120aは、処理piに関する処理エンジン型Pjの処理コストを、処理コスト記憶部122から取得する(ステップS208)。続いて、選択部120aは、処理piに対して処理エンジン型Pjが選択されたことを示す組合せ情報(「pi:Pj」)と、取得された処理コストとを、処理piの作業用レコードの処理エンジン型Pjの列に記憶する(ステップS212)。
続いて、選択部120aは、処理piに利用可能な処理エンジン型のうち、ユーザ要求記憶部124に記憶されている要求を満たす全ての処理エンジン型について、ステップS201以降の処理が実行されたか否かを判定する(ステップS213)。未処理の処理エンジン型がある場合(ステップS213のNOルート)、当該処理エンジン型についてステップS201以降の処理が実行される。
未処理の処理エンジン型が無い場合(ステップS213のYESルート)、選択部120aは、ステップS214に移行する。例えば、処理piが処理p1である場合、この時点において、作業用テーブル125には、図32に示されるような作業用レコードが記録されている。
図32は、処理p1に関する作業用レコードの第1の例を示す図である。図32では、処理エンジン型P3の列に、コストと組合せ情報とが記憶されている。図30より、処理p1については、処理エンジン型P3および処理エンジン型P4が利用可能であり、それぞれの処理エンジン型による処理コストは「35」,「60」である。ただし、図31より、処理p1については、処理エンジン型P3を利用することが、ユーザ等によって指定されている。したがって、処理p1については、処理エンジン型P3に関する処理コストと、処理p1に対して処理エンジン型P3が選択されたことを示す組合せ情報(「p1:P3」)とが記憶される。仮に、処理p1に関する処理型および処理エンジン型について、ユーザ等による指定が無い場合、処理p1に関しては、図33に示されるような作業用レコードが、作業用テーブル125に記憶される。
図33は、処理p1に関する作業用レコードの第2の例を示す図である。図33では、処理エンジン型P3に対する処理コストおよび組合せ情報に加え、処理エンジン型P4に対する処理コストおよび組合せ情報が記憶された例が示されている。図33に示すように、複数の処理エンジン型に関してコストおよび組合せ情報が記憶されている状態は、当該処理までの処理エンジン型の組合せが一意に確定されていないことを示す。
ステップS214において、選択部120aは、処理piには後段処理が複数存在するか否かを判定する。処理piの後段処理とは、処理piと直列的な関係を有し、処理piの一つ後に実行される処理をいう。処理piの後段処理が複数ある場合とは、処理piの後で分岐が発生する場合である。図5の例では、処理p1には、後段処理として処理p2および処理p4が存在する。
処理piに後段処理が複数ある場合(ステップS214のYESルート)、選択部120aは、処理piの作業用レコードのうち、コストが最小でない組合せを削除する(ステップS215)。例えば、処理p1の作業用レコードが、図33に示されるような場合、コストが「60」である組合せに係る列は削除される。その結果、処理p1の作業用レコードは、図32に示されるようになる。
すなわち、本実施形態では、処理piに後段処理が複数ある場合、処理piまでの処理エンジン型の組合せのうち、コストが最小である組合せによって、処理piまでの処理エンジン型の組合せが確定される。そうすることにより、処理piよりも後の分岐先の各処理に関してコストが最小になる処理エンジン型の組合せを探索するための計算量を削減することができる。すなわち、処理piと各後段処理における処理エンジン型との接続コストを考慮すれば、処理piまでの処理エンジン型の組合せのうち、コストが最小である組合せは、必ずしも全体の組合せに対して最適な組合せであるとは限らない。しかし、本実施形態では、このような可能性を無視することで、現実的な計算量の範囲内において、最適な解に近似した解が得られる。
一方、ステップS207において、処理piに前段処理がある場合(ステップS207のYESルート)、選択部120aは、処理piの全ての前段処理の作業用レコード取得する(S209)。すなわち、処理piが、図5に示される処理p2,p3,p4またはp5のように前段処理を一つだけ有する場合は、当該一つの前段処理の作業用レコードが取得される。一方、処理piが、処理p6のように前段処理を複数有する場合は、当該複数の前段処理のそれぞれの作業用レコードが取得される。
続いて、選択部120aは、取得された作業用レコードに記憶されている組合せごとに、当該組合せに対して処理エンジン型Pjを最後段に追加(又は接続)した場合の、処理コストおよび接続コストの総和を算出する(ステップS210)。
ここでは、処理piは処理p2であり、処理エンジン型Pjは、処理エンジン型P3であるとする。また、便宜上、前段処理である処理p1の作業用レコードは、図33に示される通りであるとする。この場合、図33に示される、「p1:P3」の組合せに対して「p2:P3」を追加した「p1:P3,p2:P3」の組合せに対するコスト1と、「p1:P4」の組合せに対して「p2:P3」を追加した「p1:P4,p2:P3」の組合せに対するコスト2とが算出される。
コスト1は、「処理エンジン型P3による処理p1の処理コスト+処理エンジン型P3どうしの接続コスト+処理エンジン型P3による処理p2の処理コスト」によって算出される。コスト2は、「処理エンジン型P4による処理p1の処理コスト+処理エンジン型P4と処理エンジン型P3との接続コスト+処理エンジン型P3による処理p2の処理コスト」によって算出される。
図30より、処理エンジン型P3による処理p1の処理コストは、「35」である。処理エンジン型P3による処理p2の処理コストは、「40」である。処理エンジン型P4による処理p1の処理コストは、「60」である。
一方、接続コストは、接続コスト記憶部123を参照して特定することができる。図34は、接続コスト記憶部123の構成例を示す図である。図34において、接続コスト記憶部123は、行方向の処理エンジン型と、列方向の処理エンジン型との組ごとに、当該組に係る処理エンジン型間の接続コストを記憶する。
図34によれば、処理エンジン型P3同士の接続コストは、「5」である。処理エンジン型P4と処理エンジン型P3との接続コストは、「20」である。
上記より、
コスト1=35+5+40=80
コスト2=60+20+40=120
となる。
続いて、選択部120aは、コストが最小である組合せを、処理piの処理エンジン型Pjに対する組合せとして選択する(ステップS211)。ここでは、コスト1に係る組合せである「p1:P3,p2:P3」が選択される。
このように、本実施形態では、フロー定義モデル(DFD)110を構成する処理ごとに、当該処理において選択可能な処理エンジン型について、コストが最小となる組合せが選択される。換言すれば、コストが最小でない組合せは、以降の処理に関して計算の対象から除外される。したがって、全ての組合せについてコストが計算される場合に比べて、計算量を削減することができる。
続いて、ステップS212以降の処理が実行される。ここでは、ステップS212において、処理p2の作業用レコードの処理エンジン型P3の列のコストに80が記憶され、組合せ情報に「p1:P3,p2:P3」が記憶される。
なお、本実施形態において、処理p1に関する本来のレコードは、図32に示される通りである。したがって、処理p2の処理エンジン型P3については、コスト1のみが算出される。また、図30より、処理p2には、処理エンジン型P1,P3およびP4を利用可能であるが、ステップS206の作用により、処理エンジン型P1は、除外される。したがって、処理p2については、処理エンジン型P3と処理エンジン型P4とのそれぞれについて、ステップS209以降の処理が実行される。その結果、処理p2については、図35に示されるような作業用レコードが記憶される。
図35は、処理p2に関する作業用レコードの例を示す図である。図35に示される処理p2の作業用レコードには、処理エンジン型P3に関して「p1:P3,p2:P3」の組合せ情報が記憶され、処理エンジン型P4に関して「p1:P3,p2:P4」が記憶されている。処理piが処理p2の時点では、処理p2までの処理エンジン型の組合せについて、「p1:P3,p2:P3」と「p1:P3,p2:P4」とのいずれが最適であるかは確定されていない。したがって、処理p2の作業用レコードには二つの組合せ情報が記憶されている。
図5における処理p3以降について具体的に説明する。処理p3については、図30によれば、処理エンジン型P1,P3およびP4を利用可能である。ただし、処理エンジン型P1については、処理p3の前段処理である処理p2における処理エンジン型P3およびP4のいずれとも処理型が異なる。したがって、処理エンジン型P1は、組合せの対象から除外され、処理エンジン型P3およびP4のそれぞれに関して、処理p2における二つの組合せに追加された場合のコストが算出される。
処理エンジン型P3が、「p1:P3,p2:P3」の組合せに追加された場合のコスト3と、「p1:P3,p2:P4」の組合せに追加された場合のコスト4とのそれぞれは、以下の通りである。
コスト3=80+5+90=175
コスト4=105+20+90=215
コスト3<コスト4であるから、処理p3の作業用レコードにおいて、処理エンジン型P3に関するコストには「175」が記憶され、組合せ情報には、「p1:P3,p2:P3,p3:P3」が記憶される(図27参照)。
一方、処理エンジン型P4が、「p1:P3,p2:P3」の組合せに追加された場合のコスト5と、「p1:P3,p2:P4」の組合せに追加された場合のコスト6とのそれぞれは、以下の通りである。
コスト5=80+20+40=140
コスト6=105+10+40=155
コスト5<コスト6であるから、処理p3の作業用レコードにおいて、処理エンジン型P4に関するコストには「140」が記憶され、組合せ情報には「p1:P3,p2:P3,p3:P4」が記憶される(図27参照)。
処理p4については、図30によれば、処理エンジン型P1〜P4を利用可能である。ただし、処理p4のユーザ要求レコード(図31)において、処理p4の処理型はバッチ型であることが指定されている。したがって、処理p4については、処理エンジン型P1およびP2のそれぞれに関して、処理p3における二つの組合せに追加された場合のコストが計算される。
処理エンジン型P1が、処理p4の前段処理である処理p1における「p1:P3」の組合せに追加された場合のコスト7は、以下の通りである。
コスト7=35+90+200=325
また、処理エンジン型P2が、処理p1における「p1:P3」の組合せに追加された場合のコスト8は、以下の通りである。
コスト8=35+80+300=415
したがって、処理p4の作業用レコードには、処理エンジン型P1に対して、コスト「35」が記憶され、組合せ情報「p1:P3,p4:P1」が記憶される。また、処理エンジン型P2に対して、コスト「415」が記憶され、組合せ情報「p1:P3,p4:P2」が記憶される。
処理p5については、図30によれば、処理エンジン型P2および処理エンジン型P3を利用可能である。ただし、処理p5の前段処理である処理p4における処理エンジン型P1およびP2の処理型は、いずれもバッチ処理である。したがって、処理エンジン型P2に関して、処理p4における二つの組合せに追加された場合のコストが計算される。
処理エンジン型P2が、処理p4における「p1:P3,p4:P1」に追加された場合のコスト9と、処理p4における「p1:P3,p4:P2」に追加された場合のコスト10とのそれぞれは、以下の通りである。
コスト9=325+55+350=730
コスト10=415+30+350=795
コスト9<コスト10であるから、処理p5の作業用レコードには、処理エンジン型P2に対して、コスト「730」が記憶され、組合せ情報「p1:P3,p4:P1,p5:P2」が記憶される。
処理p6については、図30によれば、処理エンジン型P1,P3およびP4を利用可能である。ただし、処理p6のユーザ要求レコード(図31)において、処理p6には処理エンジン型P3を利用することが指定されている。したがって、処理p6については、処理エンジン型P3に関して、処理p6の前段処理である処理p3の組合せと処理p5の組合せとの組合せに、処理エンジン型P3が追加された場合のコストが計算される。ここで、処理p3の組合せと処理p5の組合せとの組合せとは、処理p3における二つの組合せのそれぞれについて、処理p5の一つの組合せが適用された2通りの組合せをいう。仮に、処理p5に二つの組合せが有った場合、処理p3の組合せと処理p5の組合せとの組合せは、4通りになる。
処理p3における「p1:P3,p2:P3,p3:P3」の組合せと、処理p5における「p1:P3,p4:P1,p5:P2」の組合せとの組合せに対して処理エンジン型P3が追加された場合のコスト11は、以下の通りである。
コスト11=730−35+80+175+5+100=1055
ここで、730は、処理p5の組合せのコストである。175は、処理p3の組合せのコストである。80は、処理p5の処理エンジン型P2と処理p6の処理エンジン型Cとの接続コストである。5は、処理p3の処理エンジン型P3と、処理p6の処理エンジン型P3との接続コストである。また、−35は、「p1:P3,p2:P3,p3:P3」と「p1:P3,p4:P1,p5:P2」との重複部分である「p1:P3」に関する処理コストの二重の加算を回避するための項である。なお、二重の加算の回避は、図26のステップS118においても同様に行なわれる。
一方、処理p3における「p1:P3,p2:P3,p3:P4」の組合せと、処理p5における「p1:P3,p4:P1,p5:P2」の組合せとの組合せに対して処理エンジン型P3が追加された場合のコスト12は、以下の通りである。
コスト12=730−35+80+140+20+100=1035
コスト11>コスト12であるから、コスト12に係る組合せに対して、処理p6の処理エンジン型P3が追加される。その結果、処理p6の作業用テーブル125には、処理エンジン型P3に対して、コスト「1035」が記憶され、組合せ情報「p1:P3,p2:P3,p3:P4,p4:P1,p5:P2,p6:P3」が記憶される(図27参照)。
最後段処理に記憶された組合せ情報が、各処理に対して選択された処理エンジン型の組合せを示す情報である。
図36は、図30,図31および図34に示す構成例に基づき選択部120aによって得られる選択結果の一例を示す図である。図36に示すように、処理p1〜p6について、それぞれ、処理エンジン型P3,P3,P4,P1,P2,P3の組合せが選択された例が示されている。当該組合せが、処理コストおよび接続コストを含むコストにおいて最適な解に近似した解である。このとき、処理エンジン型P1〜P4のデータ伝送型がそれぞれD1〜D4とすると、データd1前後のデータ伝送型としてD3/D3が選択され、データd2前後のデータ伝送型としてD3/D4が選択され、データd3前後のデータ伝送型としてD4/D3が選択される。また、データd4前後のデータ伝送型としてD3/D1が選択され、データd5前後のデータ伝送型としてD1/D2が選択され、データd6前後のデータ伝送型としてD2/D3が選択される。
上述したように、本実施形態の選択部120を用いることで、分岐および合流や、複数の入出力を含む任意の大きさのフロー定義モデル110を構成する各処理について、複数の処理エンジン型の中から、適切な処理エンジン型を選択することができる。その際、ユーザ等の要求を反映しつつ、処理エンジン間のデータ伝送または変換を含めてコストが最小に近くなるような処理エンジン型やデータ伝送型を、現実的な時間で選択することができる。よって、相互に前後関係を有する複数の処理のそれぞれに利用するソフトウェアの選択を効率化することができる。
なお、本実施形態の選択部120では、各処理に対して選択されるソフトウェアが処理エンジンである例について説明したが、他のソフトウェアの選択に関して、本実施形態の選択部120が適用されてもよい。例えば、ライブラリまたはコンポーネントと呼ばれるソフトウェアを組み合わせてアプリケーションを作成する場合であって、アプリケーションを構成する各処理について、複数の選択肢の中からいずれかのソフトウェアを選択する必要がある場合に、本実施形態の選択部120が適用されてもよい
〔7〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
なお、上述した実施形態では、図5に示すようなフロー定義モデル(DFD)110についてコンピュータ10(選択部120a)の動作について説明したが、本発明は、これに限定されるものではない。また、上述した実施形態では、処理型がバッチ処理またはリアルタイム処理であり、処理エンジン型が3種類または4種類であり、データ伝送方が3種類または4種類である場合について説明したが、本発明は、これに限定されるものではない。
〔8〕付記
以上の各実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
フロー定義モデルにより複数種類の処理コンポーネントを組み合わせてシステムを構築する開発実行環境において、前記フロー定義モデルによって定義される、処理と当該処理の対象データとを含む要素ごとに、当該処理に用いられる処理エンジンの処理エンジン型もしくは当該処理の対象データのデータ伝送型を選択し、
前記処理エンジン型を選択された前記処理ごとに、もしくは、前記データ伝送型を選択された前記対象データごとに、各処理エンジン型と当該処理エンジン型用のモデル変換エンジンとを対応付ける第1管理テーブルと、各モデル変換エンジンが前記フロー定義モデルを定義ファイルに変換する際に用いるモデル変換ルールを処理エンジン型ごとに管理する第2管理テーブルとを参照して、当該処理もしくは当該対象データに応じたモデル変換エンジンおよびモデル変換ルールを選択し、
選択されたモデル変換エンジンおよびモデル変換ルールを用いて前記フロー定義モデルから前記定義ファイルを生成する、
処理をコンピュータに実行させる、定義ファイル生成プログラム。
(付記2)
新規の処理エンジン型と当該新規の処理エンジン型用の新規のモデル変換エンジンとの対応関係を前記第1管理テーブルに追加登録するとともに、当該新規のモデル変換エンジンが前記フロー定義モデルを前記定義ファイルに変換する際に用いるモデル変換ルールを前記第2管理テーブルに追加登録することにより、前記新規の処理エンジン型を動的に追加する、
処理を前記コンピュータに実行させる、付記1に記載の定義ファイル生成プログラム。
(付記3)
前記第2管理テーブルは、各処理エンジン型での各処理の種類についての第1モデル変換ルールを前記モデル変換ルールとして管理し、
前記処理エンジン型を選択された前記処理ごとに、当該処理エンジン型に対応するモデル変換エンジンを前記第1管理テーブルから選択するとともに、当該処理の種類および当該処理エンジン型に対応するモデル変換ルールを前記第1モデル変換ルールから選択する、
処理を前記コンピュータに実行させる、付記1または付記2に記載の定義ファイル生成プログラム。
(付記4)
前記第2管理テーブルは、各処理エンジン型での各データ伝送型におけるデータ伝送処理についての第2モデル変換ルールを前記モデル変換ルールとして管理し、
前記データ伝送型を選択された前記対象データごとに、当該対象データの前後におけるデータ伝送型が同一であるか否かを判断し、当該対象データの前後におけるデータ伝送型が同一である場合、当該対象データ前後の処理のいずれか一方の処理エンジン型に対応するモデル変換エンジンを前記第1管理テーブルから選択するとともに、当該いずれか一方の処理エンジン型でのデータ伝送型についてのデータ伝送処理のモデル変換ルールを前記第2モデル変換ルールから選択する、
処理を前記コンピュータに実行させる、付記1〜付記3のいずれか一項に記載の定義ファイル生成プログラム。
(付記5)
前記第2管理テーブルは、各処理エンジン型での各データ伝送型から異なるデータ伝送型へのデータ変換処理についての第3モデル変換ルールと、各処理エンジン型での実行開始処理についての第4モデル変換ルールと、を前記モデル変換ルールとして管理し、
前記データ伝送型を選択された前記対象データごとに、当該対象データの前後におけるデータ伝送型が同一であるか否かを判断し、
当該対象データの前後におけるデータ伝送型が同一でない場合、
当該対象データの前段処理の処理エンジン型に対応するモデル変換エンジンを前記第1管理テーブルから選択するとともに、前記前段処理の処理エンジン型での前段データ伝送型と後段データ伝送型との組に対応するデータ変換処理のモデル変換ルールを前記第3モデル変換ルールから選択し、
当該対象データの後段処理の処理エンジン型に対応するモデル変換エンジンを前記第1管理テーブルから選択するとともに、前記後段処理の処理エンジン型での前記後段処理を所定タイミングで実行する実行開始処理のモデル変換ルールを前記第4モデル変換ルールから選択する、
処理を前記コンピュータに実行させる、付記1〜付記4のいずれか一項に記載の定義ファイル生成プログラム。
(付記6)
相互に前後関係を有する複数の前記処理のそれぞれについて、前記処理エンジン型ごとに、当該処理よりも前の各処理に関して選択された処理エンジン型の1以上の組合せの中から、当該処理エンジン型の処理エンジンが最後段に追加された場合のコストが最小となる組合せを選択することで、各処理で用いられる処理エンジン型と各処理の対象データのデータ伝送型とを選択する、
処理を前記コンピュータに実行させる、付記1〜付記5のいずれか一項に記載の定義ファイル生成プログラム。
(付記7)
前記コストは、前記組合せに属する各処理エンジン型の処理に要される処理コストと、前記組合せに属する処理エンジン型のうち前記前後関係において隣接する処理に係る処理エンジン型の接続に要される接続コストとを含む、付記6に記載の定義ファイル生成プログラム。
(付記8)
コンピュータが、
フロー定義モデルにより複数種類の処理コンポーネントを組み合わせてシステムを構築する開発実行環境において、前記フロー定義モデルによって定義される、処理と当該処理の対象データとを含む要素ごとに、当該処理に用いられる処理エンジンの処理エンジン型もしくは当該処理の対象データのデータ伝送型を選択し、
前記処理エンジン型を選択された前記処理ごとに、もしくは、前記データ伝送型を選択された前記対象データごとに、各処理エンジン型と当該処理エンジン型用のモデル変換エンジンとを対応付ける第1管理テーブルと、各モデル変換エンジンが前記フロー定義モデルを定義ファイルに変換する際に用いるモデル変換ルールを処理エンジン型ごとに管理する第2管理テーブルとを参照して、当該処理もしくは当該対象データに応じたモデル変換エンジンおよびモデル変換ルールを選択し、
選択されたモデル変換エンジンおよびモデル変換ルールを用いて前記フロー定義モデルから前記定義ファイルを生成する、定義ファイル生成方法。
(付記9)
前記コンピュータは、新規の処理エンジン型と当該新規の処理エンジン型用の新規のモデル変換エンジンとの対応関係を前記第1管理テーブルに追加登録するとともに、当該新規のモデル変換エンジンが前記フロー定義モデルを前記定義ファイルに変換する際に用いるモデル変換ルールを前記第2管理テーブルに追加登録することにより、前記新規の処理エンジン型を動的に追加する、付記8に記載の定義ファイル生成方法。
(付記10)
前記第2管理テーブルは、各処理エンジン型での各処理の種類についての第1モデル変換ルールを前記モデル変換ルールとして管理し、
前記コンピュータは、前記処理エンジン型を選択された前記処理ごとに、当該処理エンジン型に対応するモデル変換エンジンを前記第1管理テーブルから選択するとともに、当該処理の種類および当該処理エンジン型に対応するモデル変換ルールを前記第1モデル変換ルールから選択する、付記8または付記7に記載の定義ファイル生成方法。
(付記11)
前記第2管理テーブルは、各処理エンジン型での各データ伝送型におけるデータ伝送処理についての第2モデル変換ルールを前記モデル変換ルールとして管理し、
前記コンピュータは、前記データ伝送型を選択された前記対象データごとに、当該対象データの前後におけるデータ伝送型が同一であるか否かを判断し、当該対象データの前後におけるデータ伝送型が同一である場合、当該対象データ前後の処理のいずれか一方の処理エンジン型に対応するモデル変換エンジンを前記第1管理テーブルから選択するとともに、当該いずれか一方の処理エンジン型でのデータ伝送型についてのデータ伝送処理のモデル変換ルールを前記第2モデル変換ルールから選択する、付記8〜付記10のいずれか一項に記載の定義ファイル生成方法。
(付記12)
前記第2管理テーブルは、各処理エンジン型での各データ伝送型から異なるデータ伝送型へのデータ変換処理についての第3モデル変換ルールと、各処理エンジン型での実行開始処理についての第4モデル変換ルールと、を前記モデル変換ルールとして管理し、
前記コンピュータは、
前記データ伝送型を選択された前記対象データごとに、当該対象データの前後におけるデータ伝送型が同一であるか否かを判断し、
当該対象データの前後におけるデータ伝送型が同一でない場合、
当該対象データの前段処理の処理エンジン型に対応するモデル変換エンジンを前記第1管理テーブルから選択するとともに、前記前段処理の処理エンジン型での前段データ伝送型と後段データ伝送型との組に対応するデータ変換処理のモデル変換ルールを前記第3モデル変換ルールから選択し、
当該対象データの後段処理の処理エンジン型に対応するモデル変換エンジンを前記第1管理テーブルから選択するとともに、前記後段処理の処理エンジン型での前記後段処理を所定タイミングで実行する実行開始処理のモデル変換ルールを前記第4モデル変換ルールから選択する、付記8〜付記11のいずれか一項に記載の定義ファイル生成方法。
(付記13)
前記コンピュータは、相互に前後関係を有する複数の前記処理のそれぞれについて、前記処理エンジン型ごとに、当該処理よりも前の各処理に関して選択された処理エンジン型の1以上の組合せの中から、当該処理エンジン型の処理エンジンが最後段に追加された場合のコストが最小となる組合せを選択することで、各処理で用いられる処理エンジン型と各処理の対象データのデータ伝送型とを選択する、付記8〜付記12のいずれか一項に記載の定義ファイル生成方法。
(付記14)
前記コストは、前記組合せに属する各処理エンジン型の処理に要される処理コストと、前記組合せに属する処理エンジン型のうち前記前後関係において隣接する処理に係る処理エンジン型の接続に要される接続コストとを含む、付記13に記載の定義ファイル生成方法。
(付記15)
処理部と記憶部とを有し、
前記処理部は、
フロー定義モデルにより複数種類の処理コンポーネントを組み合わせてシステムを構築する開発実行環境において、前記フロー定義モデルによって定義される、処理と当該処理の対象データとを含む要素ごとに、当該処理に用いられる処理エンジンの処理エンジン型もしくは当該処理の対象データのデータ伝送型を選択し、前記フロー定義モデルによって定義される処理ごとに、当該処理に用いられる処理エンジンの処理エンジン型と当該処理の対象データのデータ伝送型とを選択し、
前記処理エンジン型を選択された前記処理ごとに、もしくは、前記データ伝送型を選択された前記対象データごとに、各処理エンジン型と当該処理エンジン型用のモデル変換エンジンとを対応付ける第1管理テーブルと、各モデル変換エンジンが前記フロー定義モデルを定義ファイルに変換する際に用いるモデル変換ルールを処理エンジン型ごとに管理する第2管理テーブルとを参照して、当該処理もしくは当該対象データに応じたモデル変換エンジンおよびモデル変換ルールを選択し、
選択されたモデル変換エンジンおよびモデル変換ルールを用いて前記フロー定義モデルから前記定義ファイルを生成するとともに、
前記記憶部は、前記第1管理テーブルおよび前記第2管理テーブルを保存する、情報処理装置。
(付記16)
前記処理部は、新規の処理エンジン型と当該新規の処理エンジン型用の新規のモデル変換エンジンとの対応関係を前記第1管理テーブルに追加登録するとともに、当該新規のモデル変換エンジンが前記フロー定義モデルを前記定義ファイルに変換する際に用いるモデル変換ルールを前記第2管理テーブルに追加登録することにより、前記新規の処理エンジン型を動的に追加する、付記15に記載の情報処理装置。
(付記17)
前記第2管理テーブルは、各処理エンジン型での各処理の種類についての第1モデル変換ルールを前記モデル変換ルールとして管理し、
前記処理部は、前記処理エンジン型を選択された前記処理ごとに、当該処理エンジン型に対応するモデル変換エンジンを前記第1管理テーブルから選択するとともに、当該処理の種類および当該処理エンジン型に対応するモデル変換ルールを前記第1モデル変換ルールから選択する、付記15または付記16に記載の情報処理装置。
(付記18)
前記第2管理テーブルは、各処理エンジン型での各データ伝送型におけるデータ伝送処理についての第2モデル変換ルールを前記モデル変換ルールとして管理し、
前記処理部は、前記データ伝送型を選択された前記対象データごとに、当該対象データの前後におけるデータ伝送型が同一であるか否かを判断し、当該対象データの前後におけるデータ伝送型が同一である場合、当該対象データ前後の処理のいずれか一方の処理エンジン型に対応するモデル変換エンジンを前記第1管理テーブルから選択するとともに、当該いずれか一方の処理エンジン型でのデータ伝送型についてのデータ伝送処理のモデル変換ルールを前記第2モデル変換ルールから選択する、付記15〜付記17のいずれか一項に記載の情報処理装置。
(付記19)
前記第2管理テーブルは、各処理エンジン型での各データ伝送型から異なるデータ伝送型へのデータ変換処理についての第3モデル変換ルールと、各処理エンジン型での実行開始処理についての第4モデル変換ルールと、を前記モデル変換ルールとして管理し、
前記処理部は、
前記データ伝送型を選択された前記対象データごとに、当該対象データの前後におけるデータ伝送型が同一であるか否かを判断し、
当該対象データの前後におけるデータ伝送型が同一でない場合、
当該対象データの前段処理の処理エンジン型に対応するモデル変換エンジンを前記第1管理テーブルから選択するとともに、前記前段処理の処理エンジン型での前段データ伝送型と後段データ伝送型との組に対応するデータ変換処理のモデル変換ルールを前記第3モデル変換ルールから選択し、
当該対象データの後段処理の処理エンジン型に対応するモデル変換エンジンを前記第1管理テーブルから選択するとともに、前記後段処理の処理エンジン型での前記後段処理を所定タイミングで実行する実行開始処理のモデル変換ルールを前記第4モデル変換ルールから選択する、付記8〜付記11のいずれか一項に記載の情報処理装置。
(付記20)
前記処理部は、相互に前後関係を有する複数の前記処理のそれぞれについて、前記処理エンジン型ごとに、当該処理よりも前の各処理に関して選択された処理エンジン型の1以上の組合せの中から、当該処理エンジン型の処理エンジンが最後段に追加された場合のコストが最小となる組合せを選択することで、各処理で用いられる処理エンジン型と各処理の対象データのデータ伝送型とを選択する、付記15〜付記19のいずれか一項に記載の情報処理装置。