(57)【要約】【課題】本番システムにおいて障害が発生することを抑制すること。【解決手段】本番登録システム１００において実行されている本番ロードの実行時に参照されるデータを記憶する本番登録ＤＢ１２１を参照して本番ロードを実行するオペレーションシステムプログラムがインストールされたチェック装置１１０ａにおいて、オペレーションシステムによる実行が可能な形式のチェック対象プログラムを取得し、取得されたチェック対象プログラムを、オペレーションシステムに実行させ、実行結果を出力するようにした。【選択図】図１
2019008750.tif 000002
【特許請求の範囲】
【請求項１】
本番システムにおいて実行されている本番ロードの実行時に参照されるデータを記憶するデータベースを備え、当該データベースを参照して前記本番ロードを実行するオペレーションシステムプログラムがインストールされたチェック装置であって、
前記オペレーションシステムによる実行が可能な形式のチェック対象プログラムを取得する取得部と、
前記取得部によって取得されたチェック対象プログラムを、前記オペレーションシステムに実行させるテスト実行部と、
前記テスト実行部による実行結果を出力する結果出力部と、
を備えたことを特徴とするチェック装置。
【請求項２】
前記チェック対象プログラムは、複数のプログラムモジュールによって構成され、
前記テスト実行部は、
前記複数のプログラムモジュールのうち実行できないプログラムモジュールを検出し、
前記結果出力部は、
前記実行できないプログラムモジュールに関する情報を出力することを特徴とする請求項１に記載のチェック装置。
【請求項３】
前記チェック対象プログラムは、実行順序が規定された複数のプログラムモジュールによって構成され、
前記テスト実行部は、
前記複数のプログラムモジュールのうち前記実行できないプログラムモジュールを検出した場合、当該実行できないプログラムモジュールの実行を停止して、当該実行できないプログラムモジュールのつぎの実行順序の前記プログラムモジュールを実行することを特徴とする請求項１または２に記載のチェック装置。
【請求項４】
前記チェック対象プログラムは、一方向または双方向リンクする複数のプログラムモジュールによって構成され、
前記テスト実行部は、
前記複数のプログラムモジュールを前記リンクの方向にしたがった順序で実行し、当該複数のプログラムモジュールのうち前記実行できないプログラムモジュールを検出した場合、当該実行できないプログラムモジュールにリンクする別のプログラムモジュールを実行することを特徴とする請求項１または２に記載のチェック装置。
【請求項５】
前記テスト実行部は、
前記複数のプログラムモジュールのうちリンク先のプログラムモジュールの不存在により実行できないプログラムモジュールを検出し、
前記結果出力部は、
前記実行できないプログラムモジュールごとに、当該前記実行できないプログラムモジュールの識別情報を出力することを特徴とする請求項４に記載のチェック装置。
【請求項６】
前記チェック対象プログラムは、前記データベースを参照して実行する複数のプログラムモジュールによって構成され、
前記テスト実行部は、
前記複数のプログラムモジュールのうち前記データベースの参照不可により実行できないプログラムモジュールを検出し、
前記結果出力部は、
前記実行できないプログラムモジュールごとに、当該前記実行できないプログラムモジュールの識別情報または当該前記実行できないプログラムモジュールの参照先となる前記データベースにおける論理ブロックアドレスを出力することを特徴とする請求項２〜５のいずれか一つに記載のチェック装置。
【請求項７】
前記テスト実行部は、
複数のデータセットによって定義され、前記プログラムモジュールの実行に際して参照されるデータセットファイルのブロックサイズが、あらかじめ定められた所定のサイズであるか否かに基づいて、前記データベースの参照不可により実行できないプログラムモジュールを検出することを特徴とする請求項６に記載のチェック装置。
【請求項８】
前記テスト実行部は、
前記データセットファイルを参照するプログラムモジュールの実行にかかる装置に関する情報を与えるＵＮＩＴパラメタにしたがって、前記データベースの参照不可により実行できないプログラムモジュールを検出することを特徴とする請求項６に記載のチェック装置。
【請求項９】
前記チェック対象プログラムは、実行結果に関する情報を記述した出力ファイルを作成するとともに当該出力ファイルの世代に関する情報を登録するプログラムモジュールを含み、
前記結果出力部は、
前記チェック対象プログラムの実行により作成された出力ファイルの世代が、当該チェック対象プログラムの実行以前に作成された出力ファイルの世代に後続するか否かに関する情報を出力することを特徴とする請求項１〜８のいずれか一つに記載のチェック装置。
【請求項１０】
本番システムにおいて実行されている本番ロードの実行時に参照されるデータを記憶するデータベースを備え、当該データベースを参照して前記本番ロードを実行するオペレーションシステムプログラムがインストールされたチェック装置に、
前記オペレーションシステムによる実行が可能な形式のチェック対象プログラムを取得し、
取得されたチェック対象プログラムを、前記オペレーションシステムに実行させ、
前記オペレーションシステムによる前記チェック対象プログラムの実行結果を出力する、
処理を実行させることを特徴とするチェックプログラム。
【請求項１１】
本番システムにおいて実行されている本番ロードの実行時に参照されるデータを記憶するデータベースを備え、当該データベースを参照して前記本番ロードを実行するオペレーションシステムプログラムがインストールされたチェック装置に、
前記オペレーションシステムによる実行が可能な形式のチェック対象プログラムを取得させ、
取得されたチェック対象プログラムを、前記オペレーションシステムに実行させ、
前記オペレーションシステムによる前記チェック対象プログラムの実行結果を出力させる、
ことを特徴とするプログラムチェック方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＪＣＬなどのように特定の言語により記述されたロードをチェックするチェック装置、チェックプログラムおよびプログラムチェック方法に関する。
【背景技術】
【０００２】
汎用的なコンピュータ装置にジョブを実行させる言語であるＪＣＬ（Ｊｏｂ  Ｃｏｎｔｒｏｌ  Ｌａｎｇｕａｇｅ：ジョブコントロール言語）においては、ジョブの名前やジョブの実行に際して使用する装置の種類などを記述することができる。ＪＣＬを用いてプログラムを作成することにより、条件分岐など高度な制御をおこなうことができる。
【０００３】
このようなＪＣＬは、具体的には、たとえば、電力の送配電をおこなう電気事業者が管理するシステムにおいて、複数の手順からなる処理のうちの、あらかじめ登録された一連の処理を自動的に連続しておこなうバッチ（ｂａｔｃｈ）処理をおこなう際に、当該システムにおけるメインフレームに実行させる処理（ジョブ）の記述に用いることができる。
【０００４】
従来、たとえば、電気事業者が管理するコンピュータシステムにおいては、ＪＣＬによって記述されたバッチ処理にかかるジョブの動作をテスト環境において確認した後に本番環境に登録していた。また、従来、電気事業者が管理するシステムにおいては、メインフレームのＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）により、ＪＣＬの記述内容を解読して該当する処理を実行する。
【０００５】
関連する技術として、具体的には、従来、たとえば、機能モジュールをプログラムに新たに追加した場合、機能モジュールの追加前後における基本モジュールのソースファイルの差分が、差分リストに登録された差分と重複する場合に、重複する差分をユーザに提示することにより開発プログラムのソースファイルの変更履歴を管理するようにした技術があった（たとえば、下記特許文献１を参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−２２０９７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来の技術は、本番環境とテスト環境とが異なるシステムであるため、本番環境において、たとえば、世代ファイルの事前作成、ＪＣＬの構成不良、世代登録漏れなどの事前の初期作業不足があった場合、テスト環境において動作が確認されたジョブであっても本番環境において実行できないことがあるという問題があった。
【０００８】
通年にわたって常時滞りなく電気を送配電する電気事業者が管理運用するコンピュータシステムにおいては、本番環境において実行できない場合、送配電に支障をきたすことが懸念されるため、開発ロードが本番環境において実行できることの確認は重要となる。
【０００９】
この発明は、上述した従来技術による問題点を解消するため、本番システムにおいて障害が発生することを抑制できるチェック装置、チェックプログラムおよびプログラムチェック方法を提供することを目的とする。
【００１０】
また、この発明は、上述した従来技術による問題点を解消するため、本番システムに登録する前のチェック対象プログラムに不備があるか否かの確認作業にかかる作業者の負担軽減および確認作業にかかる時間短縮を図ることができ、かつ、本番システムにおいて障害が発生することを抑制することができるチェック装置、チェックプログラムおよびプログラムチェック方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、この発明にかかるチェック装置は、本番システムにおいて実行されている本番ロードの実行時に参照されるデータを記憶するデータベースを備え、当該データベースを参照して前記本番ロードを実行するオペレーションシステムプログラムがインストールされたチェック装置であって、前記オペレーションシステムによる実行が可能な形式のチェック対象プログラムを取得する取得部と、前記取得部によって取得されたチェック対象プログラムを、前記オペレーションシステムに実行させるテスト実行部と、前記テスト実行部による実行結果を出力する結果出力部と、を備えたことを特徴とする。
【００１２】
また、この発明にかかるチェック装置は、上記の発明において、前記チェック対象プログラムが、複数のプログラムモジュールによって構成され、前記テスト実行部が、前記複数のプログラムモジュールのうち実行できないプログラムモジュールを検出し、前記結果出力部が、前記実行できないプログラムモジュールに関する情報を出力することを特徴とする。
【００１３】
また、この発明にかかるチェック装置は、上記の発明において、前記チェック対象プログラムが、実行順序が規定された複数のプログラムモジュールによって構成され、前記テスト実行部が、前記複数のプログラムモジュールのうち前記実行できないプログラムモジュールを検出した場合、当該実行できないプログラムモジュールの実行を停止して、当該実行できないプログラムモジュールのつぎの実行順序の前記プログラムモジュールを実行することを特徴とする。
【００１４】
また、この発明にかかるチェック装置は、上記の発明において、前記チェック対象プログラムが、一方向または双方向リンクする複数のプログラムモジュールによって構成され、前記テスト実行部が、前記複数のプログラムモジュールを前記リンクの方向にしたがった順序で実行し、当該複数のプログラムモジュールのうち前記実行できないプログラムモジュールを検出した場合、当該実行できないプログラムモジュールにリンクする別のプログラムモジュールを実行することを特徴とする。
【００１５】
また、この発明にかかるチェック装置は、上記の発明において、前記テスト実行部が、前記複数のプログラムモジュールのうちリンク先のプログラムモジュールの不存在により実行できないプログラムモジュールを検出し、前記結果出力部が、前記実行できないプログラムモジュールごとに、当該前記実行できないプログラムモジュールの識別情報を出力することを特徴とする。
【００１６】
また、この発明にかかるチェック装置は、上記の発明において、前記チェック対象プログラムが、前記データベースを参照して実行する複数のプログラムモジュールによって構成され、前記テスト実行部が、前記複数のプログラムモジュールのうち前記データベースの参照不可により実行できないプログラムモジュールを検出し、前記結果出力部が、前記実行できないプログラムモジュールごとに、当該前記実行できないプログラムモジュールの識別情報または当該前記実行できないプログラムモジュールの参照先となる前記データベースにおける論理ブロックアドレスを出力することを特徴とする。
【００１７】
また、この発明にかかるチェック装置は、上記の発明において、前記テスト実行部が、複数のデータセットによって定義され、前記プログラムモジュールの実行に際して参照されるデータセットファイルのブロックサイズが、あらかじめ定められた所定のサイズであるか否かに基づいて、前記データベースの参照不可により実行できないプログラムモジュールを検出することを特徴とする。
【００１８】
また、この発明にかかるチェック装置は、上記の発明において、前記テスト実行部が、前記データセットファイルを参照するプログラムモジュールの実行にかかる装置に関する情報を与えるＵＮＩＴパラメタにしたがって、前記データベースの参照不可により実行できないプログラムモジュールを検出することを特徴とする。
【００１９】
また、この発明にかかるチェック装置は、上記の発明において、前記チェック対象プログラムが、実行結果に関する情報を記述した出力ファイルを作成するとともに当該出力ファイルの世代に関する情報を登録するプログラムモジュールを含み、前記結果出力部が、前記チェック対象プログラムの実行により作成された出力ファイルの世代が、当該チェック対象プログラムの実行以前に作成された出力ファイルの世代に後続するか否かに関する情報を出力することを特徴とする。
【００２０】
また、この発明にかかるチェックプログラムは、本番システムにおいて実行されている本番ロードの実行時に参照されるデータを記憶するデータベースを備え、当該データベースを参照して前記本番ロードを実行するオペレーションシステムプログラムがインストールされたチェック装置に、前記オペレーションシステムによる実行が可能な形式のチェック対象プログラムを取得し、取得されたチェック対象プログラムを、前記オペレーションシステムに実行させ、前記オペレーションシステムによる前記チェック対象プログラムの実行結果を出力する、処理を実行させることを特徴とする。
【００２１】
また、この発明にかかるプログラムチェック方法は、本番システムにおいて実行されている本番ロードの実行時に参照されるデータを記憶するデータベースを備え、当該データベースを参照して前記本番ロードを実行するオペレーションシステムプログラムがインストールされたチェック装置に、前記オペレーションシステムによる実行が可能な形式のチェック対象プログラムを取得させ、取得されたチェック対象プログラムを、前記オペレーションシステムに実行させ、前記オペレーションシステムによる前記チェック対象プログラムの実行結果を出力させる、ことを特徴とする。
【発明の効果】
【００２２】
この発明にかかるチェック装置、チェックプログラムおよびプログラムチェック方法によれば、本番システムにおいて障害が発生することを抑制できるという効果を奏する。
【００２３】
また、この発明にかかるチェック装置、チェックプログラムおよびプログラムチェック方法によれば、本番システムに登録する前のチェック対象プログラムに不備があるか否かの確認作業にかかる作業者の負担軽減および確認作業にかかる時間短縮を図ることができ、かつ、本番システムにおいて障害が発生することを抑制することができるという効果を奏する。
【図面の簡単な説明】
【００２４】
【図１】この発明にかかる実施の形態のチェックツールを適用するシステムのシステム構成を示す説明図である。
【図２】チェック装置と別の本番登録システムとの関係を示す説明図である。
【図３】この発明にかかる実施の形態のチェック装置の機能的構成を示すブロック図である。
【図４】この発明にかかる実施の形態のチェック装置の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００２５】
以下に添付図面を参照して、この発明にかかるチェック装置、チェックプログラムおよびプログラムチェック方法の好適な実施の形態を詳細に説明する。
【００２６】
（チェック装置の構成）
まず、この発明にかかる実施の形態のチェック装置の構成について説明する。図１は、この発明にかかる実施の形態のチェック装置の構成を示す説明図である。図１において、本番登録システム（本番システム）１００は、電気事業者によって管理運用される。
【００２７】
本番登録システム１００は、事業所ごとに構築されている複数の制御システム１１０ａ〜１１０ｅによって構成されている。事業所ごとの制御システム１１０ａ〜１１０ｅは、それぞれ、各事業所に設置されたコンピュータ装置や記憶装置などの各種のリソースによって構築されている。
【００２８】
この発明にかかる実施の形態のチェック装置は、たとえば、事業所ごとの制御システム１１０ａ〜１１０ｅのうち、特定の事業所の制御システム１１０ａによって実現することができる。以下、本番登録システム１００を構築する複数の制御システム１１０ａ〜１１０ｅのうち、チェック装置を実現する制御システム１１０ａを、チェック装置１１０ａとして説明する。
【００２９】
チェック装置１１０ａは、たとえば、サーバコンピュータなどの汎用的なコンピュータ装置によって実現することができる。チェック装置１１０ａには、この発明にかかる実施の形態のチェックプログラムがインストールされている。本番登録システム１００においては、チェック装置１１０ａが、インストールされているチェックプログラムを実行することにより、この発明にかかる実施の形態のプログラムチェック方法が実現される。
【００３０】
本番登録システム１００において、他の事業所の制御システム１００ｂ〜１１０ｅは、それぞれ、チェック装置１１０ａに接続されている。これにより、チェック装置１１０ａによって、他の事業所の制御システムのプログラムチェックをおこなうことができる。
【００３１】
チェック装置１１０ａは、本番登録ＤＢ（Ｄａｔａ  Ｂａｓｅ）１２１、本番ＬＩＢ（Ｌｉｂｒａｒｙ）１２２、受付ＬＩＢ１２３、テストＬＩＢ１２４、依頼処理部１２５、本番登録処理部１２６ａ、認可処理部１２７、登録処理部１２８、終了処理部１２９、を備えている。本番登録ＤＢ１２１は、電気事業者が管理運用する本番登録システム１００の運用に用いる各種のデータを記憶する。
【００３２】
具体的に、本番登録ＤＢ１２１は、たとえば、発電所、変電所、送電設備、通信設備などの保守管理にかかる各種のデータを記憶する。より具体的には、本番登録ＤＢ１２１は、たとえば、発電所における発電条件、過去の発電量の履歴などに関するデータを、発電所ごとなどの事業所単位で記憶する。
【００３３】
本番ＬＩＢ１２２ａは、本番ロードを記憶する。本番ロードは、複数のプログラムモジュールによって構成されており、本番登録システム１００において実際に運用されている。本番登録システム１００は、本番ロードの実行に際して、本番登録ＤＢ１２１に記憶された各種のデータを用いる。
【００３４】
本番ロードは、発電所ごとなどの事業所ごとに開発されている。本番ロードは、たとえば、発電所の規模、当該発電所に接続されている負荷の容量、電気供給の傾向など事業所ごとに固有のデータに基づいて、当該事業所による発電や送配電を管理・制御すべく、発電所ごとなどの事業所ごとに開発されている。異なる事業所の本番ロードどうしは、たとえば、参照するデータ（データの参照先）が異なる。
【００３５】
また、異なる事業所の本番ロードどうしは、たとえば、本番ロードを構成する複数のプログラムモジュールの組み合わせが異なる。具体的には、たとえば、特殊な発電システムを備えた事業所の管理・制御に用いる本番ロードにおいて当該特殊な発電システムの駆動制御のために組み込まれているプログラムモジュールは、当該特殊な発電システムを備えていない事業所においては不要となる。このため、本番ロードにおいては、異なる事業所であっても同じプログラムモジュールが組み込まれていたり、同様の設備を備えた事業所であっても当該設備の管理・制御に異なるプログラムが組み込まれていたりする。
【００３６】
本番登録された本番ロードおよび当該本番ロードを構成する各プログラムモジュールは、いずれも、本番ＬＩＢ１２２ａに登録される前に開発ロードとしてテストＬＩＢ１２４に登録され、チェック装置１１０ａにおいて動作することが確認されている。チェック装置１１０ａは、開発ロードを、この発明にかかるチェック対象プログラムとして実行し、開発ロードの動作確認をおこなうことにより、プログラムチェックをおこなう。
【００３７】
受付ＬＩＢ１２３ａは、本番ＬＩＢ１２２ａに登録するロード（本番ロード）を一時的に記憶する。受付ＬＩＢ１２３ａは、依頼処理部１２５を介して、本番登録システム１００から本番ＬＩＢ１２２ａに対する本番ロードの登録を依頼する依頼要求を受け付ける。受付ＬＩＢ１２３ａは、依頼要求を受け付けた場合、開発ロードとしてテストＬＩＢ１２４に登録された後にシステムコンピュータにおいて動作することが確認された開発ロードを、本番ロードとして受け付けて記憶する。
【００３８】
開発ロードは、複数のプログラムモジュールによって構成されている。開発ロードは、本番ロードを構成する複数のプログラムモジュールと、本番ロードを構成する複数のプログラムモジュールの世代とは世代が異なる別のプログラムモジュールと、によって構成されている。
【００３９】
開発ロードは、本番ロードを構成する複数のプログラムモジュールの少なくとも一部を、複数のプログラムモジュールの世代とは世代が異なる別のプログラムモジュールに差し替えることによって構成することができる。あるいは、開発ロードは、本番ロードを構成する複数のプログラムモジュールに、複数のプログラムモジュールとは世代が異なる別のプログラムモジュールを追加することによって構成することができる。
【００４０】
依頼処理部１２５は、依頼システム１３０および本番登録依頼システム１４０と接続している。依頼システム１３０は、当該依頼システム１３０の操作者とシステムとのインターフェースをつかさどる。依頼処理部１２５は、たとえば、依頼システム１３０において受け付けた依頼操作に応じて依頼システム１３０から依頼処理部１２５に出力される依頼要求に基づき、チェック装置１１０ａとは別のシステムにおいてそれぞれ作成されたプログラムモジュールを開発ロードとしてテストＬＩＢ１２４に登録する。
【００４１】
また、依頼処理部１２５は、たとえば、本番登録依頼システム１４０において受け付けた依頼操作に応じて本番登録依頼システム１４０から依頼処理部１２５に出力される依頼要求に基づき、テストＬＩＢ１２４に登録された開発ロードを本番ロードとして受付ＬＩＢ１２３ａに登録する。受付ＬＩＢ１２３ａは、本番登録依頼システム１４０の依頼操作に応じて、本番ＬＩＢ１２２ａに登録するロードを当該本番ＬＩＢ１２２ａに登録するまでの間、一時的に記憶する。
【００４２】
本番登録処理部１２６ａは、受付ＬＩＢ１２３ａに一時的に記憶されたロードを本番ＬＩＢ１２２ａに登録する。受付ＬＩＢ１２３ａに一時的に記憶されたロードは、本番登録処理部１２６ａによって本番ＬＩＢ１２２ａに登録された時点において本番ロードとなる。本番登録処理部１２６ａは、受付ＬＩＢ１２３ａに対して依頼処理部１２５を介してアクセスすることによって、受付ＬＩＢ１２３ａが一時的に記憶するロードを、本番ロードとして本番ＬＩＢ１２２ａに登録する。
【００４３】
本番登録処理部１２６ａは、本番ＬＩＢ１２２ａに登録されたロードの動作を中断させることのないように、更新後のロードを構成する各プログラムモジュールを更新する。具体的には、本番登録処理部１２６ａは、たとえば、或る時点において、実行中のプログラムモジュールおよび当該プログラムモジュールの実行に際して共働するプログラムモジュールは更新せず、実行していないプログラムモジュールおよび当該プログラムモジュールの実行に際して共働するプログラムモジュールを更新する。
【００４４】
これにより、通年にわたって常時滞りなく電気を送配電する電気事業者が管理運用する本番登録システム１００において、当該本番登録システム１００を停止することなく、当該本番登録システム１００の運用にかかるロードを更新することができる。
【００４５】
本番登録依頼システム１４０は、依頼処理部１２５に加えて、認可処理部１２７、登録処理部１２８および終了処理部１２９と接続している。認可処理部１２７は、受付ＬＩＢ１２３ａを介しておこなわれるロードの更新の認可／不認可を判断する。本番登録システム１００からの依頼操作に応じた本番ＬＩＢ１２２ａにおけるロードの更新は、認可処理部１２７により認可の判断がなされた場合に実行される。
【００４６】
登録処理部１２８は、本番登録ＤＢ１２１に対するデータの登録処理をおこなう。登録処理部１２８は、たとえば、発電所における発電条件に変更があった場合に、変更後の発電条件に関するデータを本番登録ＤＢ１２１に対して登録する登録処理をおこなう。登録処理部１２８は、本番登録依頼システム１４０において受け付けた依頼操作に応じて本番登録依頼システム１４０から登録処理部１２８に出力される依頼要求に基づき、当該依頼要求とともに入力された変更後の発電条件に関するデータを本番登録ＤＢ１２１に登録する。
【００４７】
終了処理部１２９は、テストＬＩＢ１２４による比較結果の確認に供される実行結果確認リスト１５０を出力する。実行結果確認リスト１５０は、たとえば、本番登録システム１００に接続された表示装置に表示することによって出力してもよく、本番登録システム１００に接続されたプリンタを介して印刷物によって出力してもよい。実行結果確認リスト１５０については後述する。
【００４８】
この実施の形態におけるチェック装置１１０ａは、ファイル伝送システム１６０を備えている。ファイル伝送システム１６０は、それぞれが本番ＬＩＢ１２２ｂ〜１２２ｅおよび受付ＬＩＢ１２３ｂ〜１２３ｅを備える複数の別の制御システム１１０ｂ〜１１０ｅと接続されている。
【００４９】
チェック装置１１０ａは、依頼処理部１２５を介して本番登録依頼システム１４０から受け付けた本番登録依頼に基づき、接続されている別の制御システム１１０ｂ〜１１０ｅと通信をおこなうことによって、当該別の制御システム１１０ｂ〜１１０ｅが備える本番ＬＩＢ１２２ｂ〜１２２ｅに対して、本番登録システム１００から受け付けたロードを伝送する。
【００５０】
別の制御システム１１０ｂ〜１１０ｅにおける受付ＬＩＢ１２３ｂ〜１２３ｅは、それぞれ、ファイル伝送システム１６０を介して送信されたロードを受け付けて記憶する。受付ＬＩＢ１２３ｂ〜１２３ｅが登録を受け付けたロードは、本番登録処理部１２６ｂ〜１２６ｅによって本番ＬＩＢ１２２ｂ〜１２２ｅに登録される。
【００５１】
チェック装置１１０ａにインストールされたチェックプログラムは、チェック装置１１０ａと接続された別の制御システム１１０ｂ〜１１０ｅにおける本番ロードの実行時に参照されるデータを参照して、当該別の制御システム１１０ｂ〜１１０ｅのオペレーションシステムに、チェック対象プログラムである開発ロードを実行させることができる（図２を参照）。
【００５２】
（チェック装置１１０ａと別の制御システム１１０ｂ〜１１０ｅとの関係）
つぎに、チェック装置１１０ａと別の制御システム１１０ｂ〜１１０ｅとの関係について説明する。図２は、チェック装置１１０ａと別の制御システム１１０ｂ〜１１０ｅとの関係を示す説明図である。
【００５３】
図２において、チェック装置１１０ａは、ファイル伝送システム１６０を介して別の制御システム１１０ｂ〜１１０ｅと通信をおこなうことにより、各制御システム１１０ｂ〜１１０ｅのオペレーションシステムに、当該制御システム１１０ｂ〜１１０ｅによる管理・制御に用いる開発ロードを実行させることができる。制御システム１１０ｂ〜１１０ｅのオペレーションシステムは、チェック装置１１０ａとの通信により、該当する開発ロードを実行する。開発ロードは、各制御システム１１０ｂ〜１１０ｅにおいて実行中の本番ロードを停止することなく、当該本番ロードとは別に実行する。
【００５４】
チェック装置１１０ａは、制御システム１１０ｂ〜１１０ｅにおいて該当する開発ロードを実行した実行結果を、各制御システム１１０ｂ〜１１０ｅから取得する。チェック装置１１０ａは、取得した実行結果を出力することにより、作業者に対して実行結果を出力する。これにより、チェック装置１１０ａおよび各制御システム１１０ｂ〜１１０ｅにおいて該当する開発ロードを実行した場合の実行結果と同じ実行結果を得ることができる。
【００５５】
（チェック装置の機能的構成）
つぎに、この発明にかかる実施の形態のチェック装置１１０ａの機能的構成について説明する。図３は、この発明にかかる実施の形態のチェック装置１１０ａの機能的構成を示すブロック図である。
【００５６】
図３において、この発明にかかる実施の形態のチェック装置１１０ａの機能は、取得部３０１と、テスト実行部３０２と、結果出力部３０３と、によって実現される。取得部３０１、テスト実行部３０２および結果出力部３０３の機能は、チェック装置１１０ａを構成する各部によって実現することができる。
【００５７】
取得部３０１は、オペレーションシステムによる実行が可能な形式のチェック対象プログラムを取得する。取得部３０１は、ＪＣＬなど、本番ロードの記述言語と同じ言語を用いて記述された複数のプログラムモジュールによって構成されるチェック対象プログラムを取得する。具体的に、チェック対象プログラムは、開発ロードによって実現することができる。
【００５８】
開発ロードを構成する複数のプログラムモジュールは、少なくとも一部が、実行に際してデータベースを参照するように構成されている。また、開発ロードを構成する複数のプログラムモジュールは、実行順序が規定されている。また、開発ロードを構成する複数のプログラムモジュール実行順序は、たとえば、一方向または双方向リンクする複数のプログラムモジュールによってチェック対象プログラムを構成することによって規定することができる。
【００５９】
テスト実行部３０２は、取得部３０１によって取得されたチェック対象プログラムを、オペレーションシステムに実行させる。テスト実行部３０２は、チェック対象プログラムをオペレーションシステムに実行させることにより、当該チェック対象プログラムを構成する複数のプログラムモジュールのうち実行できないプログラムモジュールを検出する。
【００６０】
テスト実行部３０２は、実行できないプログラムモジュールを検出するごとに、当該プログラムモジュールの識別番号など、実行できないプログラムモジュールを特定可能な情報を、所定の記憶領域に記憶する。テスト実行部３０２は、たとえば、複数のプログラムモジュールのうちリンク先のプログラムモジュールの不存在により実行できないプログラムモジュールを検出した場合、実行できないプログラムモジュールを特定可能な情報に、実行できない理由（リンク先のプログラムモジュールの不存在）を関連づけて記憶する。
【００６１】
あるいは、テスト実行部３０２は、たとえば、複数のプログラムモジュールのうちデータベースの参照不可により実行できないプログラムモジュールを検出した場合、実行できないプログラムモジュールを特定可能な情報に、実行できない理由（データベースの参照不可）を関連づけて記憶する。データベースの参照不可は、たとえば、プログラムモジュール中に記述された参照先アドレスに誤りがある場合に発生する。
【００６２】
テスト実行部３０２は、開発ロードを構成する複数のプログラムモジュールのうち実行できないプログラムモジュールを検出した場合、たとえば、当該実行できないプログラムモジュールの実行を停止して、当該実行できないプログラムモジュールのつぎの実行順序のプログラムモジュールを実行する。これにより、チェック対象プログラムを構成するいずれかのプログラムモジュールに不備があった場合にも、途中で中断することなく、当該チェック対象プログラムを実行することができる。
【００６３】
また、テスト実行部３０２は、複数のプログラムモジュールをリンクの方向にしたがった順序で実行する際に、当該複数のプログラムモジュールのうち実行できないプログラムモジュールを検出した場合、当該実行できないプログラムモジュールにリンクする別のプログラムモジュールを実行する。これによっても、チェック対象プログラムを構成するいずれかのプログラムモジュールに不備があった場合にも、途中で中断することなく、当該チェック対象プログラムを実行することができる。
【００６４】
具体的に、テスト実行部３０２は、たとえば、「ＪＣＬ構文チェック」、「入力データセットの存在チェック」、「世代登録チェック」、「プログラムロードの存在チェック」などをおこなう。ＪＣＬ構文チェックにおいては、ＪＣＬにしたがって記述される開発ロードの文法に誤りがないかをチェックする。入力データセットの存在チェックにおいては、開発ロードの実行に用いる入力ファイルが存在しているかをチェックする。世代登録チェックにおいては、出力ファイルの世代が登録されているかをチェックする。プログラムロードの存在チェックは、開発ロードを構成するプログラムモジュールが存在するかのチェックをおこなう。
【００６５】
また、テスト実行部３０２は、具体的には、たとえば、「区分データセットのメンバー存在チェック」、「ブロックサイズチェック」、「ＵＮＩＴパラメタチェック」などをおこなう。区分データセットのメンバー存在チェックは、パラメータファイルが揃っているかをチェックする。
【００６６】
ＤＤ文は、プログラムモジュールの実行に際して参照するデータセットを定義し、具体的には、たとえば、割り当てられるリソースなどを示す。データセットファイルを複数のデータセットによって定義する、すなわちＤＤ文連結をおこなうことにより、プログラムモジュールの実行に際して参照先となる複数のデータセットを１つのデータセットファイルとして定義することができる。
【００６７】
ＤＤ文連結（コンカチネーション）をおこなった場合、同じ単位ずつ読み込む必要があることから、ブロックサイズチェックにおいては、読み込みの際の単位（ブロックサイズ）にずれがないかをチェックする。これにより、ＤＤ文連結をおこなったデータセットファイルを読み込むことができずに本番登録システム１００の動作に支障をきたすことを抑制できる。
【００６８】
ＵＮＩＴパラメタは、システムに対して、データセットファイルを参照するプログラムモジュールの実行にかかるリソースに関する情報を与える。ＵＮＩＴパラメタチェックにおいては、開発ロードの実行にかかるリソースと、当該開発ロードの実行にかかるデータセットファイルのファイル名との整合性をチェックする。これにより、一時的に作成されるワークファイルがワークになっているかどうかなどをチェックすることができ、本番登録システム１００の動作に支障をきたすことを抑制できる。
【００６９】
テスト実行部３０２は、ＪＣＬ構文により記述され、新規に作成された開発ロードまたは既存ロードを修正することによって作成された開発ロードを、オペレーションシステムにより実行することによって、開発対象とする開発ロードのチェックをおこなう。本番登録システム１００の運用においては、本番ロードの実行に用いるデータ（原票）に変更がある場合は、テスト実行部３０２による開発ロードのチェックを必ずおこなう。これにより、世代ファイルの事前作成、ＪＣＬの構成不良、世代登録漏れなどの事前の初期作業不足によって本番登録システム１００の動作に支障をきたすことを抑制できる。
【００７０】
本番登録システム１００においては、本番ロードの実行に際して、保守管理にかかる各種のデータを出力する。出力に際しては、出力対象となるデータ（保守管理にかかる各種のデータ）をプリンタなどの出力装置に直接出力することはせず、スプーリング機能により定義される仮想のデータセットを出力ファイルとして記憶する。そして、記憶した出力ファイルを出力装置に出力することによって、本番ロードの実行に際して出力対象となるデータを間接的に出力する。
【００７１】
出力ファイルは、本番登録システム１００において本番ロードが実行されることにより更新される。本番登録システム１００においては、本番ロードの実行によって出力ファイルが更新された場合、以前に保存している出力ファイルを上書きして保存する。出力ファイルの上書き保存に際しては、保存する直前の出力ファイルがバックアップファイルとして別ファイルで登録される。バックアップファイルは、出力ファイルが上書き保存される都度、世代が更新され、世代に関するデータとともに登録される。
【００７２】
テスト実行部３０２は、開発ロードの実行により登録されたバックアップファイルの世代登録ができているかをチェックする。具体的に、テスト実行部３０２は、出力ファイルの世代が、当該チェック対象プログラムの実行以前に作成された出力ファイルの世代に後続するか否かをチェックする。これにより、本番ロードの実行前にバックアップファイルの世代登録ができることを確認でき、本番ロードを実行してから出力ファイルの世代登録ができていないために本番登録システム１００の動作に支障をきたすことを抑制できる。
【００７３】
結果出力部３０３は、テスト実行部３０２による実行結果を出力する。具体的に、結果出力部３０３は、所定の記憶領域を参照して、テスト実行部３０２において実行できないプログラムモジュールに関する情報を出力する。結果出力部３０３は、実行できないプログラムモジュールごとに、当該実行できないプログラムモジュールの識別情報を出力する。
【００７４】
また、所定の記憶領域において、プログラムモジュールを特定可能な情報に関連づけて、当該プログラムモジュールを実行できない理由が記憶されている場合、結果出力部３０３は、実行できないプログラムモジュールごとに、当該理由を関連づけて出力する。具体的には、結果出力部３０３は、たとえば、リンク先のプログラムモジュールの不存在により実行できないプログラムモジュールについては、その旨を出力する。
【００７５】
また、具体的には、結果出力部３０３は、たとえば、データベースの参照不可により実行できないプログラムモジュールについては、当該実行できないプログラムモジュールの参照先となるデータベースにおける論理ブロックアドレスを出力する。論理ブロックアドレスは、たとえば、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）方式にしたがって指定される。論理ブロックアドレスは、たとえば、ＣＨＳ（Ｃｙｌｉｎｄｅｒ／Ｈｅａｄ／Ｓｅｃｔｏｒ）などの方式にしたがって指定されるものであってもよい。
【００７６】
（チェック装置１１０ａの処理手順）
つぎに、この発明にかかる実施の形態のチェック装置１１０ａの処理手順について説明する。図４は、この発明にかかる実施の形態のチェック装置１１０ａの処理手順を示すフローチャートである。
【００７７】
図４のフローチャートにおいて、まず、チェック対象となる開発ロードを取得する（ステップＳ４０１）。開発ロードは、チェックを開始するまでにチェック装置１１０ａに入力されていればよい。ステップＳ４０１においては、たとえば、依頼システム１３０を介してチェックを開始する入力操作を受け付けた場合に、テストＬＩＢ１２４の所定の記憶領域を参照して開発ロードを取得する。
【００７８】
つぎに、ステップＳ４０１において取得された開発ロードを実行する（ステップＳ４０２）。ステップＳ４０２においては、本番登録ＤＢ１２１を参照して、本番ロードの実行に際して用いるデータを取得して開発ロードを実行する。そして、上記のように実行できないプログラムモジュールがあるか否かを判断する（ステップＳ４０３）。
【００７９】
ステップＳ４０３において、実行できないプログラムモジュールがある場合（ステップＳ４０３：Ｙｅｓ）、当該実行できないプログラムモジュールに関する情報を記述した実行結果確認リストを生成する（ステップＳ４０４）。ステップＳ４０４において生成される実行結果確認リストは、たとえば、実行できないプログラムモジュールの識別情報や、参照先アドレスなどを示す情報を示す。
【００８０】
その後、ステップＳ４０４において生成された実行結果確認リストを出力して（ステップＳ４０５）、一連の処理を終了する。ステップＳ４０５においては、たとえば、チェック装置１１０ａにおける終了処理部１２９を介して実行結果確認リストを出力する。実行結果確認リストの出力形態は、実行結果確認リストをプリントした紙面へのプリント出力であってもよく、表示装置に表示する表示出力であってもよい。
【００８１】
一方、ステップＳ４０３において、実行できないプログラムモジュールがない場合（ステップＳ４０３：Ｎｏ）、出力ファイルの世代登録ができているか否かを判断する（ステップＳ４０６）。ステップＳ４０６において、出力ファイルの世代登録ができていない場合（ステップＳ４０６：Ｎｏ）、ステップＳ４０４へ移行して、出力ファイルの世代登録ができていないことを記述した実行結果確認リストを生成する。
【００８２】
一方、ステップＳ４０６において、出力ファイルの世代登録ができている場合（ステップＳ４０６：Ｙｅｓ）、一連の処理を終了する。あるいは、実行できないプログラムモジュールがなく、出力ファイルの世代登録ができている場合、開発モジュールが正常に記述されていることを示すガイダンスを出力してもよい。
【００８３】
以上説明したように、この発明にかかる実施の形態のチェック装置１１０ａは、本番登録システム１００において実行されている本番ロードの実行時に参照されるデータを記憶するデータベースとしての本番登録ＤＢ１２１を備え、当該本番登録ＤＢ１２１を参照して本番ロードを実行するオペレーションシステムプログラムがインストールされたチェック装置１１０ａにおいて、オペレーションシステムによる実行が可能な形式のチェック対象プログラムを取得し、取得されたチェック対象プログラムを、オペレーションシステムに実行させ、テスト実行部３０２による実行結果を出力するようにしたことを特徴としている。
【００８４】
この発明にかかる実施の形態のチェック装置１１０ａによれば、本番登録システム１００において実行されている本番ロードの実行時に参照されるデータを用いて、本番ロードを実行するオペレーションシステムにチェック対象プログラムを実行させることにより、本番登録システム１００で実行した場合の実行結果と同じ実行結果を得ることができる。これにより、チェック対象プログラムに不備がある場合は、本番登録システム１００において実行する前に不備の存在を把握することができるので、世代ファイルの事前作成、ＪＣＬの構成不良、世代登録漏れなどの事前の初期作業不足によって本番登録システム１００に支障をきたすことを抑制できる。
【００８５】
このように、この発明にかかる実施の形態のチェック装置１１０ａによれば、本番登録システム１００に登録する前のチェック対象プログラムに不備があるか否かの確認作業にかかる作業者の負担軽減および確認作業にかかる時間短縮を図ることができ、かつ、本番登録システム１００において障害が発生することを抑制することができる。
【００８６】
また、この発明にかかる実施の形態のチェック装置１１０ａは、チェック対象プログラムを構成する複数のプログラムモジュールのうち実行できないプログラムモジュールを検出し、実行できないプログラムモジュールに関する情報を実行結果として出力するようにしたことを特徴としている。
【００８７】
この発明にかかる実施の形態のチェック装置１１０ａによれば、チェック対象プログラムを構成するすべてのプログラムモジュールに関する情報を出力する場合と比較して、実行できないプログラムモジュールの存在確認を容易かつ迅速におこなうことができる。これにより、チェック作業にかかる作業者の負担を軽減するとともに、チェック作業の効率化を図ることができる。
【００８８】
また、この発明にかかる実施の形態のチェック装置１１０ａは、チェック対象プログラムを構成する複数のプログラムモジュールのうち、実行できないプログラムモジュールを検出した場合、当該実行できないプログラムモジュールの実行を停止して、当該実行できないプログラムモジュールのつぎの順序の前記プログラムモジュールを実行するようにしたことを特徴としている。
【００８９】
この発明にかかる実施の形態のチェック装置１１０ａによれば、データベースの参照不可により実行できないプログラムモジュールが存在する場合にも、チェック対象プログラムを構成するすべてのプログラムモジュールについて、不備があるか否かのチェックを実行し、実行結果を得ることができる。これにより、実行できないプログラムモジュールが存在するごとにチェック対象プログラムの実行自体が中断されてしまう場合と比較して、実行できないプログラムモジュールの存在確認を容易かつ迅速におこなうことができる。これにより、チェック作業にかかる作業者の負担を軽減するとともに、チェック作業の効率化を図ることができる。
【００９０】
また、この発明にかかる実施の形態のチェック装置１１０ａは、一方向または双方向リンクする複数のプログラムモジュールをリンクの方向にしたがった順序で実行し、当該複数のプログラムモジュールのうち実行できないプログラムモジュールを検出した場合、当該実行できないプログラムモジュールにリンクする別のプログラムモジュールを実行するようにしたことを特徴としている。
【００９１】
この発明にかかる実施の形態のチェック装置１１０ａによれば、リンク先のプログラムモジュールの不存在により実行できないプログラムモジュールが存在する場合にも、チェック対象プログラムを構成するすべてのプログラムモジュールについて、不備があるか否かのチェックを実行し、実行結果を得ることができる。これにより、実行できないプログラムモジュールが存在するごとにチェック対象プログラムの実行自体が中断されてしまう場合と比較して、実行できないプログラムモジュールの存在確認を容易かつ迅速におこなうことができる。これにより、チェック作業にかかる作業者の負担を軽減するとともに、チェック作業の効率化を図ることができる。
【産業上の利用可能性】
【００９２】
以上のように、この発明にかかるチェック装置、チェックプログラムおよびプログラムチェック方法は、ＪＣＬなどのように特定の言語により記述されたロードをチェックするチェック装置、チェックプログラムおよびプログラムチェック方法に有用であり、特に、実行対象となるロードの不備の修正のためにシステムを停止することができないロードを本番環境において実行する前にチェックするチェック装置、チェックプログラムおよびプログラムチェック方法に適している。
【符号の説明】
【００９３】
１００  本番登録システム
１１０ａ  チェック装置
１２１  本番登録ＤＢ
１２２  本番ＬＩＢ
１２３  受付ＬＩＢ
１２４  テストＬＩＢ
１２５  依頼処理部
１２６ａ  本番登録処理部
１２７  認可処理部
１２８  登録処理部
１２９  終了処理部
１３０  依頼システム
１４０  本番登録依頼システム
１５０  結果確認リスト
１６０  ファイル伝送システム
３０１  取得部
３０２  テスト実行部
３０３  結果出力部
【図１】
2019008750.tif 000003
【図２】
2019008750.tif 000004
【図３】
2019008750.tif 000005
【図４】
2019008750.tif 000006