(57)【要約】【課題】バージョンアップ対象のプログラムの更新を正しく行う。【解決手段】現用機管理サーバ２は、修正後のプログラムのソースファイルのリストを作成する（Ｓ３２）。そして、このソースファイルを現用機へ送信し（Ｓ３３）、更新するよう指示をする（Ｓ３６）。この指示を受け付けた現用機から、指示に基づいて更新したプログラムのリストを取得する（Ｓ３７）。ここで取得した識別情報とステップＳ３２のリストとを比較して、プログラムのバージョンアップの成否を判定する。【選択図】  図５
2004310233.tif 000002
【特許請求の範囲】
【請求項１】
現用機に接続されていて、前記現用機で動作しているプログラムのバージョンアップを行うシステムであって、
修正後のプログラムのソースファイルを記憶する手段と、
前記記憶手段に記憶されているソースファイルを現用機へ送信し、更新するよう指示をする手段と、
前記指示を受け付けた現用機から、前記指示に基づいて更新したプログラムの識別情報を取得する手段と、
前記取得手段が取得した識別情報と前記記憶手段に記憶されているソースファイルの識別情報とを比較して、プログラムのバージョンアップの成否を判定する手段と、を備えるシステム。
【請求項２】
前記判定の結果、プログラムのバージョンアップが成功していた場合、前記現用機に再起動を指示する手段をさらに備える請求項１記載のシステム。
【請求項３】
現用機で動作しているプログラムのバージョンアップを行うための方法であって、
修正後のプログラムのソースファイルを現用機へ送信し、更新するよう指示をするステップと、
前記指示を受け付けた現用機から、前記指示に基づいて更新したプログラムの識別情報を取得するステップと、
前記取得手段が取得した識別情報と前記現用機へ送信したソースファイルの識別情報とを比較して、プログラムのバージョンアップの成否を判定するステップとを備える方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラム等のバージョンアップ作業を行うための技術に関し、特に、確実にプログラムの更新を行うための技術に関する。
【０００２】
【従来の技術】
大規模なシステムにおいて、プログラムの登録、払い出しにおいて、プログラム管理者が不在であっても緊急時などでもスムーズに運用できるよう、プログラムの状態などを記憶したプログラム履歴テーブルを用いて行う方法が特許文献１に記載されている。
【０００３】
また、大分散型エンタープライズ環境において、コンピューティング資源を効果的に管理する方法が特許文献２に記載されている。
【０００４】
【特許文献１】
特開２０００−４７８５４号公報
【特許文献２】
特開平１０−１２４４６８号公報
【０００５】
【発明が解決しようとする課題】
ここで、プログラム等のバージョンアップを行う場合には、プログラムのソースファイルを修正、更新するという作業がある。そして、同一のプログラムが複数のコンピュータで動作しているような大規模システムでは、この修正、更新されたソースファイルを、それらの複数のコンピュータに配布して更新しなければならない。このとき、配布されたコンピュータにおいて、正しく更新が行われ、実行できるようになっていなければならない。
【０００６】
本発明の目的は、バージョンアップ対象のプログラムの更新が正しく行うためのシステム等を提供することである。
【０００７】
【課題を解決するための手段】
本発明の一つの実施態様に従うシステムは、現用機に接続されていて、前記現用機で動作しているプログラムのバージョンアップを行うシステムであって、修正後のプログラムのソースファイルを記憶する手段と、前記記憶手段に記憶されているソースファイルを現用機へ送信し、更新するよう指示をする手段と、前記指示を受け付けた現用機から、前記指示に基づいて更新したプログラムの識別情報を取得する手段と、前記取得手段が取得した識別情報と前記記憶手段に記憶されているソースファイルの識別情報とを比較して、プログラムのバージョンアップの成否を判定する手段と、を備える。
【０００８】
好適な実施形態では、前記判定の結果、プログラムのバージョンアップが成功していた場合、前記現用機に再起動を指示する手段をさらに備える。
【０００９】
【発明の実施の形態】
以下、本発明を適用したバージョンアップ管理システムの一実施形態について、図面を用いて説明する。
【００１０】
図１は本システムの全体構成を示す図である。本システムは、開発管理サーバ１および現用機管理サーバ２の二つの管理サーバを有する。そして、現用機管理サーバ２は、インターネットまたは専用回線などのネットワーク９を介して複数の現用機３と接続されていて、これらを管理する。現用機３では、例えば、複数のコンピュータプログラムが動作していて、顧客に対して種々のサービスを提供する。各現用機３は、それぞれ独立に動作することができる。
【００１１】
開発管理サーバ１には、バージョンアップ指示の入力を受け付けるバージョンアップ指示端末４と、管理者端末５とが接続されている。
【００１２】
現用機管理サーバ２には、管理者端末６が接続されている。ネットワーク９には、さらに緊急バージョンアップを行うための緊急端末７が接続されている。
【００１３】
開発管理サーバ１、現用機管理サーバ２、バージョンアップ指示端末４、管理者端末５、６および緊急端末７は、いずれも例えば汎用的なコンピュータシステムにより構成され、以下に説明する各サーバおよび端末の内の個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。
【００１４】
開発管理サーバ１は、その内部機能として、ユニークな管理番号を自動採番する採番データベース１１と、バージョンアップ対象ファイルを一時的に記憶するための納品エリアと、バージョンアップ対象ファイルの編集を行うためのワークエリア１３と、ソースプログラムの編集を行うためのエディタ１４と、現用機で動作している、最新世代プログラムのソースファイルを記憶するための最新世代エリア１５と、バージョンアップされた（修正された）ファイルを記憶するための凍結エリア１６とを有する。
【００１５】
現用機管理サーバ２は、開発管理サーバ１で凍結されたファイルの転送を受けたとき、それを記憶するための凍結エリア２１と、プログラムのソースファイルを世代管理するための資源管理エリア２２と、第３世代の資源を格納するための第３世代エリア２３と、緊急変更があったときに現用機３から送られてくる緊急変更されたファイルを一時的に記憶するための緊急変更エリア２５とを備える。
【００１６】
凍結エリア１６、２１は、それぞれ、特定の管理者だけがアクセス可能なようにアクセス権限が設定されている記憶領域である。凍結エリア１６にアクセスできる管理者と凍結エリア２１にアクセスできる管理者は、同一の者でもあってもいいし、別の者でもよい。後述するように、凍結エリア１６、２１は、バージョンアップのために修正され、その内容が確定したソースファイルを記憶するための領域であり、不正に書き換えられることを防止する機密保護機能を有する。
【００１７】
資源管理エリア２２は、バージョンアップが繰り返されるプログラムのソースファイルの世代管理をするための記憶領域である。資源管理エリア２２には、複数種類のファイルについて、それぞれの最新ファイルを記憶する最新世代エリア２２１と、最新世代よりも前の世代のファイルを記憶する旧世代記憶エリアとして第１世代エリア２２２と、第２世代エリア２２３とがある。つまり、現用機管理サーバ１は、最新世代を含めた上記３世代分のソースファイルを世代管理する。
【００１８】
第３世代エリア２３は、現用機管理サーバ１として管理対象とはならない第２世代よりもさらに１世代前の第３世代のソースファイルを記憶するためのエリアである。第３世代エリア２３は、隠しデータベースとしてもよい。
【００１９】
上記の構成を備えるシステムにおいて、現用機３で動作するプログラムのバージョンアップを行うときの処理について説明する。
【００２０】
＜バージョンアップ指示＞
開発管理サーバ１は、図２に示すような手順で、現用機３で動作しているプログラムのバージョンアップ指示を受け付ける。
【００２１】
バージョンアップの指示入力は、バージョンアップ指示端末４に対して行われる（Ｓ１１）。例えば、作業者がバージョンアップ指示端末４の図示しない入出力装置を用いて、バージョンアップ作業依頼入力画面（以下、入力画面という）からバージョンアップの作業依頼情報を入力する。
【００２２】
入力画面１００には、例えば、図３に示すように、以下の項目についての入力領域を備える。すなわち、入力画面１００には、対象システム名１０１、リリース予定日１０２、バージョンアップ作業開始および終了日時１０３、優先順位１０４、影響度１０５、バージョンアップ対象ファイル名１０６、対象現用機１０７、バージョンアップ指示責任者１０８、バージョンアップ作業責任者１０９、作業指示書１１０、および差分エビデンス１１１の各入力領域がある。
【００２３】
ここで、優先順位１０４とは、複数のファイルのバージョンアップを行う場合、そのバージョンアップの作業に順序性があるときに、作業の順序を入力する。
【００２４】
バージョンアップ対象ファイル名１０６でバージョンアップ対象プログラムを識別することができる。
【００２５】
作業指示書１１０には、予め作成されているバージョンアップ作業の詳細な手順を記したドキュメントのファイル名等が入力される。
【００２６】
差分エビデンス１１１には、バージョンアップ対象となるソースファイルの修正前と修正後の差分を示すファイルのファイル名等が入力される。例えば、バージョンアップ指示者等が、予めテスト環境などでバージョンアップの確認したときに生成されたものである。後述するように、バージョンアップ作業の正当性を確認するときに用いられる。
【００２７】
入力画面１００で必要な情報が入力されると、バージョンアップ指示端末４は、採番データベース１１から、このバージョンアップ作業に対する管理番号を採番する（Ｓ１２）。
【００２８】
バージョンアップ指示端末４は、最新世代エリア１５からバージョンアップ対象ファイル名１０６で特定されるソースファイルを抽出するよう指示をする（Ｓ１３）。
【００２９】
そして、バージョンアップ指示端末４は、入力画面１００で入力された作業依頼情報を開発管理サーバ１へ転送し、作業依頼情報およびステップＳ１３の指示によって抽出されたソースファイルを対応付けて納品エリア１２に格納する（Ｓ１４）。このとき、さらに、作業指示書１１０および差分エビデンス１１１を対応付けてもよい。
【００３０】
これでバージョンアップ作業の準備が完了するので、バージョンアップ指示端末４から開発管理サーバ１へバージョンアップ作業の開始指示が通知される（Ｓ１５）。
【００３１】
＜バージョンアップ資源作成＞
つぎに、バージョンアップを行うための凍結ファイルの作成手順について図４を用いて説明する。ここで、凍結ファイルとは、ソースファイルを修正、変更が完了し、これ以上変更されたくない状態のファイルをいう。
【００３２】
まず、開発管理サーバ１は、納品エリア１２に記憶されているバージョンアップ対象のソースファイルをワークエリア１３へコピーする（Ｓ２１）。そして、バージョンアップ作業者が、管理者端末５を用いてエディタ１４を起動し、ワークエリア１３のソースファイルを修正、更新する（Ｓ２２）。この修正は、作業指示書に従って行う。修正後のソースファイルは、ワークエリア１３に記憶される。
【００３３】
修正作業が終了すると、開発管理サーバ１は、修正前のソースファイルと修正後のソースファイルとを比較して、両者の相違を示す差分ファイルを生成する（Ｓ２３）。
【００３４】
そして、開発管理サーバ１は、ここで生成された差分ファイルと、入力画面で指定された差分エビデンス１１１とを比較する（Ｓ２４）。この比較の結果、両者が一致しない場合は（Ｓ２４：ＮＧ）、メッセージウィンドウを出力するなどして作業者へその旨を報知し、ステップＳ２２以降を繰り返す。一方、この比較の結果が一致した場合は（Ｓ２４：ＯＫ）、凍結エリア１６にアクセス権限が与えられている特定の管理者の指示に基づいて、修正後のソースファイルを凍結エリア１６へコピーする。
【００３５】
これにより、バージョンアップ対象のソースファイル（凍結ファイル）が確定し、機密性の高い凍結エリア１６に格納される。凍結エリア１６に確定したファイルを保存することにより、誤ってファイルが書き換えられてしまったり、故意に書き換えられてしまったりする可能性も低くなり、よりセキュリティの高い状態で保存される。
【００３６】
＜バージョンアップ資源変更＞
次に、ファイル凍結後に、現用機で実際に動作しているプログラムを更新する手順について、図５および図６を用いて説明する。以下の処理は、例えば、作業者が管理者端末６から所定のコマンドを入力して行うこともできる。
【００３７】
まず、開発管理サーバ１の凍結エリア１６から現用機管理サーバ２の凍結エリア２１へ凍結されたソースファイルをコピーする（Ｓ３１）。このとき、作業依頼情報および作業指示書をあわせてコピーしてもよい。そして、凍結エリア２１に記憶されているソースファイルのリスト、つまりバージョンアップ対象のプログラムのリストを出力する（Ｓ３２）。
【００３８】
このファイルリストには、例えば、ファイル名（フォルダ名を含む）、ファイルサイズ、ファイルの更新日時などのファイルの識別情報が含まれる。なお、これ以降の説明で生成されるファイルリストも、これと同様の項目を含む。
【００３９】
現用機管理サーバ２は、凍結エリア２１に記憶されているソースファイルを更新対象の現用機３へ送信する（Ｓ３３）。現用機３は、送信されたファイルを受信する。
【００４０】
そして、現用機管理サーバ１は、現用機３に対して受信したプログラムのファイルリスト生成および送信を指示し、各現用機３からファイルリストを取得する（Ｓ３４）。このリストを確認することにより、現用機３へのファイル転送が問題なく行われたことを確認する。
【００４１】
この後、現用機３に対して、現用機３で現在動作しているプログラムのソースファイル等のバックアップを指示する（Ｓ３５）。この指示を受けた現用機３は、それぞれ、現在の環境をバックアップする。
【００４２】
そして、現用機管理サーバ１は、ステップＳ３３で各現用機３に新たに送り込んだプログラムに更新（バージョンアップ）するよう指示をする（Ｓ３６）。この指示を受けた現用機３は、指示に従ってプログラムを更新（バージョンアップ）する。このとき、必要に応じて実行形式のプログラムへの変換などを行う。
【００４３】
現用機管理サーバ１は、現用機３に対してバージョンアップ後のプログラムのファイルリスト生成および送信を指示し、各現用機３からファイルリストを取得する（Ｓ３７）。
【００４４】
ここで、ステップＳ３２で生成したファイルリストとステップＳ３７で取得したファイルリストとを比較する（Ｓ３８）。比較の結果、両者が一致しなかったときは（Ｓ３８：ＮＧ）、ステップＳ３３以降を繰り返す。比較の結果、両者が一致したときは（Ｓ３８：ＯＫ）、ステップＳ３７で取得したファイルリストを保存し、現用機３へ再起動を指示する（Ｓ３９，Ｓ４０）。現用機３が正常に動作したときは、そのまま終了する（Ｓ４１：ＯＫ）。現用機３が正常に動作しなかったときは、ステップＳ３３でバックアップしたデータに基づいて、バージョンアップ前の環境を復旧して、再起動するように指示をする（Ｓ４２）。
【００４５】
以上に説明した手順を実行することにより、確実にバージョンアップを実行することができる。
【００４６】
＜世代管理＞
次に、現用機管理サーバ２の資源管理エリア２２には、各資源が複数世代分記憶されている。以上に説明したバージョンアップが終了すると、現用機との整合性をとるために、これらの世代交代を行う。以下、その処理手順について図７を用いて説明する。
【００４７】
バージョンアップが完了すると、第２世代エリア２２３に記憶されているバージョンアップ対象プログラムの第２世代のソースファイルを、第３世代エリア２３へコピーする（Ｓ５１）。この処理は、データベースをリネームするのではなく、バージョンアップがあったプログラムのソースファイルについてのみ、コピーを行う。以下、同様である。
【００４８】
つぎに、第１世代エリア２２２に記憶されているバージョンアップ対象プログラムの第１世代のソースファイルを、第２世代エリア２２３の対応するファイルに上書きする（Ｓ５２）。
【００４９】
つぎに、最新世代エリア２２１に記憶されているバージョンアップ対象プログラムの最新世代のソースファイルを、第１世代エリア２２２の対応するファイルに上書きする（Ｓ５３）。
【００５０】
最後に、凍結エリア２１に記憶されているバージョンアップ対象プログラムのソースファイルを、最新世代エリア２２１の対応するファイルに上書きする（Ｓ５４）。
【００５１】
上記処理でエラーが発生せず、正常に終了したか確認する（Ｓ５５）。正常でない場合は（Ｓ５５：ＮＧ）、ステップＳ５１以降を繰り返す。正常の場合は（Ｓ５５：ＯＫ）、開発管理サーバ１へファイル名等を通知し、開発管理サーバ１の最新世代エリア１５のソースファイルを更新するよう指示をする（Ｓ５６）。開発管理サーバ１は、この指示に従って、通知されたファイル名等で特定される、凍結エリア１６に格納されているソースファイルを最新世代エリア１５の対応するファイルに上書きする。
【００５２】
これにより、開発管理サーバ１でも最新バージョンとの整合性が確保される。
【００５３】
＜緊急変更＞
以上、現用機３で動作するプログラムのバージョンアップのための通常の処理手順を説明した。しかし、実際のシステム運用においては、一刻も早くバージョンアップを行わなければならないときがある。そのようなときは、上記手順を踏むことによって要する時間すら惜しい。このようなときは、緊急変更端末７から直接現用機３のバージョンアップを行う緊急変更が行われる。以下、緊急変更手順について図８を用いて説明する。
【００５４】
操作者の指示に基づいて、緊急変更端末７は現用機３に修正されたソースファイルを直接送信して、バージョンアップを行う（Ｓ６１）。そして、緊急変更のバージョンアップが成功し、正常に動作するかどうかを確認する（Ｓ６２）。
【００５５】
正常でないときは（Ｓ６２：Ｎｏ）、バージョンアップ前へ戻す（Ｓ６３）。正常であるときは（Ｓ６２：Ｙｅｓ）、現用機管理サーバ１は、最新世代エリア２２１のファイルリストを取得する（Ｓ６４）。現用機３からは、現用機３で動作しているプログラムのファイルリストを取得する（Ｓ６５）。これらのファイルリストを比較して、現用機３で動作しているプログラムと最新世代エリア２２１で管理されているプログラムとの差分を抽出して、緊急変更によってバージョンアップされたプログラムを特定する（Ｓ６６）。
【００５６】
現用機管理サーバ１は、ここで特定された、そのバージョンアップ後のソースファイルをバージョンアップが行われた現用機３から取得して、緊急変更データベース２５に格納する（Ｓ６７）。そして、図７で説明した要領によって、現用機管理サーバ１の世代交代を行う（Ｓ６８）。なお、図７のステップ５４では、凍結エリア２１に記憶されたソースファイルを最新世代エリアへコピーしているが、ここでは緊急変更データベース２５に記憶されたソースファイルをコピーする。
【００５７】
以上の手順により、緊急変更を行ったときでも、現用機管理サーバ１が管理するソースファイルの世代の整合性は担保される。
【００５８】
＜整合性チェック＞
つぎに、通常の運用を行っているときに、定期的に行うプログラムのバージョンチェックについて説明する。
【００５９】
現用機管理サーバ２の最新世代エリア２２１に格納されているプログラムのソースファイルと、現用機３で実際に動作しているプログラムとは対応がとれているのが原則である。しかし、何らかの理由でこの対応関係がずれてしまうことがあり得る。このような対応関係のずれを放置することは好ましくない。そこで、図９に示すような手順で整合性チェックを行い、対応関係を修復する。この処理は、定期的に起動されることが好ましい。
【００６０】
まず、図８に示したステップＳ６４−Ｓ６８を行って、現用機で動作しているプログラムと最新世代との差分ファイルを取得し、最新世代エリア２２１を現用機３に整合させる（Ｓ７１）。
【００６１】
ステップＳ７１で取得した更新されたファイル名を開発管理サーバ１へ転送する（Ｓ７２）。開発管理サーバ１は、転送されたファイルを自己の最新世代エリア１５へコピーする。これにより、開発管理サーバ１のバージョンも、整合がとれた状態に回復する。
【００６２】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【図面の簡単な説明】
【図１】本発明を適用した一実施形態にかかるバージョンアップ管理システムの全体構成を示す図である。
【図２】プログラムのバージョンアップ指示の受付手順を示すフローチャートである。
【図３】バージョンアップ作業依頼入力画面の一例を示す図である。
【図４】バージョンアップを行うための凍結ファイルの作成手順を示すフローチャートである。
【図５】プログラムを更新する手順を示すフローチャートである。
【図６】プログラムを更新する手順を示すフローチャートである。
【図７】資源の世代交代を行う手順を示すフローチャートである。
【図８】緊急変更の処理手順を示すフローチャートである。
【図９】整合性を確保するための処理手順を示すフローチャートである。
【符号の説明】
１…開発管理サーバ、２…現用機管理サーバ、３…現用機、４…バージョンアップ指示端末、５、６…管理者端末、７…緊急端末、９…ネットワーク。
【図１】
2004310233.tif 000003
【図２】
2004310233.tif 000004
【図３】
2004310233.tif 000005
【図４】
2004310233.tif 000006
【図５】
2004310233.tif 000007
【図６】
2004310233.tif 000008
【図７】
2004310233.tif 000009
【図８】
2004310233.tif 000010
【図９】
2004310233.tif 000011