JP2010117980A - ソフトウェアリリースシステム、リリース制御装置及び方法、プログラム、並びに記憶媒体 - Google Patents

ソフトウェアリリースシステム、リリース制御装置及び方法、プログラム、並びに記憶媒体 Download PDF

Info

Publication number
JP2010117980A
JP2010117980A JP2008292144A JP2008292144A JP2010117980A JP 2010117980 A JP2010117980 A JP 2010117980A JP 2008292144 A JP2008292144 A JP 2008292144A JP 2008292144 A JP2008292144 A JP 2008292144A JP 2010117980 A JP2010117980 A JP 2010117980A
Authority
JP
Japan
Prior art keywords
release
server
software
list
released
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008292144A
Other languages
English (en)
Inventor
Takeo Niki
健夫 仁木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon IT Solutions Inc
Original Assignee
Canon IT Solutions Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon IT Solutions Inc filed Critical Canon IT Solutions Inc
Priority to JP2008292144A priority Critical patent/JP2010117980A/ja
Publication of JP2010117980A publication Critical patent/JP2010117980A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】本発明は、リリースの失敗によって影響を受けるソフトウェアをリリース前の状態に自動で戻すことができ、リリースに要するユーザの作業負荷を軽減することができるソフトウェアリリースシステムを提供する。
【解決手段】複数のサーバ104のうちリリース対象となるサーバのリリース方式と当該サーバのリリース順序が設定されたサーバリストと当該サーバへリリースするソフトウェアの設定を行い、設定されたリリース方式及びサーバリストに基づいてソフトウェアのリリースを行う場合、リリース対象となるサーバにおけるリリース対象のソフトウェアを退避ファイルとしてコピーした後に、当該リリース対象のソフトウェアのリリースを行う。そして、ソフトウェアのリリース失敗時には、リリースされたソフトウェアを退避ファイルによりリリース前のソフトウェアに戻す。
【選択図】図25

Description

