(57)【要約】【課題】リリース元のマスタと、リリース先とでファイルが乖離した場合でも、マスタでリリース先の現在のリリース状態を把握する。以前にリリースした状態にリリース先を復元する。【解決手段】リリース管理端末が、リリース管理サーバとシステム用サーバにファイルをアップロードする手段を備え、リリース管理サーバが、ファイルをシステム用サーバにリリースする手段と、システム用サーバのファイルをリリース管理サーバのマスタに反映することでマスタを最新化する手段と、マスタを最新化する以前のシステム用サーバのファイル情報のリストを作成する手段と、システム用サーバのファイルを過去のリリース状態に戻す手段を供え、システム用サーバが、システム用サーバのファイル情報のリストを出力する手段を備える。【選択図】図１
2009237638.tif 000002
【特許請求の範囲】
【請求項１】
リリース管理端末と、リリース管理サーバと、システム用サーバとを備え、該システム用サーバのリリース先ディレクトリに格納されたファイルを管理するリリース管理システムであって、
前記リリース管理端末が、
前記リリース管理サーバと前記システム用サーバにファイルをアップロードする手段を備え、
前記リリース管理サーバが、
ファイルを前記システム用サーバにリリースする手段と、
前記システム用サーバのファイルを前記リリース管理サーバのマスタに反映することでマスタを最新化する手段と、
マスタを最新化する以前の前記システム用サーバのファイル情報のリストを作成する手段と、
前記システム用サーバのファイルを過去のリリース状態に戻す手段と
をそなえ、
前記システム用サーバが、
前記システム用サーバのファイル情報のリストを出力する手段
を備えることを特徴とするリリース管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ファイルのリリース元に、リリース先のファイルが常時反映してあるように管理をし、リリース戻しも可能にするリリース管理システムに関するものである。
【背景技術】
【０００２】
システムの修正や機能拡張のために、新しいファイルをシステムにリリースする必要がある。このリリースするファイルを誤るとシステムが正常に稼動しなくなる。このため、リリース管理は重要である。従来、リリース元から一元的にリリース先へリリースを行っている。
【０００３】
特許文献１には、ソースプログラムのバージョン管理方法が記載されている。 ソースプログラムの改造のリリース時における修正情報の取り込みミス及び取り込み漏れを防止することを目的とする。具体的には、各ソースプログラムは、改造に関する情報として、ソースプログラムの改造番号、バージョン、払い出し日、リリース日、修正情報テーブル番号、改造に取り込むべき修正情報番号を格納したバージョン管理テーブルを有し、ソースプログラム改造後に、前記バージョン管理テーブルから改造に取り込むべき修正情報番号に該当する修正情報テーブルを取り出し、その取り込むべき修正情報テーブルが複数個ある場合はそれらをマージして１つの修正情報テーブルとし、その修正情報テーブルと改造後のソースプログラムとの相違情報を有する差分リストを生成し、その差分リストから得た取り込むべき修正情報を改造後のソースプログラムに取り込み、その修正情報を取り込んだ改造後のソースプログラムと改造前の直近本番ソースプログラムとを比較し、その改造における修正情報テーブルを生成し、ソースプログラムの改造履歴を保持していくものである。
【０００４】
【特許文献１】特開平９−９７１７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ファイルの通常リリースは、リリース元にあるマスタに保存されたファイルをリリース先に格納することで行われる。そしてマスタに保存されたファイルを使用することで、以前にリリースした状態にリリース先を復元することもできる。
【０００６】
しかし、マスタからファイルを通常リリースするのではなく、リリース先にシステムエンジニアが手動でファイルを緊急リリースした場合、マスタとリリース先とでファイルが乖離してしまう。
【０００７】
このように、マスタとリリース先とでファイルが乖離した場合、マスタでは、リリース先の現在のリリース状態を把握することも、以前にリリースした状態にリリース先を復元することもできない。本発明は、このような欠点をなくすためになされたものである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明に係るリリース管理システムは、リリース管理端末と、リリース管理サーバと、システム用サーバを備え、前記システム用サーバのリリース先ディレクトリに格納されたファイルを管理するシステムであって、前記リリース管理端末が、前記リリース管理サーバと前記システム用サーバにファイルをアップロードする手段を備え、前記リリース管理サーバが、ファイルを前記システム用サーバにリリースする手段と、前記システム用サーバのファイルを前記リリース管理サーバのマスタに反映することでマスタを最新化する手段と、マスタを最新化する以前の前記システム用サーバのファイル情報のリストを作成する手段と、前記システム用サーバのファイルを過去のリリース状態に戻す手段をそなえ、前記システム用サーバが、前記システム用サーバのファイル情報のリストを出力する手段を備える。
【発明の効果】
【０００９】
本発明のリリース管理システムによれば、次のような効果がある。リリース先に現在配置されているファイルを、マスタに即時に自動的に反映することにより、マスタにリリース先のファイルが常時反映されている状態にすることができる。このため、マスタによってリリース先の現在のリリース状態を把握することができる。また、マスタによって以前にリリースした状態にリリース先を復元することもできる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明を実施するための最良の形態について説明する。
図１は、本発明の実施の形態の一例を示すシステム構成図である。
図１において、ネットワーク１０１には、リリース管理端末１０２、リリース管理サーバ１０３、複数のシステム用サーバ１０４ａ、１０４ｂ、１０４ｎが接続されている。リリースするファイル１０５はリリース管理端末１０２からリリース管理サーバ１０３とシステム用サーバ１０４ａ、１０４ｂ、１０４ｎにアップロードされる。リリース管理サーバ１０３にはリリース管理ソフト−マネージャ１０６がインストールされており、リリースするファイル１０７を保存するマスタ１０８、マスタ履歴１０９、マスタリスト１１０、リリース物リスト１１１が格納されている。
【００１１】
リリース管理ソフト−マネージャ１０６は、リリースモジュール１１２、マスタ最新化モジュール１１３、マスタリスト作成モジュール１１４、リリース戻しモジュール１１５で構成されている。リリースモジュール１１２は、リリース管理端末１０２からアップロードされたファイル１０７を、マスタ１０８とシステム用サーバ１０４ａ、１０４ｂ、１０４ｎのリリース先ディレクトリ１１６に格納し、そのファイルに関する情報をマスタ履歴１０９に追記する。マスタ最新化モジュール１１３は、マスタリスト１１０とリリース物リスト１１１を比較することによって、マスタ１０８とマスタ履歴１０９にリリース先ディレクトリ１１６のファイル１１７の現状を反映する。
【００１２】
マスタリスト作成モジュール１１４は、マスタ履歴１０９を用いて、マスタ最新化を実行する以前（通常リリース実行後を含む）にリリース先ディレクトリ１１６に格納されていたファイル情報のリストであるマスタリスト１１０を作成する。リリース戻しモジュール１１５はマスタ履歴１０９とマスタ１０８に格納されているファイル１０７を用いて、リリース先ディレクトリ１１６のファイル１１７を以前にリリースした状態に復元する。
【００１３】
システム用サーバ１０４ａ、１０４ｂ、１０４ｎには、リリース管理ソフト−エージェント１１８がインストールされており、リリース先ディレクトリ１１６にファイル１１７が格納されている。リリース管理ソフト−エージェント１１８は、リリース物リスト出力モジュール１１９で構成されている。リリース物リスト出力モジュール１１９は、現在リリース先ディレクトリ１１６に格納されているファイル１１７のファイル情報をリリース物リスト１１１に出力する。
【００１４】
図２は、マスタ履歴１０９のデータ構成図である。
マスタ履歴１０９は、リリース日２０１、リリース時刻２０２、更新内容２０３、サーバ名２０４、ディレクトリパス２０５、ファイル名２０６、ファイル権限２０７、ファイルユーザ２０８、ファイルグループ２０９、ファイルサイズ２１０、ファイルタイムスタンプ２１１の情報を保持している。リリース日２０１にはファイルをリリースした日付が、リリース時刻２０２にはファイルをリリースした時刻が、更新内容２０３にはファイルを更新した内容「変更」「追加」「削除」が、サーバ名２０４にはリリース先のシステム用サーバ１０４の名前が、ディレクトリパス２０５にはリリース先ディレクトリ１１６のパスが、ファイル名２０６にはファイルの名前が、ファイル権限２０７にはファイルのアクセス権限が、ファイルユーザ２０８にはファイルを所有するユーザ名が、ファイルグループ２０９には対象ファイルを所有するグループ名が、ファイルサイズ２１０にはファイルの容量が、ファイルタイムスタンプ２１１にはファイルが変更された日時が保存される。
【００１５】
図３は、マスタリスト１１０のデータ構造である。
マスタリストは１１０、サーバ名３０１、ディレクトリパス３０２、ファイル名３０３、ファイル権限３０４、ファイルユーザ３０５、ファイルグループ３０６、ファイルサイズ３０７、ファイルタイムスタンプ３０８の情報を保持している。
【００１６】
サーバ名３０１にはリリース先のシステム用サーバ１０４の名前が、ディレクトリパス３０２にはリリース先ディレクトリ１１６のパスが、ファイル名３０３にはファイルの名前が、ファイル権限３０４にはファイルのアクセス権限が、ファイルユーザ３０５にはファイルを所有するユーザ名が、ファイルグループ３０６にはファイルを所有するグループ名が、ファイルサイズ３０７にはファイルの容量が、ファイルタイムスタンプ３０８にはファイルが変更された日時が保存される。
【００１７】
図４は、リリース物リスト１１１のデータ構造である。
リリース物リスト１１１は、サーバ名４０１、ディレクトリパス４０２、ファイル名４０３、ファイル権限４０４、ファイルユーザ４０５、ファイルグループ４０６、ファイルサイズ４０７、ファイルタイムスタンプ４０８の情報を保持している。
【００１８】
サーバ名４０１にはリリース先のシステム用サーバ１０４の名前が、ディレクトリパス４０２にはリリース先ディレクトリ１１６のパスが、ファイル名４０３にはファイルの名前が、ファイル権限４０４にはファイルのアクセス権限が、ファイルユーザ４０５にはファイルを所有するユーザ名が、ファイルグループ４０６にはファイルを所有するグループ名が、ファイルサイズ４０７にはファイルの容量が、ファイルタイムスタンプ４０８にはファイルが変更された日時が保存される。
【００１９】
図５は、リリースモジュール１１２で行う、リリースのフローチャートである。
このリリース処理を通常リリースとする。
リリースはリリースするファイル数だけ繰り返す（ステップ５０１）。まず、リリース対象ファイルをマスタ１０８に追加する（ステップ５０２）。この処理で、リリース対象ファイルを全てマスタ１０８に保管するのは、リリース戻しの際に過去バージョンのファイルを再リリースするためである。次に、リリース対象と同じサーバ名２０４、ディレクトリパス２０５、ファイル名２０６のものがマスタ履歴１０９に存在しているかを判別する（ステップ５０３）。存在している場合は変更リリースなので、マスタ履歴１０９に対象ファイル情報を更新内容「変更」として追記し（ステップ５０４）、リリース先ディレクトリ１１６にリリース対象ファイルを上書きする（ステップ５０５）。存在していない場合は追加リリースなので、マスタ履歴１０９に対象ファイル情報を更新内容「追加」として追記し（ステップ５０６）、リリース先ディレクトリ１１６にリリース対象ファイルを追加する（ステップ５０７）。ステップ５０２〜５０７の処理をリリースするファイル数だけ繰り返すことでリリースは完了する（ステップ５０８）。
【００２０】
このように、追加リリースしたのか変更リリースしたのかを、リリース時にマスタ履歴１０９に追記していくことで、マスタ履歴１０９を用いてマスタ１０８とリリース先ディレクトリ１１７のファイルが乖離しているかを判別し、またどのようにリリース戻しをすればよいのか判別することが可能になる。
【００２１】
図６は、マスタ最新化モジュール１１３で行う、マスタ最新化のフローチャートである。
まず、マスタ履歴１０９を用いて、マスタ最新化を実行する以前（通常リリース実行後を含む）にリリース先ディレクトリ１１６に格納されていたファイル情報のリストであるマスタリスト１１０を作成する（ステップ６０１）。次に、現在リリース先ディレクトリ１１６に格納されているファイル１１７のファイル情報をリリース物リスト１１１に出力する（ステップ６０２）。そして、マスタリスト１１０とリリース物リスト１１１の比較を全行で繰り返す（ステップ６０３）。
【００２２】
比較を行う行のサーバ名３０１・４０１、ディレクトリパス３０２・４０２、ファイル名３０３・４０３が、マスタリスト１１０には存在しないが、リリース物リスト１１１にのみ存在するか判別する（ステップ６０４）。リリース物リスト１１１にのみ存在する場合、マスタ１０８に格納されていないファイルがリリース先ディレクトリ１１６に存在しているということである。このため、マスタ履歴１０９に対象ファイル情報を更新内容「追加」として追記し（ステップ６０５）、マスタ１０８に対象ファイルを追加する（ステップ６０６）。
【００２３】
リリース物リスト１１１にのみ存在するわけではない場合、比較を行う行のサーバ名３０１・４０１、ディレクトリパス３０２・４０２、ファイル名３０３・４０３が、リリース物リスト１１１には存在しないが、マスタリスト１１０にのみ存在するか判別する（ステップ６０７）。マスタリスト１１０にのみ存在する場合、リリース先ディレクトリ１１６から対象ファイルが削除されているということである。このため、マスタ履歴１０９から対象ファイル情報を更新内容「削除」として追記する（ステップ６０８）。
【００２４】
比較を行う行のサーバ名３０１・４０１、ディレクトリパス３０２・４０２、ファイル名３０３・４０３が、マスタリスト１１０とリリース物リスト１１１にある場合、ファイル権限３０４・４０４か、ファイルユーザ３０５・４０５か、ファイルグループ３０６・４０６か、ファイルサイズ３０７・４０７か、ファイルタイムスタンプ３０８・４０８が異なるかどうかでファイル内容に差分があるか判別する（ステップ６０９）。差分がある場合、対象ファイルが変更されているということであるから、マスタ履歴１０９に対象ファイル情報を更新内容「変更」として追記し（ステップ６１０）、マスタにファイルを追加する（ステップ６１１）。
【００２５】
ステップ６０４〜６１１の処理を、マスタリスト１１０とリリース物リスト１１１の全行で繰り返すことでマスタ最新化は完了する（ステップ６１２）。
このように、リリース先ディレクトリ１１６の現在の状態をマスタ１０８とマスタ履歴１０９に反映する処理を行うことで、リリース管理端末１０２からリリース先ディレクトリ１１７にファイルを緊急リリースしてマスタ１０８とリリース先ディレクトリ１１６とでファイルが乖離した場合でも、マスタ１０８でリリース先の現在のリリース状態を把握することが可能になる。
【００２６】
図７は、マスタリスト作成モジュール１１４で行う、マスタリスト作成のフローチャートである。
まず、マスタリスト１１０を初期化する（ステップ７０１）。次に、マスタ履歴１０９を先頭行から最終行まで一行ずつ読み込む（ステップ７０２）。そして、読み込んだ行の更新内容２０３が「追加」であるか判別する（ステップ７０３）。更新内容２０３が「追加」である場合、マスタリスト１１０に対象ファイル情報を追記する（ステップ７０４）。更新内容２０３が「追加」ではない場合、更新内容２０３が「削除」であるか判別する（ステップ７０５）。更新内容２０３が「削除」である場合、マスタリスト１１０から対象ファイル情報を削除する（ステップ７０６）。更新内容２０３が「削除」でない場合、更新内容２０３が「変更」であるか判別する（ステップ７０７）。更新内容２０３が「変更」である場合、マスタリスト１１０に記載されている過去バージョンのファイル情報を削除し（ステップ７０８）、マスタリスト１１０に対象ファイル情報を追記する（ステップ７０９）。ステップ７０３〜７０９の処理をマスタ履歴１０９の先頭行から最終行まで実行したらマスタリスト作成は完了する（ステップ７１０）。
【００２７】
このように、マスタ履歴１０９を用いて過去のリリース処理結果をマスタリスト１１０上に再現することで、図６のマスタ最新化のマスタリスト作成（ステップ６０１）の処理が可能になる。
【００２８】
図８は、リリース物リスト出力モジュール１１９で行う、リリース物リスト出力のフローチャートである。
まず、リリース物リストを初期化する（ステップ８０１）。リリース物リストの出力はリリース先のシステム用サーバ１０４の数だけ繰り返す（ステップ８０２）。リリース先ディレクトリ１１６に格納されているファイル１１７のファイル情報をリリース物リスト１１１に出力する（ステップ８０３）。ステップ８０３の処理をリース先のシステム用サーバ１０４の数だけ繰り返すことでリリース物リスト出力は完了する（ステップ８０４）。
【００２９】
このように、全システム用サーバ１０４でリリース先ディレクトリ１１６に格納されているファイル１１７のファイル情報をリリース物リスト１１１に出力することで、図６のマスタ最新化のリリース物リスト出力（ステップ６０２）の処理が可能になる。
【００３０】
図９は、リリース戻しモジュール１１５で行う、リリース戻しのフローチャートである。
まず、マスタ履歴１０９の最終行をＬＡＳＴとする（ステップ９０１）。次に、マスタ履歴１０９の戻すファイル情報を選択する（ステップ９０２）。リリース戻しは戻すと選択されたファイルの数だけ繰り返す（ステップ９０３）。マスタ履歴１０９を最終行からさかのぼっていくことでリリース戻しを行うため、マスタ履歴１０９をＬＡＳＴから戻すファイルまで一行ずつ読み込む（ステップ９０４）。読み込んだ行のサーバ名２０４、ディレクトリパス２０５、ファイル名２０６が、戻すファイルと同じであるか判別する（ステップ９０５）。同じである場合、読み込んだ行の更新内容２０３が「追加」であるか判別する（ステップ９０６）。更新内容２０３が「追加」である場合、リリース戻しのためにはファイルを削除する必要があるので、マスタ履歴１０９に対象ファイル情報を更新内容「削除」として追記し（ステップ９０７）、リリース先ディレクトリ１１６から対象ファイルを削除する（ステップ９０８）。
【００３１】
読み込んだ行の更新内容２０３が「追加」ではない場合、読み込んだ行の更新内容２０３が「削除」であるか判別する（ステップ９０９）。更新内容２０３が「削除」である場合、リリース戻しのためにはファイルを追加する必要があるので、マスタ履歴１０９に対象ファイル情報を更新内容「追加」として追記し（ステップ９１０）、リリース先ディレクトリ１１６に対象ファイルを追加する（ステップ９１１）。
【００３２】
読み込んだ行の更新内容２０３が「削除」ではない場合、読み込んだ行の更新内容２０３が「変更」であるか判別する（ステップ９１２）。更新内容２０３が「変更」である場合、リリース戻しのためにはファイルを過去バージョンに戻す必要があるので、マスタ履歴１０９に対象ファイル情報の過去バージョンを更新内容「変更」として追記し（ステップ９１３）、リリース先ディレクトリ１１６に過去バージョンのファイルを上書きする（ステップ９１４）。
【００３３】
ステップ９０５〜９１５の処理を、マスタ履歴１０９のＬＡＳＴから戻すファイルまで繰り返すことで対象ファイルのリリース戻しは完了する（ステップ９１５）。
【００３４】
ステップ９０４〜９１５の処理を戻すと選択されたファイルの数だけ繰り返すことでリリース戻しは完了する（ステップ９１６）。
【００３５】
このように、マスタ履歴１０９を用いてリリース時に実施した処理と逆の処理を行うことで、以前にリリースした状態にリリース先ディレクトリ１１６を復元することが可能になる。
【産業上の利用可能性】
【００３６】
プログラムモジュールのリリース管理にリカバリー機能を持たせることができる。
【図面の簡単な説明】
【００３７】
【図１】本発明のシステム構成図である。
【図２】マスタ履歴のデータ構成図である。
【図３】マスタリストのデータ構成図である。
【図４】リリース物リストのデータ構成図である。
【図５】リリースのフローチャートである。
【図６】マスタ最新化のフローチャートである。
【図７】マスタリスト作成のフローチャートである。
【図８】リリース物リスト出力のフローチャートである。
【図９】リリース戻しのフローチャートである。
【符号の説明】
【００３８】
１０１ ネットワーク
１０２  リリース管理端末
１０３  リリース管理サーバ
１０４ａ，１０４ｂ，１０４ｎ  システム用サーバ
１０５  ファイル
１０６  リリース管理ソフト−マネージャ
１０７  ファイル
１０８  マスタ
１０９  マスタ履歴
１１０  マスタリスト
１１１  リリース物リスト
１１２  リリースモジュール
１１３  マスタ最新化モジュール
１１４  マスタリスト作成モジュール
１１５  リリース戻しモジュール
１１６  リリース先ディレクトリ
１１７  ファイル
１１８  リリース管理ソフト−エージェント
１１９  リリース物リスト出力モジュール
２０１  リリース日
２０２  リリース時刻
２０３  更新内容
２０４  サーバ名
２０５  ディレクトリパス
２０６  ファイル名
２０７  ファイル権限
２０８  ファイルユーザ
２０９  ファイルグループ
２１０  ファイルサイズ
２１１  ファイルタイムスタンプ
【図１】
2009237638.tif 000003
【図２】
2009237638.tif 000004
【図３】
2009237638.tif 000005
【図４】
2009237638.tif 000006
【図５】
2009237638.tif 000007
【図６】
2009237638.tif 000008
【図７】
2009237638.tif 000009
【図８】
2009237638.tif 000010
【図９】
2009237638.tif 000011