(57)【要約】【課題】ストリーム処理に対する遅延要件を考慮してストリーム処理を実行させることを図る。【解決手段】制御装置は、ストリーム処理装置で順次実行されるジョブを格納するジョブキューと、各ジョブの遅延要件に基づいて前記ストリーム処理装置で実行されるジョブのスケジューリングを行い、前記スケジューリングの順番で前記ジョブキューにジョブを格納するジョブ制御部と、を備える。【選択図】図１
2020126483.tif 000002
【特許請求の範囲】
【請求項１】
ストリーム処理装置で順次実行されるジョブを格納するジョブキューと、
各ジョブの遅延要件に基づいて前記ストリーム処理装置で実行されるジョブのスケジューリングを行い、前記スケジューリングの順番で前記ジョブキューにジョブを格納するジョブ制御部と、
を備える制御装置。
【請求項２】
前記ジョブ制御部は、各ジョブの遅延要件の不足度の総和の最少化又は各ジョブの遅延要件の充足度の総和の最大化に基づいて前記ストリーム処理装置で実行されるジョブのスケジューリングを行う、
請求項１に記載の制御装置。
【請求項３】
前記ジョブ制御部は、各ジョブの遅延要件を満たすことが難しいか否かを判断し、遅延要件を満たすことが難しい第１ジョブと、前記第１ジョブよりも先に実行されるジョブであって前記第１ジョブと実行順序を入れ替えても遅延要件が満たされる第２ジョブとを対象にして、前記ジョブキューに格納される順番を入れ替える、
請求項１に記載の制御装置。
【請求項４】
前記ジョブは、前記ストリーム処理装置で処理される内容の更新制御情報であって、処理切替時刻と、処理切替時刻で未確定の実行途中の処理に対する対処方法とを含む、
請求項１から３のいずれか１項に記載の制御装置。
【請求項５】
請求項１から４のいずれか１項に記載の制御装置と、
前記制御装置のジョブキューから順次ジョブを取り出して実行するストリーム処理装置と、
を備える情報処理装置。
【請求項６】
コンピュータに、
各ジョブの遅延要件に基づいてストリーム処理装置で実行されるジョブのスケジューリングを行うステップと、
前記ストリーム処理装置で順次実行されるジョブを格納するジョブキューに、前記スケジューリングの順番でジョブを格納するステップと、
を実行させるためのコンピュータプログラム。
【請求項７】
制御装置が、各ジョブの遅延要件に基づいてストリーム処理装置で実行されるジョブのスケジューリングを行い、前記スケジューリングの順番でジョブキューにジョブを格納するステップと、
前記ストリーム処理装置が、前記ジョブキューから順次ジョブを取り出して実行するステップと、
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、情報処理装置、コンピュータプログラム及び情報処理方法に関する。
【背景技術】
【０００２】
従来、ストリーム処理を実行する情報処理技術として例えば特許文献１に記載の技術が知られている。特許文献１に記載の従来技術では、スイッチがデータの一次処理を実行し、その実行結果をストリームクラスタへ転送している。スイッチはサーバから受領した記述子に基づいてストリームの処理を実行する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５８０２２１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上述した従来技術では、ストリーム処理結果を利用するアプリケーションが要求する遅延要件を考慮してストリームの処理を実行することができない。
【０００５】
本発明は、このような事情を考慮してなされたものであり、その目的は、ストリーム処理に対する遅延要件を考慮してストリーム処理を実行させることを図ることにある。
【課題を解決するための手段】
【０００６】
（１）本発明の一態様は、ストリーム処理装置で順次実行されるジョブを格納するジョブキューと、各ジョブの遅延要件に基づいて前記ストリーム処理装置で実行されるジョブのスケジューリングを行い、前記スケジューリングの順番で前記ジョブキューにジョブを格納するジョブ制御部と、を備える制御装置である。
（２）本発明の一態様は、前記ジョブ制御部は、各ジョブの遅延要件の不足度の総和の最少化又は各ジョブの遅延要件の充足度の総和の最大化に基づいて前記ストリーム処理装置で実行されるジョブのスケジューリングを行う、上記（１）の制御装置である。
（３）本発明の一態様は、前記ジョブ制御部は、各ジョブの遅延要件を満たすことが難しいか否かを判断し、遅延要件を満たすことが難しい第１ジョブと、前記第１ジョブよりも先に実行されるジョブであって前記第１ジョブと実行順序を入れ替えても遅延要件が満たされる第２ジョブとを対象にして、前記ジョブキューに格納される順番を入れ替える、上記（１）の制御装置である。
（４）本発明の一態様は、前記ジョブは、前記ストリーム処理装置で処理される内容の更新制御情報であって、処理切替時刻と、処理切替時刻で未確定の実行途中の処理に対する対処方法とを含む、上記（１）から（３）のいずれかの制御装置である。
【０００７】
（５）本発明の一態様は、上記（１）から（４）のいずれかの制御装置と、前記制御装置のジョブキューから順次ジョブを取り出して実行するストリーム処理装置と、を備える情報処理装置である。
【０００８】
（６）本発明の一態様は、コンピュータに、各ジョブの遅延要件に基づいてストリーム処理装置で実行されるジョブのスケジューリングを行うステップと、前記ストリーム処理装置で順次実行されるジョブを格納するジョブキューに、前記スケジューリングの順番でジョブを格納するステップと、を実行させるためのコンピュータプログラムである。
【０００９】
（７）本発明の一態様は、制御装置が、各ジョブの遅延要件に基づいてストリーム処理装置で実行されるジョブのスケジューリングを行い、前記スケジューリングの順番でジョブキューにジョブを格納するステップと、前記ストリーム処理装置が、前記ジョブキューから順次ジョブを取り出して実行するステップと、を含む情報処理方法である。
【発明の効果】
【００１０】
本発明によれば、ストリーム処理に対する遅延要件を考慮してストリーム処理を実行させることができるという効果が得られる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態に係る情報処理装置の構成例を示す図である。
【図２】一実施形態に係るジョブスケジューリング方法の例を示すフローチャートである。
【図３】一実施形態に係るジョブの記載例である。
【図４】他の実施形態に係る情報処理装置の構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照し、本発明の実施形態について説明する。
図１は、一実施形態に係る情報処理装置の構成例を示す図である。図１において、情報処理装置１は、制御装置１０と、ストリーム処理装置３０と、を備える。制御装置１０は、ジョブキュー１１と、ジョブ制御部１２と、を備える。ストリーム処理装置３０は、データ入力部３１と、処理部３２と、データ出力部３３と、記憶部３４と、を備える。
【００１３】
制御装置１０は、ストリーム処理装置３０の処理部３２が実行するジョブの実行制御を行う。具体的には、制御装置１０は、ストリーム処理装置３０の処理部３２で実行されるジョブのスケジューリングを行う。ストリーム処理装置３０の処理部３２は、制御装置１０によるスケジューリングに従って順次ジョブを実行する。このとき、処理部３２は、一つのジョブに対して処理部３２の全リソースを使用する。
【００１４】
［制御装置］
制御装置１０の構成について詳細に説明する。
【００１５】
ジョブキュー１１は、ストリーム処理装置３０で順次実行されるジョブを格納する。
【００１６】
ジョブ制御部１２は、各ジョブの遅延要件に基づいて、ストリーム処理装置３０で実行されるジョブのスケジューリングを行う。ジョブ制御部１２は、スケジューリングの順番でジョブキュー１１にジョブを格納する。ジョブの遅延要件は、予め、制御装置１０に設定される。
【００１７】
ジョブの遅延要件は、当該ジョブの処理にかかる処理時間の上限値である。同じ入力データを使用した同じ処理内容であっても、あるアプリケーションＡは１０秒ごとに出力データを求めるが、別のアプリケーションＢは１分ごとに出力データを求める場合がある。この場合、同じ入力データを使用した同じ処理内容のジョブであっても、アプリケーションＡ用のジョブＪａの遅延要件は１０秒であり、アプリケーションＢ用のジョブＪｂの遅延要件は１分となる。このため、ジョブ制御部１２は、ジョブＪａが少なくとも１０秒ごとにストリーム処理装置３０で実行されるように、また、ジョブＪｂが少なくとも１分ごとにストリーム処理装置３０で実行されるように、各ジョブＪａ，Ｊｂのスケジューリングを行う。
【００１８】
ジョブ制御部１２が有する主な機能を以下に示す。
・各ジョブの遅延要件を管理する機能
・各ジョブの優先度を決定する機能
・ジョブをジョブキュー１１に格納することによりジョブを発行する機能
・ストリーム処理装置３０の処理部３２においてジョブが使用しているリソース（メモリ、ＣＰＵ（Central Processing Unit：中央演算処理装置）、ストレージアクセス、ネットワーク）の状態を監視する機能
・ストリーム処理装置３０の処理部３２において各ジョブが実行に要した時間を記録する機能
・各ジョブに必要な情報の保存場所を示す情報を保持する機能
ジョブに必要な情報としては、ジョブで使用される入力データに関する情報や、ジョブにより出力される出力データに関する情報等がある。
【００１９】
本実施形態において、ジョブ制御部１２が単一の環境でジョブキュー１１を設ける理由は、ジョブの実行履歴の保存と、ジョブの実行順序の保証のためである。なお、ジョブキュー１１は、ジョブ制御部１２内に設けられてもよい。
【００２０】
制御装置１０の機能は、制御装置１０がＣＰＵ及びメモリ等のコンピュータハードウェアを備え、ＣＰＵがメモリに格納されたコンピュータプログラムを実行することにより実現される。なお、制御装置１０として、汎用のコンピュータ装置を使用して構成してもよく、又は、専用のハードウェア装置として構成してもよい。
【００２１】
［ストリーム処理装置］
ストリーム処理装置３０の構成について詳細に説明する。
【００２２】
処理部３２は、ストリーム処理プラットフォームとして機能する。処理部３２は、ジョブキュー１１から順次一つずつジョブを取り出して実行する。したがって、処理部３２では、一つずつ順番にジョブが実行される。このとき、処理部３２は、一つのジョブに対して処理部３２の全リソースを使用する。
【００２３】
処理部３２が有する主な機能を以下に示す。
・ジョブキュー１１からジョブを取得する機能
・データ入力部３１から入力データを取得する機能
・データ出力部３３へ出力データを出力する機能
・各ジョブの実行結果を中間結果としてデータ入力部３１又はデータ出力部３３のいずれかに渡す機能
・ジョブに記載された内容に従って情報処理を実行する機能
・ジョブに記載された処理の記述を必要に応じて動的コンパイルする機能
・記憶部３４に対してジョブの格納、取り出し、削除及び更新を行う機能
【００２４】
記憶部３４は、データベース、ファイルシステム、メモリなどとして機能する。記憶部３４はデータを記憶する。記憶部３４としては、揮発性メモリなど高速なデータ読み書きが可能な記憶媒体や、不揮発性メモリなど永続的にデータ保存が可能な記憶媒体などである。
【００２５】
記憶部３４が有する主な機能を以下に示す。
・ジョブを記憶する機能
・処理部３２の指示に従ってジョブの保持、読み出し、検索及び更新を行う機能、
ジョブに記載された指示は、ソースコード、中間言語又は機械語などで記載されている。記憶部３４には、ソースコードのままでジョブを格納してもよいが、コンピュータがすぐに実行できる状態（コンパイル後のデータ）でジョブを格納することは好ましい。
また、記憶部３４のジョブ格納形態として、以下に示す２種類の形態が挙げられる。
・ジョブのメタ情報をカラムとしたメタ情報データベースとジョブ本体のバイナリ情報とを分けて格納する形態
・データベースのカラムにジョブ本体のバイナリ情報を保存する形態
【００２６】
データ入力部３１及びデータ出力部３３は、メッセージキューとして機能する。
データ入力部３１は、入力データを保持する。データ入力部３１は、処理部３２からの要求に応じて入力データを処理部３２へ出力する。又は、データ入力部３１は、自発的に入力データを処理部３２へ出力する。
【００２７】
データ出力部３３は、出力データを保持する。データ出力部３３は、処理部３２からの要求に応じて出力データを保持する。データ出力部３３は、保持する出力データを出力する。
【００２８】
データ入力部３１及びデータ出力部３３は同一のコンピュータクラスタで実装してもよい。
【００２９】
［ジョブスケジューリング方法］
本実施形態に係るジョブ制御部１２のジョブスケジューリング方法を説明する。
【００３０】
（ジョブスケジューリング方法の例１）
図２を参照して、ジョブ制御部１２のジョブスケジューリング方法の例１を説明する。図２は、本実施形態に係るジョブスケジューリング方法の例１を示すフローチャートである。ジョブ制御部１２は、ストリーム処理装置３０に実行させる複数のジョブを対象にしてスケジューリングを行う。各ジョブの優先度及び遅延要件は、予め、制御装置１０に設定される。
【００３１】
（ステップＳ１１）  ジョブ制御部１２は、スケジューリング対象の各ジョブ間の依存関係に基づいてジョブ実行順序候補リストを生成する。スケジューリング対象の複数のジョブ及び各ジョブ間の依存関係は、ユーザが作成したジョブ構成図や依存関係図（ジョブネット図）などで示される。ジョブ制御部１２は、当該ジョブ構成図や依存関係図などに基づいて、スケジューリング対象の複数のジョブの実行順序を決定する。この実行順序の決定のルールは、「依存するジョブを依存されるジョブよりも後に実行されるようにすること」である。依存関係のないジョブ同士はどちらが先に実行されてもよい。ジョブ制御部１２は、決定した実行順序に従って、全てのスケジューリング対象のジョブをジョブ実行順序候補リストに記載する。
【００３２】
（ステップＳ１２）  ジョブ制御部１２は、ストリーム処理装置３０の処理部３２の現在の処理状況を確認する。具体的には、データ入力部３１に現在保持されている入力データ量を確認する。また、各ジョブの単位入力データ量あたりの平均処理時間を取得する。各ジョブの単位入力データ量あたりの平均処理時間は、常時、統計データとして更新し保持しておく。入力データ量と各ジョブの処理時間とは因果関係を持つ。このため、データ入力部３１に現在保持されている入力データ量と、各ジョブの単位入力データ量あたりの平均処理時間とに基づいて、各ジョブが完了するまでに要する時間（ジョブ所要時間）を推測する。
【００３３】
（ステップＳ１３）  ジョブ制御部１２は、各ジョブのジョブ所要時間の推測値に基づいて、ジョブ実行順序候補リスト内の各ジョブについて、ストリーム処理結果を利用するアプリケーションが要求する遅延要件を満たせるか否かを判断する。この判断の結果、遅延要件を満たせないジョブ（遅延要件考慮対象ジョブ）がある場合にはステップＳ１４に進む。一方、遅延要件考慮対象ジョブがない場合にはステップＳ２０に進む。
【００３４】
（ステップＳ１４）  ジョブ制御部１２は、一つの遅延要件考慮対象ジョブを選択する。この選択された遅延要件考慮対象ジョブを対象ジョブと称する。
【００３５】
（ステップＳ１５）  ジョブ制御部１２は、ジョブ実行順序候補リスト内のジョブのうち、実行順序が対象ジョブよりも先であり、且つ、対象ジョブと実行順序を入れ替えても依存関係を満たすジョブ（入れ替え候補ジョブ）があるかを調べる。この結果、入れ替え候補ジョブがある場合にはステップＳ１６に進む。一方、入れ替え候補ジョブがない場合にはステップＳ１９に進む。
【００３６】
（ステップＳ１６）  ジョブ制御部１２は、入れ替え候補ジョブのうち、対象ジョブと実行順序を入れ替えても遅延要件を満たすものがあるかを調べる。この結果、遅延要件を満たす入れ替え候補ジョブがある場合にはステップＳ１７に進む。一方、遅延要件を満たす入れ替え候補ジョブがない場合にはステップＳ１８に進む。
【００３７】
（ステップＳ１７）  ジョブ制御部１２は、ジョブ実行順序候補リストにおいて、対象ジョブとステップＳ１６で発見された遅延要件を満たす入れ替え候補ジョブとの実行順序を入れ替える。この後、ステップＳ１３に戻る。
【００３８】
（ステップＳ１８）  ジョブ制御部１２は、入れ替え候補ジョブのうち、対象ジョブよりも優先度が低いものがあるかを調べる。この結果、優先度が低い入れ替え候補ジョブがある場合にはステップＳ１７に進む。一方、優先度が低い入れ替え候補ジョブがない場合にはステップＳ１９に進む。なお、ジョブの優先度は、予めユーザが決定してもよく、又は、所定の方法で算出されてもよい。
【００３９】
（ステップＳ１９）  ジョブ制御部１２は、対象ジョブを遅延要件考慮対象から除外する。これにより、当該対象ジョブは、ステップＳ１３において、遅延要件を満たせるか否かの判断対象から除外される。なお、当該対象ジョブのストリーム処理結果は、アプリケーションが要求する遅延要件を満たさない可能性が生じる。このため、当該対象ジョブをジョブ実行順序候補リストから削除して、ストリーム処理装置３０で実行しないようにしてもよい。これにより、アプリケーションが要求する遅延要件を満たさない可能性があるジョブをストリーム処理装置３０で実行しないことによって、ストリーム処理装置３０の処理部３２の効率向上を図ってもよい。
【００４０】
（ステップＳ２０）  ジョブ制御部１２は、ジョブ実行順序候補リストに記載された全てのジョブを発行する。具体的には、ジョブ制御部１２は、ジョブ実行順序候補リストに記載された実行順序に従って、当該リスト内の全てのジョブを順次ジョブキュー１１に格納する。ジョブキュー１１に格納されたジョブは、ストリーム処理装置３０の処理部３２によって順次取り出されて実行される。これにより、ジョブ実行順序候補リストに記載された実行順序で当該リスト内のジョブが順次、ストリーム処理装置３０の処理部３２で実行される。
【００４１】
以上がジョブスケジューリング方法の例１の説明である。
【００４２】
（ジョブスケジューリング方法の例２）
ジョブ制御部１２のジョブスケジューリング方法の例２を説明する。ジョブスケジューリング方法の例２では、ジョブ制御部１２は、各ジョブの遅延要件の不足度の総和の最少化又は各ジョブの遅延要件の充足度の総和の最大化に基づいて、ストリーム処理装置３０の処理部３２で実行されるジョブのスケジューリングを行う。各ジョブの優先度及び遅延要件は、予め、制御装置１０に設定される。
【００４３】
ここでは、ジョブの点数として、ジョブの遅延要件の不足度を算出する。具体的には、遅延要件を満たせているジョブの点数を「０」とし、遅延要件を満たせていないジョブの点数を「遅延要件を満たせていない秒数Ｔ×当該ジョブの優先度」点とする。遅延要件を満たせていない秒数Ｔは遅延要件を超える分の秒数である。例えば、ジョブの遅延要件が１０秒である場合において、当該ジョブのジョブ所要時間の推測値が１５秒であるときには、「Ｔ＝５秒」である。ジョブ所要時間の推測値は、上述した図２のステップＳ１２と同様に求められる。なお、ジョブの優先度を、全てのジョブで等しくしてもよい。
【００４４】
ジョブ制御部１２は、ジョブ実行順序候補リスト内の全てのジョブを対象にして、各ジョブ間の依存関係を満たし、且つ、各ジョブの点数の総和が最小になるように、ジョブの実行順序のスケジューリングを行う。初期のジョブ実行順序候補リストは、上述した図２のステップＳ１１と同様に求められる。
【００４５】
なお、上記のジョブの点数の例では、ジョブの遅延要件の不足度を算出したが、ジョブの遅延要件の充足度を算出してもよい。具体的には、遅延要件を満たせているジョブの点数を「１」とし、遅延要件を満たせていないジョブの点数を「−（遅延要件を満たせていない秒数Ｔ×当該ジョブの優先度）」点とする。ジョブの遅延要件の充足度を算出する場合には、ジョブ制御部１２は、ジョブ実行順序候補リスト内の全てのジョブを対象にして、各ジョブ間の依存関係を満たし、且つ、各ジョブの点数の総和が最大になるように、ジョブの実行順序のスケジューリングを行う。
【００４６】
以上がジョブスケジューリング方法の例２の説明である。
【００４７】
なお、ジョブ制御部１２は、ストリーム処理装置３０の処理部３２の現在の処理状況を常時確認し、処理負荷の上昇等によって、ジョブキュー１１内の現在のジョブの実行順序では遅延要件を満たせないジョブが発生したと判断した場合、上記のジョブスケジューリング方法の例１又は例２を再実行して、ジョブキュー１１内のジョブの実行順序を変更してもよい。
【００４８】
［ジョブのフォーマット］
本実施形態に係るジョブのフォーマットを説明する。本実施形態に係るジョブに記載される項目として、メタ情報、処理内容、処理内容の更新制御情報がある。処理内容の更新制御情報は、必要な場合にのみ記載される。以下に各項目を説明する。
【００４９】
（１）メタ情報
メタ情報として、ジョブの名前、識別子、バージョン、優先度などがある。以下にメタ情報について説明する。
（１−１）ジョブの名前
人間がジョブを容易に識別可能とするための値である。
（１−２）ジョブ識別子（ジョブＩＤ）
ジョブを識別するための値である。
（１−３）ジョブのバージョン
ジョブの変更を管理するための値である。同じジョブＩＤであってバージョンが同じである場合は、処理内容に変更がない。前バージョンから処理内容に変更がある場合、バージョンがアップされる。
（１−４）ジョブの優先度
ジョブの優先度を示す値である。
【００５０】
（２）処理内容
処理内容として、入力データ情報、処理情報、出力データ情報などがある。以下に処理内容について説明する。
（２−１）入力データ情報
入力データ情報として、入力データの保存場所、入力データの取得方法を示す情報がある。また、オプションとして、入力データのデータフォーマットを示す情報が入力データ情報に含められてもよい。
【００５１】
（２−２）処理情報
処理情報として、処理の記述形式及び処理の記述がある。処理の記述形式は、処理の記述の形式を示す情報である。処理の記述形式として、ソースコード、中間言語、機械語、ＳＱＬなどがある。処理の記述は、処理の記述形式で指定された記述形式で記述された処理の内容である。
【００５２】
ジョブの処理がソースコードで記述された場合、ストリーム処理装置３０の処理部３２は、ソースコードを動的コンパイルして実行する。また、処理部３２は、コンパイル後の機械語データをジョブＩＤ及びバージョンに関連付けて記憶部３４に格納し、同じジョブＩＤ且つ同じバージョンのジョブに対しては記憶部３４に格納された機械語データを使用する。これにより、処理部３２は、ジョブがバージョンアップされた場合にのみ、動的コンパイルを実行すればよい。また、バージョンアップ後に元のバージョンに戻す場合には、実行されるジョブに記載されるバージョンを元のバージョンにすればよい。
【００５３】
（２−３）出力データ情報
出力データ情報として、出力データの保存場所、出力データの保存方法を示す情報がある。また、オプションとして、出力データのデータフォーマットを示す情報が出力データ情報に含められてもよい。
【００５４】
なお、入力データ情報、処理情報及び出力データ情報については、同じジョブＩＤ且つ同じバージョンのジョブであって前回のジョブから変更がない場合など、不要の場合には省略してよい。
【００５５】
（３）処理内容の更新制御情報
処理内容の更新制御情報は、処理内容が変更された場合に、ストリーム処理装置３０の処理部３２に対して、処理内容の変更方法を指示する情報である。したがって、処理内容の更新制御情報がジョブに記載されるのは、ジョブのバージョンが変更された場合である。処理内容の更新制御情報として、処理内容の切り替え時刻（処理切替時刻）、処理切替時刻で確定していない実行途中の処理に対する対処方法（未確定処理対処方法）がある。未確定処理対処方法の例を以下に示す。
【００５６】
（未確定処理対処方法の例１）
処理切替時刻で確定していない実行途中の処理は、切り替え前のバージョンの処理の記述を使用してそのまま継続する。
【００５７】
（未確定処理対処方法の例２）
処理切替時刻で確定していない実行途中の処理は、強制的に確定させる。具体的には、処理切替時刻で確定している入力データの範囲内で、切り替え前のバージョンの処理の記述を使用して処理を実行する。これは、処理切替時刻において処理が使用する入力データの範囲が不明確であるために、処理の区切りを明確に把握することが難しい場合に適用することが挙げられる。例えば、時間の経過とともに順次入力される入力データから処理に使用する入力データをウィンドウで切り出す入力データ取得方法において、ウィンドウ幅が固定されてなく動的に変化する場合には、処理の区切りを明確に把握することが難しいので、本未確定処理対処方法の例２を適用することが挙げられる。又は、所定数の入力データがそろったら処理を開始する場合において、入力データの入力が不定期であるときには、所定数の入力データがそろう時期が不明であって処理の区切りを明確に把握することが難しいので、本未確定処理対処方法の例２を適用することが挙げられる。
【００５８】
（未確定処理対処方法の例３）
処理切替時刻で確定していない実行途中の処理は、破棄する。これは、例えば異常検知など速やかに変更後の新しいバージョンの処理の記述を使用したい場合に適用することが挙げられる。
【００５９】
以上がジョブに記載される各項目の説明である。図３に、本実施形態に係るジョブの記載例を示す。図３に例示されるジョブは「Ｊｓｏｎ」と呼ばれるデータ記述言語で記載されたものである。
【００６０】
［他の実施形態］
図４は、他の実施形態に係る情報処理装置の構成例を示す図である。図４において図１の各部に対応する部分には同一の符号を付け、その説明を省略する。図４に示される情報処理装置１ａでは、制御装置１０ａに複数のジョブキュー１１−１，１１−２，１１−３を並列に設け、各ジョブキュー１１−１，１１−２，１１−３に対応する処理部３２−１，３２−２，３２−３をストリーム処理装置３０ａに設ける。
【００６１】
ジョブ制御部１２は、各処理部３２−１，３２−２，３２−３で実行させるジョブのスケジューリングを行い、各スケジューリングの順番で各ジョブキュー１１−１，１１−２，１１−３にジョブを格納する。このスケジューリング方法として、例えば、スケール性（スケーラビリティ）が低い複数のジョブについては、複数の処理部で並列に実行されるように複数のジョブキューに分けて格納する。一方、スケール性が高いジョブについては、ジョブ自体を複数のサブジョブに分け、複数のサブジョブが複数の処理部で並列に実行されるように複数のジョブキューに分けて格納する。
【００６２】
また、ジョブ制御部１２は、各処理部３２−１，３２−２，３２−３のリソース使用状況（例えば、リソース使用率など）に基づいて、ジョブの遅延要件を満たせられる当該ジョブの格納先のジョブキューを選択してもよい。また、ジョブ制御部１２は、各処理部３２−１，３２−２，３２−３のリソース使用状況に基づいて、ジョブ全体で遅延要件が最も満たせられるように、各ジョブの格納先のジョブキューを選択してもよい。
【００６３】
なお、図４に示される情報処理装置１ａでは、３個のジョブキュー１１−１，１１−２，１１−３を並列に設けたが、並列に設けられるジョブキューは２個であってもよく、又は、４個以上であってもよい。この場合も、各ジョブキューに対応する処理部がストリーム処理装置に設けられる。
【００６４】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【００６５】
上述した各装置の機能を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Digital Versatile Disc）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００６６】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００６７】
１，１ａ…情報処理装置、１０，１０ａ…制御装置、１１…ジョブキュー、１２…ジョブ制御部、３０，３０ａ…ストリーム処理装置、３１…データ入力部、３２…処理部、３３…データ出力部、３４…記憶部
【図１】
2020126483.tif 000003
【図２】
2020126483.tif 000004
【図３】
2020126483.tif 000005
【図４】
2020126483.tif 000006