本発明は、ソフトウェアリリースシステム、リリース制御装置及び方法、プログラム、並びに記憶媒体に関し、特に、複数のサーバに対するソフトウェアのリリース技術に関する。
センタコンピュータから複数の端末装置へのプログラムやデータ等のモジュールのリリースを、端末装置側のプログラム実行時間を操作者が考慮することなく即時に配信が行えると共に、新旧モジュールの整合性を保証し自動的に組み込むことを可能にする技術が提案されている(例えば、特許文献1参照)。また、複数のサーバに対して安全にリリースを行うための方法や装置が提案または製品化されている。上記いずれも、対象となるサーバにおけるリリース(新規モジュールへの「切り替え」)処理が、独立して行われるものとなっている。
一方、機能分割された複数のサーバで構成される大規模なシステムのソフトウェアのバージョンアップでは、各サーバ間の関連性によりリリースする順番が必要になる場合が多く、リリース方法(業務停止や業務起動、ファイル置換等のリリースに必要なコマンドをリリース毎に組み合わせたもの)やサーバのリリース順番が記述されている「リリースシナリオ」と呼ばれるファイルを作成し、それをリリース制御ツールに読み込ませることで、意図したリリース方法やサーバのリリース順番でサーバにアプリケーションをリリースする方法を実現している。
例えば、AサーバとBサーバがネットワークを介して接続され、BサーバがAサーバに存在するデータベースの情報を参照しながらBサーバ自身の処理を実行するために通信を行うシステムにおいて、Bサーバが参照しているデータベースの情報の整合性を取るタイミングを初回起動時に行い、以降定期的に差分のみの参照を行っている場合、Bサーバ起動時にAサーバが起動していないと通信エラーとなり、情報の参照が不可となる。このような場合、リリースの順番としてAサーバ→Bサーバの順にリリースを行う必要がある。また、リリースが失敗した場合もそのリリースした順番を守りながらバージョンを戻す必要がある。なお、リリースとは、各サーバにリリースするモジュールを起動させることまで考慮して行うことを云う。
特開平10−171663号公報
しかしながら、上記特許文献1記載の発明では、リリースする順番が必要な大規模なシステムにおいてリリース中にリリースが失敗した場合、リリースの失敗によって影響を受けるリリース済みのモジュールをリリース前の状態に自動的に戻す自動戻しができない。
そこで、本発明は、リリースの失敗によって影響を受けるソフトウェアをリリース前の状態に自動で戻すことができ、リリースに要するユーザの作業負荷を軽減することができるソフトウェアリリースシステム、リリース制御装置及び方法、プログラム、並びに記憶媒体を提供することを目的とする。
上記目的を達成するために、請求項1記載のソフトウェアリリースシステムは、複数のサーバと、当該複数のサーバに対するソフトウェアのリリースを行うリリース制御装置とを備えるソフトウェアリリースシステムにおいて、前記リリース制御装置は、前記複数のサーバのうちリリース対象となるサーバのリリース方式と当該サーバのリリース順序が設定されたサーバリストと当該サーバへリリースするソフトウェアの設定を行う設定手段と、前記設定されたリリース方式及びサーバリストに基づいて前記ソフトウェアのリリースを行う場合、前記リリース対象となるサーバにおけるリリース対象のソフトウェアを退避ファイルとしてコピーした後に、当該リリース対象のソフトウェアのリリースを行うリリース手段と、前記ソフトウェアのリリース失敗時には、前記リリースされたソフトウェアを前記退避ファイルによりリリース前のソフトウェアに戻すリリース戻し手段とを備えることを特徴とする。
上記目的を達成するために、請求項7記載のリリース制御装置は、複数のサーバに対してソフトウェアのリリースを行うリリース制御装置において、前記複数のサーバのうちリリース対象となるサーバのリリース方式と当該サーバのリリース順序が設定されたサーバリストと当該サーバへリリースするソフトウェアの設定を行う設定手段と、前記設定されたリリース方式及びサーバリストに基づいて前記ソフトウェアのリリースを行う場合、前記リリース対象となるサーバにおけるリリース対象のソフトウェアを退避ファイルとしてコピーした後に、当該リリース対象のソフトウェアのリリースを行うリリース手段と、前記ソフトウェアのリリース失敗時には、前記リリースされたソフトウェアを前記退避ファイルによりリリース前のソフトウェアに戻すリリース戻し手段とを備えることを特徴とする。
上記目的を達成するために、請求項8記載のリリース方法は、複数のサーバに対してソフトウェアのリリースを行うリリース制御装置のリリース方法において、前記複数のサーバのうちリリース対象となるサーバのリリース方式と当該サーバのリリース順序が設定されたサーバリストと当該サーバへリリースするソフトウェアの設定を行う設定工程と、前記設定されたリリース方式及びサーバリストに基づいて前記ソフトウェアのリリースを行う場合、前記リリース対象となるサーバにおけるリリース対象のソフトウェアを退避ファイルとしてコピーした後に、当該リリース対象のソフトウェアのリリースを行うリリース工程と、前記ソフトウェアのリリース失敗時には、前記リリースされたソフトウェアを前記退避ファイルによりリリース前のソフトウェアに戻すリリース戻し工程とを備えることを特徴とする。
上記目的を達成するために、請求項9記載のプログラムは、複数のサーバに対してソフトウェアのリリースを行うリリース制御装置のリリース方法を当該リリース制御装置に実行させるプログラムにおいて、前記複数のサーバのうちリリース対象となるサーバのリリース方式と当該サーバのリリース順序が設定されたサーバリストと当該サーバへリリースするソフトウェアの設定を行う設定ステップと、前記設定されたリリース方式及びサーバリストに基づいて前記ソフトウェアのリリースを行う場合、前記リリース対象となるサーバにおけるリリース対象のソフトウェアを退避ファイルとしてコピーした後に、当該リリース対象のソフトウェアのリリースを行うリリースステップと、前記ソフトウェアのリリース失敗時には、前記リリースされたソフトウェアを前記退避ファイルによりリリース前のソフトウェアに戻すリリース戻しステップとを備えることを特徴とする。
上記目的を達成するために、請求項10記載の記憶媒体は、複数のサーバに対してソフトウェアのリリースを行うリリース制御装置のリリース方法を当該リリース制御装置に実行させるプログラムを記憶した記憶媒体において、前記プログラムは、前記複数のサーバのうちリリース対象となるサーバのリリース方式と当該サーバのリリース順序が設定されたサーバリストと当該サーバへリリースするソフトウェアの設定を行う設定ステップと、前記設定されたリリース方式及びサーバリストに基づいて前記ソフトウェアのリリースを行う場合、前記リリース対象となるサーバにおけるリリース対象のソフトウェアを退避ファイルとしてコピーした後に、当該リリース対象のソフトウェアのリリースを行うリリースステップと、前記ソフトウェアのリリース失敗時には、前記リリースされたソフトウェアを前記退避ファイルによりリリース前のソフトウェアに戻すリリース戻しステップとを備えることを特徴とする。
本発明によれば、リリースの失敗によって影響を受けるソフトウェアをリリース前の状態に自動で戻すことができ、リリースに要するユーザの作業負荷を軽減することができる。
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図1は、本発明の実施形態に係るソフトウェアリリースシステムの概略構成を示す図である。
クライアント端末101は、当該端末上で実行される端末プログラム105を備え、リリース作業を行う作業者(ユーザ)が使用する情報処理装置である。クライアント端末101は、LANやインターネット等のネットワーク102を介してリリースサーバ(リリース制御装置)103に接続され、該リリースサーバ103との間でデータの送受信が可能である。
リリースサーバ103は、当該サーバ上で実行されるメインプログラム106を備え、ネットワーク102を介して複数のサーバ(例えば業務サーバ)104に接続されている。リリースサーバ103は、クライアント端末101から送信されるリリース計画情報(リリース日時、リリース方法、サーバリスト、リリース物件、リリース状態、リカバリポイントが定義された情報)をリリースに必要なコマンドとして、リリース対象となるサーバ104に送信する。リリース物件(リリースファイル)は、対象となるサーバ104のOSやハードウェアに対するソフトウェアではなく、当該サーバ上で稼働する業務用のソフトウェアやファイル群、これらを保存しているディレクトリ構成を意味する。また、リリースサーバ103は、サーバ104におけるリリース物件のリリースに必要なリリース実行プログラム107をサーバ104に送信する。
サーバ104は、リリースサーバ103からリリース実行プログラム107を受信すると共に、リリースに必要なコマンドを受信し、リリース実行プログラム107の実行により該コマンドを実行して、リリース物件のリリースを行う。
なお、図1のネットワーク102上に接続される各種サーバや各種端末の構成は一例であり、用途や目的に応じてさまざまな構成例があることは言うまでもない。
図2は、図1のクライアント端末101、リリースサーバ103、及びサーバ104の基本的なハードウェア構成を示すブロック図である。
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。CPU201は、例えば、RAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、表示装置210上での表示を可能とする。また、CPU201は、表示装置210上の不図示のマウスカーソル等でのユーザからの指示の受付を可能とする。
ROM202或いは記憶装置211には、CPU201が実行する制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(OS)や、各サーバ或いは各端末が有する機能を実現するために必要な各種プログラム等が記憶されている。RAM203は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、後述する処理の実行に際して必要なプログラム等をRAM203にロードして、該プログラムを実行することで各種動作を実現するものである。
入力コントローラ205は、キーボード(KB)やマウス等のポインティングデバイス(PD)を含むKB/PD209からの入力を制御する。ビデオコントローラ206は、CRTディスプレイや液晶ディスプレイ等から成る表示装置210への表示を制御する。
メモリコントローラ207は、ハードディスク(HD)やフロッピー(登録商標)ディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等から成る記憶装置211へのアクセスを制御する。記憶装置211には、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、各種データ等を記憶する。
通信I/Fコントローラ208は、外部のネットワーク102に接続して他のサーバや端末との通信を行うものであり、例えば、TCP/IPを用いたインターネット通信等が可能である。
クライアント端末101とリリースサーバ103では、リリース方法(リリース方式)の作成、リリースに必要な対象サーバ(例えば、サーバ104)とそのリリース順の作成、及びリリース計画の作成が行われる。本実施形態におけるリリース方式については、リリースで使用する複数のコマンドが下記実行順で設定される。
(1)コマンド1(リリース前処理)は、アプリケーション停止前の前処理コマンドである。
(2)コマンド2(アプリケーション停止)は、アプリケーションを停止するコマンドである。
(3)コマンド3(ファイル置換前処理)は、ファイル置換を行う前の前処理コマンドである。
(4)コマンド4(ファイル置換)は、ファイル置換を行うコマンドである。
(5)コマンド5(ファイル置換後処理)は、ファイル置換を行った後の後処理コマンドである。
(6)コマンド6(アプリケーション起動)は、アプリケーションを起動するコマンドである。
(7)コマンド7(リリース後処理)は、アプリケーション起動後の後処理コマンドである。
本実施形態における対象サーバについては、リリースサーバ103に保存されているサーバ一覧を元に予めリリースする対象サーバが決定され、そのサーバリストが作成される。そのとき、リリースする対象サーバの順番も決定される。なお、リリースサーバ103に保存されているサーバ一覧については、管理者が予めリリースサーバ103に登録するものとする。
リリース計画については、作成されたリリース方式及び対象サーバのサーバリストに基づいて、リリース日やリリースを実行する時間、リリース物件を設定することで作成される。リリースは、作成されたリリース計画を表すリリース計画情報を元に行われる。
まず、クライアント端末101とリリースサーバ103により実行されるリリース方式の作成、更新、削除処理(以下、「リリース方式の作成処理」と呼ぶ)について図21、図3〜図5、図17を参照して説明する。
図21は、クライアント端末101とリリースサーバ103により実行されるリリース方式の作成処理の一例を示すフローチャートである。図3〜図5は、リリース方式作成処理時にクライアント端末101の表示装置210に表示されるリリース方式作成画面の一例を示す図である。図17は、リリースサーバ103に格納されたリリース方式テーブルの一例を示す図である。
図21において、クライアント端末101は、端末プログラム105の実行により、図3に示すリリース方式作成画面301を表示し、リリースサーバ103にリリース方式名のリストを要求する(ステップS100)。
リリースサーバ103は、記憶装置211等に保存されている図17に示すリリース方式テーブル1700からindexとリリース方式名を検索し、その検索結果をクライアント端末101へ送信する(ステップS102)。
リリース方式テーブル1700は、リリース方式を一意に識別するためのindexと、1つのリリース方式に対して複数の実行コマンドが設定された場合のそれぞれを識別するためのsubindexと、リリース方式名と、実行コマンド名と、パラメータと、戻し時実行フラグとで構成される。リリース方式テーブル1700には、各コマンドのパラメータや、現在リリースされているバージョンの直近にリリースされたバージョンへ戻すバージョン戻しの際に実行するコマンドの戻し時実行フラグが設定される。戻し時実行フラグは、コマンドリストの命令がすべて完了していない場合に適用され、後述する戻しリリース用のリリースシナリオファイル作成時に実行するコマンドを判別するために使用される。
リリースシナリオファイルとは、図20(a)に示すように、サーバがリリースする順番に並んでおり、各サーバにリリース方式に対して定義したコマンドが記述されたファイルである。戻しリリース用のリリースシナリオファイルは、図20(b)や図20(c)に示すように、リリースが失敗したサーバ及びリリースが完了したサーバに対して適用されるリリースシナリオファイルである。これらの詳細については後述する。
コマンドリスト新規作成時の戻し時実行フラグには、デフォルトでリリース前処理(コマンド1)、アプリケーション停止(コマンド2)、ファイル置換前処理(コマンド3)に「スキップ」が設定され、ファイル置換(コマンド4)、ファイル置換後処理(コマンド5)、アプリケーション開始(コマンド6)、リリース後処理(コマンド7)に「実行」が設定される(図17参照)。これらの情報は、リリース時にリリースシナリオファイルを作成する際に各サーバに展開される情報である。なお、この情報は、図3のリリース方式作成画面301で作成される。
図21に戻り、クライアント端末101は、受信した検索結果をリリース方式作成画面301上のリリース方式一覧302に表示する(ステップS104)。このとき、indexとリリース方式名が重複しないように、リリース方式テーブル1700に保存されているすべての情報が表示される。また、indexとリリース方式名の組み合わせはクライアント端末101内のRAM203上に保持され、リリース方式一覧302にはリリース方式名のみが表示される(図3参照)。
リリース方式作成画面301上でクリアボタン303が押された場合(ステップS105でYES)、クライアント端末101は、図4(a)に示すように、リリース方式欄307、コマンドリスト一覧308のコマンド名、パラメータを空白にし、戻しフラグを初期状態(リリース前処理、アプリケーション停止、ファイル置換前処理を「スキップ」にし、それ以外を「実行」にする)にして、画面を初期状態にする(ステップS107)。
次に、クライアント端末101は、図4(b)に示すように、作成するリリース方式名(例えば、「新規リリース方式」)の入力をリリース方式作成画面301上のリリース方式欄307で受け付ける。また、上述したリリースに使用するコマンドの入力を、リリース前処理、アプリケーション停止、ファイル置換前処理、ファイル置換、ファイル置換後処理、アプリケーション起動、リリース後処理の順になるように、コマンドリスト一覧308で受け付ける。さらに、それらのコマンドで必要なパラメータの入力を受け付ける。
コマンドリスト一覧308の戻しフラグは、現在リリースされているバージョンの直近にリリースされたバージョンへ戻す必要が生じた場合に実行するコマンドを決定するためのフラグである。クライアント端末101は、バージョン戻しで実行するコマンドのフラグの入力をコマンドリスト一覧308で受け付ける。
図21に戻り、リリース方式作成画面301上で作成ボタン304が押された場合(ステップS106でYES)、内部で採番されたindexをキーにして、コマンドリスト一覧308に入力された情報がクライアント端末101からリリースサーバ103に送信され、リリース方式テーブル1700に追加保存するように要求される。リリースサーバ103は、受信したリリース方式の情報をリリース方式テーブル1700に追加保存する(ステップS108)。
リリース方式が作成された後、クライアント端末101は、リリースサーバ103に保存されたリリース方式テーブル1700からindexとリリース方式名を検索し、図4(c)に示すように、検索結果をリリース方式一覧302に表示する。
リリース方式を更新する場合は、図5(d)に示すように、リリース方式作成画面301において、ユーザがリリース方式一覧302に表示されているリリース方式を選択する。クライアント端末101は、その選択されたリリース方式に対応するRAM203に記憶されたindexをリリースサーバ103に送信し、該indexをキーにしてリリース方式テーブル1700を検索し、その検索結果をリリースサーバ103から受信してリリース方式欄307及びコマンドリスト一覧308に表示し、修正入力を待つ。例えば、図5(e)に示すように、コマンドリスト一覧308に示されるコマンド名(コマンド修正)、パラメータ(パラメータ修正)が、ユーザによって修正される。
図5(f)に示すリリース方式作成画面301上で保存ボタン305が押された場合(ステップS110でYES)、クライアント端末101は、表示されているリリース方式に対応するRAM203に記憶されたindexとリリース方式欄307とコマンドリスト一覧308の情報がクライアント端末101からリリースサーバ103に送信される。リリースサーバ103は、受信したリリース方式の情報のindexを元にリリース方式テーブル1700の内容を更新する(図21のステップS112)。
リリース方式を削除する場合、更新時と同じようにリリース方式作成画面301において、ユーザがリリース方式一覧302に表示されているリリース方式を選択する。クライアント端末101は、その選択されたリリース方式に対応するRAM203に記憶したindexをリリースサーバ103に送信し、該indexをキーにしてリリース方式テーブル1700を検索し、その検索結果をリリースサーバ103から受信してリリース方式欄307及びコマンドリスト一覧308に表示し、削除を待つ。
リリース方式作成画面301上で削除ボタン306が押下されると(図21のステップS114でYES)、現在表示されているリリース方式に対応するindexがクライアント端末101からリリースサーバ103に送信され、リリース方式テーブル1700から送信されたindexに該当する情報を削除する(図21のステップS116)。
次に、クライアント端末101とリリースサーバ103により実行されるサーバリストの作成、更新、削除処理(以下、「サーバリストの作成処理」と呼ぶ)について図22、図6〜図10、図18を参照して説明する。
図22は、クライアント端末101とリリースサーバ103により実行されるサーバリストの作成処理の一例を示すフローチャートである。図6〜図10は、サーバリスト作成処理時にクライアント端末101の表示装置210に表示されるサーバリスト作成画面の一例を示す図である。図18は、リリースサーバ103に格納されたサーバリストテーブルの一例を示す図である。
図22において、クライアント端末101は、端末プログラム105の実行により、図6に示すサーバリスト作成画面401を表示し、リリースサーバ103にサーバリスト名を要求する(ステップS200)。
リリースサーバ103は、記憶装置211等に保存されている図18に示すサーバリストテーブル1800からindexとサーバリスト名を検索し、その検索結果をクライアント端末101へ送信する(ステップS202)。
図18に示すサーバリストテーブル1800は、リリースするサーバ情報で構成されている。サーバ情報は、サーバのリリースする順序を表す情報であり、indexと、subindexと、サーバリスト名と、releaseIndexと、サーバ名とが含まれる。
図22に戻り、クライアント端末101は、受信した検索結果をサーバリスト作成画面401上のサーバリスト一覧403に表示する(ステップS204)。このとき、indexとサーバリスト名が重複しないようにサーバリストテーブル1800に保存されているすべての情報が表示される。また、indexとサーバリスト名の組み合わせはクライアント端末101内のRAM203上に保持され、サーバリスト一覧403にはサーバリスト名のみが表示される(図6参照)。
次に、クライアント端末101は、サーバリストに対応するサーバ名の一覧をリリースサーバ103に要求する(ステップS206)。リリースサーバ103は、サーバ一覧の内容をクライアント端末101へ送信する。クライアント端末101は、受信したサーバ一覧を画面に表示する(ステップS208)。サーバリスト作成画面401上のサーバ一覧404には、リリースサーバ103に保存されているサーバ一覧の内容が表示される(図6参照)。
サーバリスト作成画面401上でクリアボタン410が押下された場合(ステップS209でYES)、クライアント端末101は、サーバリスト作成画面401上のサーバリスト名402を空白にし、対象サーバ409に表示されたサーバをすべてクリア(削除)して、画面を初期状態にする(ステップS211)(図6参照)。
サーバリスト作成画面401上のサーバ一覧404で任意のサーバが選択され、→ボタン405が押下されると、サーバ一覧404で選択されたサーバが対象サーバ409に追加される(図7(a)〜図8(d)参照)。対象サーバ409にサーバが追加されると、対象サーバ409には、追加されたサーバに連番が割り当てられる。この連番がサーバのリリース順序となる。連番の番号が同じ場合は、同時にリリースが行われる。
サーバリスト作成画面401上の対象サーバ409で任意のサーバが選択され、←ボタン406が押下されると、対象サーバ409で選択されたサーバが対象サーバ409から削除される。対象サーバ409からサーバが削除されると、対象サーバ409には、サーバの連番の再割り当てが行われる。
サーバリスト作成画面401上の対象サーバ409で任意のサーバが選択され、同時ボタン407が押下されると、選択されたサーバの連番を1つ上のサーバと同じ連番に割り当て、それ以降のサーバの連番の再割り当てが行われる(図8(e)参照)。
サーバリスト作成画面401上の対象サーバ409で任意のサーバが選択され、クリアボタン408が押下されると、対象サーバ409に表示されたサーバがすべてクリア(削除)される。
図22に戻り、サーバリスト作成画面401上で作成ボタン411が押された場合(ステップS210でYES)、内部で採番されたindexをキーにしてサーバリスト名402と対象サーバ409の情報がクライアント端末101からリリースサーバ103に送信され、サーバリストテーブル1800に追加保存するように要求される。リリースサーバ103は、受信したサーバリストの情報をサーバリストテーブル1800に追加保存する(ステップS212)。
サーバリストが作成された後、クライアント端末101は、リリースサーバ103に保存されたサーバリストテーブル1800からindexとサーバリスト名を検索し、図8(f)に示すように、検索結果をサーバリスト一覧403に表示する。
サーバリストを更新または削除する場合は、図9(g)に示すように、サーバリスト作成画面401において、ユーザがサーバリスト一覧403に表示されているサーバリストを選択する。クライアント端末101は、その表示されているサーバリストに対応するRAM203に記憶されたindexをリリースサーバ103に送信し、該indexをキーにしてサーバリストテーブル1800を検索し、その検索結果をリリースサーバ103から受信してサーバリスト名402と対象サーバ409に表示する。
サーバリスト作成画面401上で保存ボタン412が押された場合(ステップS214でYES)、表示されているサーバリストに対応するindexとサーバリスト名402と対象サーバ409の情報がクライアント端末101からリリースサーバ103に送信され、サーバリストテーブル1800が更新される(図22のステップS216)(図9(g)〜図10(k)参照)。
サーバリスト作成画面401上で削除ボタン413が押された場合、表示されているサーバリストのindexがクライアント端末101からリリースサーバ103に送信され、サーバリストテーブル1800から送信されたindexに該当する情報が削除される(ステップS220)。
次に、クライアント端末101とリリースサーバ103により実行されるリリース計画情報の作成、更新、削除処理(以下、「リリース計画情報の作成処理」と呼ぶ)について図23、図11〜図15、図19を参照して説明する。
図23は、クライアント端末101とリリースサーバ103により実行されるリリース計画情報の作成処理の一例を示すフローチャートである。図11〜図15は、リリース計画情報の作成処理時にクライアント端末101の表示装置210に表示されるリリース計画作成画面の一例を示す図である。図19は、リリースサーバ103に格納されたサーバリストテーブルの一例を示す図である。
図23において、クライアント端末101は、端末プログラム105の実行により、図11(a)に示すリリース計画作成画面501を表示し、リリースサーバ103にリリース方式名を要求する(ステップS300)。
リリースサーバ103は、記憶装置211等に保存されているリリース方式テーブル1700からindexとリリース方式名を検索し、その検索結果をクライアント端末101へ送信する(ステップS302)。
クライアント端末101は、受信した検索結果のindexとリリース方式をRAM203に記憶し、図11(b)に示すように、リリース方式名のリストをリリース方式504にプルダウン表示する(ステップS304)。リリース方式504のプルダウンメニューでリリース方式が選択されると、選択されたリリース方式名が表示される。そして、選択されたリリース方式名に対応するRAM203に記憶されたindexがクライアント端末101からリリースサーバ103に送信され、該indexをキーにしてリリース方式テーブル1700が検索され、その検索結果がクライアント端末101に送信される。そして、リリース計画作成画面501上の実行コマンド515に検索結果のコマンドリストが表示される(図11(b)参照)。
次に、クライアント端末101はリリースサーバ103にサーバリスト名を要求する。
リリースサーバ103は、記憶装置211等に保存されているサーバリストテーブル1800からindexとサーバリスト名を検索し、その検索結果をクライアント端末101へ送信する(ステップS306)。
クライアント端末101は、受信した検索結果のindexとサーバリスト名をRAM203に記憶し、図11(c)に示すように、サーバリスト名のリストを対象サーバ505にプルダウン表示する(ステップS308)。対象サーバ505のプルダウンメニューでサーバリストが選択されると、選択されたサーバリスト名が表示される。そして、選択されたサーバリスト名のindexがクライアント端末101からリリースサーバ103に送信され、該indexをキーにしてサーバリストテーブル1800が検索され、その検索結果がクライアント端末101に送信される。そして、リリース計画作成画面501上のサーバ一覧510に検索結果のサーバリストが表示される(図11(c)参照)。
リリース計画作成画面501において、リリース物件格納場所506のボタンがユーザによって押下されると、図12(d)に示すように、フォルダ選択画面519が表示され、リリース物件が格納されているフォルダを選択することが可能となる。これにより、リリース対象となるサーバへリリースするリリース物件を選定することができる。フォルダ選択画面519には、トップディレクトリに設定されているフォルダ配下のフォルダ構成をツリー状にして、フォルダツリー520が表示され、ユーザによって選択されたフォルダの色が反転する(図12(d)参照)。
フォルダ選択画面519において、OKボタン521が押下されると、選択されたフォルダまでのフルパスをリリース計画作成画面501に返す。フォルダ選択画面519で選択されたフォルダのパスがリリース物件格納場所506に表示される(図12(e)参照)。一方、フォルダ選択画面519上でキャンセルボタン522が押下されると空白のパスをリリース計画作成画面501に返す。
リリース計画作成画面501では、↑ボタン511が押下されると、サーバ一覧510で選択されているサーバ名が1つ上へ移動する(図13(f)〜図13(h)参照)。一方、リリース計画作成画面501上で↓ボタン512が押下されると、サーバ一覧510で選択されているサーバ名が1つ下へ移動する(図14(i)〜図14(j)参照)。リリース計画作成画面501上で同時ボタン513が押下されると、サーバ一覧510で選択されているサーバ名の番号を1つ上の番号と同じにする。選択されたサーバ名以降の番号が採番しなおされる(図14(j)、図14(k)参照)。リリース計画作成画面501上で戻すボタン514が押下されると、サーバ一覧で変更した内容が変更する前に戻される(図12(e)に示す画面に戻る)。
リリース計画作成画面501上で応答ボタン516が押下されると、実行コマンド515で選択されているコマンドの下に応答コマンドが挿入される(図15(l)〜図15(m)参照)。応答コマンドは、リリースサーバ103からクライアント端末101に送信され、リリースを継続するか、リリース失敗にするかユーザに選択させるためのコマンドである。リリース計画作成画面501上で待機ボタン517が押下されると、実行コマンド515で選択されているコマンドの下に待機コマンドが挿入される(図15(n)参照)。待機コマンドは、コマンド間で待機が必要な場合、秒数を指定して待機させるコマンドである。リリース計画作成画面501上で戻すボタン518が押下されると、実行コマンド515に対して変更した内容を変更する前に戻す(図12(e)の示す画面に戻る)。
図23に戻り、クライアント端末101は、リリース計画作成画面501が新規作成として表示されているかまたは既存情報の表示で表示されているかを判定する(ステップS310)。例えば、リリース計画一覧画面601に表示されているリリース計画情報から起動された場合、起動の引数にindexが渡されるため、そのリリース計画情報のindexを元に既存の情報が表示される。そのindexが無い場合は新規作成と判断される。新規作成として起動された場合はそのまま画面を表示する(ステップS312)(図11(a)参照)。既存情報の参照として起動された場合、リリースサーバ103に既存情報を要求する。
リリース計画作成画面501において、作成ボタン507が押された場合、内部で採番されたindexをキーにして、入力されたリリース計画情報がクライアント端末101からリリースサーバ103に送信され(ステップS318)、図19に示すリリース計画テーブル1900に新規作成し(ステップS320)、リリース計画作成画面501を閉じる。
図19において、リリース計画テーブル1900は、上述したリリース計画情報で構成されている。具体的には、リリース計画情報には、indexと、リリース日時と、使用するサーバリスト(サーバリストテーブルのindex)と、使用するリリース方式(リリース方式テーブルのindex)と、リリースするファイル(ファイルが存在するディレクトリまでのフルパス)と、リリース状態と、リカバリポイントとが含まれる。
図23に戻り、ステップS310で新規作成でないと判定された場合、リリースサーバ103は、クライアント端末101から要求された既存情報をリリース計画テーブル1900から検索し、その検索結果をクライアント端末101に送信する(ステップS314)。クライアント端末101は、受信した検索結果をRAM203に記憶すると共に、画面に表示する(ステップS316)(図12(e)参照)。
リリース計画作成画面501上で保存ボタン508が押された場合、表示されているリリース計画情報に対応するindexとリリース計画情報がクライアント端末101からリリースサーバ103に送信され(ステップS322)、リリース計画テーブル1900を送信されたリリース計画情報のindexに該当する情報を更新し(ステップS324)、リリース計画作成画面501を閉じる。
リリース計画作成画面501上で削除ボタン509が押された場合、表示されているリリース計画情報に対応するindexがクライアント端末101からリリースサーバ103に送信され(ステップS326)、リリース計画テーブル1900から送信されたリリース計画情報のindexに該当する情報を削除し(ステップS328)、リリース計画作成画面501を閉じる。
図16は、リリース計画情報を一覧表示及びリリースの開始を行うためのリリース計画一覧画面の一例を示す図である。
リリース計画一覧画面601内にある各ボタン(リリース計画新規作成ボタン605、リリース方式作成ボタン606、サーバリスト作成ボタン607、リリース再開ボタン608、リリース開始ボタン609)については、操作ミスを防ぐために、選択できるボタンが制限される。
リリース計画一覧画面601が表示されると、当日の年月日がクライアント端末101からリリースサーバ103に送信される。リリースサーバ103は、受信した年月日をキーにしてリリース計画テーブル1900から該当するリリース計画情報を検索し、検索結果をクライアント端末101に送信する。クライアント端末101は、受信した検索結果のリリース計画情報をリリース計画一覧604に表示する。このとき、indexとリリース計画情報の組み合わせはRAM203上に保持され、リリース計画一覧604にはindex以外のリリース計画情報が表示される。そして、リリース再開ボタン608については選択できないようになっている。リリース再開ボタン608は、クライアント端末101からリリースサーバ103にリリース再開を指示するためのボタンである。
リリース計画一覧画面601上で検索ボタン603が押下されると、リリース日入力欄602に入力された年月日がクライアント端末101からリリースサーバ103に送信される。リリースサーバ103は、受信した年月日をキーにしてリリース計画テーブル1900から該当する情報を検索し、検索結果をクライアント端末101に送信する。クライアント端末101は、受信した検索結果のリリース計画情報をリリース計画一覧604に表示する。
リリース計画一覧画面601上でリリース計画新規作成ボタン605が押下されると、リリース計画作成画面501が表示される(図11(a)参照)。
リリース計画一覧画面601上でリリース方式作成ボタン606が押下されると、リリース方式作成画面301が表示される(図4(a)参照)。
リリース計画一覧画面601上でサーバリスト作成ボタン607が押下されると、サーバリスト作成画面401が表示される(図7(a)参照)。
リリース計画一覧画面601のリリース計画一覧604にリスト表示されたリリース計画情報がユーザによって選択(ダブルクリック)されると、リリース計画作成画面501が表示され、リリース計画一覧604で選択されたリリース計画情報のindexがクライアント端末101からリリースサーバ103に送信される。リリースサーバ103は、受信したindexをキーにしてリリース計画テーブル1900から該リリース計画情報のindexに該当する情報を検索し、検索結果をクライアント端末101に送信する。クライアント端末101は、受信した検索結果をリリース日502、リリース時間503、リリース方式504、対象サーバ505、リリース物件格納場所506、サーバ一覧510、実行コマンド515にそれぞれ表示する。
リリース計画一覧画面601上でリリース開始ボタン609が押下されると、リリース計画一覧604で選択されているリリース計画情報がクライアント端末101からのリリースサーバ103に送信され、リリースサーバ103はリリース開始を指示する。このとき、検索ボタン603、リリース計画一覧604、リリース計画新規作成ボタン605、リリース方式作成ボタン606、サーバリスト作成ボタン607、リリース再開ボタン608、及びリリース開始ボタン609については操作が不可能になる。
クライアント端末101は、リリースサーバ103からリリースが完了した旨の通知を受けると、リリース計画一覧画面601上のリリース計画一覧604を最新の情報で再表示する。このとき、検索ボタン603、リリース計画一覧604、リリース計画新規作成ボタン605、リリース方式作成ボタン606、及びサーバリスト作成ボタン607については操作可能にする。一方、リリース再開ボタン608、リリース開始ボタン609については操作不可能にする。
また、クライアント端末101は、リリースサーバ103からリリースが失敗した旨の通知を受けると、リリース計画一覧画面601上のリリース計画一覧604を最新の情報で再表示する。このとき、検索ボタン603、リリース計画一覧604、リリース計画新規作成ボタン605、リリース方式作成ボタン606、サーバリスト作成ボタン607、及びリリース開始ボタン609については操作不可能にする。一方、リリース再開ボタン608については操作可能にする。
リリース計画一覧画面601上のリリース計画一覧604において、リリース状態が「完了」のリリース計画情報がユーザによって選択された場合、クライアント端末101は、検索ボタン603、リリース計画一覧604、リリース計画新規作成ボタン605、リリース方式作成ボタン606、及びサーバリスト作成ボタン607を操作可能にする。一方、リリース再開ボタン608、リリース開始ボタン609を操作不可能にする。
リリース計画一覧画面601上のリリース計画一覧604において、リリース状態が「失敗」のリリース計画情報がユーザによって選択された場合、クライアント端末101は、検索ボタン603、リリース計画一覧604、リリース計画新規作成ボタン605、リリース方式作成ボタン606、サーバリスト作成ボタン607、及びリリース再開ボタン608を操作可能にする。一方、リリース開始ボタン609を操作不可能にする。
リリース計画一覧画面601上のリリース計画一覧604において、リリース状態が「未実施」のリリース計画情報がユーザによって選択された場合、クライアント端末101は、検索ボタン603、リリース計画一覧604、リリース計画新規作成ボタン605、リリース方式作成ボタン606、サーバリスト作成ボタン607、及びリリース開始ボタン609を操作可能にする。リリース再開ボタン608を操作不可能にする。
図20は、リリースシナリオファイルの構成例を示す図であり、(a)は通常のリリースシナリオファイル、(b)はサーバ3のリリースが失敗したときの戻しリリース用のリリースシナリオファイル、(c)はサーバ2,3のリリースが失敗したときの戻しリリース用のリリースシナリオファイルである。
リリースシナリオファイルは、リリース計画テーブル1900で定義されているリリース方式とサーバリストに基づいて、リリース対象となるサーバ104を順番に並べ、各サーバで実行されるコマンド群で構成されている。このリリースシナリオファイルは、リリース時にメインプログラム106で動的に作成される。
例えば、図20(a)に示す通常時のリリースシナリオファイルの場合、サーバ1のリリースを行い、次に、サーバ2及びサーバ3に対して同時にリリースを行い、次にサーバ4及びサーバ5に対して同時にリリースを行う。また、バージョン戻し時は、リリースの進捗状況によりリリースシナリオファイルの内容を再構成し、リリースしたサーバのみの情報を作成する。
一方、図20(b)に示す戻しリリース用のリリースシナリオファイルの場合(1台のリリースに失敗した場合)、リリースが失敗したサーバ3に対してリリースを行う。このとき、サーバ3に実行させるコマンドについては、戻し時実行フラグで1:「実行」になっているコマンドのみが実行される。サーバ3のリリース完了後、図20(b)に示すリリースシナリオファイルでリリース終了しているサーバ2のリリースを行い、次にサーバ1のリリースを行う。正常にリリースが完了しているサーバは、戻し時実行フラグに関係なくすべてのコマンドを実行する。
図20(c)に示す戻しリリース用のリリースシナリオファイルの場合(2台のリリースに失敗した場合)、リリースが失敗したサーバ2、サーバ3に対してリリースを行う。このとき、サーバ2、サーバ3に実行させるコマンドについては、戻し時実行フラグが、1:「実行」になっているコマンドのみが実行される。サーバ2、サーバ3のリリース完了後、図20(c)に示すリリースシナリオファイルでリリース終了しているサーバ1に対してリリースを行う。正常にリリースが完了しているサーバは、戻し時実行フラグに関係なくすべてのコマンドを実行する。
なお、図17〜図20に示す各種テーブル及びファイルの構成及びその内容は限定されるものではなく、用途や目的に応じて、さまざまな構成や内容で構成されることは言うまでもない。
次に、図1のソフトウェアリリースシステムにおけるリリース動作について説明する。
図24a〜図24eは、リリース動作の一例を示すフローチャートである。図25は、リリース対象サーバ内のディレクトリ間におけるリリース物件の動きを説明するための図である。図26は、リリース計画一覧画面601上でリリース再開ボタン608が押下されたときのリリース動作の一例を示すフローチャートである。図27(a)〜図28(b)は、リリース動作時にクライアント端末101の表示装置210に表示される選択画面の一例を示す図である。
なお、フローチャート中のシナリオステータスについては、SS1:「通常」、SS2:「戻し」を表す。リカバリポイントについては、RP1:「なし」、RP2:「アプリケーション起動状態チェック」、RP3:「シナリオの実行開始」、RP4:「通常のリリースシナリオで失敗」、RP5:「戻しリリース用のリリースシナリオで失敗」を表す。
図24aにおいて、まず、ユーザは、図16に示すリリース計画一覧画面601上のリリース日入力欄602に、リリース日時情報として年月日を入力した後に、検索ボタン603を押下してリリース計画情報の検索を行う。クライアント端末101は、リリース日入力欄602に入力された年月日に該当するリリース計画情報をリリースサーバ103に要求する(ステップS400)。
リリースサーバ103は、クライアント端末101から受信した年月日に該当するリリース計画情報をリリース計画テーブル1900から検索し、検索結果をクライアント端末101に送信する(ステップS402)。
クライアント端末101は、受信した検索結果をリリース計画一覧画面601上のリリース計画一覧604に表示する(ステップS404)。次に、リリース計画一覧604から任意のリリース計画情報(図16の例ではリリース計画情報604a)がユーザにより選択された後、リリース開始ボタン609が押下されると(ステップS406でYES)、クライアント端末101は、リリース計画一覧604で選択されたリリース計画情報(リリース計画情報604a)に該当するリリース計画の実行をリリースサーバ103に指示する(ステップS407)。
リリースサーバ103は、クライアント端末101からリリース計画の実行指示を受けると、該当するリリース計画情報のリリース方式のindexとサーバリストのindexを元にリリース方式テーブル1700からリリース方式情報を、サーバリストテーブル1800からサーバリスト情報を取得すると共に、リリース計画テーブル1900からリリース物件(リリースファイル)を取得する(ステップS408)。なお、リリース方式情報は、subindex、リリース方式名、実行コマンド名、パラメータ、戻し時実行フラグで構成される。サーバリスト情報は、subindex、サーバリスト名、releaseindex、サーバ名で構成される。なお、リリース物件とはリリース計画テーブル1900の「リリースするファイル」項目に保存されているディレクトリパス配下にあるディレクトリ構成及びファイル群のことを意味する。
次に、リリースサーバ103は、取得したリリースファイルを、サーバリスト情報を元に、リリース対象サーバであるサーバ104にFTPで送信する(ステップS410)。サーバ104では、受信したリリースファイルが所定のディレクトリに一時格納される(図25の1501参照)。
つづいて、リリースサーバ103は、リリース実行プログラム107を、サーバリスト情報を元に、リリース対象サーバであるサーバ104にFTPで送信する(ステップS412)。次に、リリースサーバ103は、リリース方式情報とサーバリスト情報に基づいてリリースシナリオファイルを作成し、RAM203に記憶する(ステップS414)。
次に、リリースサーバ103は、作成したリリースシナリオファイルに対するシナリオステータスをSS1「通常」に初期化してRAM203上に保持する(ステップS415)。シナリオステータスは、通常のリリースシナリオファイルか、戻しリリース用のリリースシナリオファイルかを示す情報である。つづいて、作成したリリースシナリオファイルに対するリカバリポイントをRP1「なし」に初期化してRAM203上に保持する(ステップS416)。リカバリポイントは、リリースシナリオの進行状態を示す情報である。
次に、リリースサーバ103は、RAM203に記憶したリリースシナリオファイルから順番に対象サーバ(サーバ名)とコマンドリストを取り出し(ステップS418)、リリースすべき対象サーバがあるか否かを判定する(ステップS420)。リリースシナリオファイルからリリースすべき対象サーバがなくなった場合(ステップS420でNO)、図24eのステップS474に進み、リリースサーバ103はリリースが完了したと判断し、リリース計画テーブル1900のリリース状態を「未実施」から「完了」に更新して、クライアント端末101にリリースが完了した旨の通知を行う(ステップS476)。
クライアント端末101は、リリースサーバ103からリリース完了の通知を受けて再度リリースサーバ103にリリース計画テーブル1900の検索を要求し、リリース計画一覧画面601のリリース計画一覧604に最新のリリース計画情報を表示する(ステップS478)。
図24aに戻り、ステップS420において、RAM203に記憶したリリースシナリオファイルにリリースすべき対象サーバが存在する場合(ステップS420でYES)、リリースサーバ103は、RAM203に保持されているリカバリポイントをRP2「アプリケーション起動状態チェック」に設定する(ステップS422)。そして、リリースサーバ103は、サーバ104にアプリケーションの起動状態チェックを指示する(ステップS423)。
図24bにおいて、サーバ104は、リリース実行プログラム107を実行し、リリースサーバ103からの指示に応じてアプリケーションの起動状態を確認し(ステップS424)、起動状態がOKかNGかを判定する(ステップS426)。なお、起動状態がNGとは、アプリケーションが起動していない状態をいい、起動状態がOKとは、アプリケーションが起動している状態をいう。
ステップS426における判定の結果、起動状態がNGであれば(ステップS426でNG)、サーバ104は、アプリケーションの起動状態がNGである旨をリリースサーバ103に通知する。一方、アプリケーションの起動状態がOKであるときは(ステップS426でOK)、サーバ104は、リリースサーバ103内のRAM203に保持されているシナリオステータスを確認し、シナリオステータスがSS1かSS2かを判定する(ステップS428)。
ステップS428における判定の結果、シナリオステータスがSS1「通常」の場合は、サーバ104は、図25の1502に示すように、サーバ104上のアプリケーションがインストールされているディレクトリにあるリリース対象ファイルと同じファイルを退避ファイルのディレクトリ(退避場所)にコピーする。そして、図25の1503に示すように、リリースサーバ103から受信したリリースファイルをリリースファイルのディレクトリにコピーし、サーバ104からリリースサーバ103にアプリケーションの起動状態がOKである旨を通知する(ステップS430)。
一方、ステップS428における判定の結果、シナリオステータスがSS2「戻し」の場合は、サーバ104は、図25の1505に示すように、退避ファイルのディレクトリにあるファイルをリリースファイルのディレクトリにコピーし、リリースサーバ103にアプリケーションの起動状態がOKである旨を通知する(ステップS432)。
リリースサーバ103は、サーバ104からの通知を判定する(ステップS434)。NGである旨の通知を受け取ったと判定した場合、リリースサーバ103は、リリース計画テーブル1900のリリース状態を「失敗」に更新し(ステップS482)、図24cのステップS484へ進む。一方、OKである旨の通知を受け取ったと判定した場合は(ステップS434でOK)、リリースサーバ103は、リリースシナリオファイルのコマンドリストからコマンドを取り出し(ステップS436)、取り出すべきコマンドがあるか否かを判定する(ステップS438)。コマンドがない場合は、リリースシナリオファイルから対象サーバとコマンドリストを取り出すところから再度実行する(図24aのステップS418)。一方、コマンドがある場合、コマンドの種類を確認する(ステップS440)。ここでは、(1)応答コマンドか、(2)待機コマンドか、(3)通常のコマンドかについて確認する。
(1)応答コマンドの場合、リリースサーバ103は、クライアント端末101に応答コマンドである旨を通知する。
クライアント端末101は、リリースサーバ103から応答コマンドの通知を受けると、図27(a)に示す継続/戻し選択画面2700を表示し、ユーザにリリースの継続か戻しかの選択指示を受け付ける(ステップS444)。継続指示を受け付けた場合は(ステップS446で継続)、ステップS436に戻り、リリースサーバ103に次のコマンドを実行するように指示する一方、戻し指示を受け付けた場合は(ステップS446で戻し)、図24dのステップS466へ進む。
(2)待機コマンドの場合、リリースサーバ103は、予め設定された所定の時間(数秒)待機して、ステップS436に戻る。
(3)通常コマンドの場合、リリースサーバ103は、リカバリポイントをRP3「シナリオの実行開始」に設定し(ステップS448)、ステップS436で取り出したコマンドを送信して当該コマンドの実行をサーバ104に指示する(ステップS450)。なお、RP3「シナリオの実行開始」のステータスは、リリースシナリオファイルの使用が開始されたことを示すために設定される。
図24cにおいて、ステップS452では、サーバ104は、リリースサーバ103からコマンド実行の指示を受けると、対象のコマンドを実行する。また、ファイル置換のコマンドを実行する場合は、サーバ104は、リリースファイルが格納されているディレクトリ配下のファイルをファイル置換する(図25の1504参照)。実行完了後、コマンド完了と実行結果をリリースサーバ103に通知する(ステップS454)。
リリースサーバ103は、サーバ104からコマンドの実行結果を受け取り(ステップS456)、コマンド実行が成功したか否かの判定を行う(ステップS458)。実行結果が成功(OK)の場合は(ステップS458でYES)、図24bのステップS436へ進み、コマンドリストから次のコマンドの取り出しを行う。一方、実行結果が失敗(NG)の場合は(ステップS458でNO)、リリースサーバ103は、シナリオステータスを確認し、シナリオステータスがSS1「通常」か、SS2「戻し」かを判定する(ステップS460)。シナリオステータスがSS2「戻し」の場合は、図24bのステップS482へ進む。一方、シナリオステータスがSS1「通常」の場合は、図24dのステップS462へ進み、リリースサーバ103からクライアント端末101にコマンド実行が失敗した旨を通知する。
クライアント端末101は、リリースサーバ103からコマンド実行失敗の通知を受け取ると、図27(b)に示す戻し/失敗選択画面2710を表示し、ユーザにリリースの戻しかリリース失敗かの選択指示を受け付ける(ステップS462)。リリース失敗の指示を受け付けた場合(ステップS464で失敗)、クライアント端末101からリリースサーバ103にリリース失敗の指示が行われる。クライアント端末101からリリース失敗の指示を受けた場合、リリースサーバ103は、リリース計画テーブル1900のリリース状態を「失敗」に更新する(ステップS482)。
一方、戻し指示を受け付けた場合(ステップS464で戻し)、クライアント端末101からリリースサーバ103に戻しの指示が行われる。クライアント端末101から戻しの指示を受けた場合、リリースサーバ103は、シナリオステータスをSS2「戻し」に設定し(ステップS466)、戻しリリース用のリリースシナリオファイルの作成を開始する(ステップS468)。
次に、リリースサーバ103は、コマンド実行に失敗したサーバを戻しリリース用のリリースシナリオファイルの最初に設定し、コマンドリストで戻し時実行フラグが実行になっているコマンドのみを実行するように設定する(ステップS470)。次に、失敗したサーバより前にリリースを実行し、リリースが完了しているサーバを失敗したサーバから逆の順で戻しリリース用のリリースシナリオファイルに設定する。このとき、実行するコマンドを通常のリリースシナリオファイルで実行したコマンドと同じにする(ステップS472)。
戻しリリース用のリリースシナリオファイルの作成が完了したときは、図24aのステップS416へ進み、通常のリリースシナリオファイルと同じように、リリースを開始する。
図24cにおいて、リリースサーバ103は、RAM203上に保持されたリカバリポイントがRP3かRP3以外かを判定する(ステップS484)。RAM203上に保持されたリカバリポイントがRP3「シナリオの実行開始」以外の場合、リリースサーバ103は、RAM203上に保持されたリカバリポイントでリリース計画テーブル1900のリカバリポイントを更新し、クライアント端末101にリリースが失敗した旨の通知を行う(ステップS492)。
RAM203上に保持されたリカバリポイントがRP3「シナリオの実行開始」の場合、ステップS486へ進み、シナリオステータスを確認する。シナリオステータスがSS1「通常」の場合、RAM203に記憶したリカバリポイントにRP4「通常のリリースシナリオで失敗」を設定する(ステップS488)。シナリオステータスがSS2「戻し」の場合、RAM203に記憶したリカバリポイントにRP5「戻しリリース用のリリースシナリオで失敗」を設定する(ステップS490)。
リリースサーバ103は、上述の設定が完了したとき、RAM203上に保持されたリカバリポイントでリリース計画テーブル1900のリカバリポイントを更新し、クライアント端末101にリリースが失敗した旨の通知を行う(ステップS492)。クライアント端末101は、該通知を受けてリリースに失敗した旨を画面表示する(ステップS494)。
図26は、リリース失敗時のリリース再開時の処理の一例を示すフローチャートである。なお、フローチャート中のシナリオステータスとリカバリポイントについては、上記図24a〜図24eで説明したものを凡例として使用している。また、本フローチャートは、ステップS494の後続の処理として位置付けることも可能である。
図26において、ユーザがリリース計画一覧画面601上でリリース状態が「失敗」のリリース計画情報を選択した後、リリース再開ボタン608を押下すると、クライアント端末101は、リリースサーバ103にリリース再開を指示する(ステップS600)。リリースサーバ103は、リリース計画テーブル1900からリカバリポイントを取得し(ステップS602)、リカバリポイントがRP2かRP2以外かを判定する(ステップS604)。
ステップS604の判定の結果、リカバリポイントがRP2「アプリケーション起動状態チェック」以外の場合、クライアント端末101は、図28(a)に示す続行/スキップ/戻し選択画面2800を表示し、リリースを続行するか戻しを行うか、失敗したサーバをスキップして継続するかをユーザに要求する(ステップS606)。このとき、リカバリポイントがRP5「戻しリリース用のリリースシナリオで失敗」した場合、戻しボタンは選択できないようにしておく。
次に、ステップS608において、続行が選択された場合、クライアント端末101は、失敗したコマンドから実行を再開するようにリリースサーバ103に指示する(図24bのステップS450)。一方、戻しが選択された場合、クライアント端末101は、戻しシナリオ作成から再開するようにリリースサーバ103に指示する(図24dのステップS466)。また、スキップが選択された場合、クライアント端末101は、リリースに失敗したサーバをスキップして再開するようにリリースサーバ103に指示する(図24aのステップS418)。
ステップS604の判定の結果、リカバリポイントがRP2「アプリケーション起動状態チェック」の場合、クライアント端末101は、図28(b)に示す続行/戻し選択画面2810を表示し、リリースを続行するか戻しを行うかをユーザに要求する(ステップS610)。
次に、ステップS612において、戻しが選択された場合、クライアント端末101は、リリースサーバ103に戻しシナリオ作成から再開するように指示する(図24dのステップS466)。一方、続行が選択された場合、クライアント端末101は、リリースサーバ103にアプリケーションの起動状態チェックから再開するように指示する(図24aのステップS423)。
上記実施形態によれば、複数のサーバ104のうちリリース対象となるサーバのリリース方式と当該サーバのリリース順序が設定されたサーバリストと当該サーバへリリースするソフトウェアの設定を行い、設定されたリリース方式及びサーバリストに基づいてソフトウェアのリリースを行う場合、リリース対象となるサーバにおけるリリース対象のソフトウェアを退避ファイルとしてコピーした後に、当該リリース対象のソフトウェアのリリースを行う。そして、ソフトウェアのリリース失敗時には、リリースされたソフトウェアを退避ファイルによりリリース前のソフトウェアに戻す。これにより、リリースの失敗によって影響を受けるソフトウェアをリリース前の状態に自動で戻すことができ、リリースに要するユーザの作業負荷を軽減することができる。
本発明の実施態様としてシステムについて説明したが、例えば、装置や方法、プログラムもしくは記憶媒体等の実施態様をとることも可能であり、具体的には、複数の機器から構成されるシステムに適用しても、また、一つの機器からなる装置に適用してもよい。
上記実施形態では、リリース実行時にリリースが失敗した場合について説明したが、これに限定されず、リリース時に異常が発生した場合であっても、本発明が適用可能であることは云うまでもない。
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROM等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
更に、前述した実施形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行う場合である。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOSなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現する場合も含まれる。この場合、上記プログラムは、該プログラムを記憶した記憶媒体から直接、またはインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続された不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
本発明の実施形態に係るソフトウェアリリースシステムの概略構成を示す図である。 図1のクライアント端末、リリースサーバ、及びサーバの基本的なハードウェア構成を示すブロック図である。 リリース時に使用されるリリース方式を作成するためのリリース方式作成画面の一例を示す図である。 リリース方式作成画面の一例を示す図であり、(a)はクリアボタンが押下されたときの状態、(b)はリリース方式の情報の入力待ちの状態、(c)は作成ボタンが押下されたときの状態を示す。 リリース方式作成画面の一例を示す図であり、(d)はリリース方式名が選択されたときの状態、(e)は変更箇所の修正待ちの状態、(f)は保存ボタンが押下されたときの状態を示す。 リリースする対象のサーバとリリース順番を決めるためのサーバリスト作成画面の一例を示す図である。 サーバリスト作成画面の一例を示す図であり、(a)はサーバリスト名入力時の状態、(b)はサーバ一覧の任意のサーバが選択されたときの状態、(c)は任意のサーバが選択された後に→ボタンが押下されたときの状態を示す。 サーバリスト作成画面の一例を示す図であり、(d)はサーバ一覧の任意のサーバが選択された後に→ボタンが2回押下されたときの状態、(e)は対象サーバの任意のサーバが選択された後に同時ボタンが押下されたときの状態、(f)は作成ボタンが押下されたときの状態を示す。 サーバリスト作成画面の一例を示す図であり、(g)はサーバリスト一覧の任意のサーバが選択されたときの状態、(h)は対象のサーバが選択されたときの状態、(i)はサーバ一覧の任意のサーバが選択された後に→ボタンが押下されたときの状態を示す。 サーバリスト作成画面の一例を示す図であり、(j)は対象サーバの任意のサーバが選択された後に←ボタンが押下されたときの状態、(k)は保存ボタンが押下されたときの状態を示す。 リリース計画作成画面の一例を示す図であり、(a)は新規作成時の状態、(b)はリリース方式が選択されたときの状態、(c)は対象サーバが選択されたときの状態を示す。 リリース計画作成画面の一例を示す図であり、(d)はリリースファイル格納場所のフォルダ選択画面が表示された状態、(e)はリリースファイルが選択されたときの状態を示す。 リリース計画作成画面の一例を示す図であり、(f)はサーバ一覧から任意のサーバ名が選択されたときの状態、(g)は↑ボタンが押下されたときの状態、(h)は↑ボタンが2回押下されたときの状態を示す。 リリース計画作成画面の一例を示す図であり、(i)はサーバ一覧から任意のサーバ名が選択されたときの状態、(j)は↓ボタンが2回押下されたときの状態、(k)は同時ボタンが押下されたときの状態を示す。 リリース計画作成画面の一例を示す図であり、(l)は実行コマンドから任意のコマンド名が選択されたときの状態、(m)は応答ボタンが押下されたときの状態、(n)は待機ボタンが押下されたときの状態を示す。 リリース計画一覧画面の一例を示す図である。 リリース方式テーブルの一例を示す図である。 サーバリストテーブルの一例を示す図である。 リリース計画テーブルの一例を示す図である。 リリースシナリオファイルの構成例を示す図であり、(a)は通常のリリースシナリオファイル、(b)はサーバ3のリリースが失敗したときの戻しリリース用のリリースシナリオファイル、(c)はサーバ2,3のリリースが失敗したときの戻しリリース用のリリースシナリオファイルである クライアント端末とリリースサーバにより実行されるリリース方式の作成処理の一例を示すフローチャートである。 クライアント端末とリリースサーバにより実行されるサーバリストの作成処理の一例を示すフローチャートである。 クライアント端末とリリースサーバにより実行されるリリース計画情報の作成処理の一例を示すフローチャートである。 リリース動作の一例を示すフローチャートである。 リリース動作の一例を示すフローチャートである。 リリース動作の一例を示すフローチャートである。 リリース動作の一例を示すフローチャートである。 リリース動作の一例を示すフローチャートである。 リリース対象サーバ内のディレクトリ間におけるリリース物件の動きを説明するための図である。 リリース計画一覧画面上でリリース再開ボタンが押下されたときのリリース動作の一例を示すフローチャートである。 リリース動作時にクライアント端末の表示装置に表示される選択画面の一例を示す図であり、(a)は継続/戻し選択画面、(b)は戻し/失敗選択画面を示す。 リリース動作時にクライアント端末の表示装置に表示される選択画面の一例を示す図であり、(a)は継続/スキップ/戻し選択画面、(b)は継続/戻し選択画面を示す。
符号の説明
101 クライアント端末
102 ネットワーク
103 リリースサーバ
104 サーバ
105 端末プログラム
106 メインプログラム
107 リリース実行プログラム
201 CPU
202 ROM
203 RAM
210 表示装置
211 記憶装置

