(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024092775
(43)【公開日】2024-07-08
(54)【発明の名称】情報処理プログラム、情報処理方法、および情報処理装置
(51)【国際特許分類】
G06F 11/07 20060101AFI20240701BHJP
G06F 9/48 20060101ALI20240701BHJP
G06F 11/14 20060101ALI20240701BHJP
【FI】
G06F11/07 196
G06F9/48 370
G06F11/14 638
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022208926
(22)【出願日】2022-12-26
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】吉川 大貴
(72)【発明者】
【氏名】北山 亨
(72)【発明者】
【氏名】原 佑輔
(72)【発明者】
【氏名】下川 健一郎
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA23
5B042KK02
5B042KK20
(57)【要約】
【課題】ジョブフローを再起動する起点を設定し易くすること。
【解決手段】情報処理装置100は、ジョブフロー121を記憶する。情報処理装置100は、ジョブフロー121に実行順序が規定されたジョブ群の各ジョブの処理内容に基づいて、ジョブ群を複数のグループに分類する。情報処理装置100は、複数のグループの少なくともいずれかのグループに対応付けて、当該いずれかのグループに属するジョブの異常に応じてジョブフロー121を再起動する起点とするグループにおける先頭ジョブを示す情報を記憶する。情報処理装置100は、第1グループに分類した第1ジョブの異常を検出する。情報処理装置100は、第1ジョブの異常を検出した場合、第1グループに対応付けられた、第1ジョブの異常に応じてジョブフロー121を再起動する起点とする第2グループにおける先頭ジョブを起点に、ジョブフロー121を再起動する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ジョブフローに実行順序が規定されたジョブ群の各ジョブの処理内容に基づいて、前記ジョブ群を複数のグループに分類し、
前記複数のグループの第1グループに分類した第1ジョブの異常を検出した場合、前記複数のグループの少なくともいずれかのグループに対応付けて、前記複数のグループのうち前記ジョブフローを再起動する起点とするグループにおいて実行順序が先頭であるジョブを示す情報を記憶する記憶部を参照して、前記第1グループに対応付けられた前記ジョブフローを再起動する起点とする第2グループにおいて実行順序が先頭であるジョブを示す情報に基づいて、前記第2グループにおいて実行順序が先頭であるジョブを起点に、前記ジョブフローを再起動する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項2】
前記複数のグループの第2グループに分類した第2ジョブに先行する第3ジョブを、前記ジョブ群に追加する要求を受け付けたことに応じて、前記第3ジョブを、前記ジョブ群に追加し、
前記第3ジョブの処理内容に基づいて、前記第3ジョブを前記複数のグループの第3グループに分類し、
前記第3ジョブが、前記第3グループにおいて実行順序が先頭であるジョブとなる場合、前記記憶部に記憶された、前記第3グループにおいて実行順序が先頭であるジョブを示す情報を更新する、
処理を前記コンピュータに実行させることを特徴とする請求項1に記載の情報処理プログラム。
【請求項3】
前記記憶部は、前記複数のグループの少なくともいずれかのグループに対応付けて、前記ジョブフローを再起動する条件と、前記複数のグループのうち前記ジョブフローを再起動する起点とするグループにおいて実行順序が先頭であるジョブを示す情報とを記憶し、
検出した前記第1ジョブの異常が、前記第1グループに対応付けられた前記ジョブフローを再起動する条件を満たすか否かを判定する、
処理を前記コンピュータに実行させ、
前記再起動する処理は、
検出した前記第1ジョブの異常が、前記第1グループに対応付けられた前記ジョブフローを再起動する条件を満たすと判定した場合、前記記憶部を参照して、前記第1グループに対応付けられた前記ジョブフローを再起動する起点とする第2グループにおいて実行順序が先頭であるジョブを示す情報に基づいて、前記第2グループにおいて実行順序が先頭であるジョブを起点に、前記ジョブフローを再起動する、ことを特徴とする請求項1または2に記載の情報処理プログラム。
【請求項4】
前記複数のグループは、データソースからデータを収集する収集ジョブを分類する収集グループを含み、
前記分類する処理は、
前記ジョブ群に含まれる第5ジョブの処理内容に基づいて、前記第5ジョブが前記収集ジョブであると判定した場合、前記第5ジョブを前記収集グループに分類する、ことを特徴とする請求項1に記載の情報処理プログラム。
【請求項5】
前記複数のグループは、単一のジョブから処理結果を示すデータを取得して加工する加工ジョブを分類する加工グループを含み、
前記分類する処理は、
前記ジョブ群に含まれる第6ジョブの処理内容に基づいて、前記第6ジョブが前記加工ジョブであると判定した場合、前記第6ジョブを前記加工グループに分類する、ことを特徴とする請求項4に記載の情報処理プログラム。
【請求項6】
前記複数のグループは、複数のジョブから処理結果を示すデータを取得して統合する統合ジョブを分類する統合グループを含み、
前記分類する処理は、
前記ジョブ群に含まれる第7ジョブの処理内容に基づいて、前記第7ジョブが前記統合ジョブであると判定した場合、前記第7ジョブを前記統合グループに分類する、ことを特徴とする請求項5に記載の情報処理プログラム。
【請求項7】
前記複数のグループは、データを取得してデータベースに格納する蓄積ジョブを分類する蓄積グループを含み、
前記分類する処理は、
前記ジョブ群に含まれる第8ジョブの処理内容に基づいて、前記第8ジョブが前記蓄積ジョブであると判定した場合、前記第8ジョブを前記蓄積グループに分類する、ことを特徴とする請求項6に記載の情報処理プログラム。
【請求項8】
ジョブフローに実行順序が規定されたジョブ群の各ジョブの処理内容に基づいて、前記ジョブ群を複数のグループに分類し、
前記複数のグループの第1グループに分類した第1ジョブの異常を検出した場合、前記複数のグループの少なくともいずれかのグループに対応付けて、前記複数のグループのうち前記ジョブフローを再起動する起点とするグループにおいて実行順序が先頭であるジョブを示す情報を記憶する記憶部を参照して、前記第1グループに対応付けられた前記ジョブフローを再起動する起点とする第2グループにおいて実行順序が先頭であるジョブを示す情報に基づいて、前記第2グループにおいて実行順序が先頭であるジョブを起点に、前記ジョブフローを再起動する、
処理をコンピュータが実行することを特徴とする情報処理方法。
【請求項9】
ジョブフローに実行順序が規定されたジョブ群の各ジョブの処理内容に基づいて、前記ジョブ群を複数のグループに分類し、
前記複数のグループの第1グループに分類した第1ジョブの異常を検出した場合、前記複数のグループの少なくともいずれかのグループに対応付けて、前記複数のグループのうち前記ジョブフローを再起動する起点とするグループにおいて実行順序が先頭であるジョブを示す情報を記憶する記憶部を参照して、前記第1グループに対応付けられた前記ジョブフローを再起動する起点とする第2グループにおいて実行順序が先頭であるジョブを示す情報に基づいて、前記第2グループにおいて実行順序が先頭であるジョブを起点に、前記ジョブフローを再起動する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム、情報処理方法、および情報処理装置に関する。
【背景技術】
【0002】
従来、ジョブフローに従って、ジョブ群を実行するシステムがある。ジョブ群のいずれかのジョブに異常が発生し、当該いずれかのジョブが終了した場合、ジョブフロー全体も一旦終了してしまうため、ジョブフローを再起動することが望まれる。
【0003】
先行技術としては、例えば、ジョブの新規エラーを検知し、同時期に複数のリカバリー候補を特定した場合、優先対応順位に基づいて、ジョブのリカバリー処理を実行するものがある。また、例えば、対象のジョブに対応付けられた監視対象の監視により取得した監視情報に基づいて変更した基準時刻または基準時間に基づいて、対象のジョブの異常に関する判定を行う技術がある。また、例えば、イベントの通知元のジョブの特定情報に対応するイベントの通知先のジョブの特定情報によって特定されるジョブを再実行する技術がある。また、例えば、システムの状態を、対象ジョブと対象ジョブが実行された際の依存関係があるジョブとが実行される前の状態に戻す技術がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-160817号公報
【特許文献2】特開2019-139262号公報
【特許文献3】特開2015-204036号公報
【特許文献4】特開2022-133010号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
例えば、いずれかのジョブに異常が発生した場合、異常が発生したジョブ、異常が発生したジョブの1つ前のジョブ、または、ジョブフローの先頭に存在するジョブなどのうち予め設定された起点となるジョブから、ジョブフローを再起動する手法が考えられる。しかしながら、上記手法では、ジョブフローを再起動する起点を適切に設定することが難しい。例えば、ジョブの数が膨大になるほど、ジョブフローを再起動する起点を設定または更新する際にかかる作業負担の増大化を招き、ジョブフローを再起動する起点を正しく設定または更新することが難しくなる傾向がある。
【0006】
1つの側面では、本発明は、ジョブフローを再起動する起点を設定し易くすることを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様によれば、ジョブフローに実行順序が規定されたジョブ群の各ジョブの処理内容に基づいて、前記ジョブ群を複数のグループに分類し、前記複数のグループの第1グループに分類した第1ジョブの異常を検出した場合、前記複数のグループの少なくともいずれかのグループに対応付けて、前記複数のグループのうち前記ジョブフローを再起動する起点とするグループにおいて実行順序が先頭であるジョブを示す情報を記憶する記憶部を参照して、前記第1グループに対応付けられた前記ジョブフローを再起動する起点とする第2グループにおいて実行順序が先頭であるジョブを示す情報に基づいて、前記第2グループにおいて実行順序が先頭であるジョブを起点に、前記ジョブフローを再起動する情報処理プログラム、情報処理方法、および情報処理装置が提案される。
【発明の効果】
【0008】
一態様によれば、ジョブフローを再起動する起点を設定し易くすることが可能になる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。
【
図2】
図2は、情報処理システム200の一例を示す説明図である。
【
図3】
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。
【
図4】
図4は、情報処理装置100の機能的構成例を示すブロック図である。
【
図5】
図5は、ジョブフロー500の一例を示す説明図である。
【
図6】
図6は、ジョブフロー500を記憶する一例を示す説明図である。
【
図7】
図7は、属性情報管理テーブル700の記憶内容の一例を示す説明図である。
【
図8】
図8は、グループ情報管理テーブル800の記憶内容の一例を示す説明図である。
【
図9】
図9は、先頭情報管理テーブル900の記憶内容の一例を示す説明図である。
【
図10】
図10は、再起動情報管理テーブル1000の記憶内容の一例を示す説明図である。
【
図11】
図11は、実行履歴管理テーブル1100の記憶内容の一例を示す説明図である。
【
図12】
図12は、ジョブ群を複数のグループに分類する具体例を示す説明図(その1)である。
【
図13】
図13は、ジョブ群を複数のグループに分類する具体例を示す説明図(その2)である。
【
図14】
図14は、ジョブ群を複数のグループに分類する具体例を示す説明図(その3)である。
【
図15】
図15は、ジョブ群を複数のグループに分類する具体例を示す説明図(その4)である。
【
図16】
図16は、ジョブ群を複数のグループに分類する具体例を示す説明図(その5)である。
【
図17】
図17は、ジョブ群を複数のグループに分類する具体例を示す説明図(その6)である。
【
図18】
図18は、ジョブ群を複数のグループに分類する具体例を示す説明図(その7)である。
【
図19】
図19は、ジョブ群を複数のグループに分類する具体例を示す説明図(その8)である。
【
図20】
図20は、ジョブ群を複数のグループに分類する具体例を示す説明図(その9)である。
【
図21】
図21は、ジョブフロー500を再起動する具体例を示す説明図(その1)である。
【
図22】
図22は、ジョブフロー500を再起動する具体例を示す説明図(その2)である。
【
図23】
図23は、ジョブ群に新たなジョブを追加する具体例を示す説明図(その1)である。
【
図24】
図24は、ジョブ群に新たなジョブを追加する具体例を示す説明図(その2)である。
【
図25】
図25は、ジョブ群に新たなジョブを追加する具体例を示す説明図(その3)である。
【
図26】
図26は、ジョブ群に新たなジョブを追加する具体例を示す説明図(その4)である。
【
図27】
図27は、判定処理手順の一例を示すフローチャートである。
【
図28】
図28は、全体分類処理手順の一例を示すフローチャートである。
【
図29】
図29は、第1分類処理手順の一例を示すフローチャートである。
【
図30】
図30は、第2分類処理手順の一例を示すフローチャートである。
【
図31】
図31は、再起動処理手順の一例を示すフローチャートである。
【
図32】
図32は、追加処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、図面を参照して、本発明にかかる情報処理プログラム、情報処理方法、および情報処理装置の実施の形態を詳細に説明する。
【0011】
(実施の形態にかかる情報処理方法の一実施例)
図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。情報処理装置100は、ジョブフローを起動するためのコンピュータである。情報処理装置100は、例えば、サーバ、または、PC(Personal Computer)などである。
【0012】
ジョブフローは、例えば、データを利活用するシステムに関するジョブ群を示す。ジョブフローは、例えば、ジョブ群の実行順序を規定する。ジョブフローは、例えば、ジョブ群のデータ依存関係を示す。ジョブ群のいずれかのジョブは、複数のジョブのそれぞれのジョブが出力したデータを利用するジョブであってもよい。ジョブ群のいずれかのジョブが出力したデータを、複数のジョブが利用することがあってもよい。
【0013】
ジョブフローは、例えば、ジョブ群のそれぞれのジョブを表すノードと、ジョブ群のうち異なる2つのジョブのそれぞれのジョブを表すノード間を接続する有向エッジとを含む有向グラフによって表現することができる。有向エッジは、具体的には、ジョブ群のいずれかのジョブを表すノードと、当該いずれかのジョブの次に実行する、当該いずれかのジョブが出力するデータを利用する他のジョブを表すノードとを接続する。従って、有向エッジは、具体的には、ジョブ間のデータ依存関係を示す。
【0014】
以下の説明では、例えば、あるジョブを表すノードから有向エッジを逆に辿って到達可能なノードが表す他のジョブを、当該あるジョブより前に存在する、当該あるジョブに先行する「先行ジョブ」として扱うことにする。一方で、例えば、あるジョブを表すノードから有向エッジを順に辿って到達可能なノードが表す他のジョブを、当該あるジョブより後に存在する、当該あるジョブに後続する「後続ジョブ」として扱うことにする。また、例えば、あるジョブを表すノードから有向エッジを順に辿っても逆に辿っても到達不能なノードが表す他のジョブを、当該あるジョブと並列する「並列ジョブ」として扱うことにする。また、例えば、あるジョブと、当該あるジョブと並列する並列ジョブとは、並列して実行されてもよい。
【0015】
ジョブフローの起動は、ジョブフローに実行順序が規定されたジョブ群のそれぞれのジョブを順に起動し、それぞれのジョブを順に実行開始することを意味する。ジョブ群のすべてのジョブを完了することが、ジョブフローを完了することに対応する。ジョブフローに従って、ジョブ群を実行開始した後、ジョブ群のいずれかのジョブに異常が発生し、当該いずれかのジョブが終了することが考えられる。
【0016】
あるジョブの異常は、例えば、あるジョブのタイムアウトによるエラー、あるジョブを実行する環境に起因するエラー、あるジョブの処理内容に起因するエラー、または、あるジョブに先行する他の先行ジョブの処理内容に起因するエラーなどが考えられる。ジョブ群のいずれかのジョブに異常が発生し、当該いずれかのジョブが終了した場合、ジョブフローも一旦終了してしまうことになる。
【0017】
このため、ジョブフローを再起動することが望まれる。この際、ジョブ群は、実行待ちのジョブと、実行済みのジョブとを含む。実行済みのジョブは、いずれかのジョブの異常を解消するために、実行済みであるが再実行することが好ましいジョブであることが考えられる。実行済みのジョブは、再実行しなくてもよいジョブであることが考えられる。実行済みのジョブは、再実行することによりエラーが発生し得る、再実行しないことが好ましいジョブであることが考えられる。
【0018】
例えば、いずれかのジョブに発生した異常の種類に応じて、いずれのジョブが、再実行することが好ましいジョブになるのかが変化する場合がある。例えば、ジョブフローを再起動した際、再実行することが好ましいジョブを再実行しないと、いずれかのジョブの異常を解消することができない場合がある。例えば、ジョブフローを再起動した際、再実行しなくてもよいジョブを再実行してしまうと、ジョブフローを完了する際にかかる処理負担および処理時間の増大化を招くことがある。従って、ジョブフローを再起動する起点とするジョブを柔軟に変更可能にすることが望まれる。
【0019】
これに対し、あるジョブに異常が発生した場合、予め設定された起点となる単一のジョブから、ジョブフローを再起動する手法が考えられる。起点となる単一のジョブは、例えば、ジョブフローの運用者などによって設定される。起点となる単一のジョブは、例えば、異常が発生した当該あるジョブ自体、異常が発生した当該あるジョブの1つ前に存在する他の先行ジョブ、ジョブフローの先頭に存在する他のジョブ、または、任意の他のジョブなどが設定されることが考えられる。
【0020】
上記手法は、具体的には、ジョブフローの分岐技術を活用して実現される。上記手法は、具体的には、あるジョブに発生した異常に関するエラーコードに応じて、当該あるジョブから、予め設定された起点となる単一のジョブへと処理が分岐するよう、ジョブフローを制御する。
【0021】
上記手法では、ジョブフローを再起動する起点となるジョブを適切に設定可能にすることが難しいことがある。例えば、データを利活用するシステムの大規模化に伴い、ジョブ群に含まれるジョブの数が膨大になる傾向がある。上記手法では、ジョブ群に含まれるジョブの数が膨大になるほど、ジョブフローの運用者などが、ジョブごとに対応付けて、ジョブフローを再起動する起点を設定または更新する際に、ジョブフローの運用者などにかかる作業負担および作業時間の増大化を招く。
【0022】
また、ジョブフローの運用者は、ジョブが有する性質を把握しなければ、ジョブごとに対応付けて、ジョブ群に含まれるいずれの他のジョブを、ジョブフローを再起動する起点として設定することが好ましいのかを判断することができない。このため、上記手法では、ジョブフローの運用者は、ジョブごとに対応付けて、ジョブフローを再起動する起点となるジョブを設定するにあたって、ジョブフローの設計書などを参照しなければならないことがある。このため、ジョブフローを再起動する起点を設定または更新する際に、ジョブフローの運用者などにかかる作業負担および作業時間の増大化を招く。
【0023】
例えば、データを利活用するシステムの更新に伴い、ジョブ群に新たなジョブが追加されることがある。上記手法では、ジョブ群に新たなジョブが追加される都度、ジョブフローの運用者などが、新たなジョブに対応付けて、ジョブフローを再起動する起点を設定することになり、ジョブフローの運用者などにかかる作業負担および作業時間の増大化を招く。
【0024】
また、上記手法では、ジョブフローの運用者などにかかる作業負担および作業時間の増大化を招くため、ジョブフローの運用者などが、ジョブフローを再起動する起点を設定ミスしてしまう確率が高くなり易いという問題がある。このように、上記手法では、ジョブフローの運用者などが、ジョブフローを再起動する起点を正しく設定または更新することが難しくなる傾向がある。
【0025】
そこで、本実施の形態では、ジョブフローを再起動する起点を設定し易くすることができる情報処理方法について説明する。
【0026】
図1において、情報処理装置100は、ジョブフロー121を記憶する。ジョブフロー121は、例えば、ジョブ群の実行順序を規定する。
図1の例では、ジョブ群は、具体的には、ジョブ1~10を含む。ジョブフロー121は、例えば、ジョブ群のデータ依存関係を示す。
【0027】
ジョブフロー121は、ジョブ1~10のそれぞれを表すノード101~110を含む有向グラフによって表現される。ジョブiを表すノード10iと、ジョブiの次に実行する、ジョブiが出力するデータを利用するジョブjを表すノード10jとは、有向エッジによって接続される。従って、有向エッジは、データ依存関係を示す。
【0028】
情報処理装置100は、ジョブフロー121に従って、ジョブ群を実行する。情報処理装置100は、例えば、ジョブ1と、ジョブ2と、ジョブ3と、ジョブ4とを順に実行する。情報処理装置100は、例えば、ジョブ5と、ジョブ6と、ジョブ7と、ジョブ8とを順に実行する。情報処理装置100は、例えば、ジョブ1~4と、ジョブ5~8とを並列に実行していてもよい。情報処理装置100は、例えば、ジョブ4と、ジョブ8とを完了した後、ジョブ9と、ジョブ10とを順に実行する。
【0029】
(1-1)情報処理装置100は、ジョブフロー121に実行順序が規定されたジョブ群の各ジョブの処理内容に基づいて、ジョブ群を複数のグループに分類する。
【0030】
情報処理装置100は、例えば、ジョブ群の各ジョブの処理内容に基づいて、各ジョブに属性を付与する。属性は、例えば、収集、加工、統合、または、蓄積などである。収集は、例えば、データソースからデータを収集することを示す属性である。加工は、例えば、単一の先行ジョブから得られたデータを加工することを示す属性である。統合は、例えば、複数の先行ジョブから得られたデータを加工することを示す属性である。蓄積は、例えば、DB(DataBase)にデータを格納することを示す属性である。
【0031】
情報処理装置100は、具体的には、あるジョブについて、当該ジョブの処理内容が、データを収集することであれば、当該ジョブに属性「収集」を付与する。情報処理装置100は、具体的には、あるジョブについて、当該ジョブの処理内容が、単一の先行ジョブから得られたデータを加工することであれば、当該ジョブに属性「加工」を付与する。
【0032】
情報処理装置100は、具体的には、あるジョブについて、当該ジョブの処理内容が、複数の先行ジョブから得られたデータを加工することであれば、当該ジョブに属性「統合」を付与する。情報処理装置100は、具体的には、あるジョブについて、当該ジョブの処理内容が、単一の先行ジョブから得られたデータを加工することであれば、当該ジョブに属性「加工」を付与する。
【0033】
図1の例では、情報処理装置100は、具体的には、ジョブ1,5,6に属性「収集」を付与する。情報処理装置100は、具体的には、ジョブ2~4,7,8に属性「加工」を付与する。情報処理装置100は、具体的には、ジョブ9に属性「統合」を付与する。情報処理装置100は、具体的には、ジョブ10に属性「蓄積」を付与する。これにより、情報処理装置100は、ジョブの処理内容に対応する属性を特定することができ、ジョブ群を複数のグループに分類する指針を得ることができる。
【0034】
情報処理装置100は、例えば、各ジョブに付与した属性に基づいて、ジョブ群を複数のグループに分類する。複数のグループは、例えば、収集の属性を有するグループであり、収集の属性を有するジョブを分類するグループを含む。複数のグループは、例えば、加工の属性を有するグループであり、加工の属性を有するジョブを分類するグループを含む。複数のグループは、例えば、統合の属性を有するグループであり、統合の属性を有するジョブを分類するグループを含む。複数のグループは、例えば、蓄積の属性を有するグループであり、蓄積の属性を有するジョブを分類するグループを含む。
【0035】
図1の例では、情報処理装置100は、具体的には、ジョブ1,5,6を、属性「収集」を有するグループ111に分類する。情報処理装置100は、具体的には、ジョブ2~4,7,8を、属性「加工」を有するグループ112に分類する。情報処理装置100は、具体的には、ジョブ9を、属性「統合」を有するグループ113に分類する。情報処理装置100は、具体的には、ジョブ10を、属性「蓄積」を有するグループ114に分類する。これにより、情報処理装置100は、ジョブ群のうち、同一の属性を有する1以上のジョブを纏めて扱い易くすることができる。
【0036】
(1-2)情報処理装置100は、記憶部122を有する。記憶部122は、複数のグループの少なくともいずれかのグループに対応付けて、当該いずれかのグループに属するジョブの異常に応じてジョブフロー121を再起動する起点とするグループにおける先頭ジョブを示す情報を記憶する。
【0037】
先頭ジョブは、例えば、グループにおいて、先行ジョブが存在しないジョブである。先頭ジョブは、例えば、グループにおいて、実行順序が先頭となるジョブである。先頭ジョブは、例えば、複数存在していてもよい。先頭ジョブを示す情報は、例えば、ジョブフロー121の運用者などによって設定される。
【0038】
記憶部122は、いずれかのグループに対応付けて、当該いずれかのグループに属するジョブの異常に応じてジョブフロー121を再起動する条件と、再起動する起点とするグループにおける先頭ジョブを示す情報との1以上の組み合わせを記憶していてもよい。条件は、例えば、いずれかのグループに属するジョブに何らかの異常が発生したことである。条件は、例えば、いずれかのグループに属するジョブに特定の種類の異常が発生したことであってもよい。
【0039】
記憶部122は、例えば、第1グループに対応付けて、第1グループに属するジョブの異常に応じてジョブフロー121を再起動する条件と、再起動する起点とする第2グループにおける先頭ジョブを示す情報との1以上の組み合わせを記憶していてもよい。組み合わせは、例えば、ジョブフロー121の運用者などによって設定される。
【0040】
図1の例では、記憶部122は、具体的には、グループ113に対応付けて、グループ113に属するジョブの異常に応じてジョブフロー121を再起動する条件と、ジョブフロー121を再起動する起点とするグループ112との組み合わせを記憶する。記憶部122は、具体的には、さらに、グループ112に対応付けて、グループ112における先頭ジョブとしてジョブ2,7を示す情報を記憶する。
【0041】
(1-3)情報処理装置100は、第1グループに分類した第1ジョブの異常を検出する。情報処理装置100は、発生した第1ジョブの異常の種類を特定してもよい。ここで、情報処理装置100は、ジョブ群の第1ジョブの異常により第1ジョブを実行失敗した場合、ジョブフロー121を完了せずに一旦終了することになる。
【0042】
従って、情報処理装置100は、ジョブ群の第1ジョブの異常により第1ジョブを実行失敗した場合、ジョブ群のうち実行中の他のジョブが存在すれば、他のジョブも同様に実行失敗することがある。このため、第1ジョブの異常に起因して、他のジョブの異常が発生することがある。他のジョブの異常は、例えば、第1ジョブの異常に起因して、強制的に実行失敗することである。
【0043】
図1の例では、情報処理装置100は、具体的には、グループ113に属するジョブ9の異常を検出したとする。情報処理装置100は、具体的には、発生したジョブ9の異常の種類を特定してもよい。ここでは、情報処理装置100は、ジョブ群のジョブ9の異常が発生した際、ジョブ群のうち実行中の他のジョブが存在せず、他のジョブの異常は発生しなかったとする。これにより、情報処理装置100は、ジョブフロー121を再起動することが好ましいと判断することができ、ジョブフロー121を再起動するトリガーを得ることができる。
【0044】
(1-4)情報処理装置100は、第1ジョブの異常を検出した場合、記憶部122を参照して、第1グループに対応付けられた、第1ジョブの異常に応じてジョブフロー121を再起動する起点とする第2グループにおける先頭ジョブを示す情報を取得する。情報処理装置100は、記憶部122を参照して、第1グループに対応付けられた、第1ジョブの異常に応じてジョブフロー121を再起動する条件があれば、当該条件を取得する。
【0045】
情報処理装置100は、条件がなければ、取得した情報に基づいて、第2グループにおける先頭ジョブを起点に、ジョブフロー121を再起動する。情報処理装置100は、条件があれば、当該条件を満たすか否かを判定し、当該条件を満たすと判定した場合、取得した情報に基づいて、第2グループにおける先頭ジョブを起点に、ジョブフロー121を再起動する。
【0046】
図1の例では、情報処理装置100は、具体的には、記憶部122を参照して、グループ113に対応付けられた、ジョブ9の異常に応じてジョブフロー121を再起動する起点とするグループ112における先頭ジョブとしてジョブ2,7を示す情報を取得する。また、情報処理装置100は、具体的には、記憶部122を参照して、グループ113に対応付けられた、ジョブ9の異常に応じてジョブフロー121を再起動する条件を取得する。
【0047】
情報処理装置100は、具体的には、ジョブ9の異常の種類に基づいて、取得した条件を満たすか否かを判定する。ここでは、情報処理装置100は、具体的には、取得した条件を満たすと判定したとする。情報処理装置100は、具体的には、条件を満たすと判定したため、取得した情報に基づいて、ジョブ2,7を起点に、ジョブフロー121を再起動する。
【0048】
情報処理装置100は、具体的には、ジョブフロー121を再起動すると、ジョブフロー121に従って、ジョブ2,7を起点に、ジョブ2,7に後続する他の後続ジョブを順に実行する。情報処理装置100は、具体的には、ジョブフロー121を再起動すると、起点としたジョブ2,7と並列する他の並列ジョブのうち、未実行の他の並列ジョブがあれば、順に実行することが好ましい。
【0049】
情報処理装置100は、より具体的には、ジョブフロー121を再起動すると、ジョブ2~4を順に実行すると共に、ジョブ7,8を順に実行する。情報処理装置100は、より具体的には、ジョブ4,8を完了した後、ジョブ9,10を順に実行する。
【0050】
これにより、情報処理装置100は、ジョブフロー121を再起動する起点となるグループを適切に制御することができる。情報処理装置100は、ジョブ群に含まれるジョブの数が膨大になっても、ジョブフロー121の運用者などが、再起動の起点をグループ単位で設定すれば済むようにすることができる。また、情報処理装置100は、各ジョブの処理内容に基づいて、ジョブ群を複数のグループに分類することができ、ジョブフロー121の運用者などが、ジョブが有する性質を把握せずに済むようにすることができる。情報処理装置100は、ジョブフロー121を再起動する際、ジョブ群をすべて再実行せずに済ませることができ、ジョブフロー121を再起動する際にかかる処理負担および処理時間の低減化を図ることができる。
【0051】
これらのように、情報処理装置100は、ジョブフロー121の運用者などにかかる作業負担および作業時間の低減化を図ることができる。情報処理装置100は、ジョブフロー121の運用者などにかかる作業負担および作業時間の低減化を図るため、ジョブフロー121の運用者などが、ジョブフロー121を再起動する起点を設定ミスしてしまう確率の低減化を図ることができる。
【0052】
また、情報処理装置100は、例えば、いずれかのジョブに異常が発生した場合について、当該異常の種類に応じて、ジョブフロー121を再起動する起点となるグループを切り替えることができる。このため、情報処理装置100は、ジョブフロー121を効率よく再起動することができ、ジョブ群のすべてのジョブを完了する際にかかる処理負担および処理時間の低減化を図ることができる。
【0053】
ここでは、情報処理装置100が、ジョブの異常を検出した後、自装置の利用者による操作入力を待たずに、ジョブフロー121を再起動する場合について説明したが、これに限らない。自装置の利用者は、例えば、ジョブフロー121の運用者などである。
【0054】
例えば、情報処理装置100が、ジョブの異常を検出した後、自装置の利用者による特定の操作入力を待ってから、ジョブフロー121を再起動する場合があってもよい。特定の操作入力は、例えば、ジョブフロー121の再起動を許可することを示す操作入力である。これにより、情報処理装置100は、ジョブフロー121を再起動する前に、ジョブフロー121の運用者などが、いずれかのジョブに発生した異常に対処し易くすることができる。
【0055】
ここでは、情報処理装置100が、単独で動作する場合について説明したが、これに限らない。例えば、情報処理装置100が、他のコンピュータと協働する場合があってもよい。具体的には、情報処理装置100が、自装置でジョブ群を実行せず、ジョブ群を実行する他のコンピュータを制御する場合があってもよい。例えば、複数のコンピュータが、協働で情報処理装置100としての機能を実現する場合があってもよい。具体的には、クラウド上に情報処理装置100としての機能が実現される場合があってもよい。情報処理装置100が、他のコンピュータと協働する場合の一例については、
図2を用いて後述する。
【0056】
(情報処理システム200の一例)
次に、
図2を用いて、
図1に示した情報処理装置100を適用した、情報処理システム200の一例について説明する。
【0057】
図2は、情報処理システム200の一例を示す説明図である。
図2において、情報処理システム200は、情報処理装置100と、1以上のジョブ実行装置201と、クライアント装置202とを含む。
【0058】
情報処理システム200において、情報処理装置100とジョブ実行装置201とは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。また、情報処理システム200において、情報処理装置100とクライアント装置202とは、有線または無線のネットワーク210を介して接続される。
【0059】
情報処理装置100は、ジョブフローを起動するコンピュータである。情報処理装置100は、ジョブフローを記憶する。情報処理装置100は、ジョブフローに実行順序が規定されたジョブ群の各ジョブの処理内容に基づいて、ジョブ群を複数のグループに分類する。
【0060】
情報処理装置100は、ジョブ群を実行開始する開始トリガーを受け付ける。情報処理装置100は、例えば、ジョブ群を実行することを要求するリクエストを、ジョブ群を実行開始する開始トリガーとして、クライアント装置202から受け付ける。
【0061】
情報処理装置100は、1以上のジョブ実行装置201を制御する。情報処理装置100は、例えば、ジョブ群を1以上のジョブ実行装置201に振り分ける。情報処理装置100は、例えば、ジョブフローに従って、それぞれのジョブ実行装置201に振り分けたジョブを当該ジョブ実行装置201で実行するよう、1以上のジョブ実行装置201を制御する。
【0062】
情報処理装置100は、具体的には、開始トリガーを受け付けたことに応じて、それぞれのジョブ実行装置201に振り分けたジョブを当該ジョブ実行装置201で実行するよう、1以上のジョブ実行装置201を制御し、ジョブフローを起動する。
【0063】
情報処理装置100は、記憶部を有する。記憶部は、いずれかのグループに対応付けて、当該グループに属するジョブの異常に応じてジョブフローを再起動する条件と、再起動する起点とするグループにおける先頭ジョブを示す情報との1以上の組み合わせを記憶する。
【0064】
情報処理装置100は、ジョブ群のうち、いずれかのジョブ実行装置201で実行した、第1グループに属する第1ジョブの異常を検出する。情報処理装置100は、例えば、いずれかのジョブ実行装置201から、第1ジョブの異常を表す通知を受信することにより、第1ジョブの異常を検出する。通知は、例えば、第1ジョブの異常の種類を示す情報を含んでいてもよい。情報処理装置100は、例えば、通知に基づいて、発生した第1ジョブの異常の種類を特定する。情報処理装置100は、例えば、第1ジョブの異常を検出すると、ジョブフローを完了せずに異常終了するよう、1以上のジョブ実行装置201を制御する。
【0065】
情報処理装置100は、記憶部を参照して、検出した第1ジョブの異常が、第1ジョブが属する第1グループに対応付けられたジョブフローを再起動する条件を満たすか否かを判定する。情報処理装置100は、条件を満たすと判定した場合、記憶部を参照して、第1ジョブが属する第1グループに対応付けられたジョブフローを再起動する起点とするグループにおける1以上の先頭ジョブを示す情報に基づいて、1以上の先頭ジョブを特定する。
【0066】
情報処理装置100は、特定した1以上の先頭ジョブのそれぞれの先頭ジョブを起点に、ジョブフローを再起動する。情報処理装置100は、例えば、特定した1以上の先頭ジョブのそれぞれの先頭ジョブを起点に、ジョブ群の全部または一部を実行するよう、1以上のジョブ実行装置201を制御する。情報処理装置100は、ジョブ群のすべてのジョブを完了し、ジョブフローを完了すると、ジョブ群のすべてのジョブを完了し、ジョブフローを完了したことを表す通知を、クライアント装置202に送信する。情報処理装置100は、例えば、サーバ、または、PCなどである。
【0067】
ジョブ実行装置201は、ジョブ群のいずれかのジョブを実行するコンピュータである。ジョブ実行装置201は、情報処理装置100の制御に従って、自装置に振り分けられたジョブを実行する。ジョブ実行装置201は、自装置に割り振られたジョブの次に実行するジョブが、他のジョブ実行装置201に振り分けられていれば、自装置に振り分けられたジョブが出力するデータを、次に実行するジョブが振り分けられた他のジョブ実行装置201に送信する。
【0068】
ジョブ実行装置201は、自装置に割り振られたジョブの異常が発生した場合、自装置に割り振られたジョブの異常を表す通知を生成し、情報処理装置100に送信する。ジョブ実行装置201は、例えば、自装置に割り振られたジョブの異常の種類を特定し、特定したジョブの異常の種類を示す情報を含み、自装置に割り振られたジョブの異常を表す通知を生成し、情報処理装置100に送信してもよい。ジョブ実行装置201は、例えば、サーバ、または、PCなどである。
【0069】
クライアント装置202は、情報処理システム200の利用者によって用いられるコンピュータである。情報処理システム200の利用者は、例えば、ジョブフローの運用者などである。クライアント装置202は、例えば、情報処理システム200の利用者による操作入力に基づき、ジョブ群を実行することを要求するリクエストを生成し、情報処理装置100に送信する。
【0070】
クライアント装置202は、例えば、ジョブ群のすべてのジョブを完了し、ジョブフローを完了したことを表す通知を、情報処理装置100から受信する。クライアント装置202は、例えば、ジョブ群のすべてのジョブを完了し、ジョブフローを完了したことを表す通知を、情報処理システム200の利用者が参照可能に出力する。情報処理装置100は、例えば、PC、タブレット端末、または、スマートフォンなどである。
【0071】
ここでは、情報処理装置100とジョブ実行装置201とが異なる装置である場合について説明したが、これに限らない。例えば、情報処理装置100が、ジョブ実行装置201としての機能を有し、ジョブ実行装置201としても動作する場合があってもよい。
【0072】
ここでは、情報処理装置100とクライアント装置202とが異なる装置である場合について説明したが、これに限らない。例えば、情報処理装置100が、クライアント装置202としての機能を有し、クライアント装置202としても動作する場合があってもよい。
【0073】
(情報処理装置100のハードウェア構成例)
次に、
図3を用いて、情報処理装置100のハードウェア構成例について説明する。
【0074】
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。
図3において、情報処理装置100は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
【0075】
ここで、CPU301は、情報処理装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることにより、コーディングされている処理をCPU301に実行させる。
【0076】
ネットワークI/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303は、例えば、モデムやLANアダプタなどである。
【0077】
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、情報処理装置100から着脱可能であってもよい。
【0078】
情報処理装置100は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を有していなくてもよい。
【0079】
(ジョブ実行装置201のハードウェア構成例)
ジョブ実行装置201のハードウェア構成例は、具体的には、
図3に示した情報処理装置100のハードウェア構成例と同様であるため、説明を省略する。
【0080】
(クライアント装置202のハードウェア構成例)
クライアント装置202のハードウェア構成例は、具体的には、
図3に示した情報処理装置100のハードウェア構成例と同様であるため、説明を省略する。
【0081】
以下の説明では、主として情報処理装置100が、単独で動作し、ジョブ群を実行する場合について説明する。
【0082】
(情報処理装置100の機能的構成例)
次に、
図4を用いて、情報処理装置100の機能的構成例について説明する。
【0083】
図4は、情報処理装置100の機能的構成例を示すブロック図である。情報処理装置100は、記憶部400と、取得部401と、分類部402と、実行部403と、検出部404と、起動部405と、出力部406とを含む。
【0084】
記憶部400は、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。以下では、記憶部400が、情報処理装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部400が、情報処理装置100とは異なる装置に含まれ、記憶部400の記憶内容が情報処理装置100から参照可能である場合があってもよい。
【0085】
取得部401~出力部406は、制御部の一例として機能する。取得部401~出力部406は、具体的には、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
【0086】
記憶部400は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部400は、例えば、ジョブフローを記憶する。ジョブフローは、例えば、ジョブ群を示す。ジョブフローは、例えば、ジョブ群の実行順序を規定する。ジョブフローは、例えば、ジョブ群のデータ依存関係を示す。ジョブ群のいずれかのジョブは、複数のジョブのそれぞれのジョブが出力したデータを利用するジョブであってもよい。ジョブ群のいずれかのジョブが出力したデータを、複数のジョブが利用することがあってもよい。
【0087】
ジョブフローは、例えば、ジョブ群のそれぞれのジョブを表すノードと、ジョブ群のうち異なる2つのジョブのそれぞれのジョブを表すノード間を接続する有向エッジとを含む有向グラフによって表現することができる。有向エッジは、具体的には、ジョブ群のいずれかのジョブを表すノードと、当該いずれかのジョブより実行順序が1つ後方であり、当該いずれかのジョブが出力するデータを利用する他のジョブを表すノードとを接続する。記憶部400は、具体的には、ジョブフロー管理テーブル600を用いて、ジョブフローを記憶する。ジョブフロー管理テーブル600の一例については、具体的には、
図6を用いて後述する。ジョブフローは、例えば、取得部401によって取得される。
【0088】
記憶部400は、例えば、ジョブ群の各ジョブの属性を記憶する。属性は、例えば、収集、加工、統合、または、蓄積などである。収集は、例えば、データソースからデータを収集することを示す属性である。データソースは、例えば、ファイルである。データソースは、例えば、DBであってもよい。データソースは、ETL(Extract Transform Load)ツールによるデータ収集元であってもよい。
【0089】
加工は、例えば、単一の先行ジョブから得られたデータを加工することを示す属性である。統合は、例えば、複数の先行ジョブから得られたデータを加工することを示す属性である。蓄積は、例えば、DBにデータを格納することを示す属性である。記憶部400は、具体的には、属性情報管理テーブル700を用いて、ジョブ群の各ジョブの属性を記憶する。属性情報管理テーブル700の一例については、具体的には、
図7を用いて後述する。各ジョブの属性は、例えば、分類部402によって特定される。
【0090】
記憶部400は、例えば、ジョブ群の各ジョブを複数のグループに分類した結果を記憶する。複数のグループは、例えば、収集の属性を有する収集グループを含む。収集グループは、例えば、収集の属性を有する収集ジョブを分類するグループである。複数のグループは、例えば、加工の属性を有する加工グループを含む。加工グループは、例えば、加工の属性を有する加工ジョブを分類するグループである。複数のグループは、例えば、統合の属性を有する統合グループである。統合グループは、例えば、統合の属性を有する統合ジョブを分類するグループである。複数のグループは、例えば、蓄積の属性を有する蓄積グループを含む。蓄積グループは、例えば、蓄積の属性を有する蓄積ジョブを分類するグループである。記憶部400は、具体的には、グループ情報管理テーブル800を用いて、ジョブ群の各ジョブを複数のグループに分類した結果を記憶する。グループ情報管理テーブル800の一例については、具体的には、
図8を用いて後述する。ジョブの分類は、例えば、分類部402によって実施される。
【0091】
記憶部400は、例えば、少なくともいずれかのグループに対応付けて、当該グループに属するジョブの異常に応じてジョブフローを再起動する起点とするグループにおける先頭ジョブを示す情報を記憶する。記憶部400は、具体的には、再起動情報管理テーブル1000を用いて、いずれかのグループに対応付けて、当該グループに属するジョブの異常に応じてジョブフローを再起動する起点とするグループを示す情報を記憶する。再起動情報管理テーブル1000の一例については、具体的には、
図10を用いて後述する。記憶部400は、具体的には、先頭情報管理テーブル900を用いて、グループごとに対応付けて、当該グループにおける先頭ジョブを示す情報を記憶する。先頭情報管理テーブル900の一例については、具体的には、
図9を用いて後述する。
【0092】
記憶部400は、例えば、少なくともいずれかのグループに対応付けて、当該グループに属するジョブの異常に応じてジョブフローを再起動する条件と、再起動する起点とするグループにおける先頭ジョブを示す情報との1以上の組み合わせを記憶していてもよい。条件は、例えば、いずれかのグループに属するジョブに何らかの異常が発生したことである。条件は、例えば、いずれかのグループに属するジョブに特定の種類の異常が発生したことであってもよい。記憶部400は、具体的には、再起動情報管理テーブル1000を用いて、いずれかのグループに対応付けて、ジョブフローを再起動する条件と、再起動する起点とするグループにおける先頭ジョブを示す情報との1以上の組み合わせを記憶する。再起動情報管理テーブル1000の一例については、具体的には、
図10を用いて後述する。記憶部400は、具体的には、先頭情報管理テーブル900を用いて、グループごとに対応付けて、当該グループにおける先頭ジョブを示す情報を記憶する。先頭情報管理テーブル900の一例については、具体的には、
図9を用いて後述する。
【0093】
記憶部400は、例えば、ジョブフローが異常終了した時点における、ジョブ群のそれぞれのジョブの終了状況を表す情報を記憶する。ジョブフローの異常終了は、ジョブフローが完了せずに終了したことである。終了状況は、ジョブが実行待ちであるのか、ジョブが正常終了したのか、または、ジョブが異常終了したのかを示す。ジョブの異常終了は、ジョブが完了せずに終了したことである。記憶部400は、具体的には、ジョブ群のそれぞれのジョブの終了状況を管理する実行履歴管理テーブル1100を記憶する。実行履歴管理テーブル1100の一例については、具体的には、
図11を用いて後述する。ジョブ群のそれぞれのジョブの終了状況を表す情報は、例えば、実行部403によって生成される。
【0094】
記憶部400は、例えば、ジョブフローが異常終了した場合において、いずれかのジョブの異常が発生し、当該いずれかのジョブが異常終了していれば、当該いずれかのジョブの異常の種類を示す情報を記憶していてもよい。あるジョブの異常は、例えば、あるジョブのタイムアウトによるエラー、あるジョブを実行する環境に起因するエラー、あるジョブの処理内容に起因するエラー、または、あるジョブに先行する他の先行ジョブの処理内容に起因するエラーなどが考えられる。記憶部400は、具体的には、ジョブの異常の種類を示す情報を、実行履歴管理テーブル1100に記憶する。実行履歴管理テーブル1100の一例については、具体的には、
図11を用いて後述する。いずれかのジョブの異常の種類を示す情報は、例えば、実行部403によって生成される。
【0095】
取得部401は、各機能部の処理に用いられる各種情報を取得する。取得部401は、取得した各種情報を、記憶部400に記憶し、または、各機能部に出力する。また、取得部401は、記憶部400に記憶しておいた各種情報を、各機能部に出力してもよい。取得部401は、例えば、利用者の操作入力に基づき、各種情報を取得する。取得部401は、例えば、情報処理装置100とは異なる装置から、各種情報を受信してもよい。
【0096】
取得部401は、ジョブフローを取得する。取得部401は、具体的には、自装置の利用者による操作入力に基づき、ジョブフローの入力を受け付けることにより、ジョブフローを取得する。取得部401は、具体的には、ジョブフローを他のコンピュータから受信することにより取得してもよい。他のコンピュータは、例えば、クライアント装置などである。
【0097】
取得部401は、例えば、複数のグループのいずれかのグループに分類したいずれかのジョブに対する先行ジョブを、ジョブ群に追加することを要求する追加要求を取得する。取得部401は、具体的には、自装置の利用者による操作入力に基づき、追加要求の入力を受け付けることにより、追加要求を取得する。取得部401は、具体的には、追加要求を他のコンピュータから受信することにより取得してもよい。他のコンピュータは、例えば、クライアント装置などである。
【0098】
取得部401は、例えば、複数のグループのいずれかのグループに分類したいずれかのジョブを、ジョブ群から削除することを要求する削除要求を取得する。取得部401は、具体的には、自装置の利用者による操作入力に基づき、削除要求の入力を受け付けることにより、削除要求を取得する。取得部401は、具体的には、削除要求を他のコンピュータから受信することにより取得してもよい。他のコンピュータは、例えば、クライアント装置などである。
【0099】
取得部401は、例えば、ジョブ群を実行することを要求する実行要求を取得する。取得部401は、具体的には、自装置の利用者による操作入力に基づき、実行要求の入力を受け付けることにより、実行要求を取得する。取得部401は、具体的には、実行要求を他のコンピュータから受信することにより取得してもよい。
【0100】
取得部401は、例えば、ジョブフローが異常終了したことを検出するための情報を取得する。取得部401は、例えば、ジョブフローが異常終了したことを表す通知を取得する。通知は、例えば、ジョブフローが異常終了した際に情報処理装置100によって発行される。通知は、例えば、実行部403によって発行されてもよい。
【0101】
取得部401は、例えば、ジョブ群のいずれかのジョブの異常を検出するための情報を取得する。取得部401は、具体的には、ジョブフローが異常終了した時点における、ジョブ群のそれぞれのジョブの終了状況を表す情報を取得する。終了状況は、ジョブが実行待ちであるのか、ジョブが正常終了したのか、または、ジョブが異常終了したのかを示す。取得部401は、より具体的には、実行履歴管理テーブル1100を取得する。
【0102】
取得部401は、いずれかの機能部の処理を開始する開始トリガーを受け付けてもよい。開始トリガーは、例えば、利用者による所定の操作入力があったことである。開始トリガーは、例えば、他のコンピュータから、所定の情報を受信したことであってもよい。開始トリガーは、例えば、いずれかの機能部が所定の情報を出力したことであってもよい。
【0103】
取得部401は、例えば、ジョブフローを取得したことを、分類部402の処理を開始する開始トリガーとして受け付けてもよい。取得部401は、例えば、追加要求または削除要求を取得したことを、分類部402の処理を開始する開始トリガーとして受け付けてもよい。取得部401は、例えば、実行要求を取得したことを、実行部403の処理を開始する開始トリガーとして受け付けてもよい。取得部401は、例えば、ジョブフローが異常終了したことを検出するための情報を取得したことを、検出部404の処理を開始する開始トリガーとして受け付けてもよい。取得部401は、例えば、ジョブ群のいずれかのジョブの異常を検出するための情報を取得したことを、検出部404の処理を開始する開始トリガーとして受け付けてもよい。
【0104】
分類部402は、ジョブフローが示すジョブ群の各ジョブの処理内容に基づいて、ジョブ群を複数のグループに分類する。分類部402は、例えば、いずれかのジョブの処理内容に基づいて、当該いずれかのジョブが収集ジョブであると判定した場合、当該いずれかのジョブを収集グループに分類する。分類部402は、具体的には、いずれかのジョブの処理内容が、データソースからデータを収集することである場合、当該いずれかのジョブが収集ジョブであると判定し、当該いずれかのジョブを収集グループに分類する。これにより、分類部402は、ジョブをグループに分類し、グループ単位でジョブを取り扱い可能にすることができる。
【0105】
分類部402は、例えば、いずれかのジョブの処理内容に基づいて、当該いずれかのジョブが加工ジョブであると判定した場合、当該いずれかのジョブを加工グループに分類する。分類部402は、具体的には、いずれかのジョブの処理内容が、単一の先行ジョブから得られたデータを加工することである場合、当該いずれかのジョブが加工ジョブであると判定し、当該いずれかのジョブを加工グループに分類する。これにより、分類部402は、ジョブをグループに分類し、グループ単位でジョブを取り扱い可能にすることができる。
【0106】
分類部402は、例えば、いずれかのジョブの処理内容に基づいて、当該いずれかのジョブが統合ジョブであると判定した場合、当該いずれかのジョブを統合グループに分類する。分類部402は、具体的には、いずれかのジョブの処理内容が、複数の先行ジョブから得られたデータを統合することである場合、当該いずれかのジョブが統合ジョブであると判定し、当該いずれかのジョブを統合グループに分類する。これにより、分類部402は、ジョブをグループに分類し、グループ単位でジョブを取り扱い可能にすることができる。
【0107】
分類部402は、例えば、いずれかのジョブの処理内容に基づいて、当該いずれかのジョブが蓄積ジョブであると判定した場合、当該いずれかのジョブを蓄積グループに分類する。分類部402は、具体的には、いずれかのジョブの処理内容が、DBにデータを格納することである場合、当該いずれかのジョブが蓄積ジョブであると判定し、当該いずれかのジョブを蓄積グループに分類する。これにより、分類部402は、ジョブをグループに分類し、グループ単位でジョブを取り扱い可能にすることができる。
【0108】
分類部402は、取得部401で追加要求を取得した場合、ジョブ群に追加することが要求されたジョブをジョブ群に追加するよう、ジョブフローを更新する。分類部402は、ジョブ群に追加することが要求されたジョブの処理内容に基づいて、当該ジョブを複数のグループのいずれかのグループに分類する。分類部402は、例えば、上述したように、ジョブ群に追加することが要求されたジョブが、収集ジョブであるか否か、加工ジョブであるか否か、統合ジョブであるか否か、および、蓄積ジョブであるか否かを判定し、当該ジョブをいずれかのグループに分類する。これにより、分類部402は、ジョブ群に新たなジョブを追加可能にすることができる。
【0109】
分類部402は、取得部401で追加要求を取得した場合、ジョブ群に追加することが要求されたジョブが、当該ジョブを分類したグループにおける新たな先頭ジョブになる場合、記憶部400に記憶された、当該グループにおける先頭ジョブを示す情報を更新する。これにより、分類部402は、ジョブ群に新たなジョブを追加したことを、記憶部400に適切に反映することができる。
【0110】
分類部402は、取得部401で削除要求を取得した場合、ジョブ群から削除することが要求されたジョブをジョブ群から削除するよう、ジョブフローを更新する。これにより、分類部402は、ジョブ群から既存のジョブを削除可能にすることができる。
【0111】
分類部402は、取得部401で削除要求を取得した場合、ジョブ群から削除することが要求されたジョブが、当該ジョブを分類したグループにおける先頭ジョブである場合、記憶部400に記憶された、当該グループにおける先頭ジョブを示す情報を更新する。分類部402は、例えば、ジョブ群から削除することが要求されたジョブの1つ後に存在する後続ジョブが、当該ジョブを分類したグループにおける新たな先頭ジョブになるよう、記憶部400に記憶された、当該グループにおける先頭ジョブを示す情報を更新する。これにより、分類部402は、ジョブ群から既存のジョブを削除したことを、記憶部400に適切に反映することができる。
【0112】
実行部403は、ジョブフローに従って、ジョブ群を順に実行する。実行部403は、例えば、取得部401で実行要求を取得した場合、ジョブフローに従って、ジョブ群を順に実行する。これにより、実行部403は、ジョブ群を実行することができ、ジョブフローを完了することができる。
【0113】
実行部403は、例えば、起動部405でジョブフローが再起動された場合、ジョブフローに従って、ジョブフローを再起動する起点とするグループにおけるそれぞれの先頭ジョブを起点に、ジョブ群の全部または一部を順に実行する。実行部403は、具体的には、起点とするグループにおけるそれぞれの先頭ジョブと、起点とするグループにおけるそれぞれの先頭ジョブの後に存在する1以上の後続ジョブとを順に実行する。
【0114】
この際、実行部403は、具体的には、起点とするグループにおけるそれぞれの先頭ジョブと並列する他のジョブのうち、実行済みである他のジョブを再実行しなくてもよい。実行部403は、具体的には、ジョブフローに従って、起点とするグループにおけるそれぞれの先頭ジョブと並列する他のジョブのうち、未実行である他のジョブを実行するようにする。これにより、実行部403は、ジョブ群の全部または一部を適切に再実行することができ、ジョブフローを再起動して完了することができる。
【0115】
実行部403は、いずれかのジョブの異常により当該いずれかのジョブが異常終了した場合、ジョブフローを完了せずに異常終了する。実行部403は、ジョブフローを完了せずに異常終了する際、実行中のジョブが存在すれば、当該ジョブを異常終了する。実行部403は、ジョブフローを完了せずに異常終了する場合、それぞれのジョブの終了状況を、実行履歴管理テーブル1100に反映する。実行部403は、いずれかのジョブが異常終了した場合、当該いずれかのジョブの異常の種類を示す情報を、実行履歴管理テーブル1100に反映してもよい。
【0116】
これにより、実行部403は、ジョブフローを完了せずに異常終了する場合、ジョブフローを再起動する際に有用なそれぞれのジョブの終了状況を残しておくことができ、ジョブフローを、どのように再起動すればよいのかを判断し易くすることができる。実行部403は、いずれかのジョブの異常が発生した場合、当該いずれかのジョブの異常の種類を示す情報を残しておくことができ、ジョブフローを、どのように再起動すればよいのかを判断し易くすることができる。
【0117】
検出部404は、第1グループに分類した第1ジョブの異常を検出する。検出部404は、例えば、取得部401で取得した第1グループに分類した第1ジョブの異常を検出するための情報に基づいて、第1ジョブの異常を検出する。検出部404は、具体的には、取得部401で取得したそれぞれのジョブの終了状況を表す情報に基づいて、第1グループに分類した第1ジョブが異常終了していれば、第1ジョブの異常が発生したと判定し、第1ジョブの異常を検出する。これにより、検出部404は、ジョブフローを再起動する指針を得ることができる。
【0118】
起動部405は、検出部404で第1ジョブの異常を検出した場合、ジョブフローを再起動する。起動部405は、例えば、記憶部400を参照して、異常が発生した第1ジョブが属する第1グループに対応付けられたジョブフローを再起動する起点とする第2グループにおける先頭ジョブを示す情報を取得する。起動部405は、例えば、取得した情報に基づいて、第2グループにおけるそれぞれの先頭ジョブを起点に、ジョブフローを再起動する。
【0119】
起動部405は、具体的には、ジョブフローに従って、第2グループにおけるそれぞれの先頭ジョブを起点に、当該先頭ジョブと、当該先頭ジョブに対する後続ジョブと、当該先頭ジョブと並列する未実行の他のジョブとを実行するよう、実行部403を制御する。起動部405は、より具体的には、第2グループにおけるそれぞれの先頭ジョブを起点とするよう、実行部403に設定する。
【0120】
これにより、起動部405は、ジョブフローを再起動する起点となるグループを適切に設定することができ、ジョブ群を適切に完了することができ、ジョブフローを適切に完了することができる。また、起動部405は、実行部403でジョブフローを完了し易くすることができる。起動部405は、例えば、実行部403でジョブ群の全部を実行せずに済ませることができ、処理負担および処理時間の低減化を図ることができる。
【0121】
起動部405は、検出部404で第1ジョブの異常を検出した際、記憶部400を参照して、異常が発生した第1ジョブが属する第1グループに対応付けられた、第1ジョブの異常に応じてジョブフローを再起動する1以上の条件が存在するか否かを判定する。
【0122】
ここで、起動部405は、1以上の条件が存在しないと判定した場合、予め設定されたいずれかのジョブを起点に、ジョブフローを再起動する。予め設定されたいずれかのジョブは、例えば、第1ジョブと、第1ジョブの1つ前の先行ジョブと、第1ジョブが属する第1グループにおける先頭ジョブとのいずれかのジョブである。
【0123】
起動部405は、具体的には、ジョブフローに従って、予め設定されたいずれかのジョブを起点に、当該いずれかのジョブと、当該いずれかジョブに対する後続ジョブと、当該いずれかのジョブと並列する未実行の他のジョブとを特定する。起動部405は、具体的には、ジョブフローに従って、予め設定されたいずれかのジョブと、特定した当該いずれかジョブに対する後続ジョブと、特定した当該いずれかのジョブと並列する未実行の他のジョブとを順に実行するよう、実行部403を制御する。
【0124】
これにより、起動部405は、ジョブフローを再起動する起点となるグループが設定されていなくても、ジョブフローを再起動することができ、ジョブ群を完了することができ、ジョブフローを完了することができる。また、起動部405は、実行部403でジョブフローを完了し易くすることができる。起動部405は、例えば、実行部403でジョブ群の全部を実行せずに済ませることができ、処理負担および処理時間の低減化を図ることができる。
【0125】
ここで、起動部405は、1以上の条件が存在すると判定した場合、記憶部400を参照して、検出部404で検出した第1ジョブの異常が、1以上の条件のいずれかの条件を満たすか否かを判定する。起動部405は、例えば、記憶部400を参照して、第1ジョブが属する第1グループに対応付けられた、ジョブフローを再起動する1以上の条件を取得する。起動部405は、例えば、取得した1以上の条件のうち第1条件が、第1ジョブに何らかの異常が発生したことを示す場合、検出部404で検出した第1ジョブの異常が、第1条件を満たすと判定する。
【0126】
起動部405は、例えば、取得した1以上の条件のうち第1条件が、第1ジョブに特定の種類の異常が発生したことを示す場合、記憶部400を参照して、第1ジョブの異常の種類を特定する。起動部405は、例えば、特定した種類が、第1条件が示す特定の種類と一致する場合、第1条件を満たすと判定する。起動部405は、例えば、特定した種類が、第1条件が示す特定の種類と一致しない場合、第1条件を満たさないと判定する。
【0127】
これにより、起動部405は、ジョブフローを再起動するか否かを決定することができる。起動部405は、第1ジョブが属する第1グループに対応付けられた、ジョブフローを再起動する1以上の条件のうち、いずれの条件を満たすか否かに基づいて、ジョブフローを再起動する起点とする第2グループを柔軟に変更可能にすることができる。
【0128】
ここで、起動部405は、検出部404で検出した第1ジョブの異常が、第1ジョブが属する第1グループに対応付けられた、ジョブフローを再起動するいずれかの条件を満たすと判定した場合、ジョブフローを再起動する。起動部405は、例えば、記憶部400を参照して、第1グループに対応付けられた、ジョブフローを再起動する起点とする第2グループにおける先頭ジョブを示す情報を取得する。起動部405は、例えば、取得した情報に基づいて、第2グループにおけるそれぞれの先頭ジョブを起点に、ジョブフローを再起動する。
【0129】
起動部405は、具体的には、ジョブフローに従って、それぞれの先頭ジョブを起点に、当該先頭ジョブと、当該先頭ジョブの後に存在する後続ジョブと、当該先頭ジョブと並列する未実行の他のジョブとを順に実行するよう、実行部403を制御する。起動部405は、より具体的には、それぞれの先頭ジョブを起点とするよう、実行部403に設定する。
【0130】
これにより、起動部405は、ジョブフローを再起動する起点となるグループを適切に設定することができ、ジョブ群を適切に完了することができ、ジョブフローを適切に完了することができる。また、起動部405は、実行部403でジョブフローを完了し易くすることができる。起動部405は、例えば、実行部403でジョブ群の全部を実行せずに済ませることができ、処理負担および処理時間の低減化を図ることができる。
【0131】
起動部405は、検出部404で検出した第1ジョブの異常が、第1ジョブが属する第1グループに対応付けられた、いずれの条件も満たさないと判定した場合、予め設定されたいずれかのジョブを起点に、ジョブフローを再起動する。予め設定されたいずれかのジョブは、例えば、第1ジョブと、第1ジョブの1つ前の先行ジョブと、第1ジョブが属する第1グループにおける先頭ジョブとのいずれかのジョブである。
【0132】
起動部405は、具体的には、ジョブフローに従って、予め設定されたいずれかのジョブを起点に、当該いずれかのジョブと、当該いずれかジョブに対する後続ジョブと、当該いずれかのジョブと並列する未実行の他のジョブとを特定する。起動部405は、具体的には、ジョブフローに従って、予め設定されたいずれかのジョブと、特定した当該いずれかジョブに対する後続ジョブと、特定した当該いずれかのジョブと並列する未実行の他のジョブとを順に実行するよう、実行部403を制御する。
【0133】
これにより、起動部405は、検出部404で検出した第1ジョブの異常が、第1ジョブが属する第1グループに対応付けられた、いずれの条件も満たさなくても、ジョブフローを再起動することができる。起動部405は、ジョブ群を完了することができ、ジョブフローを完了することができる。また、起動部405は、実行部403でジョブフローを完了し易くすることができる。起動部405は、例えば、実行部403でジョブ群の全部を実行せずに済ませることができ、処理負担および処理時間の低減化を図ることができる。
【0134】
出力部406は、少なくともいずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。これにより、出力部406は、少なくともいずれかの機能部の処理結果を利用者に通知可能にし、情報処理装置100の利便性の向上を図ることができる。
【0135】
出力部406は、例えば、ジョブフローを完了したことを示す通知を、自装置の利用者が参照可能に出力する。これにより、出力部406は、自装置の利用者が、ジョブフローを完了したことを把握可能にすることができる。
【0136】
(情報処理装置100の動作例)
次に、
図5~
図26を用いて、情報処理装置100の動作例について説明する。まず、
図5および
図6を用いて、情報処理装置100が、ジョブフロー管理テーブル600を用いて、ジョブフロー500を記憶する一例について説明する。
【0137】
図5は、ジョブフロー500の一例を示す説明図である。
図5に示すように、ジョブフロー500は、ジョブ群の実行順序を規定する。
図5の例では、ジョブ群は、具体的には、ジョブ1~10を含む。ジョブフロー500は、ジョブ群のデータ依存関係を示す。
【0138】
ジョブフロー500は、具体的には、ジョブ1~10のそれぞれを表すノード501~510を含む有向グラフによって表現される。ジョブiを表すノード50iと、ジョブiの次に実行する、ジョブiが出力するデータを利用するジョブjを表すノード50jとは、有向エッジによって接続される。i,jは、例えば、1以上の整数である。従って、有向エッジは、データ依存関係を示す。次に、
図6の説明に移行する。
【0139】
図6は、ジョブフロー500を記憶する一例を示す説明図である。
図6において、情報処理装置100は、ジョブフロー管理テーブル600を用いて、ジョブフロー500を記憶する。ジョブフロー管理テーブル600は、例えば、
図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。
【0140】
図6に示すように、ジョブフロー管理テーブル600は、ジョブフロー名と、ジョブIDと、ジョブ名と、先行ジョブIDと、後続ジョブIDとのフィールドを有する。ジョブフロー管理テーブル600は、ジョブごとに各フィールドに情報を設定することにより、ジョブ関連情報がレコード600-aとして記憶される。aは、任意の整数である。
【0141】
ジョブフロー名のフィールドには、ジョブ群の実行順序を規定するジョブフローに付与されたジョブフロー名が設定される。ジョブフロー名のフィールドには、例えば、ジョブフロー500に付与されたジョブフロー名として「ジョブフローA」が設定される。
【0142】
ジョブIDのフィールドには、上記ジョブ群のいずれかのジョブを識別するジョブIDが設定される。例えば、ジョブフロー500に実行順序が規定されたジョブ群のいずれかのジョブiを識別するジョブIDは、iであるとする。ジョブ名のフィールドには、上記ジョブIDによって識別される上記いずれかのジョブに付与されたジョブ名が設定される。例えば、ジョブiに付与されたジョブ名は、ジョブiであるとする。
【0143】
先行ジョブIDのフィールドには、上記ジョブIDによって識別される上記いずれかのジョブの1つ前に実行される他の先行ジョブを識別する先行ジョブIDが設定される。後続ジョブIDのフィールドには、上記ジョブIDによって識別される上記いずれかのジョブの1つ後に実行される他の後続ジョブを識別する後続ジョブIDが設定される。
【0144】
次に、
図7を用いて、情報処理装置100が、それぞれのジョブの属性を表す属性情報を格納する、属性情報管理テーブル700の記憶内容の一例について説明する。属性情報管理テーブル700は、例えば、
図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。情報処理装置100が、属性情報管理テーブル700を、どのように生成、更新、および、利用するのかについては、例えば、
図12~
図26を用いて後述する。
【0145】
図7は、属性情報管理テーブル700の記憶内容の一例を示す説明図である。
図7に示すように、属性情報管理テーブル700は、ジョブフロー名と、ジョブIDと、ジョブ名と、種別とのフィールドを有する。属性情報管理テーブル700は、ジョブごとに各フィールドに情報を設定することにより、属性情報がレコード700-bとして記憶される。bは、任意の整数である。
【0146】
ジョブフロー名のフィールドには、ジョブ群の実行順序を規定するジョブフローに付与されたジョブフロー名が設定される。ジョブフロー名のフィールドには、例えば、ジョブフロー500に付与されたジョブフロー名として「ジョブフローA」が設定される。
【0147】
ジョブIDのフィールドには、上記ジョブ群のいずれかのジョブを識別するジョブIDが設定される。例えば、ジョブフロー500に実行順序が規定されたジョブ群のいずれかのジョブiを識別するジョブIDは、iであるとする。ジョブ名のフィールドには、上記ジョブIDによって識別される上記いずれかのジョブに付与されたジョブ名が設定される。例えば、ジョブiに付与されたジョブ名は、ジョブi(属性k)であるとする。属性kは、例えば、情報処理装置100によって、上記いずれかのジョブが有する属性に応じて付与される別名である。属性kは、例えば、収集k、加工k、統合k、または、蓄積kなどである。kは、例えば、1以上の整数である。
【0148】
種別のフィールドには、上記ジョブIDによって識別される上記いずれかのジョブの種別を表す、上記いずれかのジョブが有する属性が設定される。属性は、例えば、収集、加工、統合、または、蓄積などである。属性は、例えば、利活用外であってもよい。収集は、例えば、データソースからデータを収集することを示す属性である。加工は、例えば、単一の先行ジョブから得られたデータを加工することを示す属性である。統合は、例えば、複数の先行ジョブから得られたデータを加工することを示す属性である。蓄積は、例えば、DBにデータを格納することを示す属性である。利活用外は、収集、加工、統合、および、蓄積のいずれにも該当しないことを示す属性である。
【0149】
次に、
図8を用いて、情報処理装置100が、それぞれのジョブを分類したグループを表すグループ情報を格納する、グループ情報管理テーブル800の記憶内容の一例について説明する。グループ情報管理テーブル800は、例えば、
図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。情報処理装置100が、グループ情報管理テーブル800を、どのように生成、更新、および、利用するのかについては、例えば、
図12~
図26を用いて後述する。
【0150】
図8は、グループ情報管理テーブル800の記憶内容の一例を示す説明図である。
図8に示すように、グループ情報管理テーブル800は、ジョブフロー名と、ジョブIDと、ジョブ名と、種別と、グループIDとのフィールドを有する。グループ情報管理テーブル800は、ジョブごとに各フィールドに情報を設定することにより、グループ情報がレコード1100-cとして記憶される。cは、任意の整数である。
【0151】
ジョブフロー名のフィールドには、ジョブ群の実行順序を規定するジョブフローに付与されたジョブフロー名が設定される。ジョブフロー名のフィールドには、例えば、ジョブフロー500に付与されたジョブフロー名として「ジョブフローA」が設定される。
【0152】
ジョブIDのフィールドには、上記ジョブ群のいずれかのジョブを識別するジョブIDが設定される。例えば、ジョブフロー500に実行順序が規定されたジョブ群のいずれかのジョブiを識別するジョブIDは、iであるとする。ジョブ名のフィールドには、上記ジョブIDによって識別される上記いずれかのジョブに付与されたジョブ名が設定される。例えば、ジョブiに付与されたジョブ名は、ジョブiであるとする。
【0153】
種別のフィールドには、上記ジョブIDによって識別される上記いずれかのジョブの種別を表す、上記いずれかのジョブが有する属性が設定される。グループIDのフィールドには、上記ジョブIDによって識別される上記いずれかのジョブを分類したグループを識別するグループIDが設定される。グループIDは、例えば、グループ1、グループ2、グループ3、または、グループ4である。
【0154】
ここでは、グループ1は、収集の属性を有するジョブを分類するグループを識別するグループIDである。グループ2は、加工の属性を有するジョブを分類するグループを識別するグループIDである。グループ3は、統合の属性を有するジョブを分類するグループを識別するグループIDである。グループ4は、蓄積の属性を有するジョブを分類するグループを識別するグループIDである。
【0155】
次に、
図9を用いて、情報処理装置100が、それぞれのグループの先頭ジョブを表す先頭情報を格納する、先頭情報管理テーブル900の記憶内容の一例について説明する。先頭情報管理テーブル900は、例えば、
図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。情報処理装置100が、先頭情報管理テーブル900を、どのように生成、更新、および、利用するのかについては、例えば、
図12~
図26を用いて後述する。
【0156】
図9は、先頭情報管理テーブル900の記憶内容の一例を示す説明図である。
図9に示すように、先頭情報管理テーブル900は、グループIDと、種別と、ジョブIDと、先頭ジョブIDとのフィールドを有する。先頭情報管理テーブル900は、グループごとに各フィールドに情報を設定することにより、先頭情報がレコード900-dとして記憶される。dは、任意の整数である。
【0157】
グループIDのフィールドには、複数のグループのいずれかのグループを識別するグループIDが設定される。種別のフィールドには、上記グループIDによって識別される上記いずれかのグループの種別を表す、上記いずれかのグループが有する属性が設定される。グループが有する属性は、例えば、グループに分類するジョブが有する属性に対応する。グループが有する属性は、具体的には、収集、加工、統合、または、蓄積などである。
【0158】
ジョブIDのフィールドには、上記グループIDによって識別される上記いずれかのグループに属する1以上のジョブのそれぞれのジョブを識別するジョブIDのリストが設定される。先頭ジョブIDのフィールドには、上記グループIDによって識別される上記いずれかのグループにおける1以上の先頭ジョブのそれぞれの先頭ジョブを識別する先頭ジョブIDのリストが設定される。
【0159】
次に、
図10を用いて、情報処理装置100が記憶し、ジョブフロー500を再起動する際に利用する、ジョブフロー500に対応する再起動情報管理テーブル1000の記憶内容の一例について説明する。再起動情報管理テーブル1000は、例えば、
図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。情報処理装置100が、再起動情報管理テーブル1000を、どのように利用するのかについては、例えば、
図12~
図26を用いて後述する。
【0160】
図10は、再起動情報管理テーブル1000の記憶内容の一例を示す説明図である。
図10に示すように、再起動情報管理テーブル1000は、グループIDと、再起動条件と、再起動ポイントとのフィールドを有する。再起動情報管理テーブル1000は、グループごとに各フィールドに情報を設定することにより、再起動情報がレコード1000-eとして記憶される。eは、任意の整数である。また、例えば、1つのジョブに対して複数の再起動情報が存在していてもよい。
【0161】
グループIDのフィールドには、複数のグループのいずれかのグループを識別するグループIDが設定される。上記グループIDによって識別される上記いずれかのグループに属するいずれかのジョブの異常に応じてジョブフロー500を再起動する条件が設定される。再起動条件のフィールドには、ジョブフロー500を再起動する条件が、何らかの異常が発生したことであり、異常の種類を限定しない場合、「n/a」が設定される。再起動条件のフィールドには、ジョブフロー500を再起動する条件が存在しない場合、「n/a」が設定される。
【0162】
再起動条件のフィールドには、例えば、上記ジョブフローを再起動する条件として、上記グループIDによって識別される上記いずれかのグループに属するいずれかのジョブに発生する異常の種類を表す終了コードが設定されていてもよい。設定された終了コードは、上記グループIDによって識別される上記いずれかのグループに属するいずれかのジョブに発生した異常の種類が、当該終了コードが表す特定の種類と一致する場合に、ジョブフロー500を再起動することを示す。
【0163】
再起動ポイントのフィールドには、ジョブフロー500を再起動する起点とするグループを示す情報が設定される。再起動ポイントのフィールドには、ジョブフロー500を再起動する起点とするグループを示す情報として、当該グループを識別するグループIDが設定される。ジョブフロー500を再起動する起点とするグループが存在しない場合、再起動ポイントのフィールドには、「n/a」が設定される。
【0164】
ここで、再起動ポイントのフィールドに、「n/a」以外が設定された場合、再起動条件のフィールドに設定された「n/a」は、異常の種類を限定せずに、ジョブに何らかの異常が発生したことを、ジョブフロー500を再起動する条件として表す。また、再起動ポイントのフィールドに、「n/a」が設定された場合、再起動条件のフィールドに設定された「n/a」は、ジョブフロー500を再起動する条件が存在しないことを示す。
【0165】
次に、
図11を用いて、情報処理装置100が、ジョブフロー500を異常終了した際にジョブ群のそれぞれのジョブの終了状況を表す実行履歴情報を格納する、実行履歴管理テーブル1100の記憶内容の一例について説明する。実行履歴管理テーブル1100は、例えば、
図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。情報処理装置100が、実行履歴管理テーブル1100を、どのように生成、更新、および、利用するのかについては、例えば、
図12~
図26を用いて後述する。
【0166】
図11は、実行履歴管理テーブル1100の記憶内容の一例を示す説明図である。
図11に示すように、実行履歴管理テーブル1100は、ジョブフロー名と、ジョブIDと、ジョブ名と、ジョブのステータスと、ジョブの終了コードとのフィールドを有する。実行履歴管理テーブル1100は、ジョブごとに各フィールドに情報を設定することにより、実行履歴情報がレコード1100-fとして記憶される。fは、任意の整数である。
【0167】
ジョブフロー名のフィールドには、ジョブ群の実行順序を規定するジョブフローに付与されたジョブフロー名が設定される。ジョブフロー名のフィールドには、例えば、ジョブフロー500に付与されたジョブフロー名として「ジョブフローA」が設定される。
【0168】
ジョブIDのフィールドには、上記ジョブ群のいずれかのジョブを識別するジョブIDが設定される。例えば、ジョブフロー500に実行順序が規定されたジョブ群のいずれかのジョブiを識別するジョブIDは、iであるとする。ジョブ名のフィールドには、上記ジョブIDによって識別される上記いずれかのジョブに付与されたジョブ名が設定される。例えば、ジョブiに付与されたジョブ名は、ジョブiであるとする。
【0169】
ジョブのステータスのフィールドには、上記ジョブIDによって識別される上記いずれかのジョブの終了状況を表すステータスが設定される。ステータスは、上記ジョブIDによって識別される上記いずれかのジョブが異常終了したか、上記ジョブIDによって識別される上記いずれかのジョブが正常終了したか、または、上記ジョブIDによって識別される上記いずれかのジョブが実行待ちかを示す。
【0170】
ジョブの終了コードのフィールドには、上記ジョブIDによって識別される上記いずれかのジョブの終了コードが設定される。終了コードは、例えば、値が0であれば、上記ジョブIDによって識別される上記いずれかのジョブに異常が発生せず、上記ジョブIDによって識別される上記いずれかのジョブが正常終了したことを示す。
【0171】
終了コードは、例えば、値が1以上であれば、上記ジョブIDによって識別される上記いずれかのジョブに異常が発生し、上記ジョブIDによって識別される上記いずれかのジョブが異常終了したことを示す。終了コードは、例えば、値が1以上であれば、当該値に対応する異常の種類を表す。終了コードは、例えば、上記ジョブIDによって識別される上記いずれかのジョブが実行待ちである場合、「n/a」である。
【0172】
次に、
図12~
図20を用いて、情報処理装置100が、ジョブ群を複数のグループに分類する具体例について説明する。
【0173】
図12~
図20は、ジョブ群を複数のグループに分類する具体例を示す説明図である。
図12において、情報処理装置100は、ジョブフロー500を取得し、ジョブフロー管理テーブル600を用いて、取得したジョブフロー500を記憶したとする。ここで、ジョブフロー500は、ジョブ群のそれぞれのジョブの属性を表していない。このため、情報処理装置100は、ジョブ群を複数のグループに分類するために、ジョブ群のそれぞれのジョブの属性を特定することになる。
【0174】
初期状態の属性情報管理テーブル700は、空である。情報処理装置100は、属性情報管理テーブル700に、ジョブ群のそれぞれのジョブに対応する、種別のフィールドが空であるレコードを格納する。情報処理装置100は、ジョブ群のそれぞれのジョブの処理内容を取得する。
【0175】
情報処理装置100は、いずれかのジョブの処理内容が、データソースからデータを収集することである場合、当該いずれかのジョブに、収集の属性を付与する。情報処理装置100は、例えば、いずれかのジョブの処理内容が、ETLツールを利用してデータを取得する処理内容であれば、データソースからデータを収集する処理内容であると判定する。情報処理装置100は、例えば、いずれかのジョブの処理内容が、DBに対してSQL(Structured Query Language)によりデータ採取要求を発行する処理内容であれば、データソースからデータを収集する処理内容であると判定する。
【0176】
情報処理装置100は、例えば、いずれかのジョブの処理内容が、次に実行するジョブで扱う中間ファイルを生成する処理内容であれば、データソースからデータを収集する処理内容であると判定する。この場合、情報処理装置100は、属性情報管理テーブル700のうち、当該いずれかのジョブに対応するレコードに収集の属性を設定することにより、属性情報管理テーブル700を更新する。
【0177】
図12の例では、情報処理装置100は、具体的には、属性情報管理テーブル700のうち、ジョブ1,7,8に対応するレコードに、収集の属性を設定する。情報処理装置100は、ジョブ1に、収集1の別名を付与する。情報処理装置100は、ジョブ7に、収集2の別名を付与する。情報処理装置100は、ジョブ8に、収集3の別名を付与する。
【0178】
情報処理装置100は、いずれかのジョブの処理内容が、単一の先行ジョブから取得したデータを加工することである場合、当該いずれかのジョブに、加工の属性を付与する。この場合、情報処理装置100は、属性情報管理テーブル700のうち、当該いずれかのジョブに対応するレコードに加工の属性を設定することにより、属性情報管理テーブル700を更新する。
【0179】
図12の例では、情報処理装置100は、具体的には、属性情報管理テーブル700のうち、ジョブ2~4,9,10に対応するレコードに、加工の属性を設定する。情報処理装置100は、ジョブ2に、加工1の別名を付与する。情報処理装置100は、ジョブ3に、加工2の別名を付与する。情報処理装置100は、ジョブ4に、加工3の別名を付与する。情報処理装置100は、ジョブ9に、加工4の別名を付与する。情報処理装置100は、ジョブ10に、加工5の別名を付与する。
【0180】
情報処理装置100は、いずれかのジョブの処理内容が、複数の先行ジョブから取得したデータを統合することである場合、当該いずれかのジョブに、統合の属性を付与する。この場合、情報処理装置100は、属性情報管理テーブル700のうち、当該いずれかのジョブに対応するレコードに統合の属性を設定することにより、属性情報管理テーブル700を更新する。
【0181】
図12の例では、情報処理装置100は、具体的には、属性情報管理テーブル700のうち、ジョブ5に対応するレコードに、統合の属性を設定する。情報処理装置100は、ジョブ5に、統合1の別名を付与する。
【0182】
情報処理装置100は、いずれかのジョブの処理内容が、データをデータベースに格納することである場合、当該いずれかのジョブに、蓄積の属性を付与する。この場合、情報処理装置100は、属性情報管理テーブル700のうち、当該いずれかのジョブに対応するレコードに蓄積の属性を設定することにより、属性情報管理テーブル700を更新する。
【0183】
図12の例では、情報処理装置100は、具体的には、属性情報管理テーブル700のうち、ジョブ6に対応するレコードに、蓄積の属性を設定する。情報処理装置100は、ジョブ6に、蓄積1の別名を付与する。これにより、情報処理装置100は、ジョブ群を複数のグループに分類する指針を得ることができる。次に、
図13の説明に移行する。
【0184】
図13において、初期状態のグループ情報管理テーブル800は、空である。情報処理装置100は、グループ情報管理テーブル800に、ジョブ群のそれぞれのジョブに対応する、グループIDのフィールドが空であるレコードを格納する。
【0185】
まず、情報処理装置100は、統合の属性を有するジョブごとに、統合の属性を有する1つのグループを用意し、統合の属性を有する当該ジョブを、統合の属性を有する当該ジョブに対して用意した1つのグループに分類する。情報処理装置100は、グループ情報管理テーブル800のうち、統合の属性を有するジョブに対応するレコードに、当該ジョブを分類したグループを識別するグループIDを設定することにより、グループ情報管理テーブル800を更新する。
【0186】
図13の例では、情報処理装置100は、具体的には、統合の属性を有するグループ513を用意し、統合1を、統合の属性を有するグループ513に分類する。情報処理装置100は、具体的には、グループ情報管理テーブル800のうち、統合1に対応するレコードに、グループ513を識別するグループID=グループ3を設定する。
【0187】
これにより、情報処理装置100は、統合の属性を有するジョブを、グループに分類することができる。このため、情報処理装置100は、1つのグループに、処理内容が共通せず、ジョブフロー500を再起動する起点として纏めて扱うことが好ましくない2以上のジョブを分類してしまうことを回避することができる。情報処理装置100は、例えば、1つのグループに、統合の属性を有するジョブと、統合以外の属性を有するジョブとを分類してしまうことを回避することができる。
【0188】
また、情報処理装置100は、統合の属性を有するジョブは、統合の属性を有する他のジョブとは独立した処理内容である傾向があると考えられる。従って、情報処理装置100は、統合の属性を有するジョブを1つずつ異なるグループに分類することができ、ジョブフロー500を再起動する起点として好ましい単位で、統合の属性を有するジョブを取り扱い可能にすることができる。情報処理装置100は、ジョブフロー500を再起動するにあたって、統合の属性を有するジョブを、グループ単位で取り扱い可能にすることができる。次に、
図14の説明に移行する。
【0189】
図14において、情報処理装置100は、統合の属性を有するグループ513に、統合1を分類したことに応じて、統合の属性を有するグループ513における先頭ジョブとして、統合1を特定する。情報処理装置100は、統合の属性を有するグループ513と、グループ513に属する1以上のジョブと、特定した先頭ジョブである統合1とを対応付けて表すレコードを、先頭情報管理テーブル900に格納する。
【0190】
情報処理装置100は、具体的には、グループ513を識別するグループIDと、グループ513に属するそれぞれのジョブを識別するジョブIDのリストと、先頭ジョブを識別するジョブIDとを対応付けたレコード900-3を生成する。情報処理装置100は、生成したレコード900-3を、先頭情報管理テーブル900に格納する。
【0191】
これにより、情報処理装置100は、グループ513を、ジョブフロー500を再起動する起点とする場合、グループ513に属するいずれのジョブを、ジョブフロー500を再起動する具体的な起点とするのかを特定可能にすることができる。次に、
図15の説明に移行する。
【0192】
図15において、情報処理装置100は、統合の属性を有するジョブごとに、統合の属性を有する当該ジョブの前に存在する先行ジョブを探索し、加工の属性を有する1以上のジョブを発見し、1つのグループに分類する。情報処理装置100は、例えば、統合の属性を有する1つのジョブを起点に、当該ジョブの前に連続して存在する、加工の属性を有する1以上の先行ジョブを、加工の属性を有する1つのグループに分類する。情報処理装置100は、グループ情報管理テーブル800のうち、加工の属性を有するジョブに対応するレコードに、当該ジョブを分類したグループを識別するグループIDを設定することにより、グループ情報管理テーブル800を更新する。
【0193】
図15の例では、情報処理装置100は、具体的には、統合1の前に連続して存在する加工1~3と、統合1の前に連続して存在する加工4,5とを、加工の属性を有するグループ512に分類する。情報処理装置100は、具体的には、グループ情報管理テーブル800のうち、加工1~5に対応するレコードに、グループ512を識別するグループID=グループ2を設定する。
【0194】
これにより、情報処理装置100は、加工の属性を有するジョブを、グループに分類することができる。ここで、処理内容が共通する2以上のジョブは、ジョブフロー500を再起動する起点としても類似する性質を有すると考えられるため、ジョブフロー500を再起動する起点として纏めて扱っても不具合が発生し難いと考えられる。
【0195】
これに対し、情報処理装置100は、処理内容が共通し、ジョブフロー500を再起動する起点として纏めて扱うことが好ましい2以上のジョブを、1つのグループに分類することができる。情報処理装置100は、例えば、1つのグループに、同一の加工の属性を有する2以上のジョブを纏めて分類することができる。
【0196】
また、情報処理装置100は、1つのグループに、処理内容が共通せず、ジョブフロー500を再起動する起点として纏めて扱うことが好ましくない2以上のジョブを分類してしまうことを回避することができる。情報処理装置100は、例えば、1つのグループに、加工の属性を有するジョブと、加工以外の属性を有するジョブとを分類してしまうことを回避することができる。情報処理装置100は、ジョブフロー500を再起動するにあたって、加工の属性を有するジョブを、グループ単位で取り扱い可能にすることができる。次に、
図16の説明に移行する。
【0197】
図16において、情報処理装置100は、加工の属性を有するグループ512に、加工1~5を分類したことに応じて、加工の属性を有するグループ512における先頭ジョブとして、加工1,4を特定する。情報処理装置100は、加工の属性を有するグループ512と、グループ512に属する1以上のジョブと、特定した先頭ジョブである加工1,4とを対応付けて表すレコードを、先頭情報管理テーブル900に格納する。
【0198】
情報処理装置100は、具体的には、グループ512を識別するグループIDと、グループ512に属するそれぞれのジョブを識別するジョブIDのリストと、先頭ジョブを識別するジョブIDとを対応付けたレコード900-2を生成する。情報処理装置100は、生成したレコード900-2を、先頭情報管理テーブル900に格納する。
【0199】
これにより、情報処理装置100は、グループ512を、ジョブフロー500を再起動する起点とする場合、グループ512に属するいずれのジョブを、ジョブフロー500を再起動する具体的な起点とするのかを特定可能にすることができる。次に、
図17の説明に移行する。
【0200】
図17において、情報処理装置100は、加工の属性を有するグループごとに、加工の属性を有する当該グループにおけるそれぞれの先頭ジョブの前に存在する先行ジョブを探索し、収集の属性を有する1以上のジョブを発見し、1つのグループに分類する。情報処理装置100は、例えば、加工の属性を有する1つのグループにおけるそれぞれの先頭ジョブを起点に、当該先頭ジョブの前に連続して存在する、収集の属性を有する1以上の先行ジョブを、収集の属性を有する1つのグループに分類する。情報処理装置100は、グループ情報管理テーブル800のうち、収集の属性を有するジョブに対応するレコードに、当該ジョブを分類したグループを識別するグループIDを設定することにより、グループ情報管理テーブル800を更新する。
【0201】
図17の例では、情報処理装置100は、具体的には、先頭情報管理テーブル900を参照して、グループ512における先頭ジョブである加工1,4を特定する。情報処理装置100は、具体的には、特定した加工1の前に存在する収集1と、特定した加工4の前に連続して存在する収集2,3とを、収集の属性を有するグループ511に分類する。情報処理装置100は、具体的には、グループ情報管理テーブル800のうち、収集1~3に対応するレコードに、グループ511を識別するグループID=グループ1を設定する。
【0202】
これにより、情報処理装置100は、収集の属性を有するジョブを、グループに分類することができる。ここで、処理内容が共通する2以上のジョブは、ジョブフロー500を再起動する起点としても類似する性質を有すると考えられるため、ジョブフロー500を再起動する起点として纏めて扱っても不具合が発生し難いと考えられる。
【0203】
これに対し、情報処理装置100は、処理内容が共通し、ジョブフロー500を再起動する起点として纏めて扱うことが好ましい2以上のジョブを、1つのグループに分類することができる。情報処理装置100は、例えば、1つのグループに、同一の収集の属性を有する2以上のジョブを纏めて分類することができる。
【0204】
また、情報処理装置100は、1つのグループに、処理内容が共通せず、ジョブフロー500を再起動する起点として纏めて扱うことが好ましくない2以上のジョブを分類してしまうことを回避することができる。情報処理装置100は、例えば、1つのグループに、収集の属性を有するジョブと、収集以外の属性を有するジョブとを分類してしまうことを回避することができる。情報処理装置100は、ジョブフロー500を再起動するにあたって、収集の属性を有するジョブを、グループ単位で取り扱い可能にすることができる。次に、
図18の説明に移行する。
【0205】
図18において、情報処理装置100は、収集の属性を有するグループ511に、収集1~3を分類したことに応じて、収集の属性を有するグループ511における先頭ジョブとして、収集1,2を特定する。情報処理装置100は、収集の属性を有するグループ511と、グループ511に属する1以上のジョブと、特定した先頭ジョブである収集1,2とを対応付けて表すレコードを、先頭情報管理テーブル900に格納する。
【0206】
情報処理装置100は、具体的には、グループ511を識別するグループIDと、グループ511に属するそれぞれのジョブを識別するジョブIDのリストと、先頭ジョブを識別するジョブIDとを対応付けたレコード900-1を生成する。情報処理装置100は、生成したレコード900-1を、先頭情報管理テーブル900に格納する。
【0207】
これにより、情報処理装置100は、グループ511を、ジョブフロー500を再起動する起点とする場合、グループ511に属するいずれのジョブを、ジョブフロー500を再起動する具体的な起点とするのかを特定可能にすることができる。次に、
図19の説明に移行する。
【0208】
図19において、情報処理装置100は、統合の属性を有するジョブごとに、統合の属性を有する当該ジョブの後に存在する後続ジョブを探索し、蓄積の属性を有する1以上のジョブを発見し、1つのグループに分類する。情報処理装置100は、例えば、統合の属性を有する1つのジョブを起点に、当該ジョブの後に連続して存在する、蓄積の属性を有する1以上の後続ジョブを、蓄積の属性を有する1つのグループに分類する。情報処理装置100は、グループ情報管理テーブル800のうち、蓄積の属性を有するジョブに対応するレコードに、当該ジョブを分類したグループを識別するグループIDを設定することにより、グループ情報管理テーブル800を更新する。
【0209】
図19の例では、情報処理装置100は、具体的には、統合1の前に存在する蓄積1を、蓄積の属性を有するグループ514に分類する。情報処理装置100は、具体的には、グループ情報管理テーブル800のうち、蓄積1に対応するレコードに、グループ514を識別するグループID=グループ4を設定する。
【0210】
これにより、情報処理装置100は、蓄積の属性を有するジョブを、グループに分類することができる。ここで、処理内容が共通する2以上のジョブは、ジョブフロー500を再起動する起点としても類似する性質を有すると考えられるため、ジョブフロー500を再起動する起点として纏めて扱っても不具合が発生し難いと考えられる。
【0211】
これに対し、情報処理装置100は、処理内容が共通し、ジョブフロー500を再起動する起点として纏めて扱うことが好ましい2以上のジョブを、1つのグループに分類することができる。情報処理装置100は、例えば、1つのグループに、同一の蓄積の属性を有する2以上のジョブを纏めて分類することができる。
【0212】
また、情報処理装置100は、1つのグループに、処理内容が共通せず、ジョブフロー500を再起動する起点として纏めて扱うことが好ましくない2以上のジョブを分類してしまうことを回避することができる。情報処理装置100は、例えば、1つのグループに、蓄積の属性を有するジョブと、蓄積以外の属性を有するジョブとを分類してしまうことを回避することができる。情報処理装置100は、ジョブフロー500を再起動するにあたって、蓄積の属性を有するジョブを、グループ単位で取り扱い可能にすることができる。次に、
図20の説明に移行する。
【0213】
図20において、情報処理装置100は、蓄積の属性を有するグループ514に、蓄積1を分類したことに応じて、蓄積の属性を有するグループ514における先頭ジョブとして、蓄積1を特定する。情報処理装置100は、蓄積の属性を有するグループ514と、グループ514に属する1以上のジョブと、特定した先頭ジョブである蓄積1とを対応付けて表すレコードを、先頭情報管理テーブル900に格納する。
【0214】
情報処理装置100は、具体的には、グループ514を識別するグループIDと、グループ514に属するそれぞれのジョブを識別するジョブIDのリストと、先頭ジョブを識別するジョブIDとを対応付けたレコード900-4を生成する。情報処理装置100は、生成したレコード900-4を、先頭情報管理テーブル900に格納する。これにより、情報処理装置100は、グループ514を、ジョブフロー500を再起動する起点とする場合、グループ514に属するいずれのジョブを、ジョブフロー500を再起動する具体的な起点とするのかを特定可能にすることができる。このように、情報処理装置100は、ジョブフロー500を再起動可能にする準備を実施することができる。
【0215】
ここで、ジョブフロー500の運用者などは、再起動情報管理テーブル1000を生成するよう、情報処理装置100を用いてもよい。ジョブフロー500の運用者などは、例えば、グループ情報管理テーブル800を参照して、いずれかのグループに属するジョブの異常に応じて、いずれのグループを、ジョブフロー500を再起動する起点とするのかを判断してもよい。そして、ジョブフロー500の運用者などは、判断した結果に基づいて、再起動情報管理テーブル1000を生成するよう、情報処理装置100を用いてもよい。情報処理装置100は、例えば、ジョブフロー500の運用者の操作入力に基づき、再起動情報管理テーブル1000を生成する。
【0216】
情報処理装置100は、予め、ジョブフロー500の運用者の操作入力に基づき、統合の属性を有するグループに属するジョブの異常に応じて、加工の属性を有するグループを、ジョブフロー500を再起動する起点とするルールを取得していてもよい。情報処理装置100は、例えば、ルールに従って、実際にジョブを分類した統合の属性を有するグループに対応付けて、ジョブフロー500を再起動する起点として、実際にジョブを分類した加工の属性を有するグループを示す情報を記憶してもよい。
【0217】
次に、
図21および
図22を用いて、情報処理装置100が、ジョブフロー500を再起動する具体例について説明する。
【0218】
図21および
図22は、ジョブフロー500を再起動する具体例を示す説明図である。
図21において、情報処理装置100は、ジョブフロー500に従って、ジョブ群のそれぞれのジョブを順に実行開始したとする。情報処理装置100は、ジョブ群のいずれかのジョブに異常が発生したため、実行中のジョブを異常終了し、ジョブフロー500を異常終了したとする。
【0219】
情報処理装置100は、ジョブフロー500を異常終了した時点における、ジョブ群のそれぞれのジョブの終了状況と、ジョブ群のそれぞれのジョブの終了コードとを表す実行履歴情報を、実行履歴管理テーブル1100に格納したとする。ここで、情報処理装置100は、ジョブフロー500を異常終了したことに応じて、ジョブフロー500を再起動することになる。
【0220】
(21-1)情報処理装置100は、例えば、ジョブフロー500を異常終了したことに応じて、実行履歴管理テーブル1100を参照して、ジョブ群のうち、異常終了した1以上のジョブを特定する。また、情報処理装置100は、実行履歴管理テーブル1100を参照して、特定した異常終了した1以上のジョブのそれぞれのジョブの終了コードを特定する。
【0221】
図21の例では、情報処理装置100は、具体的には、実行履歴管理テーブル1100の各レコード1100-iにおける「ジョブのステータス」のフィールドを参照して、「ジョブのステータス」が「異常終了」であるレコード1100-5を抽出する。情報処理装置100は、具体的には、抽出したレコード1100-5における「ジョブID」のフィールドを参照して、異常終了したジョブ5=統合1を特定する。情報処理装置100は、抽出したレコード1100-5における「ジョブの終了コード」のフィールドを参照して、異常終了したジョブ5に対応する終了コード「1」を特定する。
【0222】
(21-2)情報処理装置100は、ジョブフロー500を再起動する前に、異常終了した1以上のジョブと、異常終了したそれぞれのジョブの終了コードとを示す情報を、ジョブフロー500の運用者が参照可能に出力してもよい。情報処理装置100は、ジョブフロー500の運用者による特定の操作入力を受け付けてから、ジョブフロー500を再起動してもよい。これにより、情報処理装置100は、ジョブフロー500の運用者が、異常終了した1以上のジョブに対処する余地を残すことができる。ここでは、情報処理装置100は、ジョブフロー500の運用者による特定の操作入力を受け付けたとする。
【0223】
(21-3)情報処理装置100は、ジョブフロー500の運用者による特定の操作入力を受け付けたため、グループ情報管理テーブル800を参照して、異常終了したジョブが属するグループを特定する。
図21の例では、情報処理装置100は、グループ情報管理テーブル800のうち、異常終了したジョブ5に対応するレコード800-5を参照して、ジョブ5が属する、グループID「グループ3」であるグループ513を特定する。次に、
図22の説明に移行する。
【0224】
図22において、情報処理装置100は、下記(22-1)~下記(22-5)に示すように、ジョブフロー500を再起動する。
【0225】
(22-1)情報処理装置100は、再起動情報管理テーブル1000のうち、異常終了したそれぞれのジョブが属するグループに対応するレコード1000-iにおける「再起動条件」のフィールドを参照して、当該グループに対応する1以上の条件を特定する。
【0226】
図22の例では、情報処理装置100は、具体的には、再起動情報管理テーブル1000のうち、異常終了したジョブ5が属するグループ513に対応する、レコード1000-5を読み出す。情報処理装置100は、具体的には、読み出したレコード1000-5における「再起動条件」のフィールドを参照して、異常終了したジョブ5が属するグループ513に対応する条件を特定する。情報処理装置100は、より具体的には、異常終了したジョブ5が属するグループ513に対応する、条件「n/a」を特定する。
【0227】
(22-2)情報処理装置100は、異常終了したそれぞれのジョブについて特定した終了コードが、当該ジョブが属するグループに対応する1以上の条件の少なくともいずれかの条件を満たすか否かを判定する。情報処理装置100は、再起動情報管理テーブル1000を参照して、異常終了したそれぞれのジョブが属するグループについて、満たすと判定した当該グループに対応する条件と組み合わせられた、ジョブフロー500を再起動する起点とするグループを特定する。情報処理装置100は、異常終了したそれぞれのジョブが属するグループと、当該グループについて特定したジョブフロー500を再起動する起点とするグループとの組み合わせを、リストに登録する。
【0228】
図22の例では、情報処理装置100は、具体的には、異常終了したジョブ5について特定した終了コード「1」が、特定したジョブ5が属するグループ513に対応する条件「n/a」を満たすと判定する。情報処理装置100は、具体的には、異常終了したジョブ5が属するグループ513について、満たすと判定した条件「Code≦1」と組み合わせられた、ジョブフロー500を再起動する起点とするグループ512を特定する。情報処理装置100は、具体的には、異常終了したジョブ5が属するグループ513と、異常終了したジョブ5が属するグループ513について特定した、ジョブフロー500を再起動する起点とするグループ512との組み合わせを、リストに登録する。
【0229】
(22-3)異常終了したいずれかのジョブが属するグループに対応する1以上の条件が存在しない場合が考えられる。この場合、情報処理装置100は、ジョブフロー500を再起動する起点として、1以上の条件が存在しないグループと、ジョブフロー500を再起動する起点とする所定のジョブとの組み合わせを、リストに登録する。所定のジョブは、例えば、1以上の条件が存在しないグループに属する異常終了したジョブ、当該ジョブの1つ前に存在する先行ジョブ、または、1以上の条件が存在しないグループにおけるそれぞれの先頭ジョブなどである。
【0230】
(22-4)異常終了したいずれかのジョブが属するグループに対応する1以上の条件のいずれの条件も満たされない場合が考えられる。この場合、情報処理装置100は、ジョブフロー500を再起動する起点として、いずれの条件も満たされないグループと、ジョブフロー500を再起動する起点とする所定のジョブとの組み合わせを、リストに登録する。所定のジョブは、例えば、いずれの条件も満たされないグループに属する異常終了したジョブ、当該ジョブの1つ前に存在する先行ジョブ、または、いずれの条件も満たされないグループにおけるそれぞれの先頭ジョブなどである。
【0231】
(22-5)情報処理装置100は、同一のジョブを重複実行しないよう、ジョブフロー500を再起動する起点とする、リストに登録したそれぞれのグループにおけるそれぞれの先頭ジョブを起点に、ジョブフローを再起動する。
図22の例では、情報処理装置100は、具体的には、ジョブフロー500を再起動する起点とする、リストに登録したグループ512におけるそれぞれの先頭ジョブである加工1,4を起点に、ジョブフロー500を再起動する。
【0232】
これにより、情報処理装置100は、ジョブフロー500を再起動する起点を、グループ単位で適切に制御することができる。情報処理装置100は、例えば、いずれかのグループに属するいずれかのジョブが異常終了した場合について、当該異常の種類に応じて、ジョブフロー500を再起動する起点となるグループを切り替えることができる。
【0233】
情報処理装置100は、ジョブフロー500の運用者が、ジョブごとに、当該ジョブが異常終了したことに応じてジョブフロー500を再起動する起点とするジョブを設定せずに済ませることができる。このため、情報処理装置100は、ジョブフロー500の運用者にかかる作業負担および作業時間などの低減化を図ることができる。
【0234】
情報処理装置100は、自装置の利用者による特定の操作入力を待ってから、ジョブフロー500を再起動することができる。このため、情報処理装置100は、ジョブフロー500を再起動する前に、ジョブフロー500の運用者などが、いずれかのジョブに発生した異常に対処し易くすることができる。
【0235】
ここでは、情報処理装置100が、ジョブフロー500の運用者による特定の操作入力を受け付けてから、ジョブフロー500を再起動する場合について説明したが、これに限らない。例えば、情報処理装置100が、ジョブフロー500の運用者による特定の操作入力を受け付けずに、ジョブフロー500を再起動する場合があってもよい。この場合、情報処理装置100は、異常終了した1以上のジョブと、異常終了したそれぞれのジョブの終了コードとを示す情報を、ジョブフロー500の運用者が参照可能に出力しなくてもよい。
【0236】
次に、
図23~
図26を用いて、情報処理装置100が、ジョブ群に新たなジョブを追加する具体例について説明する。
【0237】
図23~
図26は、ジョブ群に新たなジョブを追加する具体例を示す説明図である。
図23において、情報処理装置100は、ジョブ群に新たなジョブを追加することを要求する追加要求を受け付けたとする。
図23の例では、情報処理装置100は、具体的には、データを収集するデータソースが増設されたことに応じて、ジョブ群に、ジョブ11~13を追加することを要求する追加要求を受け付けたとする。次に、
図24の説明に移行する。
【0238】
図24において、情報処理装置100は、属性情報管理テーブル700に、それぞれの追加のジョブに対応する、種別のフィールドが空であるレコードを格納する。
図24の例では、情報処理装置100は、具体的には、属性情報管理テーブル700に、ジョブ11~13に対応する、種別のフィールドが空であるレコード700-11~13を格納する。
【0239】
情報処理装置100は、
図12と同様に、1以上の追加のジョブのそれぞれの追加のジョブの処理内容に基づいて、当該追加のジョブに、収集、加工、統合、または、蓄積の属性を付与し、属性情報管理テーブル700を更新する。
【0240】
図24の例では、情報処理装置100は、具体的には、属性情報管理テーブル700のうち、ジョブ11に対応するレコード700-11に、収集の属性を設定する。情報処理装置100は、ジョブ11に、収集4の別名を付与する。また、情報処理装置100は、具体的には、属性情報管理テーブル700のうち、ジョブ12,13に対応するレコードに、加工の属性を設定する。情報処理装置100は、ジョブ12に、加工6の別名を付与する。情報処理装置100は、ジョブ13に、加工7の別名を付与する。次に、
図25の説明に移行する。
【0241】
図25において、情報処理装置100は、追加のジョブの後に存在する、統合の属性を有する既存のジョブを特定する。情報処理装置100は、特定した既存のジョブの前に存在する先行ジョブを探索し、加工の属性を有する1以上の追加のジョブを発見し、加工の属性を有する既存のグループに分類する。
【0242】
情報処理装置100は、例えば、特定した既存のジョブの前に連続して存在する、加工の属性を有する1以上の追加のジョブを、加工の属性を有する既存のグループに分類する。情報処理装置100は、例えば、特定した既存のジョブの前に、加工の属性を有する1以上の既存のジョブを経由して連続して存在する、加工の属性を有する1以上の追加のジョブを、加工の属性を有する既存のグループに分類してもよい。
【0243】
情報処理装置100は、グループ情報管理テーブル800のうち、加工の属性を有する追加のジョブに対応するレコードに、当該追加のジョブを分類したグループを識別するグループIDを設定することにより、グループ情報管理テーブル800を更新する。
【0244】
図25の例では、情報処理装置100は、具体的には、追加のジョブである収集4および加工6,7の後に存在する統合1を特定する。情報処理装置100は、具体的には、統合1の前に連続して存在する加工6,7を、加工の属性を有するグループ512に分類する。情報処理装置100は、具体的には、グループ情報管理テーブル800のうち、加工6,7に対応するレコード800-12,13に、グループ512を識別するグループID=グループ2を設定する。
【0245】
これにより、情報処理装置100は、加工の属性を有する追加のジョブを、グループに分類することができる。情報処理装置100は、ジョブフロー500を再起動するにあたって、加工の属性を有する追加のジョブを、加工の属性を有する既存のジョブと併せて、グループ単位で取り扱い可能にすることができる。次に、
図26の説明に移行する。
【0246】
図26において、情報処理装置100は、加工の属性を有するグループ512に、加工6,7を分類したことに応じて、加工の属性を有するグループ512における新たな先頭ジョブとして、加工6を特定する。情報処理装置100は、先頭情報管理テーブル900のうち、加工の属性を有するグループ512に対応するレコード900-2に、特定した加工6を設定する。
【0247】
これにより、情報処理装置100は、グループ512を、ジョブフロー500を再起動する起点とする場合、グループ512に属するいずれのジョブを、ジョブフロー500を再起動する具体的な起点とするのかを特定可能にすることができる。ここで、
図25の説明に戻る。
【0248】
図25において、情報処理装置100は、特定した既存のジョブの後に存在する、加工の属性を有するグループを特定する。情報処理装置100は、特定したグループごとに、当該グループにおけるそれぞれの先頭ジョブの前に存在する先行ジョブを探索し、収集の属性を有する1以上の追加のジョブを発見し、収集の属性を有する既存のグループに分類する。
【0249】
情報処理装置100は、例えば、加工の属性を有する1つのグループにおけるそれぞれの先頭ジョブを特定する。情報処理装置100は、例えば、特定したそれぞれの先頭ジョブの前に連続して存在する、収集の属性を有する1以上の追加のジョブを、収集の属性を有する既存のグループに分類する。情報処理装置100は、例えば、特定したそれぞれの先頭ジョブの前に、収集の属性を有する1以上の既存のジョブを経由して連続して存在する、収集の属性を有する1以上の追加のジョブを、収集の属性を有する既存のグループに分類してもよい。
【0250】
情報処理装置100は、グループ情報管理テーブル800のうち、収集の属性を有する追加のジョブに対応するレコードに、当該追加のジョブを分類したグループを識別するグループIDを設定することにより、グループ情報管理テーブル800を更新する。
【0251】
図25の例では、情報処理装置100は、具体的には、先頭情報管理テーブル900を参照して、グループ512における先頭ジョブである加工1,4,6を特定する。情報処理装置100は、具体的には、特定した加工6の前に存在する収集4を、収集の属性を有するグループ511に分類する。情報処理装置100は、具体的には、グループ情報管理テーブル800のうち、収集1に対応するレコード800-11に、グループ511を識別するグループID=グループ1を設定する。
【0252】
これにより、情報処理装置100は、収集の属性を有する追加のジョブを、グループに分類することができる。情報処理装置100は、ジョブフロー500を再起動するにあたって、収集の属性を有する追加のジョブを、収集の属性を有する既存のジョブと併せて、グループ単位で取り扱い可能にすることができる。次に、
図26の説明に移行する。
【0253】
図26において、情報処理装置100は、収集の属性を有するグループ511に、収集4を分類したことに応じて、収集の属性を有するグループ511における新たな先頭ジョブとして、収集4を特定する。情報処理装置100は、先頭情報管理テーブル900のうち、収集の属性を有するグループ511に対応するレコード900-1に、特定した収集4を設定する。
【0254】
これにより、情報処理装置100は、グループ511を、ジョブフロー500を再起動する起点とする場合、グループ511に属するいずれのジョブを、ジョブフロー500を再起動する具体的な起点とするのかを特定可能にすることができる。このように、情報処理装置100は、追加のジョブに関する情報を、適切に各種テーブルに反映することができる。情報処理装置100は、追加のジョブに関する情報を、各種テーブルに反映することができるため、ジョブフロー500の運用者などにかかる作業負担および作業時間などの低減化を図ることができる。
【0255】
上記動作例のように、情報処理装置100は、ジョブフロー500を取得した際、ジョブフロー500を再起動可能にするよう各種テーブルを用意するにあたり、ジョブフロー500の運用者などにかかる作業負担および作業時間などの低減化を図ることができる。各種テーブルは、例えば、ジョブフロー管理テーブル600と、属性情報管理テーブル700と、グループ情報管理テーブル800と、先頭情報管理テーブル900とを含む。また、情報処理装置100は、ジョブ群に新たなジョブを追加する際、ジョブフロー500を適切に再起動可能にするよう各種テーブルを更新するにあたり、ジョブフロー500の運用者などにかかる作業負担および作業時間などの低減化を図ることができる。
【0256】
例えば、従来では、ジョブフロー500において、ジョブ群のそれぞれのジョブが有する属性は特定されていない傾向がある。また、例えば、従来では、入力ファイル以外からデータを収集するジョブに、収集の属性を付与することが難しい。また、例えば、従来では、複数のデータを統合するジョブ、および、DBにデータを格納するジョブなどに、属性を付与することが難しい。このため、従来では、ジョブが有する属性に応じて、ジョブをグループ単位で取り扱うことが難しい。
【0257】
これに対し、情報処理装置100は、自動で、それぞれのジョブの処理内容に基づいて、それぞれのジョブが有する属性を特定することができる。そして、情報処理装置100は、同一の属性を有し、ジョブフロー500を再起動する起点として纏めて取り扱ってもよいと判断した1以上のジョブを、1つのグループに纏めることができる。このため、情報処理装置100は、ジョブフロー500の運用者が、グループ単位で、ジョブフロー500を再起動する起点を設定可能にすることができ、ジョブフロー500の運用者などにかかる作業負担および作業時間などの低減化を図ることができる。
【0258】
(情報処理装置100の適用例)
次に、情報処理装置100の適用例について説明する。情報処理装置100は、例えば、データ利活用の分野において、数十以上の業務システムのデータを収集し、加工および統合するような大規模システムのジョブフローに適用することができる。
【0259】
これにより、情報処理装置100は、大規模システムのジョブフローを柔軟に再起動可能にすることができる。このため、情報処理装置100は、大規模システムの異常時の復旧速度の向上、大規模システムの安定性の向上、または、大規模システムの運用コストの低減化などを図ることができる。
【0260】
また、情報処理装置100は、大規模システムを管理する、ジョブフローの運用者などが、ジョブをグループ単位で取り扱い可能にすることができる。従って、情報処理装置100は、ジョブフローの運用者などが、大規模システムを実現するすべてのジョブに対して、ジョブフローを再起動する起点となるジョブを設定せずに済ませることができる。このため、情報処理装置100は、ジョブフローの運用者にかかる作業負担および作業時間の低減化を図ることができる。また、情報処理装置100は、ジョブフローの運用者などによる、大規模システムを管理する際の作業ミスなどを防止し易くすることができる。
【0261】
また、情報処理装置100は、大規模システムの改修により、ジョブ群に新たなジョブを追加する際、当該ジョブに関して、各種テーブルを適切に更新することができる。各種テーブルは、例えば、ジョブフロー管理テーブル600と、属性情報管理テーブル700と、グループ情報管理テーブル800と、先頭情報管理テーブル900とを含む。同様に、情報処理装置100は、ジョブ群から既存のジョブを削除する際、各種テーブルを適切に更新することができる。
【0262】
これにより、情報処理装置100は、大規模システムの改修時、ジョブフローの運用者などが、各種テーブルを更新せずに済ませることができ、ジョブフローの運用者などにかかる作業負担および作業時間の低減化を図ることができる。このため、情報処理装置100は、ジョブフローの運用者などによる、各種テーブルを管理する際の作業ミスなどを防止し易くすることができる。
【0263】
(判定処理手順)
次に、
図27を用いて、情報処理装置100が実行する、判定処理手順の一例について説明する。判定処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0264】
図27は、判定処理手順の一例を示すフローチャートである。
図27において、情報処理装置100は、ジョブ群に含まれるジョブを順に選択する(ステップS2701)。
【0265】
次に、情報処理装置100は、選択したジョブの処理内容に基づいて、選択したジョブが、データソースからデータを収集するジョブであるか否かを判定する(ステップS2702)。ここで、データを収集するジョブではない場合(ステップS2702:No)、情報処理装置100は、ステップS2704の処理に移行する。一方で、データを収集するジョブである場合(ステップS2702:Yes)、情報処理装置100は、ステップS2703の処理に移行する。
【0266】
ステップS2703では、情報処理装置100は、選択したジョブに、収集の属性を付与し、属性情報管理テーブル700を更新する(ステップS2703)。そして、情報処理装置100は、ステップS2701の処理に戻る。
【0267】
ステップS2704では、情報処理装置100は、すべてのジョブを選択したか否かを判定する(ステップS2704)。ここで、選択していないジョブが存在する場合(ステップS2704:No)、情報処理装置100は、ステップS2701の処理に戻る。一方で、すべてのジョブを選択した場合(ステップS2704:Yes)、情報処理装置100は、ステップS2705の処理に移行する。
【0268】
ステップS2705では、情報処理装置100は、ジョブ群に含まれる、収集の属性を有さないジョブを順に選択する(ステップS2705)。
【0269】
次に、情報処理装置100は、選択したジョブに先行する、収集の属性を有するジョブが存在するか否かを判定する(ステップS2706)。ここで、収集の属性を有するジョブが存在しない場合(ステップS2706:No)、情報処理装置100は、ステップS2707の処理に移行する。一方で、収集の属性を有するジョブが存在する場合(ステップS2706:Yes)、情報処理装置100は、ステップS2708の処理に移行する。
【0270】
ステップS2707では、情報処理装置100は、選択したジョブに、利活用外の属性を付与し、属性情報管理テーブル700を更新する(ステップS2707)。そして、情報処理装置100は、ステップS2713の処理に移行する。
【0271】
ステップS2708では、情報処理装置100は、選択したジョブが、DBにアクセスしてデータを格納するジョブであるか否かを判定する(ステップS2708)。ここで、データを格納するジョブである場合(ステップS2708:Yes)、情報処理装置100は、ステップS2709の処理に移行する。一方で、データを格納するジョブではない場合(ステップS2708:No)、情報処理装置100は、ステップS2710の処理に移行する。
【0272】
ステップS2709では、情報処理装置100は、選択したジョブに、蓄積の属性を付与し、属性情報管理テーブル700を更新する(ステップS2709)。そして、情報処理装置100は、ステップS2713の処理に移行する。
【0273】
ステップS2710では、情報処理装置100は、選択したジョブに先行する、収集の属性を有するジョブが単一であるか否かを判定する(ステップS2710)。ここで、単一である場合(ステップS2710:Yes)、情報処理装置100は、ステップS2711の処理に移行する。一方で、単一ではなく複数である場合(ステップS2710:No)、情報処理装置100は、ステップS2712の処理に移行する。
【0274】
ステップS2711では、情報処理装置100は、選択したジョブに、加工の属性を付与し、属性情報管理テーブル700を更新する(ステップS2711)。そして、情報処理装置100は、ステップS2713の処理に移行する。
【0275】
ステップS2712では、情報処理装置100は、選択したジョブに、統合の属性を付与し、属性情報管理テーブル700を更新する(ステップS2712)。そして、情報処理装置100は、ステップS2713の処理に移行する。
【0276】
ステップS2713では、情報処理装置100は、ジョブ群に含まれる、収集の属性を有さないすべてのジョブを選択したか否かを判定する(ステップS2713)。ここで、選択していないジョブが存在する場合(ステップS2713:No)、情報処理装置100は、ステップS2705の処理に戻る。一方で、すべてのジョブを選択した場合(ステップS2713:Yes)、情報処理装置100は、判定処理を終了する。
【0277】
(全体分類処理手順)
次に、
図28を用いて、情報処理装置100が実行する、全体分類処理手順の一例について説明する。全体分類処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0278】
図28は、全体分類処理手順の一例を示すフローチャートである。
図28において、情報処理装置100は、
図27に示した判定処理を実行する(ステップS2801)。そして、情報処理装置100は、ジョブ群のうち、統合の属性を有する統合ジョブを抽出する(ステップS2802)。
【0279】
次に、情報処理装置100は、統合ジョブが存在するか否かを判定する(ステップS2803)。ここで、統合ジョブが存在しない場合(ステップS2803:No)、情報処理装置100は、ステップS2806の処理に移行する。一方で、統合ジョブが存在する場合(ステップS2803:Yes)、情報処理装置100は、ステップS2804の処理に移行する。
【0280】
ステップS2804では、情報処理装置100は、抽出した統合ジョブごとに、抽出した当該統合ジョブを、統合の属性を有する1つのグループに分類し、グループ情報管理テーブル800を更新する(ステップS2804)。
【0281】
次に、情報処理装置100は、
図29に後述する第1分類処理を実行し、統合ジョブの前に存在する先行ジョブを、1以上のグループに分類し、グループ情報管理テーブル800を更新する(ステップS2805)。そして、情報処理装置100は、ステップS2806の処理に移行する。
【0282】
ステップS2806では、情報処理装置100は、ジョブ群のうち、後続ジョブが存在しない末尾ジョブを抽出する(ステップS2806)。
【0283】
次に、情報処理装置100は、抽出した末尾ジョブを順に選択する(ステップS2807)。そして、情報処理装置100は、選択した末尾ジョブを、収集と加工と蓄積とのいずれかの属性を有するグループに分類し、グループ情報管理テーブル800を更新する(ステップS2808)。
【0284】
次に、情報処理装置100は、分類した末尾ジョブに対する先行ジョブが存在するか否かを判定する(ステップS2809)。ここで、先行ジョブが存在しない場合(ステップS2809:No)、情報処理装置100は、ステップS2812の処理に移行する。一方で、先行ジョブが存在する場合(ステップS2809:Yes)、情報処理装置100は、ステップS2810の処理に移行する。
【0285】
ステップS2810では、情報処理装置100は、分類した末尾ジョブに対する先行ジョブが、統合ジョブであるか否かを判定する(ステップS2810)。ここで、統合ジョブである場合(ステップS2810:Yes)、情報処理装置100は、ステップS2812の処理に移行する。一方で、統合ジョブではない場合(ステップS2810:No)、情報処理装置100は、ステップS2811の処理に移行する。
【0286】
ステップS2811では、情報処理装置100は、分類した末尾ジョブを起点に、
図30に後述する第2分類処理を実行する(ステップS2811)。情報処理装置100は、
図30に後述する第2分類処理を実行することにより、分類した末尾ジョブの前に存在する先行ジョブを、1以上のグループに分類し、グループ情報管理テーブル800を更新する。そして、情報処理装置100は、ステップS2810の処理に戻る。
【0287】
ステップS2812では、情報処理装置100は、分類した末尾ジョブをすべて選択したか否かを判定する(ステップS2812)。ここで、選択していない末尾ジョブが存在する場合(ステップS2812:No)、情報処理装置100は、ステップS2807の処理に戻る。一方で、選択した場合(ステップS2812:Yes)、情報処理装置100は、全体分類処理を終了する。
【0288】
(第1分類処理手順)
次に、
図29を用いて、情報処理装置100が実行する、第1分類処理手順の一例について説明する。第1分類処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0289】
図29は、第1分類処理手順の一例を示すフローチャートである。
図29において、情報処理装置100は、抽出した統合ジョブを順に選択する(ステップS2901)。
【0290】
次に、情報処理装置100は、選択した統合ジョブを起点に、
図30に後述する第2分類処理を実行し、選択した統合ジョブの前に存在する先行ジョブを、1以上のグループに分類し、グループ情報管理テーブル800を更新する(ステップS2902)。
【0291】
そして、情報処理装置100は、分類した1以上のグループを順に選択する(ステップS2903)。
【0292】
次に、情報処理装置100は、選択したグループにおける先頭ジョブに対する先行ジョブが存在するか否かを判定する(ステップS2904)。ここで、先行ジョブが存在しない場合(ステップS2904:No)、情報処理装置100は、ステップS2907の処理に移行する。一方で、先行ジョブが存在する場合(ステップS2904:Yes)、情報処理装置100は、ステップS2905の処理に移行する。
【0293】
ステップS2905では、情報処理装置100は、選択したグループにおける先頭ジョブに対する先行ジョブが、統合ジョブであるか否かを判定する(ステップS2905)。ここで、統合ジョブである場合(ステップS2905:Yes)、情報処理装置100は、ステップS2907の処理に移行する。一方で、統合ジョブではない場合(ステップS2905:No)、情報処理装置100は、ステップS2906の処理に移行する。
【0294】
ステップS2906では、情報処理装置100は、選択したグループにおける先頭ジョブに対する先行ジョブを起点に、
図30に後述する第2分類処理を実行する(ステップS2906)。情報処理装置100は、
図30に後述する第2分類処理を実行することにより、先行ジョブの前に存在する先行ジョブを、1以上のグループに分類し、グループ情報管理テーブル800を更新する。そして、情報処理装置100は、ステップS2907の処理に移行する。
【0295】
ステップS2907では、情報処理装置100は、分類した1以上のグループをすべて選択したか否かを判定する(ステップS2907)。ここで、選択していないグループが存在する場合(ステップS2907:No)、情報処理装置100は、ステップS2903の処理に戻る。一方で、選択した場合(ステップS2907:Yes)、情報処理装置100は、ステップS2908の処理に移行する。
【0296】
ステップS2908では、情報処理装置100は、抽出した統合ジョブをすべて選択したか否かを判定する(ステップS2908)。ここで、選択していない統合ジョブが存在する場合(ステップS2908:No)、情報処理装置100は、ステップS2901の処理に戻る。一方で、選択した場合(ステップS2908:Yes)、情報処理装置100は、第1分類処理を終了する。
【0297】
(第2分類処理手順)
次に、
図30を用いて、情報処理装置100が実行する、第2分類処理手順の一例について説明する。第2分類処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0298】
図30は、第2分類処理手順の一例を示すフローチャートである。
図30において、情報処理装置100は、起点としたジョブの1つ前の1以上の先行ジョブを順に選択する(ステップS3001)。そして、情報処理装置100は、選択した先行ジョブを、収集と加工と蓄積とのいずれかの属性を有するグループに分類し、グループ情報管理テーブル800を更新する(ステップS3002)。
【0299】
次に、情報処理装置100は、直前に分類した先行ジョブが有する属性と、直前に分類した先行ジョブの1つ前に存在する先行ジョブが有する属性とが一致するか否かを判定する(ステップS3003)。ここで、一致する場合(ステップS3003:Yes)、情報処理装置100は、ステップS3004の処理に移行する。一方で、一致しない場合(ステップS3003:No)、情報処理装置100は、ステップS3005の処理に移行する。
【0300】
ステップS3004では、情報処理装置100は、直前に分類した先行ジョブの1つ前に存在する先行ジョブを、同一のグループに分類し、グループ情報管理テーブル800を更新する(ステップS3004)。そして、情報処理装置100は、ステップS3003の処理に戻る。
【0301】
ステップS3005では、情報処理装置100は、選択した先行ジョブを分類したグループにおける先頭ジョブを設定し、先頭情報管理テーブル900を更新する(ステップS3005)。情報処理装置100は、例えば、選択した先行ジョブを分類したグループのうち、1つ前に存在する先行ジョブと属性が一致しないジョブ、および、先行ジョブが存在しないジョブを、当該グループにおける先頭ジョブに設定する。
【0302】
次に、情報処理装置100は、起点としたジョブの1つ前の1以上の先行ジョブをすべて選択したか否かを判定する(ステップS3006)。ここで、選択していない先行ジョブが存在する場合(ステップS3006:No)、情報処理装置100は、ステップS3001の処理に戻る。一方で、選択した場合(ステップS3006:Yes)、情報処理装置100は、第2分類処理を終了する。
【0303】
(再起動処理手順)
次に、
図31を用いて、情報処理装置100が実行する、再起動処理手順の一例について説明する。再起動処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0304】
図31は、再起動処理手順の一例を示すフローチャートである。
図31において、情報処理装置100は、実行履歴管理テーブル1100を参照して、異常終了した1以上のジョブを特定する(ステップS3101)。
【0305】
次に、情報処理装置100は、グループ情報管理テーブル800を参照して、特定した異常終了した1以上のジョブのそれぞれのジョブが属するグループを特定する(ステップS3102)。そして、情報処理装置100は、再起動情報管理テーブル1000を参照して、特定したそれぞれのグループに対応する再起動ポイントを特定する(ステップS3103)。
【0306】
次に、情報処理装置100は、再起動ポイントが存在するか否かを判定する(ステップS3104)。ここで、再起動ポイントが存在しない場合(ステップS3104:No)、情報処理装置100は、ステップS3107の処理に移行する。一方で、再起動ポイントが存在する場合(ステップS3104:Yes)、情報処理装置100は、ステップS3105の処理に移行する。
【0307】
ステップS3105では、情報処理装置100は、グループ情報管理テーブル800を参照して、特定したそれぞれのグループにおける1以上の先頭ジョブを特定する(ステップS3105)。
【0308】
次に、情報処理装置100は、特定した1以上の先頭ジョブのそれぞれの先頭ジョブを再起動し、ジョブフロー全体を再起動する(ステップS3106)。そして、情報処理装置100は、再起動処理を終了する。
【0309】
ステップS3107では、情報処理装置100は、異常終了した1以上のジョブに対応する所定のジョブを再起動し、ジョブフロー全体を再起動する(ステップS3107)。そして、情報処理装置100は、再起動処理を終了する。
【0310】
(追加処理手順)
次に、
図32を用いて、情報処理装置100が実行する、追加処理手順の一例について説明する。追加処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0311】
図32は、追加処理手順の一例を示すフローチャートである。
図32において、情報処理装置100は、追加のジョブ群を対象に、
図17に示した判定処理を実行する(ステップS3201)。情報処理装置100は、
図17に示した判定処理を実行することにより、追加のジョブ群のそれぞれの追加のジョブに、収集と加工と統合と蓄積と利活用外とのいずれかの属性を付与する。
【0312】
次に、情報処理装置100は、追加のジョブ群のうち、統合の属性を有する追加の統合ジョブを抽出する(ステップS3202)。
【0313】
そして、情報処理装置100は、追加のジョブ群のうち、追加の統合ジョブが存在するか否かを判定する(ステップS3203)。ここで、追加の統合ジョブが存在しない場合(ステップS3203:No)、情報処理装置100は、ステップS3206の処理に移行する。一方で、追加の統合ジョブが存在する場合(ステップS3203:Yes)、情報処理装置100は、ステップS3204の処理に移行する。
【0314】
ステップS3204では、情報処理装置100は、抽出した追加の統合ジョブごとに、抽出した当該追加の統合ジョブを、統合の属性を有する1つのグループに分類し、グループ情報管理テーブル800を更新する(ステップS3204)。
【0315】
次に、情報処理装置100は、
図19に示した第1分類処理を実行し、追加のジョブ群のうち、抽出した追加の統合ジョブの前に存在する追加の先行ジョブを、1以上のグループに分類し、グループ情報管理テーブル800を更新する(ステップS3205)。そして、情報処理装置100は、ステップS3206の処理に移行する。
【0316】
ステップS3206では、情報処理装置100は、追加のジョブ群における少なくともいずれかの追加の末尾ジョブの後に存在する既存の統合ジョブを特定する(ステップS3206)。
【0317】
次に、情報処理装置100は、特定した既存の統合ジョブを順に選択する(ステップS3207)。そして、情報処理装置100は、追加のジョブ群における1以上の追加の末尾ジョブのうち、選択した既存の統合ジョブの前に存在する追加の末尾ジョブを順に選択する(ステップS3208)。
【0318】
次に、情報処理装置100は、選択した追加の末尾ジョブが有する属性と、選択した追加の末尾ジョブの1つ後に存在する既存のジョブが有する属性とが一致するか否かを判定する(ステップS3209)。ここで、一致しない場合(ステップS3209:No)、情報処理装置100は、ステップS3215の処理に移行する。一方で、一致する場合(ステップS3209:Yes)、情報処理装置100は、ステップS3210の処理に移行する。
【0319】
ステップS3210では、情報処理装置100は、選択した追加の末尾ジョブを、既存のジョブが属する既存のグループに分類する(ステップS3210)。
【0320】
次に、情報処理装置100は、既存のグループに直前に分類した追加のジョブの1つ前に、当該追加のジョブと同一の属性を有する追加の先行ジョブが存在すれば、既存のグループにさらに分類する(ステップS3211)。
【0321】
そして、情報処理装置100は、既存のグループにおける先頭ジョブを設定し、先頭情報管理テーブル900を更新する(ステップS3212)。情報処理装置100は、例えば、既存のグループのうち、1つ前に存在する先行ジョブと属性が一致しないジョブ、および、先行ジョブが存在しないジョブを、当該グループにおける先頭ジョブに設定する。
【0322】
次に、情報処理装置100は、追加のジョブ群のうち、追加の統合ジョブより後で、設定した先頭ジョブの前に、当該先頭ジョブとは異なる属性を有する追加の先行ジョブが存在するか否かを判定する(ステップS3213)。ここで、追加の先行ジョブが存在しない場合(ステップS3213:No)、情報処理装置100は、追加処理を終了する。一方で、追加の先行ジョブが存在する場合(ステップS3213:Yes)、情報処理装置100は、ステップS3214の処理に移行する。
【0323】
そして、情報処理装置100は、追加のジョブ群のうち、追加の統合ジョブより後で、設定した先頭ジョブの1つ前に、当該先頭ジョブと同一の属性を有する追加の先行ジョブが存在するか否かを判定する(ステップS3214)。ここで、追加の先行ジョブが存在しない場合(ステップS3214:No)、情報処理装置100は、ステップS3215の処理に移行する。一方で、追加の先行ジョブが存在する場合(ステップS3214:Yes)、情報処理装置100は、ステップS3211の処理に戻る。
【0324】
ステップS3215では、情報処理装置100は、直前に設定したそれぞれの先頭ジョブの1つ前に存在する先行ジョブを起点に、
図20に示した第2分類処理を実行する(ステップS3215)。情報処理装置100は、
図20に示した第2分類処理を実行することにより、当該先頭ジョブの前に存在する先行ジョブを、1以上のグループに分類し、グループ情報管理テーブル800を更新する。
【0325】
ステップS3216では、情報処理装置100は、直前に分類したいずれかのグループにおける先頭ジョブの前に、追加の先行ジョブが存在するか否かを判定する(ステップS3216)。ここで、追加の先行ジョブが存在しない場合(ステップS3216:No)、情報処理装置100は、追加処理を終了する。一方で、追加の先行ジョブが存在する場合(ステップS3216:Yes)、情報処理装置100は、ステップS3217の処理に移行する。
【0326】
ステップS3217では、情報処理装置100は、直前に分類したいずれかのグループにおける先頭ジョブの前に、追加の先行ジョブが有する属性が、統合であるか否かを判定する(ステップS3217)。ここで、統合ではない場合(ステップS3217:No)、情報処理装置100は、ステップS3215の処理に戻る。一方で、統合である場合(ステップS3217:Yes)、情報処理装置100は、追加処理を終了する。
【0327】
ここで、情報処理装置100は、
図27~
図32の各フローチャートにおける一部ステップの処理の順序を入れ替えて実行してもよい。また、情報処理装置100は、
図27~
図32の各フローチャートにおける一部ステップの処理を省略してもよい。
【0328】
以上説明したように、情報処理装置100によれば、ジョブフローに実行順序が規定されたジョブ群の各ジョブの処理内容に基づいて、ジョブ群を複数のグループに分類することができる。情報処理装置100によれば、記憶部400に、複数のグループの少なくともいずれかのグループに対応付けて、複数のグループのうちジョブフローを再起動する起点とするグループにおける先頭ジョブを示す情報を記憶することができる。情報処理装置100によれば、第1グループに分類した第1ジョブの異常を検出した場合、記憶部400を参照して、第1グループに対応付けられたジョブフローを再起動する起点とする第2グループにおける先頭ジョブを特定することができる。情報処理装置100によれば、特定した先頭ジョブを起点に、ジョブフローを再起動することができる。これにより、情報処理装置100は、ジョブフローを再起動する際に、ジョブ群をグループ単位で取り扱い可能にすることができる。このため、情報処理装置100は、ジョブフローを再起動する起点を設定し易くすることができ、ジョブフローを再起動する起点を設定する際にジョブフローの運用者などにかかる作業負担および作業時間などの低減化を図ることができる。
【0329】
情報処理装置100によれば、複数のグループの第2グループに分類した第2ジョブに先行する第3ジョブを、ジョブ群に追加する要求を受け付けたことに応じて、第3ジョブを、ジョブ群に追加することができる。情報処理装置100によれば、第3ジョブの処理内容に基づいて、第3ジョブを複数のグループの第3グループに分類することができる。情報処理装置100によれば、第3ジョブが、第3グループにおける先頭ジョブとなる場合、記憶部400に記憶された、第3グループにおける先頭ジョブを示す情報を更新することができる。これにより、情報処理装置100は、ジョブ群に新たなジョブを追加することができ、ジョブ群に新たなジョブを追加したことを、記憶部400に適切に反映することができる。情報処理装置100は、ジョブ群に新たなジョブを追加する際にジョブフローの運用者などにかかる作業負担および作業時間の低減化を図ることができる。
【0330】
情報処理装置100によれば、複数のグループの第4グループに分類した第4ジョブを、ジョブ群から削除する要求を受け付けたことに応じて、第4ジョブを、ジョブ群から削除ことができる。情報処理装置100によれば、第4ジョブが、第4グループにおける先頭ジョブである場合、記憶部400に記憶された、第4グループにおける先頭ジョブを示す情報を更新することができる。これにより、情報処理装置100は、ジョブ群から既存のジョブを削除することができ、ジョブ群から既存のジョブを削除したことを、記憶部400に適切に反映することができる。情報処理装置100は、ジョブ群から既存のジョブを削除する際にジョブフローの運用者などにかかる作業負担および作業時間の低減化を図ることができる。
【0331】
情報処理装置100によれば、記憶部400に、複数のグループの少なくともいずれかのグループに対応付けて、ジョブフローを再起動する条件と、ジョブフローを再起動する起点とするグループにおける先頭ジョブを示す情報とを記憶することができる。情報処理装置100によれば、検出した第1ジョブの異常が、第1グループに対応付けられたジョブフローを再起動する条件を満たすか否かを判定することができる。情報処理装置100によれば、条件を満たすと判定した場合、記憶部400を参照して、第1グループに対応付けられたジョブフローを再起動する起点とする第2グループにおける先頭ジョブを特定することができる。情報処理装置100によれば、特定した先頭ジョブを起点に、ジョブフローを再起動することができる。これにより、情報処理装置100は、条件に応じて、ジョブフローを再起動する起点とするグループを切り替え易くすることができる。
【0332】
情報処理装置100によれば、ジョブ群に含まれる第5ジョブの処理内容に基づいて、第5ジョブが収集ジョブであると判定した場合、第5ジョブを収集グループに分類することができる。これにより、情報処理装置100は、収集ジョブを適切にグループに分類することができる。
【0333】
情報処理装置100によれば、ジョブ群に含まれる第6ジョブの処理内容に基づいて、第6ジョブが加工ジョブであると判定した場合、第6ジョブを加工グループに分類することができる。これにより、情報処理装置100は、加工ジョブを適切にグループに分類することができる。
【0334】
情報処理装置100によれば、ジョブ群に含まれる第7ジョブの処理内容に基づいて、第7ジョブが統合ジョブであると判定した場合、第7ジョブを統合グループに分類することができる。これにより、情報処理装置100は、統合ジョブを適切にグループに分類することができる。
【0335】
情報処理装置100によれば、ジョブ群に含まれる第8ジョブの処理内容に基づいて、第8ジョブが蓄積ジョブであると判定した場合、第8ジョブを蓄積グループに分類することができる。これにより、情報処理装置100は、蓄積ジョブを適切にグループに分類することができる。
【0336】
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをPCやワークステーションなどのコンピュータで実行することにより実現することができる。本実施の形態で説明した情報処理プログラムは、コンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。記録媒体は、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO(Magneto Optical disc)、DVD(Digital Versatile Disc)などである。また、本実施の形態で説明した情報処理プログラムは、インターネットなどのネットワークを介して配布してもよい。
【0337】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0338】
(付記1)ジョブフローに実行順序が規定されたジョブ群の各ジョブの処理内容に基づいて、前記ジョブ群を複数のグループに分類し、
前記複数のグループの第1グループに分類した第1ジョブの異常を検出した場合、前記複数のグループの少なくともいずれかのグループに対応付けて、前記複数のグループのうち前記ジョブフローを再起動する起点とするグループにおいて実行順序が先頭であるジョブを示す情報を記憶する記憶部を参照して、前記第1グループに対応付けられた前記ジョブフローを再起動する起点とする第2グループにおいて実行順序が先頭であるジョブを示す情報に基づいて、前記第2グループにおいて実行順序が先頭であるジョブを起点に、前記ジョブフローを再起動する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【0339】
(付記2)前記複数のグループの第2グループに分類した第2ジョブに先行する第3ジョブを、前記ジョブ群に追加する要求を受け付けたことに応じて、前記第3ジョブを、前記ジョブ群に追加し、
前記第3ジョブの処理内容に基づいて、前記第3ジョブを前記複数のグループの第3グループに分類し、
前記第3ジョブが、前記第3グループにおいて実行順序が先頭であるジョブとなる場合、前記記憶部に記憶された、前記第3グループにおいて実行順序が先頭であるジョブを示す情報を更新する、
処理を前記コンピュータに実行させることを特徴とする付記1に記載の情報処理プログラム。
【0340】
(付記3)前記複数のグループの第4グループに分類した第4ジョブを、前記ジョブ群から削除する要求を受け付けたことに応じて、前記第4ジョブを、前記ジョブ群から削除し、
前記第4ジョブが、前記第4グループにおいて実行順序が先頭であるジョブである場合、前記記憶部に記憶された、前記第4グループにおいて実行順序が先頭であるジョブを示す情報を更新する、
処理を前記コンピュータに実行させることを特徴とする付記1または2に記載の情報処理プログラム。
【0341】
(付記4)前記記憶部は、前記複数のグループの少なくともいずれかのグループに対応付けて、前記ジョブフローを再起動する条件と、前記複数のグループのうち前記ジョブフローを再起動する起点とするグループにおいて実行順序が先頭であるジョブを示す情報とを記憶し、
検出した前記第1ジョブの異常が、前記第1グループに対応付けられた前記ジョブフローを再起動する条件を満たすか否かを判定する、
処理を前記コンピュータに実行させ、
前記再起動する処理は、
検出した前記第1ジョブの異常が、前記第1グループに対応付けられた前記ジョブフローを再起動する条件を満たすと判定した場合、前記記憶部を参照して、前記第1グループに対応付けられた前記ジョブフローを再起動する起点とする第2グループにおいて実行順序が先頭であるジョブを示す情報に基づいて、前記第2グループにおいて実行順序が先頭であるジョブを起点に、前記ジョブフローを再起動する、ことを特徴とする付記1または2に記載の情報処理プログラム。
【0342】
(付記5)前記複数のグループは、データソースからデータを収集する収集ジョブを分類する収集グループを含み、
前記分類する処理は、
前記ジョブ群に含まれる第5ジョブの処理内容に基づいて、前記第5ジョブが前記収集ジョブであると判定した場合、前記第5ジョブを前記収集グループに分類する、ことを特徴とする付記1に記載の情報処理プログラム。
【0343】
(付記6)前記複数のグループは、単一のジョブから処理結果を示すデータを取得して加工する加工ジョブを分類する加工グループを含み、
前記分類する処理は、
前記ジョブ群に含まれる第6ジョブの処理内容に基づいて、前記第6ジョブが前記加工ジョブであると判定した場合、前記第6ジョブを前記加工グループに分類する、ことを特徴とする付記5に記載の情報処理プログラム。
【0344】
(付記7)前記複数のグループは、複数のジョブから処理結果を示すデータを取得して統合する統合ジョブを分類する統合グループを含み、
前記分類する処理は、
前記ジョブ群に含まれる第7ジョブの処理内容に基づいて、前記第7ジョブが前記統合ジョブであると判定した場合、前記第7ジョブを前記統合グループに分類する、ことを特徴とする付記6に記載の情報処理プログラム。
【0345】
(付記8)前記複数のグループは、データを取得してデータベースに格納する蓄積ジョブを分類する蓄積グループを含み、
前記分類する処理は、
前記ジョブ群に含まれる第8ジョブの処理内容に基づいて、前記第8ジョブが前記蓄積ジョブであると判定した場合、前記第8ジョブを前記蓄積グループに分類する、ことを特徴とする付記7に記載の情報処理プログラム。
【0346】
(付記9)ジョブフローに実行順序が規定されたジョブ群の各ジョブの処理内容に基づいて、前記ジョブ群を複数のグループに分類し、
前記複数のグループの第1グループに分類した第1ジョブの異常を検出した場合、前記複数のグループの少なくともいずれかのグループに対応付けて、前記複数のグループのうち前記ジョブフローを再起動する起点とするグループにおいて実行順序が先頭であるジョブを示す情報を記憶する記憶部を参照して、前記第1グループに対応付けられた前記ジョブフローを再起動する起点とする第2グループにおいて実行順序が先頭であるジョブを示す情報に基づいて、前記第2グループにおいて実行順序が先頭であるジョブを起点に、前記ジョブフローを再起動する、
処理をコンピュータが実行することを特徴とする情報処理方法。
【0347】
(付記10)ジョブフローに実行順序が規定されたジョブ群の各ジョブの処理内容に基づいて、前記ジョブ群を複数のグループに分類し、
前記複数のグループの第1グループに分類した第1ジョブの異常を検出した場合、前記複数のグループの少なくともいずれかのグループに対応付けて、前記複数のグループのうち前記ジョブフローを再起動する起点とするグループにおいて実行順序が先頭であるジョブを示す情報を記憶する記憶部を参照して、前記第1グループに対応付けられた前記ジョブフローを再起動する起点とする第2グループにおいて実行順序が先頭であるジョブを示す情報に基づいて、前記第2グループにおいて実行順序が先頭であるジョブを起点に、前記ジョブフローを再起動する、
制御部を有することを特徴とする情報処理装置。
【符号の説明】
【0348】
101~110,501~510 ノード
100 情報処理装置
111~114,511~514 グループ
121,500 ジョブフロー
122,400 記憶部
200 情報処理システム
201 ジョブ実行装置
202 クライアント装置
210 ネットワーク
300 バス
301 CPU
302 メモリ
303 ネットワークI/F
304 記録媒体I/F
305 記録媒体
401 取得部
402 分類部
403 実行部
404 検出部
405 起動部
406 出力部
600 ジョブフロー管理テーブル
700 属性情報管理テーブル
800 グループ情報管理テーブル
900 先頭情報管理テーブル
1000 再起動情報管理テーブル
1100 実行履歴管理テーブル