図1は、本実施形態における管理支援装置の一例を示す。管理支援装置1は、分類情報生成部2と、グループ化部3と、表示情報生成部4とを含む。
分類情報生成部2は、情報処理端末からの要求に応じて、管理対象のジョブフローに含まれる複数のジョブの属性情報に基づいて、属性毎にジョブが分類された分類情報(ジョブ分類情報)を生成する。分類情報生成部2の一例として、後述する抽出処理65を実行するCPU112が挙げられる。
グループ化部3は、分類情報と、ジョブフローにおけるジョブ間の遷移関係に関する遷移関係情報とを用いて、複数のジョブを、属性情報に応じて複数のグループにグループ化する。グループ化部3の一例として、後述する表示情報作成処理66を実行するCPU112が挙げられる。遷移関係情報の一例として、後述するジョブ関連情報テーブル71が挙げられる。
表示情報生成部4は、ジョブ実行スケジュール表示情報を生成する。ジョブ実行スケジュール表示情報は、複数のジョブのうちいずれかのジョブと該ジョブの後続にあるジョブとが異なるグループに属する場合にジョブ間の遷移関係を表示させる。それと共に、ジョブ実行スケジュール表示情報は、ジョブフローにおける開始ジョブからそれぞれのジョブまでのジョブ数に基づいて、各グループのジョブの実行区間を他のグループのジョブの実行区間と対応させて表示させる。表示情報生成部4の一例として、後述する表示情報作成処理66を実行するCPU112が挙げられる。実行スケジュール表示情報の一例として、後述するグループ監視図(図16)が挙げられる。
このように構成することにより、ジョブフローの監視において、ジョブの実行状況及びジョブ間の遷移関係の把握が容易になる。
属性情報は、ジョブの実行条件についての情報を含んでもよい。また、属性情報は、ジョブに付与された名称またはグループについての情報を含んでもよい。
このように構成することにより、ジョブの実行条件や特徴を利用することにより、運用時におけるジョブの分類情報を抽出することができる。
図2は、本実施形態におけるバッチ業務の集約時の処理、及び集約後のバッチ業務の管理・監視の処理フローを示す。バッチ業務集約の処理フローは、以下のようになっている。まず、各支店・拠点(18)から既存のバッチ情報がデータセンタ11に集められる(S1)。
データセンタ11のコンピュータ12は、集められたバッチ情報を情報処理システム17で実行できるように、バッチ情報(修正前バッチ情報13)を修正する(S2)。例えば、コンピュータ12は、バッチ情報内のジョブ名、そのジョブを実行するサーバのIP(Internet Protocol)アドレスや、異常時の通知先などを機械的に置き換える。
コンピュータ12は、修正したバッチ情報(修正後バッチ情報14)を情報処理システム17に投入する(S3)。
修正したバッチ業務が情報処理システム17にて正しく動作するかのテストがなされる(S4)。
運用管理者は、コンピュータ12を用いて情報処理システムを運用・監視する(S5)。
次に、集約後のバッチ業務の管理・監視の処理フローについて説明する。本実施形態は、大規模バッチ業務の管理・監視を容易にするための技術であり、運用管理(監視)上、理想的なジョブフローを自動的に構築・表示することを可能とする。
コンピュータ12は、複数のバッチ業務を形成するジョブフローから、ジョブ間の関係性情報を抽出し(S6)、1つのジョブフローを作成する。そこで、運用管理(監視)上、理想的なジョブフローを構築するために、コンピュータ12は、以下の処理を行う。
コンピュータ12は、仮想化集約時には修正前バッチ情報13からジョブの分類情報を抽出する。(S7(S7−1))また、コンピュータ12は、運用時には修正後バッチ情報14からジョブの分類情報を抽出する(S7(S7−1))。
コンピュータ12は、抽出したジョブ分類情報に基づいて、ジョブのグループ化によるジョブフローを表示する(S8)。
<S7:ジョブの分類情報を抽出する処理>
・S7−1(仮想化集約時)
コンピュータ12は、集約前バッチ情報13から、各ジョブを実行する支店・拠点についての情報を抽出し、その抽出した支店・拠点についての情報に基づいてジョブを分類する。
集約前の支店・拠点ごとのバッチ業務は、それぞれ業務上意味のある単位となっている。そのため、抽出された支店・拠点についての情報に基づいてバッチ業務内の各ジョブを支店・拠点単位でグループ化することで、ジョブを業務上意味のある単位でグループ化することが可能となる。
ここでは、コンピュータ12は、図3に示すように、各ジョブと支店・拠点情報の対応関係をテーブル化したジョブ・支店対応テーブルを生成する。そして、コンピュータ12は、S8でジョブをグループ化する際にそのジョブ・支店対応テーブルを利用する。
コンピュータ12は、図2のバッチ業務の集約時のフローにおける、バッチ情報を集約後の環境に応じて置き換えるタイミング(S2)にて、集約前バッチ情報13内のジョブが、それぞれどこの支店・拠点で実施されていたかの情報を抽出する。
各ジョブが集約前に実行されていた支店・拠点情報は、集約前バッチ情報内の、ジョブ名の特徴、ジョブの実行サーバのIPアドレス情報、ジョブやジョブフローの異常通知先に基づいて抽出できる。図3に示すように、コンピュータ12は、抽出したジョブと支店・拠点情報との対応関係をテーブル化したジョブ・支店対応テーブルに保存する。
ジョブが実行されていた支店・拠点情報の抽出方法は、以下のようになる。
・ジョブの実行サーバのIPアドレス情報を利用する方法
ジョブ、もしくはジョブフロー単位に実行サーバのIPアドレスが指定されている。また、支店・拠点ごとにIPアドレスのサブネット情報が異なる。コンピュータ12は、この特徴を利用し、ジョブに設定されている実行サーバのIPアドレスのサブネット情報から、ジョブが実行されていた支店・拠点を判別する。
・ジョブの異常通知先を利用する方法
ジョブ、もしくはジョブフロー単位に異常通知先が設定されている。この異常通知先は、集約前は支店・拠点ごとに異なる運用管理者またはオペレータが指定されている。そのため、コンピュータ12は、設定されている異常通知先から、ジョブが実行されていた支店・拠点を判別する。
なお、実際の支店・拠点名が取得できるわけでは無いので、ジョブ・支店対応テーブルにおける支店・拠点情報として識別子を設定する(例えば、1つ目の支店・拠点情報は、「ID=0001」とし、2個目は「ID=0002」、など)。
・S7−2(運用時)
コンピュータ12は、仮想化集約時以外の場合(運用時)においても、修正後バッチ情報14の特徴を利用することで、各ジョブを分類することができる。仮想化集約に伴い、ジョブ数が大量になって監視が難しくなる場合は、上記のS7−1の処理でジョブを分類できる。
しかしながら、特に仮想化集約を実施しないが大量ジョブ環境であり、監視・管理を容易にしたい場合や、仮想化集約後の環境であっても他の方法でグループ化したい場合は、S7−2の処理にてジョブを分類し、分類した情報をテーブル化することができる。S8でジョブをグループ化する際に、コンピュータ12は、ここで得られたテーブルを利用する。
運用時のジョブの分類情報の抽出方法は以下のようになる。コンピュータ12は、これらの抽出方法の中から適切な抽出方法を選択し、ジョブを分類する。
・ジョブと支店・拠点情報の対応関係を利用する方法
コンピュータ12は、仮想化集約時に取得した、ジョブ・支店対応テーブル(図3)から、ジョブを分類することができる。図4に示すように、ジョブ・支店対応テーブルにおける支店・拠点情報がそのままジョブ分類情報16(ジョブ分類テーブル16−1)となる。
・ジョブ名の特徴を利用する方法
ジョブ名は、システムや業務単位に特定の接頭語や接尾語を付けている場合がある。例えば、ジョブ名は、「○○システム_開始処理」や、「△△業務_マスタ更新処理」のようにシステム名や業務名が接頭語や接尾語に付いている場合などがある。コンピュータ12は、このジョブ名の規則性に基づいて各ジョブを分類する。
例えば、オペレータにジョブ名の「区切り文字」と、「分類対象のトークンの位置」を指定してもらう。この場合、コンピュータ12は、ジョブ名を区切り文字で区切り、指定された位置のトークンによって分類する。例えば、区切り文字が「_」、トークン位置が「先頭」の場合に、「○○システム_開始処理」や「△△業務_マスタ更新処理」などは「○○システム」、「△△業務」のような分類に分けることができる。
なお、仮想化集約時のバッチ情報の修正時に、各支店・拠点で実施されていたジョブのジョブ名に「支店○」を付与して、「支店A_当日業務開始処理」、「支店B_当日業務開始処理」のように、どの支店・拠点で実施されていたかの情報が付与される場合もある。そのため、支店・拠点ごとの分類がジョブ名で実施できるようになることもある。
ジョブの起動予定日情報(スケジュール情報)を利用する方法
ジョブ単位に起動予定日情報が指定されている。この起動予定日情報が同じジョブは、同じ業務の一部や関連している業務のジョブであるため、同じ日に起動すると考えることができる。例えば、A業務に関するジョブは毎週月曜起動、B業務に関するジョブは平日起動、などと運用されることが考えられる。そのため、コンピュータ12は、同じ起動予定日情報を持つジョブで分類することができる。
<S8:ジョブの分類情報に基づくジョブのグループ化によるジョブフロー表示処理>
コンピュータ12は、S7で抽出したジョブとジョブの分類情報の対応関係から、ジョブをグループ化して表示する。ジョブをグループ化して表示することで、大量のジョブが存在するジョブフローにおいて、画面内にジョブが収まりやすくなる。また、集約前には支店・拠点で行われていた業務単位や、業務単位の起動予定日情報でグループ化するため、特定の業務処理や業務間の関係性などの把握が容易になる。
S8の前提として、グルーピングを実施する前に、例えば、図5に示すように、上述した第3技術等を用いて複数のジョブから1つのジョブフロー(ジョブ間の関係性情報15)を作成する。
図5は、本実施形態におけるジョブ間の関係性情報15の一例を示す。ここで、コンピュータ12は、S7で作成したジョブ分類テーブル16−1を利用することにより、図5のジョブフローに含まれるジョブの分類を明確化してグループ化できる。
図6は、本実施形態における各ジョブとジョブ分類情報との関係性を示す。図6は、図5のジョブフローに含まれるジョブの分類を明確化したジョブフローである。
なお、以下では、仮想集約時の支店・拠点情報に基づいたグループ化の例を示す。本来のジョブ名は、ジョブ1〜13であるが、図6および以下では分かりやすいように支店情報で表現している。
上記までで、ジョブ間の関連性情報15、およびジョブ分類情報16が得られている。そこで、コンピュータ12は、ジョブ間の関連性情報15、およびジョブ分類情報16に基づいて、以下の方法でグループ化を実施し、表示することで監視しやすくする。
(1) まず、コンピュータ12は、S7で作成したジョブ分類テーブル16−1と、ジョブ間の関連性情報15に基づいて、同じ分類情報を持つ連続しているジョブを1つのグループにし、図7に示すグループ・ジョブ関連テーブルを作成する。
このとき、分岐しているジョブの場合、分岐先の1つでも同じ分類情報のジョブである場合、その分岐しているジョブを同じグループとする。後続のジョブが全て異なる分類情報である場合、後続のジョブそれぞれは単独のジョブのグループとなる。図8に、ジョブを同じ分類情報で連続している区間でグループ化したジョブフロー図を示す。
(2) 次に、コンピュータ12は、上記(1)で作成したグループとジョブの関係テーブルと、ジョブの接続関係とに基づいて、図9に示すようにグループ間の接続関係をテーブル化した後続グループ管理テーブルを生成する。図10に、本実施形態におけるグループ間の関連性を表す図を示す。
図10のように、グループ間の関係から、ジョブをグループ化して表示することができる。しかしながら、図10の関係図だけでは処理の順序が分かりにくい。そこで、以下の手順を実施して現在実行中のジョブが、全体のどこに位置しているジョブなのかを見える化できるようにする。
(3) コンピュータ12は、各ジョブに対して、先頭ジョブ(ジョブフローの最初に実行されるジョブ)からの距離(矢印の数)を求める。先頭ジョブが複数ある場合や、分岐・収束がある場合は、先頭ジョブからの距離が複数存在する。そのような場合には、最も長い距離をそのジョブへの距離とする。図11に、先頭ジョブから各ジョブへの距離を管理する距離管理テーブルを示す。
さらに、ジョブフローと各ジョブの距離の関係の一例を図12に示す。図12は、図11の距離管理テーブルを用いて、図8のジョブフロー図を、先頭ジョブからの距離で区切ったものである。
(4) 次に、コンピュータ12は、後続グループ管理テーブル(図9)と、距離管理テーブル(図11)より、各グループの実行区間を判定し、テーブル化する。具体的には、コンピュータ12は、グループに含まれるジョブの中の最短の距離と最長の距離を求める。ここで、最短距離〜最長距離の範囲がグループの実行区間となる。
また、コンピュータ12は、ジョブの接続関係(図9)と、先頭ジョブから各ジョブへの距離管理テーブル(図11)から、各グループの後続グループへの接続する区間を算出する。コンピュータ12は、図13に示すように、算出した区間を後続グループ管理テーブルに追加した実行区間管理テーブルを生成する。図14に、グループと区間の関係の一例を示す。
(5) 同じジョブ分類のグループは、1つの横軸で表示される。すなわち、同じ区間に、同じジョブ分類のグループが複数存在する場合、1つにまとめて表示される。例えば、区間1には、支店Bに対するグループのGrpB−1とGrpB−2が存在するので、GrpB−1とGrpB−2がGrpBにまとめられて表示される。
図15は、ジョブ分類ごとのグループと、グループ間の関連性の一例を示す。同じ区間に存在する同じジョブ分類のグループをまとめた後、実行区間管理テーブル(図13)を利用して、図15に示すようにグループ間の関連性が矢印で表示される。
すなわち、連続するジョブ間において先行するジョブと、そのジョブの後続のジョブとが異なるグループに属する場合には、その遷移情報が矢印で表示される。
(6) 図16は、本実施形態におけるグループ監視図を示す。監視時は、図16に示すように、モニタの画面にグループ監視図が表示される。グループ監視図は、縦軸にグループ化された属性情報、横軸に時間が示され、ジョブの実行期間を示したバーを所定時間間隔で区切ったガントチャート形式で表示される。グループ監視図では、現在実行中のジョブと、各グループ内のジョブの区間位置から、各グループの現在の実行位置が太い矢印などで示される。
ジョブの実行に従って、太い矢印が区間0から右側に移動していくことで、ジョブフロー全体に対する現在の実行箇所が分かりやすくなる。また、各グループ内のジョブの実行状況によって太い矢印の色などを変更することで、グループ内ジョブの状態が分かりやすく表示される。
なお、グループ数が多い場合は、グループ間の関係性を示す矢印の表示が多くなり、関係性が分かりにくくなる。そのため、特定のグループを指定した場合は、そのグループに関連する先行・後続関係の矢印のみを表示することで、関係性が分かりやすく表示される。
また、ある区間における各グループ内のジョブにおいて、締め切り時刻が存在している場合は、その時間が表示される。実行完了している場合や遅延している場合は、締め切り時刻と共に状況が示される。
(7) 大量のジョブが存在するジョブフローの場合、区間数が多すぎて、上記(6)のグループ監視図が画面内に収まらない可能性がある。この場合、コンピュータ12は、画面内に収まるように自動、もしくは任意のサイズで横幅を縮小してグループ監視図を表示する。
しかしながら、単純に横幅を縮小するだけでは、1区間の幅が小さくなってしまい、見えにくくなってしまう。そのため、コンピュータ12は、図17に示すように、複数の区間をまとめることで、グループ監視図を縮小して表示させる。
また、複数の区間をまとめた際に、各区間内にグループ間の関係を示す複数の矢印が存在する場合も、同様に全て表示していると、1区間あたりの矢印数が多くなってしまい、見えにくくなってしまう。
そこで、以下の考え方で、区間・区間内の矢印をまとめる。図17の一番上の図に対して、以下の(A)〜(D)を実施したものが、図17の一番下の図となる。
(A) グループ監視図のサイズを自動で変更する場合、監視図の全てを縮小せずに、コンピュータ12は、表示した場合に必要な画面サイズと、現状の画面サイズとの関係から、縮小度を求める。任意のサイズの場合は、オペレータが縮小度を指定する。
(B) コンピュータ12は、縮小度の逆数から、1つの区間にまとめる区間数Iを算出する。図17の例では、縮小度が20%であったため、1/0.2で5区間を新しく1区間としてまとめられている。この際、まとめる区間数I=5区間である。
(C) コンピュータ12は、新しい区間Nと、縮小前の区間「N×I〜(N+1)×I−1」における、それぞれの区間にて、グループ間の関連を示す矢印の対応関係を求める。図17の例では、まとめる区間数Iが5であるため、新しい区間1は、縮小前の区間5〜9に対応している。これから、縮小前の矢印が、新しい区間において、どの区間からどの区間への矢印となるかの対応関係が取得できる。グループ間の関係性と、縮小前後の接続区間情報は、図18に示すように縮小表示管理テーブルに保存される。
(D) コンピュータ12は、縮小表示管理テーブル(図18)に保存された新しい区間におけるグループ間の関連情報から、新しい区間にて、区間内のグループ間関連性が同じ矢印の情報を1つにまとめる。縮小表示管理テーブル(図18)の「縮小後矢印ID」列を参照して、例えば、新しい区間において、GrpAの区間0からGrpBの区間0への矢印が複数存在する場合、コンピュータ12は、その複数の矢印を1つの矢印として表示する。
また、コンピュータ12は、縮小表示管理テーブルにおいて矢印の方向が逆のものがある場合には両方向矢印として1つにまとめる(縮小表示管理テーブルの「双方向判定フラグ」列を参照)。例えば、新しい区間において、GrpAの区間0からGrpBの区間0への矢印と、GrpBの区間0からGrpAの区間0への矢印が存在する場合、これらの2つの矢印の方向は反対方向である。この場合、コンピュータ12は、片方向矢印2つではなく、両方向矢印1つとして表示する。
これらにより、矢印の数を減らしてもグループ間の関係性の表示は保つことができる。
コンピュータ12は、上記(A)〜(D)を実施し、グループを縮小表示した後、上記(6)のように各グループの実行状況や、締め切り時刻を表示する。これにより、縮小表示状態でも同様に各グループの状況を監視することができる。
本実施形態によれば、先頭ジョブからの距離および各グループの実行区間に基づいて、グループ表示が行われる。グループ間の関係性が分かる形式にて、画面サイズに応じて表示サイズが自動的に変更される。また、大量ジョブ環境であっても、ジョブフロー全体の実行状況を分かりやすく、俯瞰的に監視・管理しやすくなる。
また、ジョブを集約前の支店・拠点情報や、運用時のジョブの分類情報によってグループ化することにより、業務上の意味を理解しやすい形で表示させることができるため、監視・管理しやすくなる。
上記のようなグループ化を自動で実施することで、サーバ仮想化集約におけるジョブ集約時の作業負荷を抑制できる。
以下に、本実施形態の実施例の詳細について説明する。
<バッチ移行処理>
図19は、本実施形態(実施例)におけるバッチ移行処理についてのシステム構成図を示す。各支店・拠点から収集されたバッチ情報を仮想化集約後の環境に移行する際に、図19に示す処理が行われる。
移行前バッチ情報32は、仮想化集約前の各支店・拠点から、所定のツールなどで集約されているとする。
ジョブ設定置換情報31とは、ジョブの設定情報を移行後の環境に自動的に置き換える際に利用する、置き換え対象の情報と、置き換え後の情報のことである。例えば、ジョブの設定には「ジョブの実行サーバ情報」などがある。ジョブ設定置換情報31には、移行前の実行サーバ情報Aを移行後の実行サーバ情報Bで置き換える、といった情報が格納されている。ジョブ設定置換情報31は、予め作成されている。
移行ツール33は、仮想化集約前のバッチ情報及びジョブ情報をデータセンタ内のシステムに移行するためのツールであり、オペレータの操作によりコンピュータ上で実行される。移行ツール33は、バッチ変換処理34、抽出処理35を実行する。
バッチ変換処理34は、仮想化集約前のバッチ情報32を、仮想化集約後の環境で利用できるように変換する。例えば、集約前後でバッチ管理製品が異なる場合や、製品のバージョンが異なる場合に、集約後の環境におけるバッチ管理製品で利用できるように、バッチ変換処理34は、次の処理を行う。すなわち、バッチ変換処理34は、バッチ情報(移行前バッチ情報)32を変換することにより、移行後バッチ情報36を生成する。
さらに、バッチ変換処理34は、ジョブ設定置換情報31を用いて、ジョブの設定情報のうち、移行前後で設定の変更が必要な情報を置き換え、移行後の環境に合わせたパラメータをバッチ情報に設定する。
抽出処理35は、移行前バッチ情報32から、各ジョブがどこの支店・拠点で実行されていたかの情報を抽出する。すなわち、抽出処理35は、移行前バッチ情報32から、ジョブフローのグループ化表示に必要な、各ジョブがどこの支店・拠点で実行されていた情報を抽出する。抽出処理35は、抽出されたジョブと支店との対応関係から、ジョブ・支店対応テーブル41を作成し、サーバ39内の定義情報データベース(DB)40に格納する。
登録ツールは、移行後バッチ情報36を運用バッチ情報42としてサーバ39内の定義情報DB40に登録する。
図20は、本実施形態(実施例)におけるジョブ・支店対応情報一時テーブルを示す。ジョブ・支店対応情報一時テーブル51は、抽出処理35にて用いられる、ジョブが実行されていた支店・拠点情報を抽出するための一時テーブルである。ジョブ・支店対応情報一時テーブル51は、「ジョブ番号」、「サブネット情報」、「異常通知先」、「支店・拠点番号」のデータ項目を含む。
図21は、本実施形態(実施例)におけるジョブ・支店対応テーブルを示す。ジョブ・支店対応テーブル41は、「支店・拠点番号」、「ジョブ番号」のデータ項目を含む。
図22は、本実施系形態(実施例)におけるバッチ移行処理の全体フローを示す。バッチ移行処理では、以下の処理を実施する。
移行ツール33は、移行前バッチ情報32および各ジョブの情報を、移行後の環境における製品・バージョンに応じたジョブ情報に変換する(S11)。
移行ツール33は、ジョブ設定置換情報31を用いて、S11で変換したジョブ情報を移行後の環境で利用できるように変換する(S12)。ここで、ジョブ設定置換情報31が存在している場合、移行ツール33は、次の処理を行う。すなわち、移行ツール33は、S11で変換されたジョブ情報に、ジョブ設定置換情報31に従って置き換え対象の設定情報がある場合、移行ツール33は、S11で変換されたジョブ情報内のジョブの設定情報を置き換えて移行後バッチ情報36を生成する。移行ツール33は、生成した移行後バッチ情報36を出力する。
移行ツール33は、移行前バッチ情報32から、各ジョブがどこの支店・拠点で実行されていたかの情報を抽出する抽出処理35を行い、ジョブ管理製品のサーバ39上の定義情報DB40へ登録する(S13)。S13の処理については、図23にて詳述する。
オペレータは、移行後バッチ情報36に対して、必要であれば修正を実施する(S14)。修正は手作業や、別のツールを利用することにより実施される。
オペレータは、登録ツール37を利用して、移行後バッチ情報36をジョブ管理製品のサーバ39上の定義情報DB40に登録する。
図23は、本実施形態(実施例)におけるジョブが実行されていた支店・拠点情報の抽出処理(S13)のフローを示す。
移行ツール33は、移行前バッチ情報32から、ジョブの実行サーバのIPアドレスを取得し、IPアドレスからサブネット情報を抽出する。移行ツール33は、ジョブ名(ジョブ番号)と、サブネット情報の関係を、ジョブ・支店対応情報一時テーブル51に格納する(S13−2)。
移行ツール33は、移行前バッチ情報32から、ジョブの異常時の通知先情報を取得する。移行ツール33は、ジョブ名(ジョブ番号)と、通知先情報の関係を、ジョブ・支店対応情報一時テーブル51に格納する(S13−3)。
移行ツール33は、移行前バッチ情報32の全てのジョブについて、S13−2〜S13−3の処理を繰り返す。
移行後バッチ情報32の全てのジョブについてS13−2〜S13−3の処理後、移行ツール33は、ジョブ・支店対応情報一時テーブル51に格納したジョブのサブネット情報を確認する。確認したジョブのサブネット情報が、それまでに確認したジョブのサブネット情報と異なる場合、移行ツール33は、そのジョブに新しい支店・拠点番号を割り振り、ジョブ・支店対応情報一時テーブル51に登録する。
または、確認したジョブのサブネット情報が、それまでに確認したジョブのサブネット情報と同じ場合は、移行ツール33は、次の処理を行う。すなわち、移行ツール33は、その確認済みのジョブに割り振られていた支店・拠点番号と同じ支店・拠点番号を、現在確認中のジョブに割り当てて、ジョブ・支店対応情報一時テーブル51に登録する(S13−5)。
サブネット情報が設定されていないジョブの場合には、移行ツール33は、異常通知先が同じジョブの、支店・拠点番号を割り当てて、ジョブ・支店対応情報一時テーブル51に登録する。ただし、同じ異常通知先が設定されているジョブが複数存在し、それぞれが異なる支店・拠点番号を持つ場合は、移行ツール33は、支店・拠点番号を割り当てない(S13−5)。
サブネット情報も異常通知先も設定されていないジョブの場合には、移行ツール33は、そのジョブを支店・拠点情報無しのジョブとして分類する。そのため、例えば、「0」など、特殊な支店・拠点番号が割り当てられて、ジョブ・支店対応情報一時テーブル51に登録される。
移行ツール33は、作成した一時テーブル51内の全てのジョブについて、S13−5〜S13−7の処理を繰り返す。作成した一時テーブル51内の全てのジョブについて、S13−5〜S13−7の処理を完了後、移行ツール33は、次の処理を行う。すなわち、移行ツール33は、ジョブ・支店対応情報一時テーブル51に格納されたジョブ名と、支店・拠点番号の関係を、定義情報DB40内のジョブ・支店対応テーブル41に格納する(S13−8)。
<ジョブフローのグループ化表示処理>
図24は、本実施形態(実施例)におけるジョブフローのグループ化表示処理についてのシステム構成図を示す。仮想化集約後の環境や、運用環境でバッチ情報を運用する際の、ジョブフローのグループ化表示を実施する際に、図24に示す処理が行われる。
図24のシステムは、サーバ39、クライアント装置(以下、「クライアント」と称する)81を含む。
サーバ39は、スケジューラ61、ジョブ実行部62、定義情報DB40、表示情報作成部63、メモリ67を含む。スケジューラ61、ジョブ実行部62、表示情報作成部63は、CPU(Central Processing Unit)等のプロセッサにより実行される。定義情報DB40は記憶装置に格納されている。
スケジューラ61は、ジョブの実行スケジュールを管理する。ジョブ実行部62は、スケジューラ61により管理されたジョブを、スケジュール情報に基づいて、実行する。
定義情報DB40は、上述したバッチ移行処理にて得られたジョブ・支店対応テーブル41、運用バッチ情報42を格納する。
表示情報作成部63は、クライアント81からの要求に対応する情報を作成し、クライアント81に返却する。表示情報作成部63は、判定処理64、抽出処理65、表示情報作成処理66を実行する。
判定処理64は、ジョブ間の関連情報を判定する。すなわち、判定処理64は、運用バッチ情報42からジョブ間の関連情報を抽出し、ジョブフローの形で表示できるようにジョブ間の関連情報をまとめる。表示情報作成部63は、ジョブ間の関連情報をジョブ関連情報テーブル71として保持し、ジョブフローのグループ化表示時に利用する。
抽出処理65は、ジョブ分類情報を抽出する。すなわち、抽出処理65は、バッチ移行処理などでジョブ・支店対応テーブル41が作成されていない場合や、グループ化の方法が指定されている場合などに、次の処理を行う。すなわち、抽出処理65は、運用バッチ情報42に基づいてジョブを分類し、ジョブ分類テーブル72を作成する。
表示情報作成処理66は、ジョブ分類情報に基づくジョブのグループ化による表示情報を作成する。すなわち、表示情報作成処理66は、ジョブ関連情報テーブル71とジョブ分類テーブル72を利用し、ジョブフローをグループ化して表示するための情報を作成する。
メモリ67は、ジョブ関連情報テーブル71、ジョブ分類テーブル72を保持する。さらに、メモリ67は、ジョブ分類情報一時テーブル73、実行区間管理テーブル74、距離管理テーブル75、グループ・ジョブ関連テーブル76、後続グループ管理テーブル77、グループ表示用テーブル78、縮小表示管理テーブル79を保持する。
クライアント81は、修正後バッチ情報内の表示対象となるジョブフローの情報、およびジョブのグループ化情報をサーバ39から受信する。すると、クライアント81は、ジョブフローをグループ化して画面に表示する表示処理82を実行する。
図25は、本実施形態(実施例)におけるジョブ関連情報テーブル71を示す。ジョブ関連情報テーブル71は、ジョブ間の関連情報を管理するテーブルである。ジョブ関連情報テーブル71は、「ジョブ番号」、「ジョブ名」、「後続ジョブ番号」のデータ項目を含む。
「ジョブ番号」には、ジョブを識別する番号が格納される。「ジョブ名」には、ジョブ番号に対応するジョブ名が格納される。「後続ジョブ番号」には、データ項目「ジョブ番号」に格納されているジョブ番号で示されるジョブ後に実行させるジョブのジョブ番号が格納される。
図26は、本実施形態(実施例)におけるジョブ分類テーブル72を示す。ジョブ分類テーブル72は、ジョブとジョブ分類情報の対応テーブルである。ジョブ分類テーブル72は、「ジョブ分類情報」、「ジョブ番号」のデータ項目を含む。
「ジョブ分類情報」には、ジョブを分類する種別の情報(例えば、支店・拠点番号)が格納される。「ジョブ番号」には、データ項目「ジョブ分類情報」に格納されている情報に対応するジョブ番号が格納される。
図27は、本実施形態における、ジョブ分類情報一時テーブル73を示す。ジョブ分類情報一時テーブル73は、ジョブ分類情報の一時テーブルである。ジョブ分類情報一時テーブル73は、「ジョブ番号」、「文字列トークン」、「起動予定日情報」、「ジョブ分類情報」のデータ項目を含む。
「ジョブ番号」には、ジョブ番号が格納される。「文字列トークン」には、単語(文字列トークン)が格納される。「起動予定日情報」には、そのジョブ番号で示されるジョブの起動予定日が格納される。「ジョブ分類情報」には、ジョブを分類する種別の情報(例えば、支店・拠点番号)が格納される。
図28は、本実施形態(実施例)における実行区間管理テーブル74を示す。実行区間管理テーブル74は、グループ、グループ内ジョブ、後続グループ、実行区間を管理するテーブルである。実行区間管理テーブル74は、「グループ番号」、「ジョブ番号」、「ジョブ分類」、「実行区間」、「後続グループ番号」、「接続区間」のデータ項目を含む。
「グループ番号」には、ジョブがグループ化されたグループを特定する番号が格納される。「ジョブ番号」には、グループ化されたジョブ番号が格納される。「ジョブ分類情報」には、ジョブ分類情報が格納される。「実行区間」には、グループ化されたジョブが実行する区間が格納される。「後続グループ番号」には、実行区間における、後続のグループ番号が格納される。「接続区間」には、「後続グループ番号」(接続先)への接続情報が格納されている。
図29は、本実施形態(実施例)における距離管理テーブル75を示す。距離管理テーブル75は、各ジョブの先頭ジョブからの距離を管理するテーブルである。距離管理テーブル75は、「ジョブ番号」、「距離」のデータ項目を含む。
「ジョブ番号」には、ジョブ番号が格納される。「距離」には、各ジョブの先頭ジョブからの距離が格納される。
図30は、本実施形態(実施例)におけるグループ・ジョブ関連テーブル76を示す。グループ・ジョブ関連テーブル76は、グループとジョブと関連するテーブルである。グループ・ジョブ関連テーブル76は、「グループ番号」、「ジョブ番号」、「ジョブ分類情報」のデータ項目を含む。
「グループ番号」には、グループを識別するグループ番号が格納される。「ジョブ番号」には、ジョブ番号が格納される。「ジョブ分類情報」には、ジョブ分類情報が格納される。
図31は、本実施形態(実施例)における後続グループ管理テーブル77を示す。後続グループ管理テーブル77は、グループ、ジョブ、後続グループの関係テーブルである。後続グループ管理テーブル77は、「グループ番号」、「ジョブ番号」、「ジョブ分類情報」、「後続グループ番号」のデータ項目を含む。
「グループ番号」には、グループ番号が格納される。「ジョブ番号」には、ジョブ番号が格納される。「ジョブ分類情報」には、ジョブ分類情報が格納される。「後続グループ番号」には、後続グループのグループ番号が格納される。
図32は、本実施形態(実施例)におけるグループ表示用テーブル78を示す。グループ表示用テーブル78は、グループ監視図(図16)として表示する内容を保持する。グループ表示用テーブル78は、「ジョブ分類情報」、「グループ番号」、「実行区間」、「後続ジョブ分類情報」、「接続区間」、「表示状態」、「状態表示位置」、「締め切り時刻」のデータ項目を含む。
「ジョブ分類情報」には、ジョブ分類情報が格納される。「グループ番号」には、グループ番号が格納される。「実行区間」には、グループ監視図における実行区間が格納される。「後続ジョブ分類情報」には、後続のジョブのジョブ分類情報が格納される。「接続区間」には、当該実行区間において、当該ジョブ分類情報から後続ジョブ分類情報への接続情報が格納される。「表示状態」には、当該ジョブ分類情報の表示状態(実行中、異常終了等)が格納される。「状態表示位置」には、「表示状態」を表示する区間情報が格納される。「締め切り時刻」には、当該ジョブ分類情報に関する締め切り時刻が格納される。
図33は、本実施形態(実施例)における縮小表示管理テーブル79(3区間を1区間に縮小時)を示す。縮小表示管理テーブル79は、縮小前後のグループ間関係の対応テーブルである。縮小表示管理テーブル79は、「グループ」、「後続グループ」、「縮小前接続区間」「縮小後接続区間」、「縮小後矢印ID」、「双方向判定フラグ」のデータ項目を含む。
「グループ」には、グループ番号が格納される。「後続グループ」には、当該グループの処理後に実行されるグループ番号が格納される。「縮小前接続区間」には、縮小前の当該グループから後続グループへの接続情報が格納される。「縮小後接続区間」には、縮小後の当該グループから後続グループへの接続情報が格納される。「縮小後矢印ID」には、縮小後の矢印を識別する情報が格納される。「双方向判定フラグ」には、両方向矢印を判別するフラグ(Yes:双方向矢印、No:片方向矢印)が格納される。
図34は、本実施形態(実施例)における縮小後グループ表示用テーブル(3区間を1区間に縮小時)を示す。縮小後グループ表示用テーブル80の内容は、グループ表示用テーブル78で表示されるグループ監視図を縮小した内容が格納される。
縮小後グループ表示用テーブル80は、「ジョブ分類情報」、「グループ番号」、「実行区間」「継続ジョブ分類情報」、「接続区分」、「表示状態」、「状態表示位置」、「締切時刻」のデータ項目を含む。
図35は、本実施形態(実施例)におけるジョブフローのグループ化表示処理の全体フローを示す。クライアント81から、ジョブのグループ化表示依頼があった場合、表示情報作成部63は、以下の処理を実施する。
表示情報作成部63は、ジョブ間の関連情報を取得する(S21)。ここでは、表示情報作成部63は、集約後バッチの各ジョブ情報を参照し、ジョブ間の依存関係を調べ、関係性を明確にし、ジョブ関連情報テーブル71に格納する。
表示情報作成部63は、ジョブの分類情報を抽出する(S22)。S22の詳細については、図36で説明する。
図36は、本実施形態(実施例)におけるジョブの分類情報の抽出処理(S22)のフローを示す。仮想化集約時や、手作業でジョブ分類テーブル72が作成されていない場合に(S22−1で「NO」)、表示情報作成部63は、以下の方法によってジョブの分類情報を抽出し、ジョブ分類テーブル72を作成する。
グループ化方法の設定として「集約前の支店・拠点情報」、「ジョブ名」、「起動予定日情報」のどれかがユーザによって指定されている。表示情報作成部63は、その指定された情報に基づいて、後述する方法で分類情報を抽出する。
集約前の支店・拠点情報でのグループ化が指定されている場合に(S22−2で「YES」)、仮想化集約時にジョブ・支店対応テーブル41が作成されている場合は、表示情報作成部63は、次の処理を行う(S22−3)。すなわち、表示情報作成部63は、ジョブ・支店対応テーブル41のジョブと支店・拠点番号の対応関係から、ジョブの分類を実施する。具体的には、表示情報作成部63は、ジョブ・支店対応テーブル41に基づいて、支店・拠点番号をジョブ分類情報として、ジョブ名とジョブ分類情報の対応関係をジョブ分類テーブル72に格納する。
なお、ジョブ・支店対応テーブル41が存在しない場合は、表示情報作成部63は、後述する別のグループ化方法を指定してもらうようにユーザに促す。
ジョブ名でのグループ化が指定されている場合(S22−2で「NO」、S22−4で「NO」、S22−5で「ジョブ名」)、表示情報作成部63は、次の処理を行う(S22−6)。すなわち、表示情報作成部63は、さらに、ユーザから「区切り文字」および「分類対象の文字列トークン位置」を指定してもらい、文字列トークンの種類でジョブを分類する。ここでは、表示情報作成部63は、指定された「区切り文字」によってジョブ名を分割する。表示情報作成部63は、指定された「文字列トークンの位置」に対応する、区切られた文字列のトークンを確認する。
すなわち、関連するシステムや業務のジョブ名は、通常は特定の規則に従って設定されている。表示情報作成部63は、その規則を用いて、ジョブを分類する(例えば、会計システムのジョブは「会計シ_〜処理」、受注システムは「受注シ_〜処理」のようにすることが多い)。
例えば、「○○システム_開始処理」や「○○システム_バックアップ処理」、「△△システム_発注処理」のようなジョブが存在するとする。この場合に、「区切り文字」としてアンダースコア(_)、「分類対象の文字列トークン位置」として先頭、が選択されていた場合、アンダースコアで区切った文字列の中の先頭のトークンである「○○システム」、「△△システム」によってジョブが分類される。
表示情報作成部63は、同じトークンの文字列をジョブ名に持つジョブに対して同じジョブ分類情報を割り当てて、ジョブ分類テーブル72にジョブとジョブ分類情報の対応関係を追加する。
他に同じトークンを持つジョブが無い場合、表示情報作成部63は、新しいジョブ分類情報を割り当る。他に同じトークンを持つジョブがある場合、表示情報作成部63は、そのジョブの持つジョブ分類情報を取得する。
表示情報作成部63は、ジョブ名、文字列トークン、及びジョブ分類情報を、ジョブ分類情報一時テーブル73に格納する。
起動予定日情報でのグループ化が指定されている場合(S22−5で「起動日情報」)、表示情報作成部63は、ジョブに設定されている起動予定日情報でジョブを分類する(S22−7)。ここでは、表示情報作成部63は、ジョブの起動日情報を確認する。他に同じ起動日情報を持つジョブが無い場合、表示情報作成部63は、新しいジョブ分類情報を割り当る。他に同じ起動日情報を持つジョブがある場合、表示情報作成部63は、そのジョブの持つジョブ分類情報を取得する。表示情報作成部63は、ジョブ名と起動日情報、ジョブ分類情報をジョブ分類情報一時テーブルに格納する。
具体的には、通常は業務ごとに異なる起動予定日情報となっているため、ある業務に対応するジョブには同じ起動予定日情報が設定されている。そのようなジョブの起動予定日情報は異なる業務に対応するジョブとは異なる起動予定日情報となっている。
例えば、ジョブAが平日起動、ジョブBが毎週月曜、ジョブCが毎週月曜、の場合にはジョブBとジョブCは起動予定日情報が同じであることから、表示情報作成部63は、同じ分類のジョブとして判定する。この場合、表示情報作成部63は、同じ起動予定日情報に持つジョブに対して同じジョブ分類情報を割り当てて、ジョブ分類テーブル72にジョブとジョブ分類情報の対応関係を追加する。
表示情報作成部63は、ジョブ分類情報一時テーブル73から、ジョブ名と、ジョブ分類情報の関係をDBのジョブ分類テーブル72に格納する(S22−8)。図35の説明に戻る。
表示情報作成部63は、グループとジョブの関係性を導出する(S23)。表示情報作成部63は、ジョブ関連情報テーブル71におけるジョブフローの接続関係と、ジョブ分類テーブル72におけるジョブの分類情報の対応関係から、先行・後続の接続関係にあり、同じ分類情報のジョブの範囲を1つのグループとしてまとめる。S23の処理について、図37及び図38を用いて説明する。
図37及び図38は、本実施形態(実施例)におけるグループとジョブの関係性の導出処理(S23)のフローを示す。表示情報作成部63は、あるジョブとそのジョブに対する先行ジョブとが同じ分類情報であるかを判定する。あるジョブとそのジョブに対する先行ジョブとが同じ分類情報のジョブである場合、表示情報作成部63は、それらのジョブに同じグループの番号を割り当てる(S23−3)。
より具体的には、表示情報作成部63は、あるジョブ(対象ジョブ)とそのジョブに対する先行ジョブとが同じ分類情報であるかを判定する。対象ジョブとそのジョブに対する先行ジョブとが同じ分類情報のジョブである場合、表示情報作成部63は、先行ジョブに割り当てられているグループ番号を確認する。先行ジョブに既にグループ番号が割り当てられている場合、表示情報作成部63は、対象ジョブも先行ジョブと同じグループ番号とする。表示情報作成部63は、グループ・ジョブ関連テーブル76に、対象ジョブとその先行ジョブとの対応関係を追加する。
なお、複数の先行ジョブが同じジョブ分類情報であって、別のグループ番号を持っている場合、表示情報作成部63は、最初に対象ジョブに割り当てたグループ番号以外のグループに属するジョブを、対象ジョブに割り当てたグループ番号に置き換える。
具体的には、表示情報作成部63は、グループ・ジョブ関連テーブル76における、先行ジョブに対応するグループに属しているジョブを、全て対象ジョブのグループのグループ番号へ変更し、先行ジョブが元々属していたグループをグループ・ジョブ関連テーブル76から削除する。
全ての先行ジョブについて確認が完了するまで、S23−3の処理を繰り返す(S23−2で「NO」)。
次に、表示情報作成部63は、対象ジョブと対象ジョブに対する後続ジョブとが同じ分類情報であるかを判定する。対象ジョブと対象ジョブに対する後続ジョブとが同じ分類情報のジョブである場合、表示情報作成部63は、対象ジョブと後続ジョブに同じグループの番号を割り当てる。
また、先行・後続関係にあるジョブが複数存在し、それぞれに異なるグループ番号が割り当てられている場合は、表示情報作成部63は、同じグループとしてグループ番号を1つにまとめる。表示情報作成部63は、ジョブとグループ番号の関係を、グループ・ジョブ関連テーブル76に格納する。
より具体的には、先行ジョブにて、対象ジョブにグループ番号を割当てた場合であって(S23−5で「YES」)、対象ジョブに対する後続ジョブが存在する場合、表示情報作成部63は、対象ジョブと後続ジョブのジョブ分類情報が同じであるか否かを判定する。
対象ジョブと後続ジョブとが同じジョブ分類情報である場合、表示情報作成部63は、後続ジョブに割り当てられているグループ番号を確認する。表示情報作成部63は、同じジョブ分類情報を持つ後続ジョブのうち、グループ番号が割り当てられていないジョブに、対象ジョブのグループ番号を割り当てる。
また、表示情報作成部63は、同じジョブ分類情報を持つ後続ジョブのうち、グループ番号が割り当てられている後続ジョブのグループ番号を対象ジョブのグループ番号で置き換える。具体的には、表示情報作成部63は、グループ・ジョブ関連テーブル76における、後続ジョブに対応するグループに属しているジョブを、全て対象ジョブのグループのグループ番号へ変更する。そして、表示情報作成部63は、後続ジョブが元々属していたグループをグループ・ジョブ関連テーブル76から削除する(S23−6)。
先行ジョブにて、対象ジョブにグループ番号を割り当てていない場合であって(S23−5で「NO」)、対象ジョブに対する後続ジョブが存在する場合、表示情報作成部63は、対象ジョブと後続ジョブのジョブ分類情報が同じであるか否かを判定する。
対象ジョブと後続ジョブとが同じジョブ分類情報である場合、表示情報作成部63は、後続ジョブに割り当てられているグループ番号を確認する。後続ジョブのうち、1つでもグループ番号が割り当てられている場合、表示情報作成部63は、対象ジョブも同じグループ番号とする。表示情報作成部63は、グループ・ジョブ関連テーブル76に、対象ジョブと後続ジョブとの対応関係を追加する。
なお、複数後続ジョブが同じジョブ分類情報であり、それぞれ別のグループ番号を持っている場合、表示情報作成部63は、最初に対象ジョブに割り当てたグループ番号以外のグループに属するジョブを、対象ジョブに割り当てたグループ番号に置き換える。具体的には、表示情報作成部63は、グループ・ジョブ関連テーブル76における、後続ジョブに対応するグループに属しているジョブを、全て対象ジョブのグループのグループ番号へ変更する。そして、表示情報作成部63は、後続ジョブが元々属していたグループをグループ・ジョブ関連テーブル76から削除する(S23−7)。
先行ジョブ・後続ジョブの全てが異なるジョブ分類情報であった、もしくは先行ジョブ・後続ジョブのすべてが未確認のためグループ番号が未割当である場合、自ジョブにグループ番号が割り当てられていない。その場合、新しくグループ番号を割り当て、グループ・ジョブ関連テーブル76に対応関係を追加する。
全ての後続ジョブについて確認が完了するまで、S23−6、またはS27−7の処理を繰り返す(S23−4で「NO」)。
全ての後続ジョブについて、S23−6、またはS27−7の処理が完了した場合、表示情報作成部63は、次の処理を行う。先行ジョブ・後続ジョブの全てが異なるジョブ分類情報であった、もしくは先行ジョブ・後続ジョブのすべてが未確認のためグループ番号が未割当である場合、対象ジョブにグループ番号が割り当てられていない。その場合、表示情報作成部63は、新しくグループ番号を割り当て、グループ・ジョブ関連テーブル76に対象ジョブと、先行ジョブ・後続ジョブとの対応関係を追加する。図35の説明に戻る。
表示情報作成部63は、グループ間の接続関係を導出する(S24)。表示情報作成部63は、ジョブ関連情報テーブル71におけるジョブフローの接続関係と、グループ・ジョブ関連テーブル76に基づいて、あるグループの後続グループがどのグループであるかを求める。表示情報作成部63は、求められたグループ間の接続関係を後続グループ管理テーブル77に追加する。S24の処理について、図39を用いて説明する。
図39は、本実施形態(実施例)におけるグループ間の接続関係の導出処理(S24)のフローを示す。表示情報作成部63は、グループ・ジョブ関係テーブル76内の全てのグループについて確認が完了するまで(S24−1)、次の処理を行う。すなわち、表示情報作成部63は、グループ・ジョブ関係テーブル76から、グループ内の全てのジョブに対して、後続ジョブが属するグループ情報を求める。表示情報作成部63は、対象グループから後続ジョブの属するグループへの接続関係を後続グループ管理テーブルに追加する(S24−3)。
なお、対象グループ同士の接続関係や、すでに後続グループ管理テーブル内に存在している接続関係の場合は、表示情報作成部63は、後続グループ管理テーブルへは追加しない。
全てのジョブについて確認が完了するまで、S24−3の処理を繰り返す(S23−4で「NO」)。図35の説明に戻る。
表示情報作成部63は、各ジョブの先頭ジョブからの距離を導出する(S25)。表示情報作成部63は、ジョブ関連情報テーブル71におけるジョブフローの接続関係に基づいて、先頭ジョブから、各ジョブへの距離を求める。先頭ジョブから各ジョブへの距離は、先頭ジョブから各ジョブへ到達するまでに通過した矢印の数となる。
なお、先頭ジョブが複数存在する場合や、途中のルートが分岐している場合、先頭ジョブから各ジョブへの距離が複数存在する。この場合は最大の距離をそのジョブへの距離とする。表示情報作成部63は、求めた各ジョブへの距離情報を、距離管理テーブル75に格納する。S25の処理について、図40を用いて説明する。
図40は、本実施形態(実施例)における各ジョブの先頭ジョブからの距離の導出処理(S25)のフローを示す。表示情報作成部63は、ジョブ関連情報テーブル71におけるジョブフローの接続関係に基づいて、先頭ジョブ(先行ジョブが存在しないジョブ)を探す(S25−1)。
先頭ジョブが存在しない場合(S25−2で「NO」)、本フローは終了する。先頭ジョブが存在する場合(S25−2で「YES」)、表示情報作成部63は、先頭ジョブの距離を0とし、距離管理テーブル75にその先頭ジョブの距離を追加する(S25−2)。
表示情報作成部63は、全ての後続ジョブに対して、再帰的に、先頭ジョブからの距離(=矢印の数)を求め、距離管理テーブル75に追加する。
既に距離管理テーブル75に先頭ジョブからの距離が設定されている場合(そのジョブに到達するルートが複数存在する場合)、表示情報作成部63は、現在の距離と、距離管理テーブル75内の距離とを比較する。距離管理テーブル75内の距離の値より、現在の距離の値の方が大きい場合、表示情報作成部63は、距離管理テーブル75の距離の値を更新する(S25−4)。図35の説明に戻る。
表示情報作成部63は、グループの実行区間および接続区間を導出する(S26)。表示情報作成部63は、後続グループ管理テーブル77と距離管理テーブル75に基づいて、グループの実行区間と、グループ間の接続区間を求める。グループの実行区間とは、グループ内のジョブが開始して、全て終了するまでの区間のことである。
表示情報作成部63は、各グループ内のジョブの距離のうち、最大の距離と最小の距離を求める。表示情報作成部63は、この最小の距離から最大の距離をグループの実行区間として、実行区間管理テーブル74に格納する。
グループ間の接続区間は、あるグループ内のジョブが別のグループ内のジョブに対して関連がある場合に、それらのジョブの距離に基づいて、あるグループから別のグループへの接続が、どの区間で行われているかを表すものである。表示情報作成部63は、対象グループ内のジョブの距離から、関連性のある別のグループ内のジョブの距離を、グループ間の接続区間とし、実行区間管理テーブル74に追加する。S26の処理について、図40を用いて説明する。
図41は、本実施形態(実施例)におけるグループの実行区間および接続区間の導出処理(S26)のフローを示す。表示情報作成部63は、後続グループ管理テーブル77内の全てのグループについて確認が完了するまでS26−2〜S26−4の処理を繰り返す。
表示情報作成部63は、後続グループ管理テーブル77と距離管理テーブル75を参照し、グループ内のジョブに対して、最小の距離と最大の距離を求める。表示情報作成部63は、求めた最小の距離から最大の距離を、そのグループの実行区間とし、実行区間管理テーブル74に追加する(S26−2)。
表示情報作成部63は、グループ内の全てのジョブについて確認が完了するまで、S26−4の処理を行う。
表示情報作成部63は、グループ内のジョブの後続ジョブを探し、そのジョブの距離を距離管理テーブル75から取得する。また、表示情報作成部63は、後続ジョブが属するグループを後続グループ管理テーブル77から取得する。表示情報作成部63は、グループ内のジョブの距離から後続ジョブへの距離を、対象グループから後続グループへの接続区間として、実行区間管理テーブル74に追加する。
なお、同じ後続グループとの接続であっても、接続区間が異なる場合は、表示情報作成部63は、別の接続区間情報として、グループ内のジョブの距離から後続ジョブへの距離を、実行区間管理テーブル74に追加する。
一方で、同じ後続グループで接続区間も同じ場合や、対象グループから対象グループへの接続の場合は、表示情報作成部63は、グループ内のジョブの距離から後続ジョブへの距離を、実行区間管理テーブル74に追加しない。図35の説明に戻る。
表示情報作成部63は、グループ表示用テーブルを作成する(S27)。表示情報作成部63は、実行区間管理テーブル74を参照し、同じジョブの分類情報を持つグループは、1つのグループとして表示するようにまとめ、グループ表示用テーブル78に追加する。
なお、まとめる際に、グループの実行区間が重なっている場合、表示情報作成部63は、実行区間情報を更新し、グループの実行区間が重ならないなら、新たに実行区間情報を追加する。
表示情報作成部63は、実行区間管理テーブル74を参照し、上記でまとめたグループに対し、まとめる前の接続区間情報に基づいて、画面に表示するグループ間の接続関係を表す矢印の表示位置を求め、グループ表示用テーブル78に追加する。
なお、上記でまとめられたグループに置いて、あるグループから別のグループに、同じ接続区間で関係性のある矢印が複数存在する場合は、表示情報作成部63は、1つの矢印として表示するため、テーブル上の矢印の数も1つにまとめる。区間が別であれば、異なる矢印として表示するため、テーブル上の矢印の数はまとめない。S27の処理について、図42を用いて説明する。
図42は、本実施形態(実施例)におけるグループ表示用テーブルの作成処理(S27)のフローを示す。表示情報作成部63は、同じジョブ分類情報のグループ情報に対して、同じ実行区間のもの、実行区間が他の実行区間に含まれるもの、実行区間が重なっているものがグループ表示用テーブル78上に存在しているか確認する。グループ表示用テーブル78上に存在し、実行区間が増加する場合は、表示情報作成部63は、グループ表示用テーブル78上の情報を更新する。
グループ表示用テーブル78上に情報がない、または実行区間が重ならない場合、表示情報作成部63は、新たに実行区間情報を追加する(S27−2)。
表示情報作成部63は、実行区間管理テーブル74内の全てのグループについての確認が完了するまで、S27−2の処理を行う。
実行区間管理テーブル74内の全てのグループについての確認が完了すると(S27−1で「YES」、表示情報作成部63は、実行区間管理テーブル74内の全てのグループについて、S27−4〜S27−5の処理がされたかの確認を行う(S27−3)。
実行区間管理テーブル74内の全てのグループについて、S27−4〜S27−5の処理がされていない場合(S27−3で「NO」)、表示情報作成部63は、次の処理を行う。すなわち、グループ内の全ての接続区間情報について確認が完了した場合(S27−4で「YES」)、表示情報作成部63は、グループ間の接続情報を表す矢印の表示位置を算出する。表示の始点は対象グループ、終点は後続グループである。始点および終点の位置は、実行区間管理テーブル74の接続区間により決定される。表示情報作成部63は、始点および終点の位置情報を、グループ表示用テーブル78の対応するグループに追加する(S27−5)。図35の説明に戻る。
表示情報作成部63は、グループ表示用テーブル78上の、グループの実行状況を更新する(S28)。表示情報作成部63は、実行区間管理テーブル74を参照し、グループ内ジョブの状態を確認する。表示情報作成部63は、表示優先度の高い状態であるジョブの状態および距離を、そのグループの表示状態および状態の表示位置として、グループ表示用テーブル78を更新する。なお、同じ優先度の状態のジョブが複数存在する場合は、表示情報作成部63は、最も距離の小さいジョブの状態・距離を、グループの表示状態および状態の表示位置とする。
表示情報作成部63は、実行区間管理テーブル74を参照し、各区間におけるグループ内ジョブの締め切り時間を確認し、グループ表示用テーブル78を更新する。なお、その1つのグループのある実行区間内のジョブにおいて、異なる複数の締め切り時間が存在する場合は、表示情報作成部63は、1つのグループのある実行区間内に対して複数の締め切り時間の情報をグループ表示用テーブル78に設定する。
また、既にジョブが正常に終了しているものや、遅延しているものについては、表示情報作成部63は、グループ表示用テーブル78に完了や遅延していることを表す属性を追加する。表示情報作成部63は、表示時、その締め切り時間に対応するジョブが完了・遅延していることがわかるよう表示する。
なお、2回目の表示時などは、S27から実施することで、処理の高速化を図る。S28の処理について、図43を用いて説明する。
図43は、本実施形態(実施例)におけるグループ表示用テーブル上の、グループの実行状況を更新処理(S28)のフローを示す。実行区間管理テーブル74内の全てのグループについて確認が完了するまで(S28−1)、表示情報作成部63は、S28−2〜S27−8の処理を行う。
グループ内の全てのジョブについて確認が完了するまで(S28−2)、表示情報作成部63は、S28−2〜S27−8の処理を行う。
表示情報作成部63は、グループ表示用テーブル78に格納されている「表示状態」の状態を取得する(S28−3)。
表示情報作成部63は、グループ内ジョブの状態の表示優先度が、グループ表示用テーブル78上の状態の表示優先度以上か否かを判定する(S28−4)。グループ内ジョブの状態の表示優先度が、グループ表示用テーブル78上の状態の表示優先度以上である場合(S28−4で「YES」)、表示情報作成部63は、S28−5の処理を行う。
グループ内ジョブの状態の表示優先度が、グループ表示用テーブル78上の表示状態と表示優先度が同じ場合は、表示情報作成部63は、グループ表示用テーブル78上の「表示状態」の距離と、現在のジョブの距離を比較する。ここで、表示情報作成部63は、現在のジョブに関する情報を、ジョブ実行部62より取得する。グループ表示用テーブル78上の「表示状態」の距離より現在のジョブの方が短い場合は、表示情報作成部63は、グループ表示用テーブル78上の「表示状態」の距離を現在のジョブの距離で更新する(S28−5)。
グループ内ジョブの状態の表示優先度が、グループ表示用テーブル78上の状態の表示優先度より低い場合(S28−4で「NO」)、表示情報作成部63は、S28−6の処理を行う。
表示情報作成部63は、グループ表示用テーブル78に格納されている「表示状態」を現在のジョブの状態と距離で更新する(S28−6)。表示情報作成部63は、グループ表示用テーブル78の「表示状態」が空の場合もS28−6の処理を行う。
確認対象のジョブに締め切り時刻が設定されている場合、表示情報作成部63は、グループ表示用テーブル78にその締め切り時刻を追加する。また、表示情報作成部63は、ジョブが正常に終了している場合は「完了フラグ」をグループ表示用テーブル78の締め切り時刻に追加する。表示情報作成部63は、ジョブが締め切り時間に対して遅延している場合は「遅延フラグ」をグループ表示用テーブル78の締め切り時刻に追加する(S28−7)。図35の説明に戻る。
表示情報作成部63は、グループの縮小表示用データを作成する(S29)。S29の処理について、図44及び図45を用いて説明する。
図44及び図45は、本実施形態(実施例)におけるグループの縮小表示用データの作成処理(S98)のフローを示す。ジョブのグループ化表示依頼時に、画面表示の縮小度が指定されている場合(S29−1で「YES」)、表示情報作成部63は、指定された縮小度から、新しく1つの区間としてまとめる区間数Iを求める(S29−2)。その後、S29−5の処理へ進む。
ジョブのグループ化表示依頼時に、画面表示の縮小度が指定されていない場合(S29−1で「NO」)、表示情報作成部63は、現在の画面サイズを取得する。また、表示情報作成部63は、縮小無しで表示した場合に必要な画面サイズを算出する(グループの最大区間と、1区間あたりの表示サイズから求まる)(S29−3)。
表示情報作成部63は、現在の画面サイズと、縮小無しで必要な画面サイズから、1画面内に収まるようにするために必要な縮小度を求める。また、表示情報作成部63は、この縮小度から、新しく1つの区間としてまとめる区間数Iを求める(S29−4)。
まとめる区間数Iが1以下の場合、本フローは終了する(S29−5で「NO」)。まとめる区間数Iが1より大きい場合(S29−5で「YES」)、S29−6の処理へ進む。
グループ表示用テーブルの全てのグループの表示矢印について確認が完了するまで、表示情報作成部63は、S29−7の処理を行う(S29−6)。
表示情報作成部63は、まとめる区間数Iに基づいて、縮小前の矢印が、縮小後にどの区間に表示されるかの対応関係を求め、縮小表示管理テーブル79に追加する(S29−7)。
S29−7において、縮小前後の区間の対応関係は、現在の区間を、まとめる区間Iで割って、小数点以下を切り捨てたものとなる(例えば、まとめる区間Iが3の場合、縮小前が0〜2である区間の縮小後は区間0、縮小前が3〜5である区間の縮小後は区間1となる)。同じグループ間の関係性を持つ、同じ区間の矢印は1つにまとめられる。また、同じ区間内の矢印で、逆方向のものがある場合は、表示上は双方向矢印1本にまとめられる。
グループ表示用テーブルの全てのグループの表示矢印について確認の完了後(S29−6で「YES」)、表示情報作成部63は、グループ表示用テーブル78をコピーし、縮小後グループ表示用テーブル80を作成する(S29−8)。
表示情報作成部63は、縮小後グループ表示用テーブル80の各グループの実行区間や、グループの状態の表示位置を、まとめる区間数Iに基づいて更新する(S29−9)。
表示情報作成部63は、縮小後グループ表示用テーブル80のグループの状態の表示位置も、区間数Iでまとめた新しい区間で更新する(S29−10)。
また、表示情報作成部63は、縮小後グループ表示用テーブル80の表示矢印を、縮小表示管理テーブル79に基づいて更新する(S29−11)。
表示情報作成部63は、縮小後グループ表示用テーブル80の締め切り時刻を、縮小表示管理テーブル79に基づいて更新する(S29−12)。図35の説明に戻る。
表示情報作成部63は、ジョブフローのグループ化用表示情報をクライアント81に送信する(S30)。表示情報作成部63は、集約後バッチ情報のうち、表示対象のジョブフローの情報と、縮小後グループ表示用テーブル80をクライアント81に送信する。
クライアント81の表示処理82は、サーバ39から送信された表示対象のジョブフローの情報と、縮小後グループ表示用テーブル80とに基づいて、ジョブフローをグループ化して表示する(S31)。これにより、クライアント81側にて、ジョブフローの情報と、縮小後グループ表示用テーブル80とに基づいて、クライアント81の画面にグループ化されたジョブフロー情報(グループ監視図)がガントチャート形式にて表示される。すなわち、図16及び図17で説明したように、グループ監視図が、縦軸にグループ化された属性情報、横軸に時間が示され、ジョブの実行期間を示したバーを所定時間間隔で区切ったガントチャート形式で表示される。
なお、あるジョブ分類グループ内のジョブフローは、ドリルダウンして表示できる。その場合は、あるグループ内のジョブフローとその前後のジョブが表示される。例えば、図16で、区間3のグループBを選択した場合、図46のように、区間3におけるジョブ分類情報Bのグループ一覧91が表示される。
図46のグループ一覧91では、グループの状態が表示され、グループ名や状態で並び替えが可能である。グループ91一覧で、いずれかのグループを選択した場合、そのグループと前後のジョブが表示される。
図47は、本実施形態(実施例)におけるグループ一覧にてGrpB−4を選択した場合に表示される画面を示す。画面101において、GrpB−4のジョブフローと、その前後のジョブが表示され、ジョブの状態も表示される。なお、グループ一覧91に表示されていたグループは、タブ102に表示される。タブ102を切り替えることにより、別のグループ内ジョブフローを表示することができる。
図48は、本実施形態(実施例)におけるクライアントの表示処理のフローを示す。クライアント81は、画面で選択された、ジョブ分類情報、区間の情報をサーバ39に送信する(S41)。
クライアント81は、サーバ39から、対応するジョブ分類情報の、選択された区間に属しているグループ一覧91を受信する(S42)。クライアント81は、グループと対応する状態を画面上にそのグループ一覧91を表示する(S43)。
クライアント81は、画面上のグループ一覧91からグループが選択されたか否かを判定する(S44)。画面上のグループ一覧91にてグループが選択されておらず(S44で「NO」)、画面が閉じられていない場合(S45で「NO」)には、クライアント81は、S43の処理を行う。画面上のグループ一覧91にてグループが選択されておらず(S44で「NO」)、画面が閉じられている場合(S45で「YES」)には、クライアント81は、本フローを終了する。
画面上のグループ一覧91にてグループが選択された場合(S44で「YES」)、クライアント81は、ドリルダウンの対象となるグループの情報をサーバ39に送信する(S46)。
クライアント81は、サーバ39から、対応するグループに含まれるジョブとその前後のジョブ情報を受信し、画面101に表示する(S47)。
別のグループのタブ102が選択された場合(S48で「YES」)、クライアント81は、S46の処理を行う。
別のグループのタブ102が選択されておらず(S48で「NO」)、画面101が閉じられていない場合(S49で「NO」)、クライアント81は、S47の処理を行う。別のグループのタブ102が選択されておらず(S48で「NO」)、画面101が閉じられている場合(S49で「YES」)、クライアント81は、S43の処理を行う。
図49は、本実施形態(実施例)におけるプログラムを実行するコンピュータのハードウェア環境の構成ブロック図の一例である。コンピュータ110は、サーバ39、クライアント81等として機能する。コンピュータ110は、CPU112、ROM113、RAM116、通信I/F114、記憶装置117、出力I/F111、入力I/F115、読み取り装置118、バス119、出力機器121、入力機器122によって構成されている。
ここで、CPUは、中央演算装置を示す。ROMは、リードオンリメモリを示す。RAMは、ランダムアクセスメモリを示す。I/Fは、インターフェースを示す。バス119には、CPU112、ROM113、RAM116、通信I/F114、記憶装置117、出力I/F111、入力I/F115、及び読み取り装置118が接続されている。読み取り装置118は、可搬型記録媒体を読み出す装置である。出力機器121は、出力I/F111に接続されている。入力機器122は、入力I/F115に接続にされている。
記憶装置117としては、ハードディスク、フラッシュメモリ、磁気ディスクなど様々な形式の記憶装置を使用することができる。記憶装置117またはROM113には、CPU112を応答部3として機能させる本実施形態に係るプログラムが格納されている。RAM116には、情報が一時的に記憶される。コンピュータ110がサーバ39の場合、RAM116は、メモリ67として機能し、各種のテーブルを一時的に保持する。また、コンピュータ110がクライアント81の場合、RAM116には、サーバ39から受信したジョブフローのグループ化用表示情報が格納される。
CPU112は、制御部22として、記憶装置117またはROM113から本実施形態に係るプログラムを読み出し、当該プログラムを実行する具体的には、CPU112は、移行ツール33、登録ツール37を実行する。さらに、CPU112は、スケジューラ61を実行し、さらにジョブ実行部62、表示情報作成部として機能する。
上記実施形態で説明した処理を実現するプログラムは、プログラム提供者側から通信ネットワーク120、および通信I/F114を介して、例えば記憶装置117に格納されてもよい。また、上記実施形態で説明した処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読み取り装置118にセットされて、CPU112によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはCD−ROM、フレキシブルディスク、光ディスク、光磁気ディスク、ICカード、USBメモリ装置など様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読み取り装置118によって読み取られる。
また、入力機器122には、キーボード、マウス、電子カメラ、ウェブカメラ、マイク、スキャナ、センサ、タブレットなどを用いることが可能である。また、出力機器121には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。また、ネットワーク120は、インターネット、LAN、WAN、専用線、有線、無線等の通信網であってよい。
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。