Claims (10)

  1. 複数のサーバと、当該複数のサーバに対するソフトウェアのリリースを行うリリース制御装置とを備えるソフトウェアリリースシステムにおいて、
    前記リリース制御装置は、
    前記複数のサーバのうちリリース対象となるサーバのリリース方式と当該サーバのリリース順序が設定されたサーバリストと当該サーバへリリースするソフトウェアの設定を行う設定手段と、
    前記設定されたリリース方式及びサーバリストに基づいて前記ソフトウェアのリリースを行う場合、前記リリース対象となるサーバにおけるリリース対象のソフトウェアを退避ファイルとしてコピーした後に、当該リリース対象のソフトウェアのリリースを行うリリース手段と、
    前記ソフトウェアのリリース失敗時には、前記リリースされたソフトウェアを前記退避ファイルによりリリース前のソフトウェアに戻すリリース戻し手段とを備えることを特徴とするソフトウェアリリースシステム。
  2. 前記設定手段は、少なくともリリース前処理、アプリケーション停止、ファイル置換前処理、ファイル置換、ファイル置換後処理、アプリケーション開始、及びリリース後処理を処理内容とする複数のコマンドを組み合わせたリリース方式の設定を行うことを特徴とする請求項1記載のソフトウェアリリースシステム。
  3. 前記設定手段は、前記リリース戻し手段によるソフトウェアの戻し時に実行またはスキップするコマンドの設定を行い、
    前記リリース戻し手段は、前記設定手段による設定に応じて前記コマンドの実行またはスキップを行うことを特徴とする請求項2記載のソフトウェアリリースシステム。
  4. 前記リリース制御装置は、前記ソフトウェアのリリース失敗時に、前記リリース戻し手段によるソフトウェアの戻しをユーザに選択させる選択手段をさらに備え、
    前記選択手段で前記リリース戻し手段によるソフトウェアの戻しが選択された場合、前記リリース戻し手段は、前記設定手段により実行に設定されたコマンドのみを対象に、リリースが失敗したサーバから逆の順でリリースが完了しているサーバのリリースを行うことを特徴とする請求項3記載のソフトウェアリリースシステム。
  5. 前記設定手段は、前記リリース対象となる複数のサーバのリリース順序を同時に設定することができ、
    前記リリース戻し手段は、前記設定手段によりリリース順序が同時に設定された複数のサーバの少なくとも1つで前記ソフトウェアのリリースが失敗した場合、同時に設定された複数のサーバから逆の順でリリースが完了しているサーバのリリースを行うことを特徴とする請求項4記載のソフトウェアリリースシステム。
  6. 前記リリース制御装置は、前記ソフトウェアのリリース失敗が通常のリリース時の失敗か、前記リリース戻し手段によるソフトウェアの戻し時の失敗かを判定する判定手段をさらに備えることを特徴とする請求項1乃至5のいずれか1項に記載のソフトウェアリリースシステム。
  7. 複数のサーバに対してソフトウェアのリリースを行うリリース制御装置において、
    前記複数のサーバのうちリリース対象となるサーバのリリース方式と当該サーバのリリース順序が設定されたサーバリストと当該サーバへリリースするソフトウェアの設定を行う設定手段と、
    前記設定されたリリース方式及びサーバリストに基づいて前記ソフトウェアのリリースを行う場合、前記リリース対象となるサーバにおけるリリース対象のソフトウェアを退避ファイルとしてコピーした後に、当該リリース対象のソフトウェアのリリースを行うリリース手段と、
    前記ソフトウェアのリリース失敗時には、前記リリースされたソフトウェアを前記退避ファイルによりリリース前のソフトウェアに戻すリリース戻し手段とを備えることを特徴とするリリース制御装置。
  8. 複数のサーバに対してソフトウェアのリリースを行うリリース制御装置のリリース方法において、
    前記複数のサーバのうちリリース対象となるサーバのリリース方式と当該サーバのリリース順序が設定されたサーバリストと当該サーバへリリースするソフトウェアの設定を行う設定工程と、
    前記設定されたリリース方式及びサーバリストに基づいて前記ソフトウェアのリリースを行う場合、前記リリース対象となるサーバにおけるリリース対象のソフトウェアを退避ファイルとしてコピーした後に、当該リリース対象のソフトウェアのリリースを行うリリース工程と、
    前記ソフトウェアのリリース失敗時には、前記リリースされたソフトウェアを前記退避ファイルによりリリース前のソフトウェアに戻すリリース戻し工程とを備えることを特徴とするリリース方法。
  9. 複数のサーバに対してソフトウェアのリリースを行うリリース制御装置のリリース方法を当該リリース制御装置に実行させるプログラムにおいて、
    前記複数のサーバのうちリリース対象となるサーバのリリース方式と当該サーバのリリース順序が設定されたサーバリストと当該サーバへリリースするソフトウェアの設定を行う設定ステップと、
    前記設定されたリリース方式及びサーバリストに基づいて前記ソフトウェアのリリースを行う場合、前記リリース対象となるサーバにおけるリリース対象のソフトウェアを退避ファイルとしてコピーした後に、当該リリース対象のソフトウェアのリリースを行うリリースステップと、
    前記ソフトウェアのリリース失敗時には、前記リリースされたソフトウェアを前記退避ファイルによりリリース前のソフトウェアに戻すリリース戻しステップとを備えることを特徴とするプログラム。
  10. 複数のサーバに対してソフトウェアのリリースを行うリリース制御装置のリリース方法を当該リリース制御装置に実行させるプログラムを記憶した記憶媒体において、
    前記プログラムは、
    前記複数のサーバのうちリリース対象となるサーバのリリース方式と当該サーバのリリース順序が設定されたサーバリストと当該サーバへリリースするソフトウェアの設定を行う設定ステップと、
    前記設定されたリリース方式及びサーバリストに基づいて前記ソフトウェアのリリースを行う場合、前記リリース対象となるサーバにおけるリリース対象のソフトウェアを退避ファイルとしてコピーした後に、当該リリース対象のソフトウェアのリリースを行うリリースステップと、
    前記ソフトウェアのリリース失敗時には、前記リリースされたソフトウェアを前記退避ファイルによりリリース前のソフトウェアに戻すリリース戻しステップとを備えることを特徴とする記憶媒体。
