以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
<第1実施形態>
図1に、第1実施形態に係る情報処理システム10を示す。情報処理システム10は、入力データに対する処理を行う複数のジョブを関係づけた一連の複数のジョブの関係を示すジョブフロー情報に基づいて、コンピュータにより業務処理を実行する処理装置である。情報処理システム10は、内部環境システム12と外部環境システム14とを含み、内部環境システム12と外部環境システム14とが通信回線16を介して接続されている。なお、通信回線16は電話回線及びインターネット等の通信ネットワークの回線を含む。内部環境システム12は、情報処理装置20、記憶部30、及びジョブフロー実行部38を備えている。情報処理装置20は、解析部22及び登録部24を備えている。記憶部30は、ジョブフロー情報32、解析情報34、テーブル94、及びジョブフロー情報32により処理される対象のデータ36を記憶している。ジョブフロー実行部38は、ジョブフロー指定部42、及びジョブフロー指定部42で指定されたジョブフロー情報が示す関係づけられた一連の複数のジョブを実行する実行部44を備えている。外部環境システム14は、データ授受部46、及び実行処理部48を備えている。
第1実施形態では、ジョブフロー情報32に基づきコンピュータにより業務処理が実行される。ジョブフロー情報32は、データに対して一連の処理を行う複数のジョブの関係を示す。具体的には、ジョブフロー情報32は、データに対して一連の処理を行う複数のジョブの各々の処理順序を示す情報、及び複数のジョブの各々の処理内容を示す情報を含む。例えば、ジョブフロー情報32は、一連の複数のジョブをコンピュータにより実行する業務処理について、業務処理を識別するための情報32A、及び一連の複数のジョブの処理順の前後関係を示す情報32B、を含む。また、ジョブフロー情報32は、各ジョブを識別するための情報32C、各ジョブの処理を実行するための実行ファイルを示す情報32D、及び各ジョブの処理内容を示す情報32E、を含むことができる。従って、ジョブフロー情報32により、一連の複数のジョブの前後関係を示す情報32B及び各ジョブを識別するための情報32Cから、ジョブフロー情報32により処理するジョブの順序及びジョブを特定できる。また、ジョブフロー情報32に従い、順次処理するジョブについて、実行ファイルを示す情報32Dによりコンピュータで処理する実行ファイルを特定できる。また、ジョブフロー情報32に従い、順次処理する対象のジョブは、ジョブの処理内容を示す情報32Eにより特定することができる。
なお、ジョブフロー情報32は、開示の技術におけるジョブフロー情報の一例である。情報32Bは、開示の技術におけるデータに対して一連の処理を行う複数のジョブの各々の処理順序を示す情報の一例である。情報32Eは、開示の技術における複数のジョブの各々の処理内容を示す情報の一例である。
また、第1実施形態では、ジョブフロー情報32の構造が解析され、解析結果の解析情報34とジョブフロー情報32とが対応付けられて登録される。解析情報34は、ジョブフロー情報32により一連の複数のジョブを実行するときに、並列処理するジョブの処理順位を含んだ情報である。例えば、解析情報34は、ジョブフロー情報32を識別するための情報34A、及び詳細を後述するジョブフロー情報32の解析完了または未完を示す情報34B、を含む。また、解析情報34は、ジョブフロー情報32が並列処理可能なジョブを含むか否かを示す情報34C,及び並列処理可能なジョブを識別するための情報34D、を含むことができる。従って、解析情報34の情報34Aにより、当該解析情報34に対応するジョブフロー情報32を特定できる。また、解析情報34の情報34Bにより、当該解析情報34に対応するジョブフロー情報32の解析が完了したか否かを特定できる。また、解析情報34の情報34Cにより、当該解析情報34に対応するジョブフロー情報32が並列処理可能なジョブを含むか否かを特定できる。また、解析情報34の情報34Dにより、当該解析情報34に対応するジョブフロー情報32が並列処理可能なジョブを識別したりジョブの位置を特定したり特定できる。
なお、解析情報34は、開示の技術における解析情報の一例である。情報34C及び情報34Dは、開示の技術における一連の処理において並列処理可能なジョブを示す情報の一例である。
なお、情報処理システム10は開示の技術における情報処理装置を含む処理装置の一例であり、情報処理装置20は開示の技術における情報処理装置の一例である。また、内部環境システム12は開示の技術における内部環境システムの一例であり、外部環境システム14は開示の技術における外部環境システムの一例である。
情報処理システム10では、内部環境システム12においてコンピュータにより業務処理を進めるにあたり、ジョブフロー情報32に基づいて、業務処理が実行される。ジョブフロー情報32は、データに対する処理を行う複数のジョブを関係づけた一連の複数のジョブの関係を示す。まず、内部環境システム12に含まれる情報処理装置20では、記憶部30に記憶されたジョブフロー情報32の構造が、解析部22により解析される。解析部22は、一連の複数のジョブの関係を示すジョブフロー情報32を解析し、複数の実行処理により並列処理するジョブに対して一連の複数のジョブにおける処理順位を含む解析情報を生成する。解析部22による解析が終了すると、情報処理装置20の登録部24は、解析部22で解析したジョブフロー情報32に、解析部22で生成された解析情報34を関連づけて記憶部30へ登録する。
情報処理システム10では、ジョブフロー情報32に基づき業務処理を実行するために、ジョブフロー指定部42は、オペレータの入力指示等の入力値や自動処理による指定値を読み取ることにより、実行対象のジョブフロー情報32を指定する。ジョブフロー実行部38の実行部44は、ジョブフロー指定部42で指定されたジョブフロー情報32を記憶部30から取得し、取得したジョブフロー情報32に基づいて、業務処理を実行する。なお、ジョブフロー実行部38は、取得したジョブフロー情報32に基づいて、業務処理を実行するとき、解析情報34を用いて、情報処理システム10の処理効率を向上する。
記憶部30に記憶されたジョブフロー情報32には解析情報34が関連づけられている。実行部44は、ジョブフロー情報32により示される複数のジョブの各々を処理するときに、解析情報34に基づいて、処理対象ジョブが所定条件下の並列処理ジョブである場合に(詳細後述)、処理対象ジョブを外部環境システム14で処理する。外部環境システム14では、データ授受部46において、内部環境システム12との間でデータ授受を行い、実行処理部48においてデータ授受部46で受け取ったデータに基づく実行すなわち処理対象ジョブを実行する。処理対象ジョブを実行した後、ジョブの実行結果をデータ授受部46により内部環境システム12へ送出する。従って、情報処理システム10において、ジョブフロー情報32に基づく業務処理の実行が、内部環境システム12と外部環境システム14に分散されて実行されることによって、情報処理システム10の処理効率を向上できる。
図2に、情報処理システム10を、処理装置として、コンピュータシステム50で実現する場合の一例を示す。コンピュータシステム50は、オンプレミスシステム52とクラウドシステム54とを含み、オンプレミスシステム52とクラウドシステム54とは通信回線56を介して接続されている。オンプレミスシステム52は、内部環境システム12の一例であり、クラウドシステム54は、外部環境システム14の一例である。
オンプレミスシステム52は、CPU60、ROM61、RAM62、及びキーボードやマウス等の入力装置63を備えており、CPU60,ROM61,RAM62,及び入力装置63はバス68を介して互いに接続されている。また、オンプレミスシステム52は、クラウドシステム54と接続するためのインタフェース部(I/F)64、読み書き部(R/W)65、不揮発性の格納部66及びデータやコマンド等を表示するディスプレイ67を含んでいる。インタフェース部(I/F)64、読み書き部(R/W)65、格納部66及びディスプレイ部67はバス68を介して互いに接続されている。なお、読み書き部65は、記録媒体が挿入されて挿入された記録媒体に対して読み書きするための装置で実現できる。また、格納部66は、HDD(Hard Disk Drive)やフラッシュメモリ等によって実現できる。図2は、格納部66をHDD(Hard Disk Drive)で実現した一例を示す。なお、入力装置63,読み書き部65,及びディスプレイ部67で示す入出力デバイスは、省略してもよく、必要に応じてバス68に接続するようにしてもよい。
クラウドシステム54は、スイッチ70、ファイヤウォール71、ロードバランサ72、及び複数のサーバ73を備えている。スイッチ70は、通信回線56を介してオンプレミスシステム52に接続されると共に、ファイヤウォール71に接続されている。スイッチ70の一例には、イーサネット(登録商標)スイッチがある。ファイヤウォール71はロードバランサ72に接続されており、ロードバランサ72は複数のサーバ73の各々に接続されている。
なお、図2では、オンプレミスシステム52にCPU60が1台設けられた態様を示したが、1台に限定されるものではなく、1台以上であればいくつであってもよい。
図3に、オンプレミスシステム52の格納部66に格納する情報の一例を示す。オンプレミスシステム52の格納部66には、オンプレミスシステム52を機能させるためのOS90及びオンプレミスシステム52を情報処理装置として機能させるための情報処理プログラム80が記憶されている。CPU60は、OS90を格納部66から読み出してRAM62に展開して、処理を実行する。また、CPU60は、情報処理プログラム80を格納部66から読み出してRAM62に展開し、情報処理プログラム80に含まれるプロセスを順次実行する。つまり、内部環境システム12がオンプレミスシステム52で実現され、CPU60が情報処理プログラム80を実行することで、オンプレミスシステム52は図1に示す情報処理装置20として動作する。
なお、図2に示す格納部66をHDD(Hard Disk Drive)で実現した一例は、開示の技術の記録媒体の一例である。
また、情報処理プログラム80は、開示の技術における情報処理プログラムの一例である。また、情報処理プログラム80は、オンプレミスシステム52を情報処理装置20として機能させるためのプログラムでもある。
情報処理プログラム80は、解析プロセス82,登録プロセス84、及び実行プロセス88を有する。CPU60は、解析プロセス82を実行することで、図1に示す情報処理装置20の解析部22として動作する。すなわち、情報処理装置20がオンプレミスシステム52で実現され、情報処理プログラム80の解析プロセス82を実行することでオンプレミスシステム52は情報処理装置20の解析部22として動作する。また、CPU60は、登録プロセス84を実行することで、図1に示す内部環境システム12における情報処理装置20の登録部24として動作する。すなわち、内部環境システム12がオンプレミスシステム52で実現され、登録プロセス84を実行することでオンプレミスシステム52は情報処理装置20の登録部24として動作する。また、CPU60は、実行プロセス88を実行することで、図1に示す内部環境システム12におけるジョブフロー実行部38として動作する。すなわち、内部環境システム12がオンプレミスシステム52で実現され、実行プロセス88を実行することでオンプレミスシステム52は内部環境システム12におけるジョブフロー実行部38として動作する。なお、ジョブフロー実行部38は、ジョブフロー指定部42及び実行部44を含んでいる。
なお、OS90は、タスクスケジューラ機能を予め含んでいる。内部環境システム12がオンプレミスシステム52で実現され、CPU60がOS90に予め含まれているタスクスケジューラ機能を実行することで、オンプレミスシステム52は、タスクスケジューラ42A(図8参照)として動作する。タスクスケジューラ42Aは、図1に示すジョブフロー指定部42に対応し、格納部66からジョブフロー情報32を取得することができる。また、CPU60が実行プロセス88を実行することで、オンプレミスシステム52は、図1に示すジョブフロー実行部38の実行部44として動作する。
また、オンプレミスシステム52の格納部66には、データベース92が記憶されている。データベース92は、ジョブフロー情報32,解析情報34,データ36,及びテーブル94を含んでいる。オンプレミスシステム52の格納部66に記憶されたデータベース92は図1に示す内部環境システム12の記憶部30の一部に対応する。つまり、情報処理システム10がコンピュータシステム50で実現されかつ内部環境システム12がオンプレミスシステム52で実現されるとき、ジョブフロー情報32,解析情報34及びデータ36を含むデータベース92は、記憶部30に対応する。
なお、格納部66のデータベース92には、ジョブフロー情報32及び解析情報34と,テーブル94とを別々に示している。本実施形態では、ジョブフロー情報32及び解析情報34を使用して業務処理を容易にするために、ジョブフロー情報32及び解析情報34をテーブル94に登録している。テーブル94は、図4〜図6に一例を示すジョブフロー管理テーブル94A、ジョブ管理テーブル94B、及びジョブ・ファイル管理テーブル94Cを備えている。
ジョブフロー管理テーブル94Aは、ジョブフロー情報32に基づく処理を実行するときの各種情報をテーブルとしてデータベース92に格納したものである。
図4に、ジョブフロー管理テーブル94Aの一例を示す。ジョブフロー管理テーブル94Aは、「ジョブフロー名」、「コメント」、及び「実行フラグ」の各情報が対応付けて各々登録されている。また、ジョブフロー管理テーブル94Aは、「開始時刻」、「開始パターン」、「実行予測時間」、「クラウド実行調査フラグ」、「ジョブフロー変更フラグ」、及び「クラウド分散実行フラグ」の各情報が対応付けて各々登録されている。
図4に示すジョブフロー管理テーブル94Aにおける項目「ジョブフロー名」に示す情報は、オペレータが個々のジョブフロー情報32を識別するための名称等の識別子を示す情報である。図4では、項目「ジョブフロー名」に示す情報として「kokyaku1」の情報が記憶されている一例を示した。また、項目「コメント」に示す情報は、オペレータがジョブフロー情報32の内容を確認するためのジョブフロー情報32が関係する業務処理の総称等を示す情報である。図4では、項目「コメント」に示す情報として「顧客管理」の情報が記憶されている一例を示した。
項目「実行フラグ」に示す情報は、詳細は後述するが、ジョブフロー情報による一連のジョブをタスクとして実行するか否かを示す情報である。なお、項目「実行フラグ」に示す情報の値として、「FALSE」は、タスクの非実行を示し、「TRUE」は、スケジュールに従って、タスクを実行することを示す。また、項目「開始時刻」に示す情報は、スケジュールに従ってジョブフロー情報32による処理を開始する時刻を示す情報である。図4では、項目「開始時刻」に示す情報として「16:00」の時刻が記憶されている一例を示した。
なお、以下の説明では、各種のフラグについて、当該フラグに示す情報の値を「TRUE」として格納するために、「フラグ」をオン(ON)に設定すると説明する場合がある。また、フラグに示す情報の値を「FALSE」として格納するために、「フラグ」をオフ(OFF)に設定すると説明する場合がある。
項目「開始パターン」に示す情報は、業務処理すなわちジョブフロー情報32による処理を定期的に実行するときの年月日等や週次等の実行時に関する実行パターンを示す情報である。図4では、項目「開始パターン」に示す情報として「毎日」の情報が記憶されている一例を示した。また、項目「実行予測時間」に示す情報は、ジョブフロー情報32による処理に要する予め計測等によって得られる予測時間を示す情報である。図4では、項目「実行予測時間」に示す情報として「60分」の所要時間が記憶されている一例を示した。
また、項目「クラウド実行調査フラグ」に示す情報は、ジョブフロー情報32に対して外部環境システム14、例えばクラウド環境で実行可能なジョブを含むか否かの調査を完了したか否かを示す情報である。図4では、項目「クラウド実行調査フラグ」に示す情報として「FALSE」の情報が記憶されている一例を示した。なお、情報「TRUE」は、調査を完了していることを示す。一方、情報「FALSE」は、調査が未完了であることを示す。
また、項目「ジョブフロー変更フラグ」に示す情報は、ジョブフロー情報32に変更が施されたか否かを示す情報である。図4では、項目「ジョブフロー変更フラグ」に示す情報として「FALSE」の値が記憶されている一例を示した。なお、「FALSE」は、ジョブフロー情報32の作成時またはジョブフロー情報32に変更が施されたときに格納する値である。また、「FALSE」は、ジョブフロー情報32に対する調査(解析)が未完了、つまりジョブフロー情報32に対して外部環境システム14、例えばクラウド環境で実行可能なジョブを含む調査が未完了であることを示す。一方、「TRUE」は、ジョブフロー情報32に変更がなく、ジョブフロー情報32に対する調査(解析)が完了しているときに格納する値である。
従って、項目「クラウド実行調査フラグ」に示す情報、及び項目「ジョブフロー変更フラグ」に示す情報は、ジョブフロー情報32に対して外部環境システム14、例えばクラウド環境で実行可能なジョブを含む調査が未完了のときに、同一値が格納される。以下の説明では、項目「ジョブフロー変更フラグ」に示す情報に格納された値を用いて、ジョブフロー情報32に対して外部環境システム14、例えばクラウド環境で実行可能なジョブを含む調査が未完了を判別する。
項目「クラウド分散実行フラグ」に示す情報は、ジョブフロー情報32に、外部環境システム14例えばクラウド環境で実行可能なジョブを含むか否かを示す情報である。図4では、項目「クラウド分散実行フラグ」に示す情報として「FALSE」の情報が記憶されている一例を示した。なお、情報「TRUE」は、ジョブフロー情報32が外部環境システム14で実行可能なジョブを含むことを示す。一方、情報「FALSE」は、ジョブフロー情報32が外部環境システム14で実行不可能であり、内部環境システム12でのみ実行可能なジョブであことを示す。
なお、ジョブフロー管理テーブル94Aには、開示の技術における解析情報の一例を含む。ジョブフロー情報32は、項目「ジョブフロー名」に示す情報により特定することができる。項目「ジョブフロー名」に示す情報により特定するジョブフロー情報32には、「クラウド実行調査フラグ」、「ジョブフロー変更フラグ」、及び「クラウド分散実行フラグ」の各情報が対応付けられる。「クラウド実行調査フラグ」、「ジョブフロー変更フラグ」、及び「クラウド分散実行フラグ」の各情報は、一連の処理において並列処理可能なジョブを示す情報を含んだ情報である。
また、ジョブフロー管理テーブル94Aには、ジョブフローの実行に関する情報の一例が示されている。ジョブフローは、項目「ジョブフロー名」に示す情報により特定されるジョブフロー情報32について、「開始時刻」及び「開始パターン」の条件下で、「実行予測時間」で予測する時間の処理を、「実行フラグ」による実行可否により、実行または非実行される。なお、以下の説明では、ジョブフロー情報32に基づき一連のジョブをコンピュータにより実行する業務処理単位をタスクと称する。つまり、ジョブフロー情報による一連のジョブをタスクと称する。
つまり、図4に示すジョブフロー管理テーブル94Aにおける項目「ジョブフロー名」に示す情報は、ジョブフロー情報32に含まれる業務処理を識別するための情報32A(図1)に対応する。また、図4に示すジョブフロー管理テーブル94Aにおける項目「ジョブフロー名」に示す情報は、解析情報34に含まれるジョブフロー情報32を識別するための情報34A(図1)にも対応する。図4に示すジョブフロー管理テーブル94Aに項目「クラウド実行調査フラグ」に示す情報、及び項目「ジョブフロー変更フラグ」に示す情報は、ジョブフロー情報32の解析完了または未完を示す情報34B(図1)に対応する。また、図4に示すジョブフロー管理テーブル94Aにおける項目「クラウド分散実行フラグ」に示す情報は、解析情報34に含まれるジョブフロー情報32が並列処理可能なジョブを含むか否かを示す情報34Cに対応する。
ジョブ管理テーブル94Bは、ジョブフロー情報32に示されるジョブの詳細な内容を示す情報をテーブルとしてデータベース92に格納したものである。
図5に、ジョブ管理テーブル94Bの一例を示す。ジョブ管理テーブル94Bは、データベース92に登録されたジョブフロー情報32の各々に含まれる一連の複数のジョブに関する詳細な内容が示されている。ジョブ管理テーブル94Bは、「No.」、「ジョブフロー名」、「ジョブ名」、「コメント」の各情報が対応付けて各々登録される。また、ジョブ管理テーブル94Bは、「実行ファイル」、「実行ファイルの位置」、「コマンド引数」、「ジョブの位置」、「次のジョブの位置」、及び「クラウド実行可能フラグ」の各情報が対応付けて各々登録される。
図5に示すジョブ管理テーブル94Bにおける項目「No.」に示す情報は、ジョブ管理テーブル94Bにおけるジョブのテーブル上の位置を示す。また、項目「ジョブフロー名」に示す情報は、ジョブ管理テーブル94Bで管理するジョブが含まれるジョブフロー情報32を示す情報である。また、項目「ジョブ名」に示す情報は、ジョブフロー情報32に含まれるジョブを識別するための個々のジョブの名称等の識別子を示す情報である。図5では、項目「No.」に示す情報が「1」であるときに、項目「ジョブフロー名」に示す情報が「kokyaku1」であり、項目「ジョブ名」に示す情報が「kanri1」である一例を示す。
また、項目「コメント」に示す情報は、ジョブフロー情報32に含まれるジョブの処理内容を示す処理の名称等を示す情報である。図5では、項目「No.」に示す情報が「1」であるときに、項目「コメント」に示す情報が「顧客管理処理1」である一例を示す。なお、図5では、項目「コメント」に示す情報において( )内に、ジョブの処理内容を示す情報として、一般的な表現語句情報またはシステムに共通の語句情報「DBからファイル取得exe」を一例として示す。
また、項目「実行ファイル」に示す情報は、ジョブフロー情報32に含まれるジョブによる処理を実行する実行ファイルのファイル名を示す情報である。また、項目「実行ファイルの位置」に示す情報は、ジョブによる処理を実行する実行ファイルの格納位置を示す情報を格納したファイルのファイル名を示す情報である。また、項目「コマンド引数」に示す情報は、ジョブに対応する実行ファイルを実行するにあたり、実行ファイルの実行時のオプションを示す情報である。
また、項目「ジョブの位置」に示す情報は、ジョブフロー情報32においてジョブの位置を示す情報である。また、項目「次のジョブの位置」に示す情報は、ジョブの位置で示されるジョブについてジョブフロー情報32における次のジョブの位置を示す情報である。また、項目「クラウド実行可能フラグ」に示す情報は、ジョブがクラウド環境で実行可能か否かを示す情報である。図5に示す一例として、項目「No.」が「1」を示すジョブについて説明する。項目「No.」が「1」を示すジョブは、コメントが「顧客管理処理1」で示される内容であり、「kokyaku1」のジョブフロー名に示されるジョブフロー情報32に含まれるジョブ名が「kanri1」のジョブを示す。また、項目「N0.1」のジョブ名「kanri1」のジョブでは、「c:\kokyaku_data.txt」のファイルに示される位置の実行ファイル「c:\kanri1.exe」が実行される。実行ファイル「c:\kanri1.exe」が実行されるときには、コマンド引数として「c:\output」に示されるオプションが設定されて実行される。なお、図5では、コマンド引数として「c:\output」に示される情報として標準出力先を示す情報の一例を示す。
また、項目「N0.1」のジョブ名「kanri1」のジョブは、「kokyaku1」で示されるジョブフロー情報32において、位置xが「1」でかつ位置yが「1」を示す。位置xは、ジョブフロー情報32が示す一連の複数のジョブの関係について、処理の順位を示す。位置yは、位置xにおける処理について、複数の処理を伴うときの順位を示す。また、図5の例では、項目「次のジョブの位置」に示す情報として、位置xと位置yが「2,1」を示す情報を一例として示す。また、項目「クラウド実行可能フラグ」に示す情報は、「FALSE」の情報が記憶されている一例を示した。なお、情報「FALSE」は、項目「N0.1」のジョブ名「kanri1」のジョブが、クラウド環境で実行不可能なことを示す。一方、情報「TRUE」は、ジョブが、クラウド環境で実行可能なことを示す。
つまり、図5に示すジョブ管理テーブル94Bにおける項目「ジョブフロー名」に示す情報は、ジョブフロー情報32に含まれる業務処理を識別するための情報32A(図1)に対応する。また、項目「ジョブフロー名」に示す情報は、解析情報34に含まれるジョブフロー情報32を識別するための情報34A(図1)にも対応する。また、項目「ジョブ名」に示す情報は、ジョブフロー情報32に含まれる各ジョブを識別するための情報32C(図1)に対応する。また、項目「コメント」の情報は、ジョブフロー情報32に含まれる各ジョブの処理内容を示す情報32E(図1)に対応する。また、項目「実行ファイル」、または項目「実行ファイル」、項目「実行ファイルの位置」及び項目「コマンド引数」の各情報は、ジョブフロー情報32に含まれる各ジョブの処理を実行するための実行ファイルを示す情報32D(図1)に対応する。また、項目「ジョブの位置」、及び項目「次のジョブの位置」の情報は、ジョブフロー情報32に含まれる一連の複数のジョブの前後関係を示す情報32B(図1)に対応する。また、項目「クラウド実行可能フラグ」の情報は、解析情報34に含まれる並列処理可能なジョブを識別するための情報34D(図1)に対応する。また、項目「ジョブの位置」、及び項目「次のジョブの位置」の情報は、解析情報34に含まれる並列処理可能なジョブを識別するための情報34D(図1)に含むことができる。
なお、ジョブ管理テーブル94Bは、開示の技術における解析情報の一例を含む。ジョブは、項目「ジョブフロー名」に示す情報により何れのジョブフロー情報32に含まれるジョブかを特定することができる。ジョブフロー情報32におけるジョブには、「ジョブの位置」、「次のジョブの位置」、及び「クラウド実行可能フラグ」の各情報が対応付けられる。「ジョブの位置」、「次のジョブの位置」、及び「クラウド実行可能フラグ」の各情報は、一連の処理において並列処理可能なジョブを示す情報、及び並列処理可能なジョブの処理順序を示す情報の一例である。
ファイル管理テーブル94Cは、コンピュータシステム50等の処理装置の処理効率を向上させるためのジョブフロー情報32に対する条件をテーブルとしてデータベース92に予め格納したものである。ファイル管理テーブル94Cは、ジョブフロー情報32が処理装置の処理効率を向上させるときの条件を示す。すなわち、ファイル管理テーブル94Cは、ジョブフロー情報32に含まれる各ジョブが処理装置の処理効率を向上させるための所定条件に該当する構造のジョブであるか否かを判定するための条件である。例えば、ジョブフロー情報32に対する条件には、ジョブフロー情報32の構造を示す情報について、予め定めた値を格納したテーブルがある。ジョブフロー情報32の構造を示す情報には、ジョブフロー情報32に含まれる処理装置の処理効率を向上させるためのの対象とするジョブ数を示す情報や、一連のジョブの実行順序を示す各ジョブの前後関係を示す情報が一例として挙げられる。また、ジョブフロー情報32の構造を示す情報には、各ジョブの内容に関する情報を対応付けることができる。各ジョブの内容に関する情報には、ジョブの各々について実行ファイルの処理内容、各ジョブで利用するファイル、各ジョブにおける入出力の関係を示す情報が一例として挙げられる。
図6に、ジョブフロー情報32に基づく処理による処理効率を向上するための構造条件の一例をファイル管理テーブル94Cとして示す。図6に示すファイル管理テーブル94Cは、「ジョブの分類」、「実行ファイルの処理内容」、「利用ファイル」、及び「in/out」の各情報が対応付けて各々登録される。ファイル管理テーブル94Cにおける項目「ジョブの分類」に示す情報は、ジョブフロー情報32において処理されるジョブ単位の処理を分類したことを示す情報である。また、項目「実行ファイルの処理内容」に示す情報は、各ジョブを実行するときの実行ファイルの処理内容を示す情報である。また、項目「利用ファイル」に示す情報は、ジョブの処理を実行するときに用いるデータやファイル等のファイルを示す情報である。利用ファイルを示す情報は、項目「in/out」に示す情報に対応される。項目「in/out」に示す情報の値は、「in」が情報が入力されることを示し、「out」が情報が出力されることを示す。
図6では、ジョブフロー情報32に含まれる一連のジョブ数を5個とした一例を示す。第1ジョブは、「DBからファイル取得exe」が処理内容であり、入力として「RDBMS」を利用ファイルとし、出力として「ファイル」を利用ファイルとする場合を示す。なお、DBとはデータベースを略記したものである。また、RDBMSとは、リレーショナルデータベースを管理するソフトウェアからのデータ、つまりリレーショナルデータベースそのものを略記したものである。「第2ジョブ」は、「ファイル分割exe」が処理内容であり、入力として第1ジョブの出力「ファイル」を利用ファイルとし、出力がファイル分割後の「ファイルa,ファイルb,ファイルc」を利用ファイルとする場合を示す。「第3ジョブ」は、「ファイル処理exe」が処理内容であり、入力として第2ジョブの出力「ファイルa,ファイルb,ファイルc」を利用ファイルとし、出力がファイル処理後の「ファイルA,ファイルB,ファイルC」とする場合を示す。「第4ジョブ」は、「ファイルマージexe」が処理内容であり、入力として第3ジョブの出力「ファイルA,ファイルB,ファイルC」を利用ファイルとし、出力がファイルマージ後の「ファイルA+ファイルB+ファイルC」を利用ファイルとする場合を示す。「第5ジョブ」は、「ファイルDB格納exe」が処理内容であり、入力として第4ジョブの出力「ファイルA+ファイルB+ファイルC」を利用ファイルとし、出力として「RDBMS」を利用ファイルとする場合を示す。
図7に、図6で示すファイル管理テーブル94Cを、ジョブフロー情報32に含まれるジョブ単位の前後関係による構造により模式的に示す。図7に一例を示すジョブフロー情報32の構造では、第1ジョブJ1、第2ジョブJ2、第3ジョブJ3、第4ジョブJ4、及び第5ジョブJ5の順序で各ジョブが関係付けられている。第3ジョブJ3は、一致又は略同様のジョブを行う小ジョブJ3−1、J3−2、及びJ3−3を含んでいる。
次に、図1に示す情報処理システム10のジョブフロー実行部38において、ジョブフロー指定部42によってジョブフロー情報32を指定する処理を説明する。
内部環境システム12は、記憶部30及びジョブフロー実行部38を含んでおり、ジョブフロー実行部38のジョブフロー指定部42でジョブフロー情報32が指定され、指定されたジョブフロー情報32を用いて実行部44でジョブフローが実行される。なお、ジョブフロー指定部42によってジョブフロー情報32を指定するにあたり、一般的に実行対象のジョブフローに対応するジョブフロー情報32を指定するだけの場合には、開示の技術における解析情報34は、必ずしも必要ではない。つまり、コンピュータシステム50における格納部66はジョブフロー情報32及び対象のデータ36、そしてジョブフローを実行する時期を記録したデータを含むテーブル94を含んでいればよい。
図8に、図1に示す内部環境システム12がオンプレミスシステム52で実現された場合に、ジョブフロー情報32を指定する処理をブロック図として示す。格納部66は、ジョブフロー情報32,対象のデータ36,テーブル94を含んでいる。また、CPU60がOS90に予め含まれているタスクスケジューラ機能を実行することで、オンプレミスシステム52は、タスクスケジューラ42Aとして動作する。図8に示すタスクスケジューラ42Aは、図1に示すジョブフロー指定部42に対応する。なお、タスクスケジューラ42Aは、格納部66からジョブフロー情報32を取得することができる。また、CPU60が実行プロセス88を実行することで、オンプレミスシステム52は、図1に示すジョブフロー実行部38の実行部44として動作する。
なお、説明を簡単にするため、ジョブフロー情報32は予め作成されており、作成済みのジョブフロー情報32が格納部66(内部環境システム12の記憶部30)に格納済みの場合を説明する。また、テーブル94は、ジョブフローを実行する時期を記録したデータを含むものとする。例えば、図4に示すジョブフロー管理テーブル94Aには、実行スケジュール37の一例が示されている。ジョブフロー情報32は、項目「ジョブフロー名」に示す情報により特定することができる。項目「ジョブフロー名」に示す情報により特定するジョブフロー情報32には、「実行フラグ」、「開始時刻」、「開始パターン」及び「実行予測時間」の各情報が対応付けられる。従って、「実行フラグ」が「TRUE」のジョブフロー名によるジョブフロー情報32を、「開始パターン」で「開始時刻」に実行することで、予め指定された時期にジョブフローが実行される。
タスクスケジューラ42Aは、ジョブフローの実行、つまりジョブフロー情報32による一連のジョブの処理をタスクとして、実行スケジュール37に指定されている時期に、指定されたタスクの実行を実行部44へ指示する。実行部44は、格納部66のジョブフロー情報32を用いてタスクスケジューラ42Aより指示されたタスクすなわちジョブフロー情報32に基づく一連の複数のジョブによる処理を実行する。
なお、新規にジョブフロー情報32を生成する場合にジョブフロー情報32によるジョブフローの実行時期の指定は、オペレータの入力指示等により入力されたジョブフローの実行時期の入力値を実行スケジュール37に格納すればよい。
次に本実施形態の作用を説明する。
本実施形態では、ジョブフロー情報32に基づきジョブを処理する処理装置の処理効率を向上するために、一連の複数のジョブの関係を示すジョブフロー情報32が解析される。ジョブフロー情報32の解析により、複数の実行処理により並列処理するジョブに対して一連の複数のジョブにおける処理順位を含む解析情報が生成される。解析したジョブフロー情報には、生成した解析情報が関連づけられて登録される。処理装置は、解析情報が関連づけられたジョブフロー情報に基づきジョブを処理する。すなわち、オンプレミスシステム52では、情報処理プログラム80に含まれる解析プロセス82による処理が実行される。
図9に、オンプレミスシステム52で実行される情報処理プログラム80に含まれる解析プロセス82の流れを示す。オンプレミスシステム52において解析プロセス82が実行されることで、オンプレミスシステム52は内部環境システム12における情報処理装置20の解析部22として動作し、ジョブフロー情報32の解析処理を実行する。図9に示す処理ルーチンは、オンプレミスシステム52の稼働中に、所定時間間隔で繰り返し実行される。つまり、オンプレミスシステム52のCPU60は、所定時間を経過する度に、図9に示す処理ルーチンを実行する。なお、図9に示す処理ルーチンは、繰り返し実行されることに限定されず、ユーザによる入力装置63の操作指示により、実行されるようにしてもよい。
オンプレミスシステム52のCPU60は、ステップ100において、ジョブフロー管理テーブル94Aを参照し、1つのジョブフロー情報32を指定する。ステップ100におけるジョブフロー情報32の指定は、OS90に予め含まれているタスクスケジューラ機能をCPU60が実行することによるタスクスケジューラ42Aが指定する。なお、タスクスケジューラ42Aは、ジョブフロー管理テーブル94Aに登録されたジョブフロー情報32のうちの何れかを指定すればよく、予め定めた順序で指定したりランダム(無作為)に指定したりしてもよい。CPU60は、ステップ100で指定したジョブフロー情報32について、次のステップ102において、ジョブフロー情報32が未解析か否かを判断する。すなわち、ステップ102では、ステップ100で指定したジョブフロー情報32についてジョブフロー管理テーブル94Aにおける項目「ジョブフロー変更フラグ」の情報を参照する。つまり、ステップ102では、参照した項目「ジョブフロー変更フラグ」の情報の値が「FALSE」であるか否かを判定することによりジョブフロー情報32が未解析か否かを判断する。
項目「ジョブフロー変更フラグ」の情報の値が「FALSE」であるときは、ステップ102で肯定判断され、ステップ104へ進む。一方、項目「ジョブフロー変更フラグ」の情報の値が「TRUE」であるときは、ステップ102で否定され、ステップ108へ進む。
CPU60は、ステップ104において、解析処理を実行する。ステップ104の解析処理は、詳細を後述するジョブフロー情報32の構造を解析する処理(図11)である。ステップ104の解析処理が終了すると、CPU60は、次のステップ106においてステップ104の解析結果を格納部66に登録する。解析結果は34を含んでおり、解析情報34を格納部66に登録することは、図1に示す内部環境システム12の記憶部30に解析情報34を登録することに対応する。
次のステップ108において、CPU60は、ジョブフロー管理テーブル94Aに登録されたジョブフロー情報32の全てに対して解析処理を終了したか否かを判定することにより、残存するジョブフロー情報32が無いか否かを判断する。ジョブフロー管理テーブル94Aに登録された全てのジョブフロー情報32に対して解析処理を終了したときは、ステップ108で肯定判断され、本処理ルーチンを終了する。一方、ジョブフロー管理テーブル94Aに解析処理が未完了のジョブフロー情報32が残存するときは、ステップ108で否定判断され、ステップ100へ戻り他のジョブフロー情報32を指定して、ステップ102〜ステップ106の処理を実行する。
次に、図9に示すステップ104の解析処理を説明する。解析処理は、ジョブフロー情報32が示す一連の複数のジョブの関係から当該ジョブフロー情報32の構造を解析する処理である。
図10に、ジョブフロー情報32の構造解析の一例を各ジョブの処理概要を含めて模式的に示す。図10に示す一例では、第1ジョブJ1は、ファイルの取得処理を示し、第2ジョブJ2はファイルの分割処理を示し、第3ジョブJ3はファイルの加工処理を示し、第4ジョブJ4はファイルの結合処理を示し、第5ジョブJ5はファイルの格納処理を示す。
第1ジョブJ1では、格納部66、すなわちデータベース92に含まれるデータ36からフラットファイル等のファイル76が取得される。第1ジョブJ1は、図6に示すファイル管理テーブル94Cにおける第1ジョブの構造条件に対応する。また、第2ジョブJ2では、第1ジョブJ1で取得されたフラットファイル等のファイル76が3つの分割ファイル76A,76B,76Cに分割される。第2ジョブJ2は、図6に示すファイル管理テーブル94Cにおける第2ジョブの構造条件に対応する。つまり、第1ジョブJ1が利用ファイルを入力として取得し、かつ取得した利用ファイルをファイル76として出力する。第2ジョブJ2は、第1ジョブJ1により出力されたファイル76を入力とし、3つの分割ファイル76A,76B,76Cに分割して出力する。従って、第1ジョブJ1と第2ジョブJ2が順次処理されるジョブとして関係づけられた構造と解析できる。
第3ジョブJ3では、第2ジョブJ2で分割された分割ファイル76A,76B,76Cの各々に、予め定めた所定処理77を施し、処理済ファイル78A,78B,78Cが得られる。つまり、第3ジョブJ3では、所定処理77として一致又は略同様のジョブを行う小ジョブJ3−1、J3−2、及びJ3−3により、分割ファイル76A,76B,76Cの各々に、処理が施される。第3ジョブJ3は、図6に示すファイル管理テーブル94Cにおける第3ジョブの構造条件に対応する。つまり、第3ジョブJ3は、第2ジョブJ2により分割された分割ファイル76A,76B,76Cの各々を入力とし、各分割ファイル76A〜76Cに所定処理77を施して処理済ファイル78A,78B,78Cの各々を出力する。従って、第2ジョブJ2と第3ジョブJ3が順次処理されるジョブとして関係づけられた構造と解析できる。また、第3ジョブJ3が、小ジョブJ3−1、J3−2、及びJ3−3による並列処理される構造と解析できる。
第4ジョブJ4では、第3ジョブJ3で処理が施された処理済ファイル78A,78B,78Cが結合処理79により結合され、結合ファイル78が得られる。第4ジョブJ4は、図6に示すファイル管理テーブル94Cにおける第4ジョブの構造条件に対応する。つまり、第4ジョブJ4は、第3ジョブJ3により処理された処理済ファイル78A〜78Cの各々を入力とし、処理済ファイル78A〜78Cを結合して結合ファイル78を出力する。従って、第3ジョブJ3と第4ジョブJ4が順次処理されるジョブとして関係づけられた構造と解析できる。
第5ジョブJ5では、第4ジョブJ4で結合された結合ファイル78が格納部66に格納される。第5ジョブJ5は、図6に示すファイル管理テーブル94Cにおける第5ジョブの構造条件に対応する。つまり、第5ジョブJ5は、第4ジョブJ4により結合された結合ファイル78を入力とし、結合ファイル78を出力として格納部66に格納する。従って、第4ジョブJ4と第5ジョブJ5が順次処理されるジョブとして関係づけられた構造と解析できる。
なお、図10に示すジョブフロー情報32の構造の一例では、第1ジョブJ1、第2ジョブJ2、第4ジョブJ4、及び第5ジョブJ5の各々における処理は、オンプレミスシステム52において処理される。また、第3ジョブJ3は、並列処理可能な複数の処理(小ジョブJ3−1〜J3−3)を含み、少なくとも一部の処理(小ジョブJ3−1〜J3−3の何れかまたは全部)がクラウドシステム54において処理可能である。
次に、図9に示すステップ104の解析処理をさらに詳細に説明する。オンプレミスシステム52のCPU60は、解析プロセス82を格納部66から読み出してRAM62に展開して実行することで、ジョブフロー情報32の解析処理を実行する。
図11に、図9に示すステップ104の解析処理の流れの一例を示し、図12に図11を一部具体化した処理の流れの一例を示す。解析プロセス82の処理は、ジョブフロー情報32の構造を解析する処理である。また、解析プロセス82の処理では、複数の実行処理により並列処理するジョブを含んだジョブフロー情報32の構造を解析し、解析結果の解析情報をオンプレミスシステム52の処理効率を向上させるための情報として得る処理を含んでいる。オンプレミスシステム52の処理効率を向上させるための情報は、オンプレミスシステム52の一部処理を、クラウドシステム54で処理させることが可能であることを示す情報である。
CPU60は、解析処理(ステップ104)を実行すると、図11のステップ110において、ジョブフロー情報32を取得する。ステップ110で取得するジョブフロー情報32は、図9に示すステップ100で指定したジョブフロー情報32である。すなわち、図9に示すステップ100で指定したジョブフロー情報32に該当するジョブフロー情報32を、図4に示すジョブフロー管理テーブル94A及び図5に示すジョブ管理テーブル94Bから抽出する。CPU60は、次のステップ112において、ジョブフロー情報32に含まれる第1ジョブが第1条件に合致するか否かを判断する。ステップ112における判断は、ファイル管理テーブル94Cに登録された構造条件を使用する。すなわち、ステップ110で取得したジョブフロー情報32の第1ジョブが、ファイル管理テーブル94Cに登録された第1ジョブの構造条件に合致するか否かを判断する。例えば、ジョブフロー名が「kokyaku1」のとき、取得したジョブフロー情報32における第1ジョブは、項目「コメント(処理内容)」、「ジョブの位置」及び「次ジョブの位置」の各情報からジョブ名「kanri1」と特定できる(図5参照)。ジョブ名「kanri1」の第1ジョブは、「DBからファイル取得」の処理内容であり、次ジョブへ送出する処理である。ファイル管理テーブル94Cに登録された第1ジョブの構造条件は、第1ジョブがファイルの取得処理を示し、RDBMSを入力として取得し、かつ取得したファイルをファイル76(図10)として出力するジョブである。従って、例えば、ジョブフロー名が「kokyaku1」のジョブフロー情報32が指定されたとき、CPU60は、ステップ112において、ジョブフロー情報32に含まれる第1ジョブが第1条件に合致すると判断する。なお、図12に、図11に示すステップ112の判断処理を、第1ジョブJ1が「データ取得」であるか否かを判断する判断処理に代えた一例を示す。
ステップ112で否定判断のときには、ステップ134へ進み、クラウド分散実行フラグをオフ(OFF)に設定し、本処理ルーチンを終了する。つまり、解析対象のジョブフロー情報32が、オンプレミスシステム52の処理効率を向上させる予め定めた構造(図7、図10参照)に合致しないので、クラウド分散実行フラグをオフ(OFF)に設定する。クラウド分散実行フラグの値は、本処理ルーチンを終了後の登録処理(図9に示すステップ106)において、解析結果として格納部66に登録される。つまり、ジョブフロー管理テーブル94Aにおける解析対象のジョブフロー情報32の項目「クラウド実行調査フラグ」、「ジョブフロー変更フラグ」、及び「クラウド分散実行フラグ」(図4も参照)の各情報の値を登録する。具体的には、「クラウド実行調査フラグ」及び「ジョブフロー変更フラグ」の情報の値として「TRUE」、そして「クラウド分散実行フラグ」の情報の値として「FALSE」が登録される。
ステップ112で肯定判断のときには、解析対象のジョブフロー情報32に含まれる第1ジョブがオンプレミスシステム52の処理効率を向上させる予め定めた構造(図7、図10参照)に合致するので、解析を継続する。すなわち、第1ジョブJ1はオンプレミスシステム52において処理するので、CPU60は、ステップ114において、第1ジョブJ1に対するクラウド実行可能フラグをオフに設定し、ステップ116へ進む。
次に、CPU60は、ステップ116において第2ジョブJ2が第2条件に合致するか否かを判断する。ステップ116における判断は、ファイル管理テーブル94Cに登録された構造条件を使用する。すなわち、ステップ110で取得したジョブフロー情報32の第2ジョブが、ファイル管理テーブル94Cに登録された第2ジョブの構造条件に合致するか否かを判断する。例えば、ジョブフロー名が「kokyaku1」のとき、取得したジョブフロー情報32における第2ジョブは、項目「コメント(処理内容)」、「ジョブの位置」及び「次ジョブの位置」の各情報からジョブ名「kanri2」と特定できる(図5参照)。ジョブ名「kanri2」の第2ジョブは、「ファイル分割」の処理内容であり、分割したファイルの各々を次ジョブへ送出する処理である。ファイル管理テーブル94Cに登録された第2ジョブの構造条件は、第2ジョブがファイル分割処理を示し、第1ジョブの出力ファイルを入力とし、かつ入力したファイルを分割して分割ファイル78A,78B,78C(図10)を出力するジョブである。従って、例えば、ジョブフロー名が「kokyaku1」のジョブフロー情報32が指定されたとき、CPU60は、ステップ116において、ジョブフロー情報32に含まれる第2ジョブが第2条件に合致すると判断する。
ステップ116の判断処理の一例は、複数の判断条件に合致するか否かの判断である。例えば、図11に示すステップ116の判断処理を、図12に示すステップ116A,116B,116Cの条件判断による判断処理に代えることができる。第1条件判断は、ジョブフロー情報32に含まれる第2ジョブJ2が「第1ジョブJ1から出力されるデータを利用するジョブ」であるか否かを示す(図12に示すステップ116A)。第2条件は、ジョブフロー情報32に含まれる第2ジョブJ2が「データ分割のジョブ」であるか否かを示す(図12に示すステップ116B)。第3条件は、ジョブフロー情報32に含まれる第2ジョブJ2が「第1ジョブJ1から出力されるデータが入力でかつ第2ジョブJ2の処理結果が出力であるジョブ」であるか否かを示す(図12に示すステップ116C)。図11のステップ116の肯定判断は、図12に示すステップ116A,116B,116Cの全ての条件判断が肯定判断のときに対応する。なお、図12に示すステップ116A,116B,116Cの条件判断は、図12に示す順序に限定されない。また、図12ではステップ118の後にステップ116Cの条件判断に移行する場合を示すが、ステップ118とステップ116Cとは順序を入れ替えても良い。
ステップ116で否定判断のときには、ステップ134においてクラウド分散実行フラグをオフに設定し、本処理ルーチンを終了する。一方、ステップ116で肯定判断のときには、CPU60は、ステップ118において第2ジョブJ2に対するクラウド実行可能フラグをオフに設定し、解析を継続する。すなわち、ジョブフロー情報32の予め定めた構造では(図7、図10参照)、第2ジョブJ2はオンプレミスシステム52において処理される。従って、CPU60は、ステップ118において、第2ジョブJ2に対するクラウド実行可能フラグをオフに設定し、ステップ120へ進む。
次に、CPU60は、ステップ120において第3ジョブJ3が第3条件に合致するか否かを判断する。ステップ120における判断は、ファイル管理テーブル94Cに登録された構造条件を使用する。すなわち、ステップ110で取得したジョブフロー情報32の第3ジョブが、ファイル管理テーブル94Cに登録された第3ジョブの構造条件に合致するか否かを判断する。例えば、ジョブフロー名が「kokyaku1」のジョブフロー情報32における第3ジョブは、ジョブ名「kanri3」と特定できる(図5参照)。ジョブ名「kanri3」の第3ジョブは、「ファイル処理」の処理内容であり、処理結果を次ジョブへ送出する処理である。ファイル管理テーブル94Cに登録された第3ジョブの構造条件は、第3ジョブがファイル処理を示し、第2ジョブの処理結果を入力とし、かつ入力した各ファイルに処理を施した処理済ファイル78A,78B,78C(図10)を出力するジョブである。従って、例えば、ジョブフロー名が「kokyaku1」のジョブフロー情報32が指定されたとき、CPU60は、ステップ120において、ジョブフロー情報32に含まれる第3ジョブが第3条件に合致すると判断する。
ステップ120の判断処理の一例は、複数の判断条件に合致するか否かの判断である。例えば、図11に示すステップ120の判断処理を、図12に示すステップ120A,120B,120Cの条件判断による判断処理に代えることができる。第1条件判断は、ジョブフロー情報32に含まれる第3ジョブが「第2ジョブJ2から出力されるデータを利用するジョブ」であるか否かを示す(図12に示すステップ120A)。第2条件は、ジョブフロー情報32に含まれる第3ジョブJ3が「同一のアプリケーションで並列処理を実行するジョブ」であるか否かを示す(図12に示すステップ120B)。第3条件は、ジョブフロー情報32に含まれる第3ジョブJ3が「第2ジョブJ2から出力されるデータが入力でかつ第3ジョブJ3の処理結果が出力であるジョブ」であるか否かを示す(図12に示すステップ120C)。図11のステップ120の肯定判断は、図12に示すステップ120A,120B,120Cの全ての条件判断が肯定判断のときに対応する。なお、図12に示すステップ120A,120B,120Cの条件判断は、図12に示す順序に限定されない。また、図12ではステップ122の後にステップ120Cの条件判断に移行する場合を示すが、ステップ122とステップ120Cとは順序を入れ替えても良い。
ステップ120で否定判断のときには、ステップ134においてクラウド分散実行フラグをオフに設定し、本処理ルーチンを終了する。一方、ステップ120で肯定判断のときには、CPU60は、ステップ122において第3ジョブJ3に対するクラウド実行可能フラグをオンに設定し、解析を継続する。すなわち、オンプレミスシステム52の処理効率を向上させるジョブフロー情報32の予め定めた構造では、第3ジョブJ3は、並列処理可能な複数の処理(小ジョブJ3−1〜J3−3)の少なくとも一部がクラウドシステム54において処理可能である。従って、CPU60は、ステップ122において、第3ジョブJ3に対するクラウド実行可能フラグをオンに設定し、ステップ124へ進む。
次に、CPU60は、ステップ124において第4ジョブJ4が第4条件に合致するか否かを判断する。ステップ124における判断は、ファイル管理テーブル94Cに登録された構造条件を使用する。すなわち、ジョブフロー情報32に含まれる第4ジョブが、ファイル管理テーブル94Cに登録された第4ジョブの構造条件に合致するか否かを判断する。例えば、ジョブフロー名が「kokyaku1」のとき、ジョブフロー情報32における第4ジョブは、項目「コメント(処理内容)」、「ジョブの位置」及び「次ジョブの位置」の各情報からジョブ名「kanri4」と特定できる(図5参照)。ジョブ名「kanri4」の第4ジョブは、「ファイル結合(マージ)」の処理内容であり、処理結果を次ジョブへ送出する処理である。ファイル管理テーブル94Cに登録された第4ジョブの構造条件は、第4ジョブがファイルの結合処理を示し、第3ジョブの処理結果を入力とし、かつ入力したファイルを結合して結合ファイル78(図10)として出力するジョブである。第3ジョブの処理結果のファイルは、処理済ファイル78A〜78Cの3つである。従って、例えば、ジョブフロー名が「kokyaku1」のジョブフロー情報32が指定されたとき、CPU60は、ステップ124において、ジョブフロー情報32に含まれる第4ジョブが第4条件に合致すると判断する。
ステップ124の判断処理の一例は、複数の判断条件に合致するか否かの判断である。例えば、図11に示すステップ124の判断処理を、図12に示すステップ124A,124B,124Cの条件判断による判断処理に代えることができる。第1条件判断は、第4ジョブJ4が「第3ジョブJ3から出力されるデータを利用するジョブ」であるか否かを示す(図12に示すステップ124A)。第2条件は、第4ジョブJ4が「データ結合のジョブ」であるか否かを示す(図12に示すステップ124B)。第3条件は、第4ジョブJ4が「第3ジョブJ3から出力されるデータが入力でかつ第4ジョブJ4の処理結果が出力であるジョブ」であるか否かを示す(図12に示すステップ124C)。図11のステップ124の肯定判断は、図12に示すステップ124A,124B,124Cの全ての条件判断が肯定判断のときに対応する。なお、図12に示すステップ124A,124B,124Cの条件判断は、図12に示す順序に限定されない。また、図12ではステップ126の後にステップ124Cの条件判断に移行する場合を示すが、ステップ126とステップ124Cとは順序を入れ替えても良い。
ステップ124で否定判断のときには、ステップ134においてクラウド分散実行フラグをオフに設定し、本処理ルーチンを終了する。一方、ステップ124で肯定判断のときには、CPU60は、ステップ126において第4ジョブJ4に対するクラウド実行可能フラグをオフに設定し、解析を継続する。すなわち、オンプレミスシステム52の処理効率を向上させるジョブフロー情報32の予め定めた構造では(図7、図10参照)、第4ジョブJ4はオンプレミスシステム52において処理される。従って、CPU60は、ステップ126において、第2ジョブJ2に対するクラウド実行可能フラグをオフに設定し、ステップ128へ進む。
次に、CPU60は、ステップ128において第5ジョブJ5が第5条件に合致するか否かを判断する。ステップ128における判断は、ファイル管理テーブル94Cに登録された構造条件を使用する。すなわち、ジョブフロー情報32に含まれる第5ジョブが、ファイル管理テーブル94Cに登録された第5ジョブの構造条件に合致するか否かを判断する。例えば、ジョブフロー名が「kokyaku1」のとき、ジョブフロー情報32における第5ジョブは、項目「コメント(処理内容)」、「ジョブの位置」及び「次ジョブの位置」の各情報からジョブ名「kanri5」と特定できる(図5参照)。ジョブ名「kanri5」の第5ジョブは、「ファイルをDBに格納する」処理内容である。ファイル管理テーブル94Cに登録された第5ジョブの構造条件は、第5ジョブがファイルの格納処理を示し、第4ジョブの処理結果を入力とし、かつ入力した結合ファイル78をRDBMSへ格納するジョブである。従って、例えば、ジョブフロー名が「kokyaku1」のジョブフロー情報32が指定されたとき、CPU60は、ステップ128において、ジョブフロー情報32に含まれる第5ジョブが第5条件に合致すると判断する。
ステップ128の判断処理の一例は、複数の判断条件に合致するか否かの判断である。例えば、図11に示すステップ128の判断処理を、図12に示すステップ128A,128Bの条件判断による判断処理に代えることができる。第1条件判断は、第5ジョブJ5が「第4ジョブJ4から出力されるデータを利用するジョブ」であるか否かを示す(図12に示すステップ128A)。第2条件は、第5ジョブJ5が「データ格納のジョブ」であるか否かを示す(図12に示すステップ128B)。図11のステップ128の肯定判断は、図12に示すステップ128A,128Bの条件判断が肯定判断のときに対応する。なお、図12に示すステップ128A,128Bの条件判断は、図12に示す順序に限定されない。
ステップ128で否定判断のときには、ステップ134においてクラウド分散実行フラグをオフに設定し、本処理ルーチンを終了する。一方、ステップ128で肯定判断のときには、CPU60は、ステップ130において第5ジョブJ5に対するクラウド実行可能フラグをオフに設定し、解析を継続する。すなわち、オンプレミスシステム52の処理効率を向上させるジョブフロー情報32の予め定めた構造では、第5ジョブJ5はオンプレミスシステム52において処理される。従って、CPU60は、ステップ130において、第5ジョブJ5に対するクラウド実行可能フラグをオフに設定し、ステップ132へ進む。
次に、CPU60は、ステップ132においてクラウド分散実行フラグをオンに設定し、本処理ルーチンを終了する。つまり、解析対象のジョブフロー情報32が、オンプレミスシステム52の処理効率を向上させる予め定めた構造(図7、図10参照)に合致するときには、クラウド分散実行フラグをオンに設定する。クラウド分散実行フラグの値は、本処理ルーチンを終了後の登録処理(図9に示すステップ106)において、解析結果として格納部66に登録される。つまり、ジョブフロー管理テーブル94Aにおける解析対象のジョブフロー情報32の項目「クラウド実行調査フラグ」、「ジョブフロー変更フラグ」、及び「クラウド分散実行フラグ」(図4も参照)の各情報の値を登録する。具体的には、「クラウド実行調査フラグ」及び「ジョブフロー変更フラグ」の情報の値として「TRUE」、そして「クラウド分散実行フラグ」の情報の値として「TRUE」が登録される。項目「クラウド実行調査フラグ」、「ジョブフロー変更フラグ」、及び「クラウド分散実行フラグ」の各情報の値を格納部66に登録することは、解析情報34を格納部66に登録すること(図2)に対応する。また、内部環境システム12の記憶部30に解析情報34を登録すること(図1)にも対応する。
また、オンプレミスシステム52における登録プロセス84による登録処理では、ステップ114,118,122,126,130で設定されたフラグの値も登録する。すなわち、CPU60は、ジョブ管理テーブル94Bの対象のジョブフロー情報32についてのクラウド実行可能フラグの値として「TRUE」または「FALSE」を登録する。クラウド実行可能フラグがオンに設定されているとき、クラウド実行可能フラグの値として「TRUE」を登録する。また、クラウド実行可能フラグがオフに設定されているとき、クラウド実行可能フラグの値として「FALSE」を登録する。
なお、クラウド実行可能フラグをオンに設定する処理(ステップ122)は、開示の技術における解析情報を生成する処理に対応する。つまり、図5に示すように、対象のジョブフロー情報32に含まれるジョブの位置及びクラウド実行可能フラグが関係づけられる。従って、ステップ122の処理は、複数の実行処理により並列処理するジョブに対して一連の複数のジョブにおける処理順位を含む解析情報を生成する処理の一部に対応する。
次に、オンプレミスシステム52におけるジョブフロー情報32に基づくジョブフローの実行処理を説明する。
CPU60がOS90に予め含まれているタスクスケジューラ機能を実行することで、オンプレミスシステム52は、タスクスケジューラ42A(図8)として動作する。タスクスケジューラ42Aは、ジョブフロー指定部42(図1)に対応する。CPU60が実行プロセス88を実行することで、オンプレミスシステム52は、ジョブフロー実行部38(図1)として動作する。
タスクスケジューラ42Aは、ジョブフローの実行、つまりジョブフロー情報32による一連のジョブの処理をタスクとして、実行スケジュール37に指定されている時期に、指定されたタスクの実行を実行部44へ指示する。実行部44は、格納部66のジョブフロー情報32を用いてタスクスケジューラ42Aより指示されたタスクつまりジョブフロー情報32を実行する。
例えば、タスクスケジューラ42Aは、ジョブフロー管理テーブル94A(図4)に一例を示す実行スケジュール37を参照する。また、タスクスケジューラ42Aは、現在時刻を検知する。タスクスケジューラ42Aは、現在時刻が、ジョブフロー管理テーブル94Aの実行スケジュール37に該当するジョブフロー情報32を見出し、タスクつまり該当するジョブフロー情報32の実行を実行部44へ指示する。すなわち、ジョブフロー管理テーブル94Aにおいて「実行フラグ」が「TRUE」のジョブフロー名によるジョブフロー情報32を、「開始パターン」で「開始時刻」に実行を指示することで、予め指定された時期にジョブフローが実行される。
次に、実行プロセス88による処理について説明する。オンプレミスシステム52のCPU60は、実行プロセス88を格納部66から読み出してRAM62に展開して実行することで、ジョブフロー情報32に基づく処理を実行する。
図13に、実行プロセス88の処理の流れを示す。オンプレミスシステム52において実行プロセス88が実行されることで、オンプレミスシステム52は内部環境システム12における情報処理装置20の実行部44として動作し、ジョブフロー情報32による処理を実行する。図13に示す処理ルーチンは、オンプレミスシステム52の稼働中に、所定時間間隔で繰り返し実行される。つまり、オンプレミスシステム52のCPU60は、所定時間を経過する度に、図13に示す処理ルーチンを実行する。なお、図13に示す処理ルーチンは、繰り返し実行されることに限定されず、ユーザによる入力装置63の操作指示により、実行されるようにしてもよい。
オンプレミスシステム52のCPU60は、ステップ140において、ジョブフロー情報32の指定が有るか否かを判断する。タスクスケジューラ42Aは、ジョブフロー情報32による一連のジョブの処理をタスクとして、実行スケジュール37に指定されている時期に、指定されたタスクの実行を実行部44へ指示する。従って、ステップ140の判断は、タスクスケジューラ42Aによるタスクの実行が指定されたか否かを判定することによって判断する。
ステップ140で否定判断の場合には、ジョブフローの実行が不要なため、本処理ルーチンを終了する。一方、ステップ140で肯定判断の場合には、CPU60は、ステップ142においてジョブフロー情報32を取得し、次のステップ144において、詳細を後述するジョブフロー情報32による処理を実行する。従って、タスクスケジューラ42Aで指定されたジョブフロー管理テーブル94Aにおいて「実行フラグ」が「TRUE」のジョブフロー名によるジョブフロー情報32が、「開始パターン」で「開始時刻」に実行される。
次に、図13に示すステップ144の実行処理についてさらに説明する。
図14に、ジョブフロー情報32による実行処理の流れを示す。CPU60は、ステップ150においてジョブフロー管理テーブル94Aを参照し、実行対象のジョブフロー情報32について、クラウド分散実行フラグがオンか否かを判断する。ステップ150で否定判断の場合にはステップ152へ進み、肯定判断の場合にはステップ162へ進む。
ステップ150で否定判断の場合、実行対象のジョブフロー情報32による処理は、全てオンプレミスシステム52において実行されることが設定されているため、オンプレミスシステム52において各ジョブが順次実行される。すなわち、CPU60は、まず第1ジョブJ1を実行する(ステップ152)。次に、CPU60は、第2ジョブJ2(ステップ154)、第3ジョブJ3(ステップ156)、第4ジョブJ4(ステップ158)を順次実行する。そして、CPU60は、第5ジョブJ5を実行し(ステップ160)、本処理ルーチンを終了する。
一方、ステップ150で肯定判断の場合、実行対象のジョブフロー情報32による処理は、クラウドシステム54において実行可能であることが設定されているため、ジョブフロー情報32による処理の一部をクラウドシステム54において実行させる。実行対象のジョブフロー情報32による処理がクラウドシステム54において実行可能であるとき、ジョブフロー情報32の構造は、第1ジョブJ1、第2ジョブJ2、第3ジョブJ3、第4ジョブJ4、及び第5ジョブJ5を含む(図7,図10参照)。第1ジョブJ1、第2ジョブJ2、第4ジョブJ4、及び第5ジョブJ5の各々は、オンプレミスシステム52において処理される。
第3ジョブJ3は、並列処理可能な複数の処理(小ジョブJ3−1〜J3−3)を含み、少なくとも一部の処理(小ジョブJ3−1〜J3−3の何れかまたは全部)がクラウドシステム54において処理可能である。そこで、CPU60は、ステップ162において、クラウドシステム54において第3ジョブJ3を実行させるために、クラウドシステム54にOSインスタンスを作成する。クラウドシステム54にOSインスタンスを作成sるう処理は、第3ジョブJ3について複数の処理(小ジョブJ3−1〜J3−3)を並列処理可能にするための領域作成処理である。また、CPU60は、第3ジョブJ3について複数の処理(小ジョブJ3−1〜J3−3)を並列処理するための実行ファイルをクラウドシステム54にアップロードする。クラウドシステム54にアップロードする実行ファイルの一例は、図10に示す所定処理77のプログラムである。
CPU60は、次のステップ164において前述のステップ152と同様に、第1ジョブJ1を実行した後、次のステップ166において前述のステップ154と同様に、第2ジョブJ2を実行する。次に、CPU60は、ステップ168において、第2ジョブJ2を実行した結果のファイルをクラウドシステム54へアップロードした後に、ステップ170においてクラウドシステム54へ第3ジョブJ3の実行を指示する。クラウドシステム54では、ステップ168でアップロードされたファイルを入力とし、ステップ162でアップロードされた実行ファイルを使用して第3ジョブJ3の並列処理を実行する。クラウドシステム54で第3ジョブJ3の実行が完了されると、CPU60は、ステップ172において、クラウドシステム54で並列処理された処理結果のファイルをダウンロード(取得)する。
次にCPU60は、ステップ174において前述のステップ158と同様に、第4ジョブJ4を実行した後、次のステップ176において前述のステップ160と同様に、第5ジョブJ5を実行し、本処理ルーチンを終了する。
以上説明したように、第1実施形態では、一連の複数のジョブの関係を示すジョブフロー情報32の構造を解析する。解析結果は、解析情報34としてジョブフロー情報32に関連づけられて登録される。複数の実行処理により並列処理するジョブに対する解析情報34は、ジョブフロー情報32における一連の複数のジョブの処理順位を含んでおり、ジョブフロー情報32により示されるジョブの位置を特定できる。従って、解析されたジョブフロー情報32及び解析情報34を用いれば、オンプレミスシステム52において、ジョブを処理するシステムの選択を容易に実行できる。例えば、クラウドシステム54で実行可能なジョブをオンプレミスシステム52において判別でき、オンプレミスシステム52におけるクラウドシステム54でジョブを実行させるためのユーザの手動操作を抑制できる。また、オンプレミスシステム52で実行していたジョブをクラウドシステム54で実行させることにより、オンプレミスシステム52における処理に要する負荷を分散でき、システム全体の高速実行を実現できる。
ところで、オンプレミスシステム52における装置構成は、オンプレミスシステム52を構築したユーザが予測したコンピュータによる業務処理の処理量を処理可能なや処理負荷を許容する構成とすることが一般的である。しかし、業務処理の処理量や処理負荷が、常時ユーザが予測した値であるとは限らない。例えば、ユーザが扱うコンピュータによる業務処理の処理量の最大値を許容する構成を、オンプレミスシステム52における装置構成とすると、業務処理の処理量の最大値に至らないときには、余剰の構成である。また、業務処理の処理量や処理負荷が増大したとき、オンプレミスシステム52における装置構成を増強しなければならない。本実施形態では、オンプレミスシステム52において、ジョブを処理するシステムを自動的に選択できるので、オンプレミスシステム52における業務処理の処理量や処理負荷を安定化させることができる。
また、第1実施形態では、ジョブフロー情報32に基づくジョブの処理を実行するときに、クラウドシステム54を使用した処理を実行するので、クラウドシステム54を常時使用した処理に比べてクラウドシステム54の使用率を最小限に留めることができる。
<第2実施形態>
次に第2実施形態を説明する。第1実施形態では、ジョブフロー情報32の構造の一例として、第1ジョブJ1、第2ジョブJ2、第3ジョブJ3、第4ジョブJ4、及び第5ジョブJ5の順序で各ジョブが関係付けられる場合を説明した(図7参照)。しかし、開示の技術は、第1ジョブJ1〜第5ジョブJ5の順序で各ジョブが関係付けられるジョブフロー情報32の構造に限定されるものではない。第2実施形態は、ジョブフロー情報32の構造の第1変形例を説明する。なお、第2実施形態は、第1実施形態と略同様の構成のため、同一部分には同一符号を付して詳細な説明を省略する。
図15に、ジョブフロー情報32に含まれるジョブ単位の前後関係による構造についての第1変形例を模式的に示す。図15に第1変形例を示すジョブフロー情報32の構造では、第1ジョブと第2ジョブが合成された取得ジョブJ12、第3ジョブJ3、及び第4ジョブと第5ジョブが合成された格納ジョブJ45の順序で各ジョブが関係付けられている。なお、第3ジョブJ3は、第1実施形態と同様に、一致又は略同様のジョブを行う小ジョブJ3−1、J3−2、及びJ3−3を含んでいる。
第1実施形態で説明したように、ファイルの取得処理を示す第1ジョブJ1、及びファイルの分割処理を示す第2ジョブJ2は、オンプレミスシステム52において実行される処理である(図7参照)。従って、第1ジョブJ1及び第2ジョブJ2を合成した1つのジョブを取得ジョブJ12とする構成であっても、図7に示すジョブフロー情報32の構造と略等価である。また、ファイルの結合処理を示す第4ジョブJ4、及びファイルの格納処理を示す第5ジョブJ5は、オンプレミスシステム52において実行される処理である(図7参照)。従って、第4ジョブJ4及び第5ジョブJ5を合成した1つのジョブを格納ジョブJ45とする構成であっても、図7に示すジョブフロー情報32の構造と略等価である。
従って、第2実施形態では、図15に示すジョブフロー情報32の構造であっても、第1実施形態と同様の効果を得ることができる。
<第3実施形態>
次に第3実施形態を説明する。第3実施形態は、ジョブフロー情報32の構造の第2変形例である。なお、第3実施形態は、第1実施形態と略同様の構成のため、同一部分には同一符号を付して詳細な説明を省略する。
図16に、ジョブフロー情報32に含まれるジョブ単位の前後関係による構造についての第2変形例を模式的に示す。図16に第2変形例を示すジョブフロー情報32の構造は、図7に示すジョブフロー情報32の構造に対して、第3ジョブJ3の構造が相違する。すなわち、第3ジョブJ3は、第1実施形態と略同様のジョブを行う小ジョブJ3−1A、J3−2A、及びJ3−3を含んでいる。小ジョブJ3−1Aは、第1実施形態と同様の小ジョブJ3−1及び小ジョブJ3−1の処理結果を入力とし、所定の処理を施した結果を出力とする後処理J3−Xを含んでいる。また、小ジョブJ3−2Aは、第1実施形態と同様の小ジョブJ3−2及び小ジョブJ3−2の処理結果を入力とし、所定の処理を施した結果を出力とする後処理J3−Xを含んでいる。
第3実施形態では、第2ジョブJ2の処理結果を入力とし、複数の小ジョブの処理結果を出力とする第3ジョブJ3をジョブフロー情報32の構造とする。すなわち、並列処理が可能なジョブフロー情報32の構造は、同一の小ジョブを複数含むことに限定されるものではない。つまり、複数の小ジョブの処理結果を出力とする第3ジョブJ3をジョブフロー情報32の構造とする場合を含む。
なお、第3実施形態における第3ジョブJ3に対する条件は、第1実施形態における条件と同様である。すなわち、第3実施形態における第3ジョブJ3は、図6に示すファイル管理テーブル94Cにおける第3ジョブの構造条件に対応する。つまり、第3ジョブJ3は、第2ジョブJ2により分割された分割ファイル76A,76B,76Cの各々を入力とし、各分割ファイル76A〜76Cに所定処理77を施して処理済ファイル78A,78B,78Cの各々を出力する。また、小ジョブJ3−1Aの後処理J3−Xは、小ジョブJ3−1による処理結果を入力とし、後処理の結果を処理済ファイル78Aとして出力する。同様に、小ジョブJ3−2Aの後処理J3−Xは、小ジョブJ3−2による処理結果を入力とし、後処理の結果を処理済ファイル78Bとして出力する。
従って、第3実施形態における第3ジョブJ3の構造であっても、第1実施形態と同様に扱うことができ、図16に示すジョブフロー情報32の構造であっても、第1実施形態と同様の効果を得ることができる。
<第4実施形態>
次に第4実施形態を説明する。第1実施形態では、ジョブフロー情報32の解析処理と実行処理を別々に処理する。第4実施形態では、ジョブフロー情報32による処理について、解析処理および実行処理の少なくとも一方を処理する。なお、第4実施形態は、第1実施形態と略同様の構成のため、同一部分には同一符号を付して詳細な説明を省略する。
図17に、オンプレミスシステム52で実行される情報処理プログラム80に含まれる解析プロセス82、登録プロセス84及び実行プロセス88の処理を含む処理の流れを示す。なお、図17に示す処理ルーチンは、オンプレミスシステム52の稼働中に、所定時間間隔で繰り返し実行される。つまり、オンプレミスシステム52のCPU60は、所定時間を経過する度に、図17に示す処理ルーチンを実行する。図17に示す処理ルーチンは、繰り返し実行されることに限定されず、ユーザによる入力装置63の操作指示により、実行されるようにしてもよい。また、図17に示す処理ルーチンは、1つのジョブフロー情報32について処理をする流れを示したが、図9に示す処理ルーチンと同様に、ジョブフロー管理テーブル94Aに登録されたジョブフロー情報32を順次処理してもよい。
第4実施形態では、オンプレミスシステム52のCPU60は、上述のステップ100と同様に、ジョブフロー管理テーブル94Aを参照し、1つのジョブフロー情報32を指定する。次にCPU60は、ステップ180において、指定されたジョブフロー情報32が未解析か否かを判断する。すなわち、ステップ180では、ステップ100で指定したジョブフロー情報32についてジョブフロー管理テーブル94Aにおける項目「ジョブフロー変更フラグ」の情報を参照し、情報の値が「FALSE」であるか否かにより未解析か否かを判断する。
ステップ180で否定判断の場合は、上述のステップ144と同様に、ジョブフロー情報32による処理を実行し、本処理ルーチンを終了する。一方、ステップ180で肯定判断の場合には、上述のステップ104と同様にジョブフロー情報32の解析処理を実行し、解析結果を登録し(ステップ106)、ステップ182へ進む。
次に、CPU60は、ステップ182において、ステップ100で指定したジョブフロー情報32がジョブフロー情報32の解析処理のみであるか否かを判断する。ジョブフロー情報32の解析処理のみか否かの判断は、ジョブフロー管理テーブル94Aを参照することで実行できる。例えば、項目「ジョブフロー変更フラグ」の情報は、解析処理が完了したか否かを示す。
第4実施形態では、項目「クラウド実行調査フラグ」に示す情報を、ジョブフロー情報32を実行するか否かを示す情報として扱うものとする。従って、項目「クラウド実行調査フラグ」に示す情報の値が「TRUE」でかつ、項目「ジョブフロー変更フラグ」の情報の値が「FALSE」の場合は、解析及び実行を示す。また、項目「クラウド実行調査フラグ」に示す情報の値が「TRUE」で、かつ項目「ジョブフロー変更フラグ」の情報の値が「TRUE」の場合は、ジョブフロー情報32による処理の実行のみを示す。また、項目「クラウド実行調査フラグ」に示す情報の値が「FALSE」で、かつ項目「ジョブフロー変更フラグ」の情報の値が「FALSE」の場合は、ジョブフロー情報32の解析のみを示す。なお、項目「クラウド実行調査フラグ」に示す情報の値が「FALSE」で、かつ項目「ジョブフロー変更フラグ」の情報の値が「TRUE」の場合は、解析及び実行を共に処理しないことを示す。解析及び実行を共に処理しないことを示す場合は、上述のステップ100においてジョブフロー情報32の指定から除外するようにしておくこととする。
以上説明したように、第4実施形態では、ジョブフロー情報32の解析とジョブフロー情報32による処理の実行を図17の処理ルーチンで処理することができ、システムの処理を簡略化することができる。
<第5実施形態>
次に第5実施形態を説明する。第1実施形態では、ジョブフロー情報32の解析処理と実行処理を別々に処理する。第5実施形態は、ジョブフロー情報32に対する解析処理およびジョブフロー情報32による実行処理の指示を情報処理装置20で実行する。また、第5実施形態は、ジョブフロー情報32に対する解析処理およびジョブフロー情報32による実行処理について、ジョブフロー情報32に含まれるジョブ毎に逐次処理する。なお、第5実施形態は、第1実施形態と略同様の構成のため、同一部分には同一符号を付して詳細な説明を省略する。
図18に、第5実施形態に係る情報処理システム10を示す。図18に示す情報処理システム10では、内部環境システム12の情報処理装置20は、依頼部26を含んでいる。また、内部環境システム12は、図1に示すジョブフロー実行部38に代えて、ジョブフロー情報32による処理を実行する第1システム40を含んでいる。第1システム40は、処理実行部43を含んでいる。情報処理装置20は、記憶部30及び第1システム40に接続されており、第1システム40は記憶部30にも接続されている。図18に示す情報処理システム10では、外部環境システム14がジョブフロー情報32による処理を実行する第2システム45を含んでいる。第2システム45は、図1に示すデータ授受部46及び実行処理部48を含んでいる。外部環境システム14の第2システム45は、通信回線16を介して内部環境システム12の情報処理装置20に接続されている。
第5実施形態に係る情報処理システム10を、コンピュータシステム50で実現する場合の一例は、図2に示す構成と略同様のため、説明を省略する。
図19に、第5実施形態に係るオンプレミスシステム52の格納部66に格納する情報の一例を示す。なお、図19に示すオンプレミスシステム52の格納部66は、図3に示すオンプレミスシステム52の格納部66に格納された情報処理プログラム80に、依頼プロセス86が含まれる点で相違している。
CPU60は、依頼プロセス86を実行することで、図18に示す情報処理装置20の依頼部26として動作する。すなわち、情報処理装置20がオンプレミスシステム52で実現され、情報処理プログラム80の依頼プロセス86を実行することでオンプレミスシステム52は情報処理装置20の依頼部26として動作される。また、CPU60は、実行プロセス88を実行することで、図18に示す内部環境システム12に含まれる第1システム40における処理実行部43として動作する。すなわち、内部環境システム12がオンプレミスシステム52で実現され、実行プロセス88を実行することでオンプレミスシステム52は内部環境システム12における第1システム40の処理実行部43として動作される。
次に、第5実施形態に係る情報処理装置20の処理を説明する。オンプレミスシステム52のCPU60は、情報処理プログラム80を格納部66から読み出してRAM62に展開して実行することで、ジョブフロー情報32に関する処理を実行する。
図20に、情報処理プログラム80の処理の流れの一例を示す。オンプレミスシステム52のCPU60は、ステップ200において、ジョブフロー情報32を取得する。ステップ200の処理は、図11に示すステップ110の処理と同様の処理である。ステップ200では、ジョブフロー管理テーブル94Aから指定したジョブフロー情報32を使用できる。つまり、図9に示すステップ100と同様に指定されたジョブフロー情報32を使用できる。
CPU60は、次のステップ202において、ステップ200で取得したジョブフロー情報32が未解析であるか否かを判断する。ステップ202の判断処理は、図17に示すステップ180の判断処理と同様である。ステップ202において否定判断されるとき、CPU60は、ステップ260において、図17に示すステップ144の処理と同様に、ジョブフロー情報32による処理を実行して本処理ルーチンを終了する。一方、ステップ202で肯定判断されると、CPU60は、次のステップ204においてジョブフロー情報32に含まれる第1ジョブJ1が第1条件に合致するか否かを判断する。ステップ204の判断処理は、図11に示すステップ112の判断処理と同様である。
ステップ204で肯定判断のとき、CPU60はステップ206へ処理を進める。CPU60は、ステップ206において第1ジョブJ1の処理をオンプレミスシステム52において実行するべく、第1システム40の処理実行部43へ第1ジョブJ1の実行を依頼する。ステップ206において第1ジョブJ1の実行を依頼することにより第1システム40の処理実行部43が第1ジョブJ1を実行することは、図14に示すステップ164の処理と同様である。次にCPU60は、ステップ208において、第1ジョブJ1に対するクラウド実行可能フラグをオフに設定し、ステップ210へ進む。ステップ208の処理は、図11に示すステップ114の処理と同様である。
一方、ステップ204で否定判断のとき、CPU60は、ステップ240へ進み、クラウド分散実行フラグをオフに設定し、次のステップ250において第1ジョブJ1の実行を依頼し、ステップ252へ進む。ステップ240の処理は、図11に示すステップ134の処理と同様である。また、ステップ250の処理は、図14に示すステップ152の処理と同様である。
次に、CPU60は、ステップ210において第2ジョブJ2が第2条件に合致するか否かを判断する。ステップ210の判断処理は、図11に示すステップ116の判断処理と同様である。ステップ210で肯定判断のとき、CPU60は、ステップ212において第1システム40の処理実行部43へ第2ジョブJ2の実行を依頼し、次のステップ214で第2ジョブJ2に対するクラウド実行可能フラグをオフに設定し、ステップ216へ進む。ステップ212において第2ジョブJ2の実行を依頼することにより第1システム40の処理実行部43が第2ジョブJ2を実行することは、図14に示すステップ166の処理と同様である。また、ステップ214の処理は、図11に示すステップ118の処理と同様である。
一方、ステップ210で否定判断のとき、CPU60は、ステップ242へ進み、クラウド分散実行フラグをオフに設定し、次のステップ252において第2ジョブJ2の実行を依頼し、ステップ254へ進む。ステップ242の処理は、図11に示すステップ134の処理と同様であり、ステップ252の処理は、図14に示すステップ154の処理と同様である。
次に、CPU60は、ステップ216において第3ジョブJ3が第3条件に合致するか否かを判断する。ステップ216の判断処理は、図11に示すステップ120の判断処理と同様である。ステップ216で肯定判断のときには、CPU60は、ステップ218において、クラウドシステム54における第2システム45へ第3ジョブJ3の実行を依頼する。次にCPU60は、ステップ220において第3ジョブJ3に対するクラウド実行可能フラグをオンに設定し、ステップ222へ進む。ステップ218において第3ジョブJ3の実行を依頼することにより第2システム45が第3ジョブJ3を実行させる処理は、図14に示すステップ162,168〜172の処理と同様である。また、ステップ220の処理は、図11に示すステップ122の処理と同様である。
一方、ステップ216で否定判断のとき、CPU60は、ステップ244へ進み、クラウド分散実行フラグをオフに設定し、次のステップ254において第3ジョブJ3の実行を依頼し、ステップ256へ進む。ステップ244の処理は、図11に示すステップ134の処理と同様であり、ステップ254の処理は、図14に示すステップ156の処理と同様である。
次に、CPU60は、ステップ222において第4ジョブJ4が第4条件に合致するか否かを判断する。ステップ222の判断処理は、図11に示すステップ124の判断処理と同様である。ステップ222で肯定判断のときには、CPU60は、ステップ224において、第1システム40の処理実行部43へ第4ジョブJ4の処理を依頼し、次のステップ226で第4ジョブJ4に対するクラウド実行可能フラグをオフに設定し、ステップ228へ進む。ステップ224において第4ジョブJ4の実行を依頼することにより第1システム40の処理実行部43が第4ジョブJ4を実行することは、図14に示すステップ158の処理と同様である。また、ステップ226の処理は、図11に示すステップ126の処理と同様である。
一方、ステップ222で否定判断のとき、CPU60は、ステップ246へ進み、クラウド分散実行フラグをオフに設定し、次のステップ256において第4ジョブJ4の実行を依頼し、ステップ258へ進む。ステップ246の処理は、図11に示すステップ134の処理と同様であり、ステップ256の処理は、図14に示すステップ158の処理と同様である。
次に、CPU60は、ステップ228において第5ジョブJ5が第5条件に合致するか否かを判断する。ステップ228の判断処理は、図11に示すステップ128の判断処理と同様である。ステップ228で肯定判断のときには、CPU60は、ステップ230において、第1システム40の処理実行部43へ第5ジョブJ5の処理を依頼し、次のステップ232で第5ジョブJ5に対するクラウド実行可能フラグをオフに設定し、ステップ234へ進む。ステップ234では、図11に示すステップ132の処理と同様に、クラウド実行フラグをオンに設定し本処理ルーチンを終了する。ステップ230において第5ジョブJ5の実行を依頼することにより第1システム40の処理実行部43が第5ジョブJ5を実行することは、図14に示すステップ160の処理と同様である。また、ステップ232の処理は、図11に示すステップ130の処理と同様である。
一方、ステップ228で否定判断のとき、CPU60は、ステップ248へ進み、クラウド分散実行フラグをオフに設定し、次のステップ258において第5ジョブJ5の実行を依頼し、本処理ルーチンを終了する。ステップ248の処理は、図11に示すステップ134の処理と同様であり、ステップ258の処理は、図14に示すステップ160の処理と同様である。
以上説明したように、第5実施形態では、ジョブフロー情報32の構造解析とジョブフロー情報32に含まれるジョブの実行とを逐次処理している。従って、ジョブフロー情報32の構造解析とジョブフロー情報32に含まれるジョブの実行とを一度に処理すなわち連携して処理できる。ジョブフロー情報32の構造解析とジョブフロー情報32に含まれるジョブの実行とを一度に処理できることは、解析処理と実行処理とを別々に処理することに比べて、処理の流れを単純化できる。
<第6実施形態>
第1実施形態では、ジョブフロー情報32により示される複数のジョブの各々を処理するときに、並列処理可能なジョブについて、外部環境システム14で処理することにより、情報処理システム10の処理効率の向上を図っている。第6実施形態では、並列処理可能なジョブについて、内部環境システム12と外部環境システム14とを効率的に共存させ、情報処理システム10の処理効率の向上を図る。なお、第6実施形態は、第1実施形態と略同様の構成のため、同一部分には同一符号を付して詳細な説明を省略する。
図21に、第6実施形態に係るジョブフロー情報32による実行処理の流れを示す。なお、図21に示すジョブフロー情報32による実行処理の流れは、図14に示すジョブフロー情報32による実行処理の流れと略同様である。図21と図14の相違点は、図14に示すステップ162の処理を図21に示すステップ300,302,304の処理に変更した点と、図14に示すステップ168,170,172の処理を図21に示すステップ306の処理に変更した点である。
図21に示すジョブフロー情報32による実行処理が開始されると、CPU60は、ジョブフロー管理テーブル94Aを参照し、実行対象のジョブフロー情報32について、クラウド分散実行フラグがオンか否かを判断する(ステップ150)。実行対象のジョブフロー情報32による処理が全てオンプレミスシステム52において実行される設定であるとき、ステップ150で否定判断されて、各ジョブを順次実行する(ステップ152〜160)。
一方、ステップ150で肯定判断の場合、実行対象のジョブフロー情報32による処理は、クラウドシステム54において実行可能であるため、クラウドシステム54において実行させるジョブを設定する。すなわち、CPU60は、ステップ300において、第3ジョブJ3に含まれる並列処理可能な複数の処理(小ジョブJ3−1〜J3−3)の各々について、クラウドシステム54で実行させることを示すクラウド実行可能フラグを個別に設定する(詳細後述)。次に、CPU60は、ステップ302において個別クラウド実行可能フラグが全てオフであるか否かを判断する。個別クラウド実行可能フラグが全てオフであるときは、ステップ302で肯定判断され、実行対象のジョブフロー情報32による処理が全てオンプレミスシステム52において実行される設定であるので、ステップ152へ進み各ジョブを順次実行する。
ステップ302で否定判断されると、CPU60は、ステップ304において、クラウドシステム54において第3ジョブJ3の少なくとも一部を実行させるために、クラウドシステム54にOSインスタンスを作成する。
次に、CPU60は、第1ジョブJ1を実行し(ステップ164)、第2ジョブJ2を実行する(ステップ166)。次に、CPU60は、ステップ306において、ステップ300で設定した個別クラウド実行可能フラグに基づいて、第3ジョブJ3に含まれる並列処理可能な複数の処理(小ジョブJ3−1〜J3−3)を個別に実行する(詳細後述)。次にCPU60は、第4ジョブJ4を実行し(ステップ174)、第5ジョブJ5を実行し(ステップ176)、本処理ルーチンを終了する。
次に、図21に示すステップ300の個別設定処理をさらに詳細に説明する。第6実施形態では、オンプレミスシステム52の稼働状態に応じて、すなわちオンプレミスシステム52に処理に余力があるとき、第3ジョブJ3に含まれる並列処理可能な複数の処理を、オンプレミスシステム52に振り分ける。
図22に、ステップ300の個別クラウド実行可能フラグの設定処理の流れの一例を示す。ステップ300は、第3ジョブJ3の一部を、オンプレミスシステム52に振り分け可能であるときに、個別クラウド実行可能フラグをオンに設定する処理を実行する。
CPU60は、ステップ310において、オンプレミスシステム52の現在の稼働状態を検知すると共に、検知結果からオンプレミスシステム52における処理余力Xを求める。オンプレミスシステム52の現在の稼働状態の検知の一例には、オンプレミスシステム52のCPU負荷やCPU利用率を検出することがある。他例としては、システムリソースの利用率がある。また、処理余力Xは、オンプレミスシステム52においてジョブを処理するのに使用できる装置構成の余剰部分、すなわち現在未使用の装置構成やCPU未利用率が一例として挙げられる。
次に、CPU60は、ステップ312において、オンプレミスシステム52における並列実行処理対象の各ジョブの予測処理負荷Yを求める。予測処理負荷Yは、並列実行処理対象のジョブを、オンプレミスシステム52で実際に稼働させて検知してもよく、事前に処理負荷を求めて格納部66に格納しておいて取得してもよい。第3ジョブJ3は、並列処理可能な複数の処理(小ジョブJ3−1〜J3−3)を含んでいる(図7、図10参照)。従って、小ジョブJ3−1〜J3−3の各々について予測処理負荷Yを求める。
次に、CPU60は、ステップ314において、処理余力Xが予測処理負荷Yを超える(X>Y)か否かを判断する。ステップ314で否定判断のとき、オンプレミスシステム52において並列実行処理対象のジョブを処理する余力がないため、第3ジョブJ3をクラウドシステム54で実行するべく、個別クラウド実行可能フラグを全てオンに設定する(ステップ318)。
一方、ステップ314で肯定判断のとき、オンプレミスシステム52において並列実行処理対象のジョブを処理する余力があるため、処理余力Xの範囲内で第3ジョブJ3をクラウドシステム54で実行可能な小ジョブJ3−1〜J3−3を求める。また、ステップ316では、求めたクラウドシステム54で実行可能な小ジョブJ3−1〜J3−3について、個別クラウド実行可能フラグをオフに設定する(ステップ316)。例えば、小ジョブJ3−1〜J3−3の各々が略同一の予測処理負荷であり、1つの小ジョブの予測処理負荷が処理余力Xの範囲内であるとき、小ジョブJ3−1〜J3−3の何れか1つの小ジョブについて個別クラウド実行可能フラグをオフに設定する。また、第3ジョブJ3全体の予測処理負荷が処理余力Xの範囲内であるとき、全ての小ジョブJ3−1〜J3−3について個別クラウド実行可能フラグをオフに設定する。
次に、図21に示すステップ306の第3ジョブJ3の個別実行処理をさらに詳細に説明する。第6実施形態では、オンプレミスシステム52の稼働状態に応じて、すなわちオンプレミスシステム52に処理に余力があるとき、第3ジョブJ3に含まれる並列処理可能な複数の処理を、オンプレミスシステム52に振り分ける。前述のように、オンプレミスシステム52の現在の稼働状態に応じて、第3ジョブJ3のうちの並列実行処理対象の小ジョブの一部又は全部をオンプレミスシステム52で実行可能に設定される。
図23に、ステップ306の第3ジョブJ3の個別実行処理の流れの一例を示す。ステップ306の処理では、個別クラウド実行可能フラグに基づいて、第3ジョブJ3に含まれる並列処理可能な複数の処理を個別に実行する。
CPU60は、ステップ320において、個別クラウド実行可能フラグが全てオンに設定されているか否かを判断することにより、第3ジョブJ3をクラウドシステム54で実行させるか否かを判断する。ステップ320で肯定判断のとき、CPU60は、図14に示すステップ168と同様に、ステップ328において第2ジョブJ2を実行した結果のファイルをクラウドシステム54へアップロードする。次に、図14に示すステップ170と同様に、ステップ330においてクラウドシステム54へ第3ジョブJ3の実行を指示する。クラウドシステム54では、第3ジョブJ3の並列処理が実行される。次に、CPU60は、図14に示すステップ172と同様にステップ332において、クラウドシステム54で並列処理された処理結果のファイルをダウンロード(取得)する。
一方、ステップ320で否定判断のとき、CPU60は、ステップ322において、第2ジョブJ2を実行した結果のファイルをクラウドシステム54へアップロードする。クラウドシステム54へのアップロードは、個別クラウド実行可能フラグがオンに設定されている第3ジョブJ3の小ジョブの数に対応するファイルとする。すなわち、第3ジョブJ3の少なくとも一部を実行させるために、第3ジョブJ3の小ジョブに対する入力として、クラウドシステム54に送信する。
次に、CPU60は、ステップ324において、オンプレミスシステム52及びクラウドシステム54の少なくとも一方へ第3ジョブJ3の実行を指示する。第3ジョブJ3の実行指示は、個別クラウド実行可能フラグの設定により変化する。すなわち、個別クラウド実行可能フラグの少なくとも1つがオンに設定されているときは、クラウドシステム54へ第3ジョブJ3の実行を指示する。また、個別クラウド実行可能フラグの少なくとも1つがオフに設定されているときは、オンプレミスシステム52へ第3ジョブJ3の実行を指示する。クラウドシステム54に第3ジョブJ3の実行が指示されると、クラウドシステム54では、前述のステップ322でアップロードされたファイルを入力とし、前述のステップ304でアップロードされた実行ファイルを使用して第3ジョブJ3の処理を実行する。また、オンプレミスシステム52へ第3ジョブJ3の実行が指示されると、オンプレミスシステム52では、個別クラウド実行可能フラグがオフのジョブに対応する前述のステップ166による第2ジョブJ2の実行結果を使用して第3ジョブJ3の処理を実行する。従って、オンプレミスシステム52とクラウドシステム54により第3ジョブJ3が並列処理される。
クラウドシステム54で第3ジョブJ3の実行が完了されると、CPU60は、ステップ326において、クラウドシステム54で処理された処理結果のファイルをダウンロード(取得)する。
ところで、オンプレミスシステム52における装置構成は、オンプレミスシステム52を構築したユーザが予測したコンピュータによる業務処理の処理量を処理可能な構成とすることや処理負荷を許容する構成とすることが一般的である。しかし、業務処理の処理量や処理負荷が、常時ユーザが予測した値であるとは限らない。例えば、ユーザが扱うコンピュータによる業務処理の処理量の最大値を許容する構成を、オンプレミスシステム52における装置構成とすると、業務処理の処理量の最大値に至らないときには、余剰の構成である。また、業務処理の処理量や処理負荷が増大したとき、オンプレミスシステム52における装置構成を増強しなければならない。本実施形態では、オンプレミスシステム52において、ジョブを処理するシステムを自動的に選択できるので、オンプレミスシステム52における業務処理の処理量や処理負荷を安定化させることができる。
以上説明したように、第6実施形態では、ジョブフロー情報32の解析結果から、並列処理するジョブをクラウドシステム54で実行させるときに、オンプレミスシステム52の稼働状況により一部または全部をオンプレミスシステム52で処理できる。従って、オンプレミスシステム52の構成に基づく資源を最大限に利用することができる。
また、第6実施形態では、ジョブフロー情報32に基づくジョブの処理を実行するときに、クラウドシステム54を使用した処理を実行するので、クラウドシステム54を常時使用した処理に比べてクラウドシステム54の使用率を最小限に留めることができる。
さらに、オンプレミスシステム52及びクラウドシステム54の双方のシステムにより、ジョブフロー情報32に基づく業務処理の実行を分散して実行することができ、情報処理システム10の処理効率を向上できる。
第6実施形態では、情報処理システム10が内部環境システム12と外部環境システム14とを含んだ場合を説明したが、外部環境システム14は必ずしも必要ではない。例えば、情報処理システム10が内部環境システム12を備え、かつ外部環境システム14を備えていない場合にも適用可能である。すなわち、上述のように、内部環境システム12に十分な余力を有する場合に、本実施形態を適用する場合には、外部環境システム14へ並列処理を依頼する必要もない。また、内部環境システム12に複数の独立したシステムを備えている場合、何れか1のシステムを本実施形態の内部環境システム12とし、他のシステムを外部環境システム14に代替することができる。さらに、内部環境システム12に複数の独立したシステムを備えている場合、何れか1のシステムを内部環境システム12とし、他のシステムを外部環境システム14に代替して適用することは、上述の各実施形態に適用可能である。
なお、上記では情報処理システム10をコンピュータシステム50により実現する一例を説明した。しかし、これらの構成に限定されるものではなく、上記説明した要旨を逸脱しない範囲において、各種の改良及び変更を行っても良いのはもちろんである。
また、上記ではプログラムが記憶部に予め記憶(インストール)されている態様を説明したが、これに限定されるものではない。例えば、開示の技術における情報処理プログラムは、CD−ROMやDVD−ROM等の記録媒体に記録されている形態で提供することも可能である。
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。