特開2015-170079(P2015-170079A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日本総合研究所の特許一覧

特開2015-170079プログラム管理装置および方法,ならびにプログラム管理装置を制御するプログラム
<>
  • 特開2015170079-プログラム管理装置および方法,ならびにプログラム管理装置を制御するプログラム 図000003
  • 特開2015170079-プログラム管理装置および方法,ならびにプログラム管理装置を制御するプログラム 図000004
  • 特開2015170079-プログラム管理装置および方法,ならびにプログラム管理装置を制御するプログラム 図000005
  • 特開2015170079-プログラム管理装置および方法,ならびにプログラム管理装置を制御するプログラム 図000006
  • 特開2015170079-プログラム管理装置および方法,ならびにプログラム管理装置を制御するプログラム 図000007
  • 特開2015170079-プログラム管理装置および方法,ならびにプログラム管理装置を制御するプログラム 図000008
  • 特開2015170079-プログラム管理装置および方法,ならびにプログラム管理装置を制御するプログラム 図000009
  • 特開2015170079-プログラム管理装置および方法,ならびにプログラム管理装置を制御するプログラム 図000010
  • 特開2015170079-プログラム管理装置および方法,ならびにプログラム管理装置を制御するプログラム 図000011
  • 特開2015170079-プログラム管理装置および方法,ならびにプログラム管理装置を制御するプログラム 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2015-170079(P2015-170079A)
(43)【公開日】2015年9月28日
(54)【発明の名称】プログラム管理装置および方法,ならびにプログラム管理装置を制御するプログラム
(51)【国際特許分類】
   G06F 9/44 20060101AFI20150901BHJP
【FI】
   G06F9/06 620K
【審査請求】未請求
【請求項の数】9
【出願形態】OL
【全頁数】16
(21)【出願番号】特願2014-43710(P2014-43710)
(22)【出願日】2014年3月6日
(71)【出願人】
【識別番号】302064762
【氏名又は名称】株式会社日本総合研究所
(74)【代理人】
【識別番号】110001830
【氏名又は名称】東京UIT国際特許業務法人
(72)【発明者】
【氏名】久保 渉
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376DA16
5B376DA18
5B376DA20
5B376FA13
(57)【要約】
【課題】復旧可能にプログラムを退避する。
【解決手段】プログラム管理コンピュータシステムは,業務処理を実行する業務処理コンピュータシステムと協働して動作する。本番用ライブラリに業務処理に用いられる複数のプログラムが記憶されており,そのそれぞれについての最新の使用日付データがプログラム使用状況管理テーブルに記録されている。プログラム使用状況管理テーブルの最新使用日付データにしたがって,上記本番用ライブラリに記憶されている複数のプログラムのそれぞれについて,1年間使用されていない不使用プログラムかどうかが判断される(ステップ44)。不使用プログラムと判断されると,そのプログラムのコピーが退避ライブラリに記憶され,その後に本番用ライブラリから削除される。
【選択図】図4
【特許請求の範囲】
【請求項1】
業務処理装置による業務処理に用いられる複数のプログラムを記憶する本番用ライブラリに記憶されている複数のプログラムのそれぞれについて,少なくとも最新の使用された日付データを記録するプログラム使用状況管理テーブル,
上記プログラム使用状況管理テーブルの最新使用日付データにしたがって,上記本番用ライブラリに記憶されているプログラムについて所定期間使用されていない不使用プログラムかどうかを判断する第1の判断手段,
上記第1の判断手段によって不使用プログラムであることが判断された場合に,そのプログラムを複製して上記本番用ライブラリと異なる退避ライブラリに記憶する退避手段,および
上記退避手段によって退避ライブラリに上記不使用プログラムの複製物が記憶された後に,上記不使用プログラムを上記本番用ライブラリから削除する削除手段,
を備えるプログラム管理装置。
【請求項2】
上記プログラム使用状況管理テーブルに記録される複数のプログラムのそれぞれについての最新使用日付データを定期的に更新する更新手段を備え,
上記更新手段による最新使用日付データの更新を終えた後に,上記第1の判断手段による不使用プログラムであるかどうかの判断が行われる,
請求項1に記載のプログラム管理装置。
【請求項3】
上記プログラム使用状況管理テーブルに,上記本番用ライブラリに記憶されているプログラムのそれぞれについて上記本番用ライブラリに登録されたときの日付データが記録されており,
上記本番用ライブラリに記憶されているプログラムについて上記本番用ライブラリに登録されてから所定期間を経過しているかどうかを,上記登録日付データに基づいて判断する第2の判断手段をさらに備え,
上記退避手段は,
上記第1の判断手段によって不使用プログラムであると判断され,かつ上記第2の判断手段によって本番用ライブラリに登録されてから所定期間を経過していると判断された場合に,そのプログラムを複製して上記本番用ライブラリと異なる退避ライブラリに記憶する,
請求項1または2に記載のプログラム管理装置。
【請求項4】
上記プログラム使用状況管理テーブルが,上記本番用ライブラリに記憶されているプログラムのそれぞれについて退避不可フラグを設定可能に構成されており,
上記退避手段は,
上記退避不可フラグが立てられているプログラムについての処理をスキップする,
請求項1から3のいずれか一項に記載のプログラム管理装置。
【請求項5】
上記本番用ライブラリは,改修元プログラムおよび上記改修元プログラムを改修した改修先プログラムが記憶されるものであり,
上記プログラム使用状況管理テーブルに,上記改修元プログラムについて,その改修元プログラムを改修した改修先プログラムを識別するデータがさらに記録されており,
上記プログラム使用状況管理テーブルに上記改修先プログラム識別データが記録されている改修元プログラムについて,上記改修先プログラム識別データによって特定される改修先プログラムの最新使用日付データにしたがって,上記改修先プログラムが所定期間使用されていない不使用プログラムかどうかをさらに判断する第3の判断手段を備え,
上記退避手段は,
上記第1の判断手段によって改修元プログラムが不使用プログラムであると判断され,かつ上記第3の判断手段によって改修先プログラムも不使用プログラムであると判断された場合に,その改修元プログラムを複製して上記本番用ライブラリと異なる退避ライブラリに記憶し,上記第3の判断手段によって上記改修先プログラムが不使用プログラムでないと判断された場合には上記改修元プログラムについての処理をスキップする,
請求項1から4のいずれか一項に記載のプログラム管理装置。
【請求項6】
上記業務処理装置において実行すべきプログラムが上記本番用ライブラリに記憶されていない場合に上記業務処理装置から出力されるエラーメッセージにしたがって,上記実行すべきプログラムを上記退避ライブラリにおいて検索する検索手段,および
上記検索手段によって見つかった上記実行すべきプログラムを複製して上記本番用ライブラリおよび上記退避ライブラリと異なる,上記業務処理装置がアクセス可能な緊急ライブラリに記憶する復旧手段をさらに備えている,
請求項1から5のいずれか一項に記載のプログラム管理装置。
【請求項7】
上記業務処理装置において実行すべきプログラムを規定するステートメントに,上記実行すべきプログラムが格納されているライブラリとして上記本番用ライブラリと上記緊急ライブラリとが,上記緊急ライブラリを高い優先順位にして併記されている,
請求項6に記載のプログラム管理装置。
【請求項8】
業務処理装置による業務処理に用いられる複数のプログラムを記憶する本番用ライブラリに記憶されている複数のプログラムのそれぞれについて,少なくとも最新の使用された日付データを記録するプログラム使用状況管理テーブルを備えるプログラム管理装置を制御する方法であり,
上記プログラム使用状況管理テーブルの最新使用日付データにしたがって,上記本番用ライブラリに記憶されているプログラムについて所定期間使用されていない不使用プログラムかどうかを判断し,
不使用プログラムであることが判断された場合に,そのプログラムを複製して上記本番用ライブラリと異なる退避ライブラリに記憶し,
退避ライブラリに上記不使用プログラムの複製物が記憶された後に,上記不使用プログラムを上記本番用ライブラリから削除する,
方法。
【請求項9】
業務処理装置による業務処理に用いられる複数のプログラムを記憶する本番用ライブラリに記憶されている複数のプログラムのそれぞれについて,少なくとも最新の使用された日付データを記録するプログラム使用状況管理テーブルを備えるプログラム管理装置を制御するためのプログラムであって,
上記プログラム使用状況管理テーブルの最新使用日付データにしたがって,上記本番用ライブラリに記憶されているプログラムについて所定期間使用されていない不使用プログラムかどうかを判断させ,
不使用プログラムであることが判断された場合に,そのプログラムを複製して上記本番用ライブラリと異なる退避ライブラリに記憶させ,
退避ライブラリに上記不使用プログラムの複製物が記憶された後に,上記不使用プログラムを上記本番用ライブラリから削除させるように上記プログラム管理装置を制御する,
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は,プログラム管理装置および方法,ならびにプログラム管理装置を制御するためのプログラムに関する。
【背景技術】
【0002】
ソフトウェアライフサイクルプロセスに関する規格であるISO/IEC15288にはソフトウェア廃棄プロセスに関する記述がある。しかしながら,この規格にはソフトウェア廃棄プロセスの目的および成果が概念的に規定されているにすぎず,具体的にどのようなときにどのようにしてソフトウェアを廃棄するかについては全く記載されていない。
【0003】
既存のコンピュータシステム,特にメインフレームと呼ばれる企業等の基幹業務に利用される大規模なコンピュータシステムでは多数のプログラムが使用されている。たとえば,クレジットカードに関する業務処理を実行するコンピュータシステムでは10万本を超える数のプログラムが記憶装置に記憶されており,JCL(ジョブ制御言語)ステートメントの記述にしたがって多数のプログラムが実行される。
【0004】
プログラム(ソフトウェア)の開発では既存プログラムの一部改修が行われることがある。この場合,何らかのシステム障害が生じた場合にすぐ対処できるようにするために,一般には改修後のプログラムを保存するのみならず,改修前のプログラムも依然として残され,これが繰返されることでシステム規模が肥大化する現状がある。システム規模の肥大化は改訂コストおよび保守コストの増大を招く。
【0005】
特許文献1は,クライアント毎にライセンス情報を保持しておき,所定の期間利用されていない不使用ソフトウェアを抽出して,不使用ソフトウェアの登録をライセンス情報から抹消することで,長期間使用されていないソフトウェアのライセンスを回収して資産の有効利用を図るソフトウェア管理システムを記載する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2004−62561号公報
【0007】
しかしながら,ライセンス情報を抹消するだけでは,プログラムの改修が繰り返されることで生じる上述したコンピュータシステムの肥大化を避けることはできない。
【発明の開示】
【0008】
この発明は,不使用のプログラムを復旧可能に自動的に退避することで,人手によらずにコンピュータシステムのスリム化を図ることを目的とする。
【0009】
この発明によるプログラム管理装置は,業務処理装置による業務処理に用いられる複数のプログラムを記憶する本番用ライブラリに記憶されている複数のプログラムのそれぞれについて,少なくとも最新の使用された日付データを記録するプログラム使用状況管理テーブル,上記プログラム使用状況管理テーブルの最新使用日付データにしたがって,上記本番用ライブラリに記憶されているプログラムについて所定期間使用されていない不使用プログラムかどうかを判断する第1の判断手段,上記第1の判断手段によって不使用プログラムであることが判断された場合に,そのプログラムを複製して上記本番用ライブラリと異なる退避ライブラリに記憶する退避手段,および上記退避手段によって退避ライブラリに不使用プログラムの複製物が記憶された後に,上記不使用プログラムを上記本番用ライブラリから削除する削除手段を備えている。
【0010】
この発明によると,所定期間使用されていない不使用プログラムが本番用ライブラリから自動的に削除されるので,本番用ライブラリには所定期間内に使用されたプログラムのみが残る。業務処理装置による業務処理に用いられる複数のプログラムを記憶する本番用ライブラリの改訂作業が簡略化され,システム規模の肥大化および保守コストの増大を低減することができる。プログラム改修時の影響範囲の特定も行いやすくなる。
【0011】
不使用プログラムかどうかを判断するための所定期間は任意に設定することができる。
【0012】
またこの発明によると,本番用ライブラリから削除される不使用プログラムの複製物が退避ライブラリに残される。このため,本番用ライブラリから削除された不使用プログラムを必要に応じて本番用ライブラリに戻すことも可能である。退避ライブラリは業務処理装置による業務処理に用いられるライブラリではないから,退避ライブラリに対する改訂作業は必要とされず,したがって退避ライブラリに不使用プログラムの複製物を残しても保守コスト等が大幅に増大することはない。
【0013】
一実施態様では,上記プログラム使用状況管理テーブルに記録される複数のプログラムのそれぞれについての最新使用日付データを定期的に更新する更新手段を備え,上記更新手段による最新使用日付データの更新を終えた後に,上記第1の判断手段による不使用プログラムであるかどうかの判断が行われる。不使用プログラムであるかどうかの判断に,常に最新の使用実績を用いることができる。
【0014】
最新使用日付データの更新は,好ましくはこの発明によるプログラム管理装置の処理タイミングに連動するスパンで行われる。たとえば,プログラム管理装置を日次処理(毎日)で起動する場合には,最新使用日付データの更新も日次処理とされる。プログラム管理装置を月次処理(毎月)で起動する場合には,最新使用日付データの更新も月次処理とされる。
【0015】
好ましくは,上記プログラム使用状況管理テーブルに,上記本番用ライブラリに記憶されているプログラムのそれぞれについて上記本番用ライブラリに登録(記憶)されたときの日付データが記録されている。プログラム管理装置は,上記本番用ライブラリに記憶されているプログラムについて上記本番用ライブラリに登録されてから所定期間を経過しているかどうかを,上記登録日付データに基づいて判断する第2の判断手段をさらに備え,上記退避手段は,上記第1の判断手段によって不使用プログラムであると判断され,かつ上記第2の判断手段によって本番用ライブラリに登録されてから所定期間を経過していると判断された場合に,そのプログラムを複製して上記本番用ライブラリと異なる退避ライブラリに記憶する。逆に言えば,不使用プログラムであっても,そのプログラムが本番用ライブラリに登録されて間もないプログラムである場合には,そのプログラムの複製物の退避ライブラリへの記憶およびそのプログラムの本番用ライブラリからの削除は行われない。新規に本番用ライブラリに登録されて未だ使用されていないプログラムが本番用ライブラリから削除されてしまうことが防止される。第2の判断手段において用いられる所定期間も任意に設定することができる。
【0016】
一実施態様では,上記プログラム使用状況管理テーブルが,上記本番用ライブラリに記憶されているプログラムのそれぞれについて退避不可フラグを設定可能に構成されており,上記退避手段は,上記退避不可フラグが立てられるプログラムについての処理をスキップする。不使用プログラム,または不使用プログラムでありかつ本番用ライブラリへの登録から所定期間が経過しているものであっても,退避不可フラグが立てられている場合には,そのプログラムの複製物の退避ライブラリへの記憶およびそのプログラムの本番用ライブラリからの削除は行われない。たとえば,数年に一度しか使用されないが,数年に一度は使用されるプログラム(うるう年だけに使用されるプログラムなど)について退避不可フラグを立てておくことで,そのプログラムを本番用ライブラリに常に残しておくことができる。
【0017】
他の実施態様では,上記本番用ライブラリは,改修元プログラムおよび上記改修元プログラムを改修した改修先プログラムが記憶されるものであり,上記プログラム使用状況管理テーブルに,上記改修元プログラムについて,その改修元プログラムを改修した改修先プログラムを識別するデータ(プログラム名,識別番号など)がさらに記録されており,上記プログラム使用状況管理テーブルに上記改修先プログラム識別データが記録されている改修元プログラムについて,上記改修先プログラム識別データによって特定される改修先プログラムの最新使用日付データにしたがって,上記改修先プログラムが所定期間使用されていない不使用プログラムかどうかをさらに判断する第3の判断手段を備え,上記退避手段は,上記第1の判断手段によって改修元プログラムが不使用プログラムであると判断され,かつ上記第3の判断手段によって改修先プログラムも不使用プログラムであると判断された場合に,その改修元プログラムを複製して上記本番用ライブラリと異なる退避ライブラリに記憶し,上記第3の判断手段によって上記改修先プログラムが不使用プログラムでないと判断された場合には上記改修元プログラムについての処理をスキップする。
【0018】
本番用ライブラリに改修元プログラムおよびその改修元プログラムを改修した改修先プログラムが記憶されているとき,上記改修元プログラムが不使用プログラムであり,かつ改修先プログラムも不使用プログラムであるときに改修元プログラムの複製物の退避ライブラリへの記憶および改修元プログラムの本番用ライブラリからの削除が行われる。改修元プログラムが不使用プログラムであっても,改修先プログラムが不使用プログラムでない場合には改修元プログラムの複製物の退避ライブラリへの記憶および改修元プログラムの本番用ライブラリからの削除は行われない。業務処理装置による業務処理に影響を生じさせない可能性が高く,かつ後日参照されることもないと考えられるプログラムを本番用ライブラリから削除することができる。
【0019】
好ましくは,上記業務処理装置において実行すべきプログラムが上記本番用ライブラリに記憶されていない場合に上記業務処理装置から出力されるエラーメッセージにしたがって,上記実行すべきプログラムを上記退避ライブラリにおいて検索する検索手段,および上記検索手段によって見つかった上記実行すべきプログラムを複製して上記本番用ライブラリおよび上記退避ライブラリと異なる,上記業務処理装置がアクセス可能な緊急ライブラリに記憶する復旧手段をさらに備えている。上述したように,プログラム管理装置では本番用ライブラリから削除された不使用プログラムの複製物が退避ライブラリに残されている。退避ライブラリに残されているプログラムを緊急ライブラリに複製し,この緊急ライブラリを業務処理装置においてアクセス可能にしておくことで,本番用ライブラリから一旦削除されたプログラムであっても業務処理装置における業務処理に用いることができる。なお,緊急ライブラリは業務処理装置が業務処理に用いるプログラムを常時記憶するライブラリではないから,緊急ライブラリに複製されたプログラムは,オペレータによって本番用ライブラリに記憶される(戻される)。
【0020】
好ましくは,上記業務処理装置において実行すべきプログラムを規定するステートメントに,上記プログラムが格納されているライブラリとして,上記本番用ライブラリと上記緊急ライブラリとが上記緊急ライブラリを高い優先順位にして併記されている。これによって,緊急ライブラリに複製されたプログラムを業務処理装置は実行することができる。
【0021】
この発明は,上述したプログラム管理装置を制御する方法およびプログラムも提供する。
【図面の簡単な説明】
【0022】
図1】業務処理コンピュータシステムとプログラム管理コンピュータシステムとを概略的に示すブロック図である。
図2】本番用ライブラリ,退避ライブラリおよび緊急ライブラリ間のプログラムの移動の流れを示すブロック図である。
図3】プログラム使用状況管理テーブルを示す。
図4】退避処理プログラムの処理の流れを示すフローチャートである。
図5】退避処理プログラムの処理の流れを示すフローチャートである。
図6】退避処理プログラムの処理の流れを示すフローチャートである。
図7】復旧処理プログラムの処理の流れを示すフローチャートである。
図8】変形例のプログラム使用状況管理テーブルを示す。
図9】プログラムの世代関係を示す。
図10】変形例の退避処理プログラムの処理の流れを示すフローチャートである。
【実施例】
【0023】
図1は,業務処理コンピュータシステムとプログラム管理コンピュータシステムとを概略的に示している。
【0024】
業務処理コンピュータシステム10は,与えられるJCLステートメント11の記述にしたがって,所定の業務処理(ジョブ),たとえばクレジットカード・システムであれば認証処理,利用実績の記録処理,請求書発行処理,消費税加算処理などを実行するシステムである。JCLステートメント11にはジョブの実行指示,ジョブにおいて実行すべきプログラム名,実行すべきプログラムを格納するライブラリ名,入力ファイル名,出力ファイル名,処理結果を保存する記憶装置名等が記述されており,JCLステートメント11の記述にしたがって業務処理コンピュータシステム10の動作が制御される。すなわち,業務処理コンピュータシステム10は,与えられるJCLステートメント11にしたがって業務処理コンピュータシステム10に接続されている記憶装置12に記憶されている入力ファイルを読出して,後述する本番用ライブラリ等に記憶されているプログラムを用いて所定の処理(ジョブ)を行い,処理結果を出力ファイルに記録する。一つのジョブでは一または複数のプログラムが実行される。一のプログラムが複数のジョブに共通に用いられることもある。
【0025】
業務処理コンピュータシステム10において行われるジョブに用いられるプログラムは,業務処理コンピュータシステム10に接続された記憶装置である本番用ライブラリ31に記憶されている。すなわち業務処理コンピュータシステム10は,JCLステートメント11に記載されているプログラム名によって特定されるプログラムを上記本番用ライブラリ31から読出し,実行する。本番用ライブラリ31には多数たとえば数万本のプログラムが記憶されている。
【0026】
業務処理コンピュータシステム10にはさらに,上記本番用ライブラリ31とは別の記憶装置である緊急ライブラリ33も接続されている。緊急ライブラリ33には通常は何も記憶されていない。詳細は後述するが,業務処理コンピュータシステム10において実行すべきプログラムが本番用ライブラリ31に記憶されていない場合に,その実行すべきプログラムが緊急ライブラリ33に一時的に記憶される。緊急ライブラリ33に一時的に記憶されたプログラムも業務処理コンピュータシステム10によるジョブに用いられる。
【0027】
上述したJCLステートメント11には,実行すべきプログラムの格納ライブラリ名として,上述した本番用ライブラリ31と緊急ライブラリ33の2つのライブラリ名が,緊急ライブラリ33を高い優先順位にして併記される。このようにJCLステートメント11を記述しておくことで,業務処理コンピュータシステム10は,JCLステートメント11に記述されているプログラム名のプログラムを,はじめに緊急ライブラリ33において検索して読出し,緊急ライブラリ33において見つからない場合に次に本番用ライブラリ31において検索して読み出すように制御される。
【0028】
プログラム管理コンピュータシステム20は,業務処理コンピュータシステム10とともに用いられるコンピュータシステムであり,上述した本番用ライブラリ31に記憶されている多数のプログラムを管理するためのシステムである(ライブラリ管理システムと言うこともできる)。上述した本番用ライブラリ31および緊急ライブラリ33は,プログラム管理コンピュータシステム20にも接続されている。
【0029】
プログラム管理コンピュータシステム20にはさらに退避ライブラリ32が接続されている。後述するように,退避ライブラリ32には,本番用ライブラリ31に記憶されているプログラムのうち一定期間不使用のもの(以下,不使用プログラムという)のコピー(複製物)が記憶される。退避ライブラリ32に不使用プログラムのコピーが記憶された後,本番用ライブラリ31から不使用プログラムが削除される。また,後述するように,プログラム管理コンピュータシステム20は,業務処理コンピュータシステム10において実行すべきプログラムが本番用ライブラリ31および緊急ライブラリ33のいずれにも記憶されていない場合に,その実行すべきプログラムを退避ライブラリ32から検索して緊急ライブラリ33に移動する処理(緊急ライブラリ33に複製し,かつ退避ライブラリ32から削除する処理)も行う。
【0030】
プログラム管理コンピュータシステム20を制御するためのプログラムは,プログラム管理コンピュータシステム20に接続された記憶装置21に記憶されている。記憶装置21には,後述するプログラム利用状況管理テーブル,退避処理プログラムおよび復旧処理プログラムが記憶されている。これらのテーブルおよびプログラムの詳細は後述する。
【0031】
図2は上述した本番用ライブラリ31,退避ライブラリ32および緊急ライブラリ33間のプログラムの移動の流れを概略的に示している。
【0032】
本番用ライブラリ31には,上述したように,業務処理コンピュータシステム10によって実行される多数のプログラムが記憶されている。ここで本番用ライブラリ31に記憶されている多数のプログラムのなかには,業務処理コンピュータシステム10によって後日全く使用されないものも存在する。これは,プログラムの開発(本番用ライブラリ31の構築)が,一般に既存プログラムの一部を改修することによって行われることに起因する。
【0033】
すなわち,既に稼働している業務処理コンピュータシステム10を改修する場合,本番用ライブラリ31ごと,すなわち本番用ライブラリ31に記憶されている多数のプログラムのすべてを新規に作成したプログラムに一斉に交換することは一般には行われない。継続的なサービス提供(業務処理)に支障が生じる可能性があるからである。既に稼働している業務処理コンピュータシステム10を改修する場合には,本番用ライブラリ31に記憶されている多数のプログラムのうちの改修に必要ないくつかのプログラムのみの改修が行われる。さらにプログラムの改修についても,プログラム全体を書直すことは一般には行われずその一部の書直しにとどめられる。プログラムの一部改修が行われると,改修されたプログラムが新たに本番用ライブラリ31に記憶される。このとき,従前使用していた改修前のプログラムも,その後に使用される可能性は低いものの,本番用ライブラリ31にそのまま残される。これも,改修後のプログラムに何らかの欠陥があった場合にすぐに改修前のプログラムを使用することができる状態にしておくことで,継続的なサービス提供に支障が生じないようにするためである。これが,業務処理コンピュータシステム10によって後日全く使用されないものが本番用ライブラリ31に存在する理由である。
【0034】
詳細には後述するが,プログラム管理コンピュータシステム20は,本番用ライブラリ31に記憶されている多数のプログラムのうち所定期間使用されていない不使用プログラムを退避ライブラリ32に退避する処理(退避ライブラリ32にコピーを記憶し,かつ本番用ライブラリ31から削除する処理)を実行する。これにより本番用ライブラリ31には長期間使用されていない不使用プログラムが無くなる。本番用ライブラリ31には業務処理コンピュータシステム10によって所定期間内に使用されたプログラムのみが記憶されている状態になるので,その後は改修作業をスムーズに行うことができるようになり保守コストの削減を図ることができる。プログラムを改修するときの影響範囲の特定も容易になる。
【0035】
さらに,詳細は後述するが,プログラム管理コンピュータシステム20は,業務処理コンピュータシステム10によって本番用ライブラリ31および緊急ライブラリ33に記憶されていないプログラムの実行が要求された場合に,そのプログラムを退避ライブラリ32から緊急ライブラリ33に復旧する処理(緊急ライブラリ33にコピーを記憶し,かつ退避ライブラリ32から削除する処理)も行う。緊急ライブラリ33に復旧されたプログラムは,その後オペレータによって本番用ライブラリ31に再登録される。
【0036】
図3はプログラム管理コンピュータシステム20の記憶装置21に記憶されているプログラム使用状況(使用実績)管理テーブル21Aを示している。
【0037】
プログラム使用状況管理テーブル21Aには,本番用ライブラリ31に記憶されている多数のプログラムのそれぞれについてのデータレコードを含み,各データレコードにはプログラム名,最新使用年月日,登録年月日および退避不可フラグの各データ項目が記録されている。
【0038】
「プログラム名」は本番用ライブラリ31に記憶されているプログラムのそれぞれに固有の名称である。上述したJCLステートメント11にはこのプログラム名が記述される。
【0039】
「最新使用年月日」は,プログラムが使用された最新の年月日である。業務処理コンピュータシステム10(そのオペレーティングシステム)によって作成されるシステムログに記載されるプログラムの実行履歴データにしたがってこの最新使用年月日は更新される。
【0040】
「登録年月日」は本番用ライブラリ31にプログラムを記憶(登録)したときの年月日である。オペレータ(ライブラリアン)によって本番用ライブラリ31にプログラムが登録されたときに業務処理コンピュータシステム10(そのオペレーティングシステム)によって登録年月日を自動的に記録してもよい。
【0041】
「退避不可フラグ」は,次に説明する退避処理の対象としないプログラムであることを表すフラグである。退避不可フラグが立てられたプログラムは,後述する退避処理の対象から外される。
【0042】
図4から図6は退避処理プログラムによって制御されるプログラム管理コンピュータシステム20の動作の流れを示すフローチャートである。
【0043】
退避処理プログラムは,日次処理によって,たとえば所定時刻に毎日実行される。はじめに1日分の使用実績にしたがって,上述したプログラム使用状況管理テーブル21Aの最新使用年月日が更新される(ステップ41)。上述したように,業務処理コンピュータシステム10(そのオペレーティングシステム)は業務処理コンピュータシステム10によって実行されたプログラムの実行履歴データを含むシステムログを作成する。このログに基づいて最新使用年月日は更新される。
【0044】
カウンタiが初期化される(ステップ42)。プログラム使用状況管理テーブル21Aにデータ登録されているすべてのプログラム(すなわち本番用ライブラリ31に記憶されているすべてのプログラム)のそれぞれについて,プログラム使用状況管理テーブル21Aのデータを用いて以下の処理が行われる(ステップ43でNO)(プログラム使用状況管理テーブル21Aにおいて管理されているプログラムの数をここでは「N」とする)。
【0045】
過去1年間に使用されたプログラムであるかどうかが判断される(ステップ44)。この判断に最新使用年月日が用いられる。プログラム管理コンピュータシステム20のマシンタイム(すなわち現在の年月日)から最新使用年月日までの期間が1年以内であるかどうかが判断される。
【0046】
1年以内に使用されている場合には,カウンタiがインクリメントされて次のプログラムに対する処理に進む(ステップ44でNO,ステップ48)。すなわち退避処理はスキップされる。
【0047】
最新使用年月日から1年を経過している場合(ステップ44でYES ),次に登録日から3日経過しているかどうかが判断される(ステップ45)。この判断に登録年月日が用いられる。これは本番用ライブラリ31に新規に記憶されかつ未だ使用されていないプログラムが,使用実績がないために記憶されてすぐに退避処理されてしまうのを防止するためである。なお,プログラム開発では一般に実際に使用されるときの直前まで開発作業が行われるから,プログラムが本番用ライブラリ31に新規に記憶される場合,そのプログラムは使用の直前に本番用ライブラリ31に記憶される。
【0048】
登録日から数日,ここでは3日が経過していない場合,すなわち新規に本番用ライブラリ31に記憶されたプログラムであることが判断されると,カウンタiがインクリメントされて次のプログラムに対する処理に進む(ステップ45でNO,ステップ48)。すなわち退避処理はスキップされる。
【0049】
登録日から3日を経過している場合(ステップ45でYES ),次に退避不可フラグの有無が判断される(ステップ46)。プログラム使用状況管理テーブル21Aにおいて退避不可フラグが立てられている場合(ステップ46でNO),そのプログラムは退避処理から強制的に外される。たとえば4年に一度のみ実行されるうるう年に関するプログラムに退避不可フラグが立てられる。また,後述する復旧処理によって退避ライブラリ32から緊急ライブラリ33に復旧されたプログラムについても,そのプログラムを本番用ライブラリ31に再登録するときに退避不可フラグが立てられる。いずれにしても退避不可フラグが立てられている場合には,カウンタiがインクリメントされて次のプログラムに対する処理に進む(ステップ48)。すなわち退避処理はスキップされる。
【0050】
過去1年間使用されておらず,登録日から3日経過しており,さらに退避不可フラグが立てられていないプログラムである場合(ステップ44でYES,ステップ45でYES,ステップ46でYES ),そのプログラム(以下,退避対象プログラムという)についてのコピーパラメータおよびデリートパラメータが作成される(ステップ47)。
【0051】
作成されたコピーパラメータにしたがって,退避処理プログラムは,退避対象プログラムを本番用ライブラリ31から読出し,そのコピーを作成する(図5のステップ51,52)。作成された退避対象プログラムのコピーは退避ライブラリ32に記憶(登録)される(ステップ53)。
【0052】
さらに作成されたデリートパラメータにしたがって,退避処理プログラムは,退避対象プログラムを本番用ライブラリ31から削除する(図6のステップ61)。さらに退避処理プログラムは,本番用ライブラリ31から削除されかつ退避ライブラリ32に記憶された退避対象プログラムについてのデータレコードを,プログラム使用状況管理テーブル21Aから削除する(ステップ62)。
【0053】
上述の処理がプログラム使用状況管理テーブル21Aに管理されているすべてのプログラム(本番用ライブラリ31に記憶されているすべてのプログラム)について行われる。すべてのプログラムについての処理が終了すると,退避処理プログラムの処理が終了する(ステップ43でYES)。
【0054】
このような処理を経ることで,たとえば「大規模災害時に被災対象地域には請求書を出さない」といったプログラムは,本番用ライブラリ31から削除されかつ退避ライブラリ32に記憶されることになる。
【0055】
本番用ライブラリ31から削除されかつ退避ライブラリ32に記憶されたプログラムについて,そのプログラム名,退避ライブラリ32に記憶された年月日等のデータを格納したテーブルを作成してもよい。
【0056】
ステップ44,45,46の処理の順番は任意である。たとえば,先に登録日から3日を経過していないプログラムおよび退避不可フラグが立てられているプログラムを処理対象から外し,残りのプログラムに対して最新使用年月日から1年を経過しているかどうかを判断してもよい。
【0057】
図7は復旧処理プログラムによって制御されるプログラム管理コンピュータシステム20の動作の流れを示すフローチャートである。
【0058】
上述したように,業務処理コンピュータシステム10は与えられるJCLステートメント11の記述にしたがってジョブに必要なプログラムを緊急ライブラリ33ないし本番用ライブラリ31から読み出して実行する。実行すべきプログラムが緊急ライブラリ33にも本番用ライブラリ31にも記憶されていない場合,業務処理コンピュータシステム10(そのオペレーティングシステム)はそのジョブを一旦終了し,実行することができなかったプログラム名を含むエラーメッセージを出力する。復旧処理プログラムは,業務処理コンピュータシステム10によってこのエラーメッセージが出力された場合に起動される。
【0059】
復旧処理プログラムは,業務処理コンピュータシステム10から出力されたエラーメッセージにしたがって,ジョブ終了の原因となったプログラムを退避ライブラリ32から検索する(ステップ71)。上述したように,プログラム管理コンピュータシステム20は本番用ライブラリ31から退避対象プログラムを削除する場合,そのプログラムのコピーを退避ライブラリ32に記憶する。このため,過去に本番用ライブラリ31に記憶されていたが,その後に本番用ライブラリ31から削除されたプログラムは退避ライブラリ32に記憶されている。エラーメッセージによって特定されるプログラムは退避ライブラリ32に記憶されている可能性が高い。
【0060】
エラーメッセージによって特定されるプログラムが退避ライブラリ32において見つかった場合,復旧処理プログラムは見つかったプログラムをコピーし,それを緊急ライブラリ33に記憶(登録)する(ステップ72)。好ましくは,復旧処理プログラムはコピーを終えたプログラムを退避ライブラリ32から削除する(ステップ73)。
【0061】
緊急ライブラリ33にプログラムがコピーされると,ジョブ終了を生じたJCLステートメント11の再実行指令が,プログラム管理コンピュータシステム20から業務処理コンピュータシステム10に与えられ,業務処理コンピュータシステム10はジョブ終了を生じたJCLステートメント11を再実行する。JCLステートメント11には,上述したように,実行すべきプログラムの格納ライブラリとして緊急ライブラリ33と本番用ライブラリ31の2つのライブラリが緊急ライブラリ33を高い優先順位にして併記されている。このため,JCLステートメント11の再実行時には,退避ライブラリ32から緊急ライブラリ33にコピーされたプログラムが読み込まれることになり,正常にジョブが実行される。
【0062】
復旧処理プログラムによって緊急ライブラリ33に記憶されたプログラムは,業務処理コンピュータシステム10のオペレータ等によって本番用ライブラリ21に再登録され,再登録を終えた後に,緊急ライブラリ33から削除される。また,緊急ライブラリ33から本番用ライブラリ21に再登録されたプログラムについて,プログラム使用状況管理テーブル21Aに退避不可フラグを立てることで,本番用ライブラリ21に再登録されたプログラムをその後本番用ライブラリ21から削除されないようにすることができる。
【0063】
上述した実施例では,プログラム管理コンピュータシステム20を業務処理コンピュータシステム10と別個のコンピュータシステムとして説明したが,プログラム管理コンピュータシステム20の処理を業務処理コンピュータシステム10に実行させることもできる。この場合には,上述したJCLステーメント11に退避処理プログラムの実行命令,復旧処理プログラムの実行命令等が記載され,このJCLステートメント11が業務処理コンピュータシステム10に読み込まれることで,業務処理コンピュータシステム10がプログラム管理コンピュータシステム20として動作する。
【0064】
また上述した実施例では本番用ライブラリ31等に記憶されるプログラムが実行モジュールであることを前提にしているが,ソースコードであってもよい。一般に実行モジュールは,ソースコードをコンパイラによってコンパイルしてオブジェクトコードを作成し,複数のオブジェクトコードをリンカによってリンクすることで作成される。本番用ライブラリ31から退避ライブラリ32にコピーされ,かつ本番用ライブラリ31から削除されるプログラム,および退避ライブラリ32から緊急ライブラリ33にコピーされるプログラムは,上述した実行モジュールおよびソースコードの両方であってもよいし,実行モジュールのみまたはソースコードのみであってもよい。
【0065】
図8は他の実施例のプログラム使用状況管理テーブル21Bを示している。図3に示すプログラム使用状況管理テーブル21Aとは,本番用ライブラリ31に記憶されている多数のプログラムのそれぞれについてのデータレコードに,「改修元プログラム名」および「改修先プログラム名」のデータ項目が追加されている点が異なる。
【0066】
上述したように,プログラムを改修する場合,プログラム全体を書直すことは一般に行われずその一部の書直しにとどめられることが多い。「改修元プログラム名」は,プログラムを改修するにあたってその改修の元となったプログラムの名称である。改修元プログラム名は,改修が行われたプログラム(改修先プログラム)についてのデータレコードに記録される。他方「改修先プログラム名」は改修されたプログラムの名称である。改修先プログラム名は,改修の元となったプログラム(改修元プログラム)についてのデータレコードに記録される。
【0067】
図9を参照して,たとえばプログラム名「P00001」のプログラムの一部を改修して,プログラム名「P00021」と「P00045」の2つのプログラムが新たにつくられて本番用ライブラリ31に登録されたとする。この場合,プログラム名「P00001」のプログラムについてのデータレコードの「改修先プログラム名」のデータ項目に,プログラム名「P00021」と「P00045」が記録される(図8参照)。他方,プログラム名「P00001」の一部を改修して作られたプログラム名「P00021」のプログラムについてのデータレコードの「改修元プログラム名」には,改修の元になったプログラム名「P00001」が記録される(図8参照)。プログラム名「P00001」の一部を改修して作られたプログラム名「P00045」のプログラムについてのデータレコードにも,同様にして「改修元プログラム名」に改修の元となったプログラム名「P00001」が記録される(図示略)。
【0068】
プログラム名「P00001」のプログラムの一部を改修して作られたプログラム名「P00021」と「P00045」の2つのプログラムのそれぞれをさらに一部改修することで,プログラム名「P00021」のプログラムからプログラム名「P00123」および「P00234」の2つのプログラムが,プログラム名「P00045」のプログラムからプログラム名「P00345」および「P00456」の2つのプログラムが,それぞれ作られたとする。この場合も,新たに作られたプログラム,たとえばプログラム名「P00123」のプログラムについてのデータレコードの「改修元プログラム名」のには,改修の元となったプログラムのプログラム名,ここでは「P00021」が記録される(図8参照)。プログラム名「P00021」のデータレコードの「改修先プログラム名」には,プログラム名「P00123」と「P00234」が記録される(図8参照)。このようにプログラム使用状況管理テーブル21Bには,プログラムの改修が行われた場合に世代データ(親,子,孫の関係を表す関連づけデータ)が記録される。
【0069】
図10は,上述したプログラム使用状況管理テーブル21Bを用いる場合の退避処理プログラムの処理の流れを示すもので,図4に対応するフローチャートである。図4のフローチャートとはステップ49の処理が加えられている点が異なる。
【0070】
過去1年間使用されておらず(ステップ44でYES ),登録日から3日経過しており(ステップ45でYES ),退避不可フラグが立てられていないプログラム(退避対象プログラム)である場合(ステップ46でYES ),さらに改修先プログラムについてそれが過去1年間不使用であるかどうかが判断される(ステップ49)。図9を参照して,たとえばプログラム名「P00001」のプログラムが退避対象プログラムであったとしても,次世代(子)の改修先プログラムまたはさらにその次世代(孫)の改修先プログラムが過去1年間に使用されている場合には,プログラム名「P00001」の改修元プログラムは退避対象から外される(ステップ49でNO)。次世代またはさらにその次世代の改修先プログラムのすべてについて過去1年間使用されていない場合に,その後の退避処理に進む(ステップ49でYES )。なお,改修元プログラムが不使用プログラムであるかどうか判断する期間(ステップ44)と改修先プログラムが不使用プログラムであるかどうかを判断する期間(ステップ49)とは一致させてもよいし異ならせてもよい。
【0071】
この変形例では,改修先プログラムが比較的最近使用されている場合には,改修元プログラムはそれが比較的最近使用されていないとしても本番用ライブラリ31に残される。またプログラム使用状況管理テーブル21Bには改修元プログラム名も記憶されているので,プログラムの改修時に,本番用ライブラリ31に残されている改修元プログラムを辿ることができる。この変形例では,改修元プログラムも改修先プログラムも使用されなくなっているプログラム群(既に使命を終えていると考えられるプログラム群)が本番用ライブラリ31から削除されることになる。業務処理コンピュータシステム10による業務処理に影響を生じさせない可能性が高く,かつ後日参照されることもないと考えられるプログラムを本番用ライブラリ31から削除することができる。
【符号の説明】
【0072】
10 業務処理コンピュータシステム(業務処理装置)
11 JCLステートメント
12,21 記憶装置
20 プログラム管理コンピュータシステム(プログラム管理装置)
21A,21B プログラム使用状況管理テーブル
31 本番用ライブラリ
32 退避ライブラリ
33 緊急ライブラリ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10