JP2008292144A 2008-11-14 2008-11-14 ソフトウェアリリースシステム、リリース制御装置及び方法、プログラム、並びに記憶媒体 Pending JP2010117980A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008292144A JP2010117980A (ja) 2008-11-14 2008-11-14 ソフトウェアリリースシステム、リリース制御装置及び方法、プログラム、並びに記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008292144A JP2010117980A (ja) 2008-11-14 2008-11-14 ソフトウェアリリースシステム、リリース制御装置及び方法、プログラム、並びに記憶媒体

Publications (1)

Publication Number Publication Date
JP2010117980A true JP2010117980A (ja) 2010-05-27

Family

ID=42305604

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008292144A Pending JP2010117980A (ja) 2008-11-14 2008-11-14 ソフトウェアリリースシステム、リリース制御装置及び方法、プログラム、並びに記憶媒体

Country Status (1)

Country Link
JP (1) JP2010117980A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2488006A (en) * 2011-02-14 2012-08-15 Fujitsu Ltd Installing software updates in an order that takes into account the down time caused by an update failing
JP2015103197A (ja) * 2013-11-28 2015-06-04 株式会社日立製作所 分散処理システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2488006A (en) * 2011-02-14 2012-08-15 Fujitsu Ltd Installing software updates in an order that takes into account the down time caused by an update failing
US9081640B2 (en) 2011-02-14 2015-07-14 Fujitsu Limited Apparatus, method and medium for calculating an update order on a service level objective
JP2015103197A (ja) * 2013-11-28 2015-06-04 株式会社日立製作所 分散処理システム

