(57)【要約】      （修正有）【課題】アプリケーションを生成する際、処理フロー定義情報のみを入力することでアプリケーションを効率よく自動生成することができるアプリケーション開発支援装置を提供する。【解決手段】アプリケーション開発支援装置は、複数の処理の実行順序と各処理を並列実行可能な単位で分けたブロックとを含む処理フロー定義情報Ｍ４を入力する入力部と、処理フロー定義情報Ｍ４に基づき、各処理に対応する雛形を決定する雛形決定プログラムと、処理フロー定義情報Ｍ４に基づき、データの保存パスＰを決定する保存パス決定プログラムと、上記雛形と上記保存パスＰとを用い、処理フローの順序制御、処理フローの並列実行制御および処理フローのリカバリ制御を行う機能を有する分散実行環境上で実行可能なアプリケーションを自動生成するアプリケーション自動生成プログラムとを備えている。【選択図】図５
2018067218.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理の実行順序と前記各処理を並列実行可能な単位で分けたブロックとを含む処理フロー定義情報を入力する入力部と、
前記各処理で利用されるツールを呼び出す呼出プログラムの雛形を格納すると共に、前記各処理のデータを記憶する記憶装置の保存パス情報を含む環境設定情報を格納する記憶部と、
前記処理フロー定義情報に基づき、前記各処理に対応する前記雛形を決定する雛形決定プログラムと、
前記処理フロー定義情報に基づき、前記データの入力元および出力先の保存パスを決定する保存パス決定プログラムと、
前記雛形決定プログラムにより決定された前記雛形と前記保存パス決定プログラムにより決定された前記保存パスとを用い、処理フローの順序制御、前記処理フローの並列実行制御および前記処理フローのリカバリ制御を行う機能を有する分散実行環境上で実行可能なアプリケーションを自動生成するアプリケーション自動生成プログラムとを備えているアプリケーション開発支援装置。
【請求項２】
処理フロー定義情報が、各処理にて用いる呼出プログラムの雛形を特定するツール識別子を含み、
前記ツール識別子に基づき、記憶部から前記特定の雛形を取得する雛形取得プログラムを備えている請求項１に記載のアプリケーション開発支援装置。
【請求項３】
保存パス決定プログラムが、処理フロー定義情報に基づき入力元および出力先の保存パスのそれぞれを、グローバル記憶装置またはローカル記憶装置のいずれかに決定する請求項１または請求項２に記載のアプリケーション開発支援装置。
【請求項４】
実行対象となる第１の処理の次に実行する第２の処理が存在し、かつ前記第１の処理と前記第２の処理とが同一のブロックに属する場合、保存パス決定プログラムが、前記第１の処理にて処理するデータの出力先の保存パスをローカル記憶装置に決定し、かつ前記第２の処理にて処理するデータの入力元を前記ローカル記憶装置に決定する請求項３に記載のアプリケーション開発支援装置。
【請求項５】
複数の処理の実行順序と前記各処理を並列実行可能な単位で分けたブロックとを含む処理フロー定義情報を入力するステップと、
前記処理フロー定義情報に基づき、雛形決定プログラムを用いて、前記各処理で利用されるツールを呼び出す呼出プログラムの雛形を決定するステップと、
前記処理フロー定義情報に基づき、保存パス決定プログラムを用いて、前記各処理に関わるデータの入力元および出力先の保存パスを決定するステップと、
前記決定された雛形および前記決定された保存パスを用い、処理フローの順序制御、前記処理フローの並列実行制御および前記処理フローのリカバリ制御を行う機能を有する分散実行環境上で実行可能なアプリケーションを自動生成するステップとを含むアプリケーション開発支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション開発支援装置およびアプリケーション開発支援方法に関する。特に、本発明は、他のツールと連携しかつ並列処理が可能なアプリケーションを作成する技術に関する。
【背景技術】
【０００２】
演算処理技術において、限られたリソースを用いて効率良く演算処理を実行させるものとして並列処理技術が知られている。この技術では、並列処理を実現するために複雑なアプリケーションが必要となる。
【０００３】
このような複雑なアプリケーションを効率よく作成できるものとして、例えば、処理するデータのうちの並列処理可能な単位を把握し、この単位に分けられたデータ毎に処理フロー定義情報に基づく処理を実行させる手法を用いてアプリケーションを自動的に作成する技術が開示されている（例えば、特許文献１参照）。
【０００４】
このような技術によれば、並列処理可能な単位毎に処理を実行することができ、利用者が定義した処理フローに基づいて、自動的に並列化処理を行うプログラムを生成できる点で効率的な作成を実現している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１７８３１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述したような従来の技術では、アプリケーションの処理フローで実行する各処理内にて外部ツールを用いてこれと連携する場合、各処理におけるデータの保存先の指定および上記ツールの利用手順の作成を、ユーザ（アプリケーション開発者）がアプリケーション作成の都度当該アプリケーションに合うように行う必要があり、効率的にアプリケーションを開発できるとは言い難い。
【０００７】
本発明は、以上のような事情に基づいてなされたものであり、その目的は、アプリケーションを生成する際、処理フロー定義情報のみを入力することでアプリケーションを効率よく自動生成することが可能なアプリケーション開発支援装置およびアプリケーション開発支援方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、
（１）複数の処理の実行順序と前記各処理を並列実行可能な単位で分けたブロックとを含む処理フロー定義情報を入力する入力部と、
前記各処理で利用されるツールを呼び出す呼出プログラムの雛形を格納すると共に、前記各処理のデータを記憶する記憶装置の保存パス情報を含む環境設定情報を格納する記憶部と、
前記処理フロー定義情報に基づき、前記各処理に対応する前記雛形を決定する雛形決定プログラムと、
前記処理フロー定義情報に基づき、前記データの入力元および出力先の保存パスを決定する保存パス決定プログラムと、
前記雛形決定プログラムにより決定された前記雛形と前記保存パス決定プログラムにより決定された前記保存パスとを用い、処理フローの順序制御、前記処理フローの並列実行制御および前記処理フローのリカバリ制御を行う機能を有する分散実行環境上で実行可能なアプリケーションを自動生成するアプリケーション自動生成プログラムとを備えているアプリケーション開発支援装置、
（２）処理フロー定義情報が、各処理にて用いる呼出プログラムの雛形を特定するツール識別子を含み、
前記ツール識別子に基づき、記憶部から前記特定の雛形を取得する雛形取得プログラムを備えている前記（１）に記載のアプリケーション開発支援装置、
（３）保存パス決定プログラムが、処理フロー定義情報に基づき入力元および出力先の保存パスのそれぞれを、グローバル記憶装置またはローカル記憶装置のいずれかに決定する前記（１）または（２）に記載のアプリケーション開発支援装置、
（４）実行対象となる第１の処理の次に実行する第２の処理が存在し、かつ前記第１の処理と前記第２の処理とが同一のブロックに属する場合、保存パス決定プログラムが、前記第１の処理にて処理するデータの出力先の保存パスをローカル記憶装置に決定し、かつ前記第２の処理にて処理するデータの入力元を前記ローカル記憶装置に決定する前記（３）に記載のアプリケーション開発支援装置、並びに
（５）複数の処理の実行順序と前記各処理を並列実行可能な単位で分けたブロックとを含む処理フロー定義情報を入力するステップと、
前記処理フロー定義情報に基づき、雛形決定プログラムを用いて、前記各処理で利用されるツールを呼び出す呼出プログラムの雛形を決定するステップと、
前記処理フロー定義情報に基づき、保存パス決定プログラムを用いて、前記各処理に関わるデータの入力元および出力先の保存パスを決定するステップと、
前記決定された雛形および前記決定された保存パスを用い、分散実行環境で実行可能なアプリケーションを自動生成するステップとを含むアプリケーション開発支援方法
に関する。
【０００９】
なお、本明細書において、「分散実行環境」とは、プログラムの個々の部分が同時並行的に複数のサーバ上で実行され、各々が分散実行ネットワークを介して互いに通信を行いながら全体として処理が進行する計算システムを意味する。また、「処理フローの順序制御」とは、所定の処理フローにおける各処理の実行順序に従い上記各処理を実行する制御を意味する。「処理フローの並列実行制御」とは、上記所定の処理フローにおいて規定されている各処理を並列実行可能な単位で分けたもの（ブロック）と、実行並列数とに基づいて並列実行を行う制御である。これらの具体例については、後述する図９にて示す。また、「リカバリ制御」とは、上記所定の処理フローにおける各処理の処理状況を管理し、エラー発生時にリカバリする制御を意味する。また、「第１の処理」とは、処理フロー定義情報に含まれる任意の識別子に対応する処理を意味し、「第２の処理」とは、上記第１の処理の次に実行される処理を意味する。
【発明の効果】
【００１０】
本発明は、アプリケーションを生成する際、処理フロー定義情報のみを入力することでアプリケーションを効率よく自動生成することができるアプリケーション開発支援装置およびアプリケーション開発支援方法を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明のアプリケーション開発支援装置が用いられる環境の一例を示す概略全体構成図である。
【図２】本発明のアプリケーション開発支援装置の一実施形態を示す概略構成図である。
【図３】図２のアプリケーション開発支援装置を用いて行うアプリケーション生成の概略処理フロー図である。
【図４】図２のアプリケーション開発支援装置を用いて行うアプリケーション生成の概略シーケンス図である。
【図５】図２のアプリケーション開発支援装置を用いて行うアプリケーション生成の概略処理フロー図である。
【図６】図５の雛形決定プログラムの概略処理フロー図である。
【図７】図５の保存パス決定プログラムの概略処理フロー図である。
【図８】図２のツール特性情報の一例を示す図である。
【図９】図２の処理フロー定義情報の一例を示す図である。
【図１０】図２の連携情報リストの一例を示す図である。
【図１１】図２の環境設定情報の一例を示す図である。
【発明を実施するための形態】
【００１２】
＜アプリケーション開発支援装置＞
本発明のアプリケーション開発支援装置は、複数の処理の実行順序と上記各処理を並列実行可能な単位で分けたブロックとを含む処理フロー定義情報を入力する入力部と、上記各処理で利用されるツールを呼び出す呼出プログラムの雛形を格納すると共に、上記各処理のデータを記憶する記憶装置の保存パス情報を含む環境設定情報を格納する記憶部と、上記処理フロー定義情報に基づき、上記各処理に対応する上記雛形を決定する雛形決定プログラムと、上記処理フロー定義情報に基づき、上記データの入力元および出力先の保存パスを決定する保存パス決定プログラムと、上記雛形決定プログラムにより決定された上記雛形と上記保存パス決定プログラムにより決定された上記保存パスとを用い、処理フローの順序制御、上記処理フローの並列実行制御および上記処理フローのリカバリ制御を行う機能を有する分散実行環境上で実行可能なアプリケーションを自動生成するアプリケーション自動生成プログラムとを備えている。
【００１３】
以下、当該アプリケーション開発支援装置の一実施形態について図面を参照して説明するが、本発明は、当該図面に記載の実施形態にのみ限定されるものではない。
【００１４】
図１は、本発明のアプリケーション開発支援装置が用いられる環境の一例を示す概略全体構成図である。当該アプリケーション開発支援装置１が用いられる環境は、図１に示すように、概略的に、アプリケーション開発支援装置１と、分散実行環境３と、ネットワーク２とにより構成されている。
【００１５】
分散実行環境３は、処理フローの順序制御、上記処理フローの並列実行制御および上記処理フローのリカバリ制御を行う機能を有する。この分散実行環境３は、サーバー３２、グローバル記憶装置３３、ローカル記憶装置３４、分散実行ネットワーク３１等の計算機リソースにより構成されている。
【００１６】
サーバ３２は、アプリケーション開発支援装置１で生成したアプリケーション２００がネットワーク２を介して配置され、このアプリケーション２００により各処理が実行される。
【００１７】
ローカル記憶装置３４は、アプリケーション２００実行時に自サーバ３２にのみ必要な各処理の中間データを格納するものである。このローカル記憶装置３４は、各サーバ３２に１つずつ接続されている。
【００１８】
グローバル記憶装置３３は、アプリケーション２００実行時に各サーバ３２間で共有すべき各種処理の中間データを保持する。このグローバル記憶装置３３は、並列処理を実行する際に用いられるネットワーク（以下、「分散実行ネットワーク３１」ともいう）を介して各サーバ３２に接続されている。
【００１９】
ネットワーク２は、上述した分散実行環境３とアプリケーション開発支援装置１とを結ぶネットワークである。
【００２０】
次に、当該アプリケーション開発支援装置１について詳述する。当該アプリケーション開発支援装置１は、アプリケーション開発者ｍ（以下、単に「開発者ｍ」ともいう）からの指示を受けてアプリケーション２００を自動生成する。当該アプリケーション開発支援装置１は、概略的に、入力部Ｎと、記憶部Ｍと、雛形決定プログラム１０３と、保存パス決定プログラム１０２と、アプリケーション自動生成プログラム１０１とにより構成されている。
【００２１】
入力部Ｎは、複数の処理の実行順序と各処理を並列実行可能な単位で分けたブロックとを含む処理フロー定義情報を入力する。本実施形態では、上記入力部Ｎの機能は主に入力装置１４（後述）が有している。また、入力部Ｎから入力された処理フロー定義情報Ｍ４は記憶装置１６（後述）に格納される。
【００２２】
ここで、処理フロー定義情報Ｍ４は、各処理にて用いる呼出プログラム１０４の雛形を特定するツール識別子ｔ２を含み、アプリケーション開発支援装置１は、上記ツール識別子ｔ２に基づき、記憶部Ｍから特定の雛形を取得する雛形取得プログラム１０５を備えていることが好ましい。処理フロー定義情報Ｍ４がツール識別子ｔ２を含むことで、簡易かつ確実に呼出プログラム１０４を取得することができる。
【００２３】
記憶部Ｍは、各処理で利用されるツールを呼び出す呼出プログラム１０４の雛形を格納すると共に、各処理のデータを記憶する記憶装置１６の保存パスＰの情報を含む環境設定情報Ｍ３を格納する。上記ツールは、例えばデータ加工を行う外部ツールなどである。本実施形態では、呼出プログラム１０４の雛形となるツール特性情報Ｍ１、および環境設定情報Ｍ３は記憶装置１６に格納されている。
【００２４】
雛形決定プログラム１０３は、処理フロー定義情報Ｍ４に基づき、各処理に対応する呼出プログラム１０４の雛形を決定する。この雛形決定プログラム１０３は記憶装置１６に格納され、必要に応じてＣＰＵ１２、メモリ１３等（後述）を用いて処理される。
【００２５】
保存パス決定プログラム１０２は、処理フロー定義情報Ｍ４に基づき、データの入力元および出力先の保存パスＰを決定する。本実施形態では、保存パス決定プログラム１０２は、記憶装置１６に格納され、必要に応じてＣＰＵ１２、メモリ１３等を用いて処理される。
【００２６】
アプリケーション自動生成プログラム１０１は、上述の雛形決定プログラム１０３により決定された雛形と保存パス決定プログラム１０２により決定された保存パスＰとを用い、分散実行環境３上で実行可能なアプリケーション２００を自動生成する。本実施形態では、アプリケーション自動生成プログラム１０１は、記憶装置１６に格納され、必要に応じてＣＰＵ１２、メモリ１３等を用いて処理される。
【００２７】
当該アプリケーション開発支援装置１のハードウェアは、例えば図２に示すように、概略的に、通信装置１１と、ＣＰＵ１２と、メモリ１３と、入力装置１４と、表示装置１５と、記憶装置１６とにより構成されている。
【００２８】
ＣＰＵ１２は、必要に応じて記憶装置１６に格納されている各プログラムをメモリ１３に読み込ませ、このメモリ１３と連携して各種処理を実行する。メモリ１３は、各プログラムやデータを一時的に格納する。入力装置１４は、開発者ｍにより処理フロー定義情報Ｍ４等の情報をアプリケーション開発支援装置１に入力するものであり、例えば、キーボード、マウス等が採用される。表示装置１５は、入力装置１４から入力した情報や処理した結果等を表示するものであり、例えば、ディスプレイモニタ等が採用される。通信装置１１は、上述したメモリ１３等および後述する記憶装置１６と、外部のネットワーク２とを相互に接続するものである。
【００２９】
記憶装置１６は、アプリケーション２００の生成に関係する各種のプログラムやデータ（情報など）を格納する。具体的には、この記憶装置１６には、アプリケーション自動生成プログラム１０１、保存パス決定プログラム１０２、雛形決定プログラム１０３、ツール特性情報Ｍ１、生成後アプリケーション情報Ｍ２、環境設定情報Ｍ３、処理フロー定義情報Ｍ４および連携情報リストＭ５等が格納されている。
【００３０】
次に、アプリケーション２００を生成する処理フローについて説明する。図３は、図２のアプリケーション開発支援装置１を用いて行うアプリケーション生成の概略処理フロー図である。図３に示すように、まず開発者ｍが、アプリケーション開発支援装置１にアプリケーション２００の生成要求（アプリケーション生成要求）を入力する（ステップＳ１０１）。上記アプリケーション生成要求には処理フロー定義情報Ｍ４（図９を参照して後述）が含まれており、この処理フロー定義情報Ｍ４は記憶装置１６に格納される。
【００３１】
次いで、アプリケーション開発支援装置１は、ステップＳ１０１で入力された処理フロー定義情報Ｍ４に基づき、分散実行環境３上で実行可能なアプリケーション２００を自動生成する（ステップＳ１０２）。次いで、自動生成したアプリケーション２００が生成後アプリケーション情報Ｍ２として記憶装置１６に格納された後、アプリケーション開発支援装置１は、アプリケーション２００の生成結果を開発者ｍに通知する（ステップＳ１０３）。
【００３２】
次に、アプリケーション２００を分散実行環境３上に配置する際、開発者ｍによりアプリケーション配置要求が入力されると（ステップＳ１０４）、アプリケーション開発支援装置１は、生成後アプリケーション情報Ｍ２を参照してアプリケーション２００を取得し（ステップＳ１０５）、ネットワーク２を介して分散実行環境３上の各サーバ３２にアプリケーション２００を配置する（ステップＳ１０６）。次いで、アプリケーション開発支援装置１は、開発者ｍに対して上述の配置結果を通知する（Ｓ１０７）。
【００３３】
次に、分散実行環境３は、開発者ｍからのアプリケーション起動要求を受けてアプリケーション２００を起動し（ステップＳ１０８）、このアプリケーション２００を実行する（複数のサーバ３２による一連の処理の実行）。なお、アプリケーション２００を自動生成する処理（ステップＳ１０２）については、図４を参照して後述する。
【００３４】
次に、当該アプリケーション開発支援装置１を用いて行うアプリケーション２００生成のシーケンスについて説明する。図４に示すように、まず開発者ｍは、複数の処理の実行順序と上記各処理を並列実行可能な単位で分けたブロックとを含む処理フロー定義情報Ｍ４を含むアプリケーション生成要求を入力する（ステップＳ１０１）。次いで、アプリケーション自動生成プログラム１０１が上記生成要求を受け付けると、当該アプリケーション自動生成プログラム１０１は、上記処理フロー定義情報Ｍ４を記憶装置１６に格納する（不図示）と共に、アプリケーション自動生成プログラム１０１は、記憶装置１６から雛形決定プログラム１０３を呼び出す（ステップＳ２０４）。
【００３５】
次に、雛形決定プログラム１０３は、記憶装置１６に格納されている処理フロー定義情報Ｍ４を呼び出し（不図示）、この処理フロー定義情報Ｍ４に含まれるツール識別子ｔ２を用いて、連携するツールを呼び出す呼出プログラム１０４の雛形を決定し（ステップＳ２０５）、この雛形をツール特性情報Ｍ１から取得（ステップＳ２０６〜Ｓ２０８）した後、連携情報リストＭ５に格納する（ステップＳ２０９、Ｓ２１０）。なお、呼出プログラム１０４の雛形を決定する処理（ステップＳ２０５）の詳細については、図６を参照して後述する。
【００３６】
次に、アプリケーション自動生成プログラム１０１は、処理フロー内の各処理に関連するデータの入力元および出力先を決定する（ステップＳ２１３）。具体的には、まずアプリケーション自動生成プログラム１０１は、保存パス決定プログラム１０２を呼び出す（ステップＳ２１４）。次いで、保存パス決定プログラム１０２は、処理フロー定義情報Ｍ４に含まれる実行順序およびブロック名称に基づき、各処理に関わるデータの入力元および出力先の保存パスＰを決定する（ステップＳ２１５）。
【００３７】
ここで、保存パス決定プログラム１０２は、処理フロー定義情報Ｍ４に基づき入力元および出力先の保存パスＰのそれぞれを、後述するグローバル記憶装置３３またはローカル記憶装置３４のいずれかに決定することが好ましく、特に、実行対象となる第１の処理Ｐ１の次に実行する第２の処理Ｐ２が存在し、かつ第１の処理Ｐ１と第２の処理Ｐ２とが同一のブロックに属する場合、保存パス決定プログラム１０２が、第１の処理Ｐ１にて処理するデータの出力先の保存パスＰをローカル記憶装置３４に決定し、かつ第２の処理Ｐ２にて処理するデータの入力元をローカル記憶装置３４に決定することがより好ましい。
【００３８】
このように保存パス決定プログラム１０２が保存パスＰ（保存先）を決定することで、アプリケーション２００の実行に際し、処理するデータ（例えば、上述の第１の処理Ｐ１でのデータおよび第２の処理Ｐ２でのデータ）の最適なデータ配置を行うことができ、アプリケーション自動生成プログラム１０１での各処理を迅速かつ的確に行うことができる。なお、保存パス決定プログラム１０２が保存パスＰを決定する処理（ステップＳ２１５）の詳細については、図７を参照して後述する。
【００３９】
次に、アプリケーション自動生成プログラム１０１は、上記ステップＳ２０５にて決定された雛形および上記ステップＳ２１５にて決定された保存パスＰを用い、分散実行環境３で実行可能なアプリケーション２００を自動生成（ステップＳ２２０〜Ｓ２２６）した後、これを生成後アプリケーション情報Ｍ２へ格納する（ステップＳ２２７、Ｓ２２８）。次いで、アプリケーション開発支援装置１は、アプリケーション２００が生成したことを生成結果通知として開発者ｍへ通知する（ステップＳ１０３）。なお、アプリケーション２００の自動生成で用いる環境設定情報Ｍ３のデータ構造については、図１１を参照して後述する。
【００４０】
次に、アプリケーション自動生成プログラム１０１が実行する処理の概略的な処理フローについて、図５を参照して説明する。
【００４１】
まず、ステップＳ５０１において、アプリケーション自動生成プログラム１０１は、開発者ｍにより入力され記憶装置１６に格納されている処理フロー定義情報Ｍ４を受け付ける。ここで、処理フロー定義情報Ｍ４には、アプリケーション開発支援装置１がアプリケーション２００の生成に必要な情報が含まれる。なお、処理フロー定義情報Ｍ４のデータ構造については、図９を参照して後述する。
【００４２】
次に、ステップＳ５０２において、処理フロー定義情報Ｍ４に含まれている識別子ｔ１を用い、この識別子ｔ１に対応する呼出プログラム１０４の雛形をツール特性情報Ｍ１から取得する。ここで、上記識別子ｔ１は、各処理それぞれを識別するために用いられるものである。上述の取得した呼出プログラム１０４の雛形は、各々の処理と関連付けられた形式で連携情報リストＭ５に保持される。なお、ステップＳ５０２における処理の詳細については、図６を参照して後述する。また、連携情報リストＭ５のデータ構造については、図１０を参照して後述する。
【００４３】
次に、ステップＳ５０３において、処理フロー定義情報Ｍ４に基づき、各処理で連携するツールの格納先を決定して連携情報リストＭ５に格納する。なお、ステップＳ５０３の詳細については、図７を参照して後述する。
【００４４】
次に、ステップＳ５０４において、ステップＳ５０２で連携情報リストＭ５へ格納した呼出プログラム１０４の雛形と、ステップＳ５０３で連携情報リストＭ５へ格納したツールの保存パスＰと、記憶装置１６に予め格納されている環境設定情報Ｍ３とに基づき、アプリケーション自動生成プログラム１０１が、分散実行環境３で実行可能なアプリケーション２００を自動的に生成する。この自動生成されたアプリケーション２００は、生成後アプリケーション情報Ｍ２に格納される。なお、環境設定情報Ｍ３のデータ構造については、図１１を参照して後述する。
【００４５】
次に、上述したステップＳ５０２における処理の詳細について、図６を参照して説明する。図６は、図５の雛形決定プログラムの概略処理フロー図である。まず、ステップＳ６０１において、雛形決定プログラム１０３が処理フロー定義情報Ｍ４を読み込む。次いで、ステップＳ６０２において、上述の処理フロー定義情報Ｍ４に含まれる任意の処理（識別子ｔ１で識別された処理）を一つ選択する。
【００４６】
次に、ステップＳ６０３において、雛形決定プログラム１０３が、上述のステップＳ６０２で選択した処理で定義されているツール識別子ｔ２を、処理フロー定義情報Ｍ４から読み込む。例えば、図９に示す識別子ｔ１が「１」の処理をステップＳ６０２で選択した場合、ツール識別子ｔ２は「２」となる。
【００４７】
次に、ステップＳ６０４において、ステップＳ６０３で読み込んだツール識別子ｔ２を用い、このツール識別子ｔ２に対応する呼出プログラム１０４の雛形を特定し、これを連携ツールリストＭ５に登録する。例えば、図９に示す識別子ｔ１が「１」の処理をステップＳ６０２で選択した場合、ツール識別子ｔ２は「２」となり、この識別子ｔ２に対応する呼出プログラム１０４の雛形は「呼出プログラムｂ」となる（図８参照）。なお、図８のツール特性情報Ｍ１のデータ構造については後述する。
【００４８】
次に、ステップＳ６０５において、上述したステップＳ６０２〜Ｓ６０４を全処理（識別子ｔ１で識別された全ての処理）に対して実行する。例えば、図９の処理フロー定義情報Ｍ４における処理フローでは、各識別子ｔ１に対応する呼出プログラム１０４は図１０に示すようになる。
【００４９】
次に、上述したステップＳ５０３における処理の詳細について、図７を参照して説明する。図７は、図５の保存パス決定プログラムの概略処理フロー図である。まず、ステップＳ７０１において、保存パス決定プログラム１０２が処理フロー定義情報Ｍ４を読み込む。
【００５０】
次に、ステップＳ７０２において、保存パス決定プログラム１０２は、連携情報リストＭ５内に登録されている全ての処理（全ての識別子ｔ１）に対して、データ等の保存パス（データ等の入力元および出力先）をグローバル記憶装置３３に設定する。
【００５１】
次に、ステップＳ７０３において、処理フロー定義情報Ｍ４に含まれる任意の識別子ｔ１に対応する処理（以下、「第１の処理Ｐ１」ともいう）を一つ選択する。
【００５２】
次に、ステップＳ７０４において、ステップＳ７０３にて選択された第１の処理Ｐ１の次に実行される処理（以下、「第２の処理Ｐ２」ともいう）が、処理フロー定義情報Ｍ４内に存在するかどうかを判定する。この判定は、処理フロー定義情報Ｍ４に含まれている実行順序を参照して行われる。上記判定の結果、ステップＳ７０３で選択された第１の処理Ｐ１の次に実行される第２の処理Ｐ２が存在する場合はステップＳ７０５へ進み、存在しない場合はステップＳ７０７へ進む。例えば、図９の識別子ｔ１が「２」の処理（第１の処理Ｐ１）をステップＳ７０３で選択した場合、次に実行する処理（第２の処理Ｐ２）が存在するため、ステップＳ７０５へ進む。一方、図９の識別子ｔ１が「４」の処理（第１の処理Ｐ１）を選択した場合、次の処理（第２の処理Ｐ２）が存在しないため、ステップＳ７０７へ進む。
【００５３】
上述のステップＳ７０５では、ステップＳ７０３で選択された第１の処理Ｐ１の次の第２の処理Ｐ２が同一ブロック内に存在するかどうかを判定する。この判定は、処理フロー定義情報Ｍ４に含まれている実行順序およびブロック名称を参照して行われる。この際、もし第２の処理Ｐ２が同一ブロック内に存在する場合はステップＳ７０６へ進み、存在しない場合はステップＳ７０７へ進む。例えば、図９の識別子ｔ１が「１」の処理（第１の処理Ｐ１）をステップＳ７０３で選択した場合、次に実行する処理（第２の処理Ｐ２）が同一ブロック内に定義されているため、ステップＳ７０６へ進む。一方、図９の識別子ｔ１が「２」の処理（第１の処理Ｐ１）をステップＳ７０３で選択した場合、次の処理（第２の処理Ｐ２）が同一ブロック内に定義されていないため、ステップＳ７０７へ進む。
【００５４】
上述のステップＳ７０６では、連携情報リストＭ５におけるステップＳ７０３で選択された処理（第１の処理Ｐ１）の出力先をローカル記憶装置３４へ設定すると共に、ステップＳ７０３で選択された処理の次の処理（第２の処理Ｐ２）の入力元をローカル記憶装置３４へ設定する。例えば、図９の識別子ｔ１が「１」の処理をステップＳ７０３で選択した場合、連携情報リストＭ５における識別子ｔ１が「１」の処理（第１の処理Ｐ１）の出力先をローカル記憶装置３４に設定すると共に、識別子ｔ１が「２」の処理（第２の処理Ｐ２）の入力元をローカル記憶装置３４に設定する。
【００５５】
次に、ステップＳ７０７において、処理フロー定義情報Ｍ４に含まれる全ての処理（全ての識別子ｔ１の処理）が上述のステップＳ７０３にて選択済みであるか否かを判定する。上記判定の結果、少なくともいずれかの処理が選択済みでない場合は、ステップＳ７０３に戻って継続する。一方、全ての処理が選択済みである場合は、保存パス決定プログラム１０２を終了する。なお、各処理におけるデータ等の入力元および出力先（保存パスＰ）については、図１１を参照して後述する。
【００５６】
ここで、上述したツール特性情報Ｍ１の一例を図８を参照して説明する。ツールの特性情報Ｍ１は、図８に示すように、上述したツール識別子ｔ２と、ツール名称８０２と、ツール識別子ｔ２から一意に特定される呼出プログラム１０４の雛形８０３とから構成されている。例えば、ツール識別子ｔ２が「１」の行には、「ツールＡを利用した予兆分析処理」を呼び出すための呼出プログラムの雛形８０３である「呼出プログラムａ」が登録されていることを示している。このツール特性情報Ｍ１には、外部のツールを呼び出す呼出プログラム１０４以外に、シェルなどの自作のスクリプトを呼び出す呼出プログラム１０４が登録されていてもよい。なお、ツール特性情報Ｍ１は、開発者ｍがアプリケーション生成要求Ｓ１０１を入力する前に、あらかじめ設定されている。
【００５７】
次に、上述した処理フロー定義情報Ｍ４の一例を図９を参照して説明する。処理フロー定義情報Ｍ４は、図９に示すように、処理フローに定義されている識別子９０１（各処理の識別子ｔ１）と、処理フローの名称である処理フロー名称９０２と、処理のブロックを示すブロック名称９０３と、各ブロック内において実行する並列処理の数を示す実行並列数９０４と、処理フロー内での処理する順序である実行順序９０５と、各処理で連携するツールを特定するツール識別子９０６（各処理のツール識別子ｔ２）とから構成されている。
【００５８】
処理フロー定義情報Ｍ４は、開発者ｍがアプリケーション開発支援装置１へ入力するものであり、入力された処理フロー定義情報Ｍ４に基づき、アプリケーション開発支援装置１は、分散実行環境３上で実行可能なアプリケーション２００を自動生成する。
【００５９】
次に、連携情報リストＭ５の一例を図１０を参照して説明する。連携情報リストＭ５は、図１０に示すように、識別子１００１（各処理の識別子ｔ１）と、各処理内で連携定義されているデータの入力元であるデータ入力元１００２と、各処理内で連携定義されているデータの出力先であるデータ出力先１００３と、ツールを呼び出す呼出プログラム１０４の雛形である呼出プログラム１００４とから構成されている。ここで、データ入力元１００２およびデータ出力先１００３は上述した保存パスＰと同義である。また、上記データ入力元１００２およびデータ出力先１００３、並びに呼出プログラム１００４には、それぞれ上述したステップＳ５０３、Ｓ５０２で決定された情報が登録される。
【００６０】
例えば、図１０に示す一例では、識別子ｔ１が「１」の行には、識別子ｔ１「１」で識別される処理において連携定義されているツールのデータの入力元がグローバル記憶装置３３であり、データの出力先がローカル記憶装置３４であり、呼出プログラムの雛形が呼出プログラムｂであることを示している。
【００６１】
次に、環境設定情報Ｍ３の一例を図１１を参照して説明する。環境設定情報Ｍ３は、図１１に示すように、データ保存先の種別の名称であるデータ保存先種別名１１０１と、データの入力元および保存先への保存パスＰとなるデータ保存パス１１０２とから構成されている。本実施形態では、環境設定情報Ｍ３へは、データ保存先種別名１１０１が「ローカル記憶装置」である設定行と、「グローバル記憶装置」である設定行との両方が登録されており、上記各記憶装置３３、３４へアクセスするための保存パスＰの情報が格納されている。
【００６２】
なお、本実施形態では、データ保存先パス１１０２にディレクトリのパスが格納されているが、この項目へは、データベース（ＤＢ）情報の設定をしてもよい。その場合、ＤＢの参照・更新に必要な情報を上記データ保存先パス１１０２に保存する。また、環境設定情報Ｍ３は、開発者ｍがアプリケーション生成要求Ｓ１０１を入力する前に、あらかじめ設定されている。
【００６３】
このようにアプリケーション開発支援装置１があらかじめ上記ツール特性情報Ｍ１および環境設定情報Ｍ３を保持していることで、アプリケーション２００を生成する際、開発者ｍは処理フロー定義情報Ｍ４のみを入力することで、ツールを呼び出す呼出プログラム１０４並びにデータの入力元および保存先（保存パスＰ）を特定することができ、開発者ｍが各処理で連携するツールごとの呼び出し方法や保存パスＰの違いを意識することなくアプリケーション２００を効率よく自動生成することができる。
【００６４】
以上のように、当該アプリケーション開発支援装置１は、上述した入力部Ｎと、記憶部Ｍと、雛形決定プログラム１０３と、保存パス決定プログラム１０２と、アプリケーション自動生成プログラム１０１とを備えているので、アプリケーション２００を生成する際、処理フロー定義情報Ｍ４のみを入力することでアプリケーション２００を効率よく自動生成することができる。その結果、開発者ｍが呼出プログラム１０４の雛形および保存パスＰを決定することがない分、処理で連携するツールごとの呼び出し方法や保存パスＰの違いを意識することなく開発者ｍ自身の負担を軽減することができる。
【００６５】
＜アプリケーション開発支援方法＞
本発明のアプリケーション開発支援方法は、複数の処理の実行順序と上記各処理を並列実行可能な単位で分けたブロックとを含む処理フロー定義情報を入力するステップ（以下、「第１のステップ」ともいう）と、上記処理フロー定義情報に基づき、雛形決定プログラムを用いて、上記各処理で利用されるツールを呼び出す呼出プログラムの雛形を決定するステップ（以下、「第２のステップ」ともいう）と、上記処理フロー定義情報に基づき、保存パス決定プログラムを用いて、上記各処理に関わるデータの入力元および出力先の保存パスを決定するステップ（以下、「第３のステップ」ともいう）と、上記決定された雛形および上記決定された保存パスを用い、処理フローの順序制御、上記処理フローの並列実行制御および上記処理フローのリカバリ制御を行う機能を有する分散実行環境で実行可能なアプリケーションを自動生成するステップと（以下、「第４のステップ」ともいう）を含む。
【００６６】
ここで、上記第１のステップは上述したアプリケーション生成要求の入力（ステップＳ１０１）のうちの処理フロー定義情報Ｍ４を入力する処理、第２のステップは上述した呼出プログラム１０４の雛形を決定しする処理（ステップＳ２０５）、第３のステップは上述した各処理に関わるデータの入力元および出力先の保存パスＰ（保存先）を決定する処理（ステップＳ２１５）、第４のステップは上述した分散実行環境３で実行可能なアプリケーション２００を自動生成する処理（ステップＳ２２０〜Ｓ２２６）にそれぞれ相当する。なお、当該アプリケーション開発支援方法の詳細な説明については、上述した＜アプリケーション開発支援装置＞の項での説明を援用して省略する。
【００６７】
このように、当該アプリケーション開発支援方法は上述した第１〜第４のステップを備えているので、アプリケーション２００を生成する際、処理フロー定義情報Ｍ４のみを入力することでアプリケーション２００を効率よく自動生成することができる。その結果、開発者ｍが雛形および保存パスＰを決定することがない分、処理で連携するツールごとの呼び出し方法や保存パスＰの違いを意識することなく開発者ｍ自身の負担を軽減することができる。
【００６８】
なお、本発明は、上述した実施形態の構成に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【００６９】
例えば、上述した実施形態では、処理フロー定義情報Ｍ４がツール識別子ｔ２を含み、このツール識別子ｔ２に基づき、記憶部Ｍから特定の雛形を取得する雛形取得プログラム１０５を備えているアプリケーション開発支援装置１およびアプリケーション開発支援方法について説明したが、雛形決定プログラム１０３が上記雛形を決定することができれば、ツール識別子ｔ２を含まないものであってもよい。
【００７０】
また、上述した実施形態では、分散実行環境３上で並列処理を行う処理フローについて説明したが（図９参照）、並列実行を行わない処理フローでもあってもよい。この場合、処理フロー定義情報には上述したブロック名称９０３および実行並列数９０４へ情報を設定する必要はない。
【符号の説明】
【００７１】
１  アプリケーション開発支援装置
３  分散実行環境
１６  記憶装置
３３  グローバル記憶装置
３４  ローカル記憶装置
１０１  アプリケーション自動生成プログラム
１０２  保存パス決定プログラム
１０３  雛形決定プログラム
１０４  呼出プログラム
２００  アプリケーション
Ｐ１  第１の処理
Ｐ２  第２の処理
Ｍ  記憶部
Ｍ３  環境設定情報
Ｍ４  処理フロー定義情報
Ｎ  入力部
Ｐ  保存パス
ｔ１  識別子
ｔ２  ツール識別子
【図１】
2018067218.tif 000003
【図２】
2018067218.tif 000004
【図３】
2018067218.tif 000005
【図４】
2018067218.tif 000006
【図５】
2018067218.tif 000007
【図６】
2018067218.tif 000008
【図７】
2018067218.tif 000009
【図８】
2018067218.tif 000010
【図９】
2018067218.tif 000011
【図１０】
2018067218.tif 000012
【図１１】
2018067218.tif 000013