Similar Documents

Publication Publication Date Title
JP5008991B2 (ja) データのリカバリを制御する装置及び方法
JP4946088B2 (ja) 業務運用環境の構築方法
EP1879109A1 (en) Information processing device, program, and storage medium
JP5279247B2 (ja) クライアント、サーバ及びそれらの制御方法、コンピュータプログラム
TW200828118A (en) Method and process for using common preinstallation environment for heterogeneous operating systems
JP2013109630A (ja) 文書管理装置及びその制御方法、並びにプログラム
JP2008183066A (ja) 情報処理装置
JP2016064591A (ja) 情報処理装置、その制御方法、プログラム。
CN102473103B (zh) 控制运行的应用程序以便进行实时场景图编辑
JPH11282686A (ja) ネットワークコンピュータシステム
US7478319B2 (en) Web page viewing apparatus
JP2010117980A (ja) ソフトウェアリリースシステム、リリース制御装置及び方法、プログラム、並びに記憶媒体
JP2014063472A (ja) 情報処理装置、その方法及びプログラム
JP3997735B2 (ja) 処理システムおよび処理装置
US20120284500A1 (en) Abstraction of computer disk image cloning capabilities from bootable media
JP6429502B2 (ja) 管理システム、及びその方法
JP2002222106A (ja) クライアント/サーバシステムにおけるクライアントの環境設定装置、方法、プログラム記録媒体およびプログラム
JP2007200222A (ja) ファイル管理サーバ、ファイル管理方法、およびそのためのプログラム
JP2006343901A (ja) リストア支援システム
JP2003280912A (ja) 情報処理システムおよび情報処理方法
JP6467298B2 (ja) サーバ運用作業履歴管理装置、システム、方法、およびプログラム
JP7189251B2 (ja) 工事実行管理装置、工事実行管理方法、及びプログラム
JP2003140905A (ja) システムプログラムのバージョンアップ方法,システムプログラムのバージョンアップ用プログラムおよびシステムプログラムのバージョンアップ用プログラム記録媒体
JP6813787B2 (ja) 情報処理装置、その処理方法、及びプログラム
JP5652141B2 (ja) 情報処理装置、情報処理方法、コンピュータプログラム及び記憶媒体