(57)【要約】【課題】サーバの運用形態が混在するシステムに好適なパッチ処理の技術を提供する。【解決手段】プロセス（150）を実行する運用系サーバ装置（110）および該運用系サーバ装置のための代替稼動を待機する待機系サーバ装置（120）が設けられた二重化ユニット（101）と、上記プロセスと同一のプロセス（150）を実行するサーバ装置（130）が設けられた一重化ユニット（102）と、両ユニットの各サーバ装置に接続された保守サーバ装置（140）とを備える。保守サーバ装置は、プロセスを修正するためのパッチデータ（141）を一重化ユニットおよび二重化ユニットへ送信する。待機系サーバ装置は、パッチ処理の成否を運用系サーバ装置へ通知する。運用系サーバ装置は、待機系サーバ装置からの通知の内容を判定し、それがパッチ処理の成功を表すときパッチデータにより自装置のパッチ処理を実行する。【選択図】図１
2007293519.tif 000002
【特許請求の範囲】
【請求項１】
プロセスを実行する運用系サーバ装置および該運用系サーバ装置のための代替稼動を待機する待機系サーバ装置が設けられた二重化ユニットと、前記プロセスと同一のプロセスを実行するサーバ装置が設けられた一重化ユニットと、前記一重化ユニットおよび二重化ユニットに接続された保守サーバ装置とを備え、
前記保守サーバ装置は、前記プロセスを修正するためのパッチデータを前記一重化ユニットおよび二重化ユニットへ送信する手段を有することを特徴とするサーバシステム。
【請求項２】
前記待機系サーバ装置は、前記パッチデータによるパッチ処理の成否を前記運用系サーバ装置へ通知する手段を有し、
前記運用系サーバ装置は、前記待機系サーバ装置からの通知の内容を判定する手段を有し、前記通知がパッチ処理の成功を表すとき前記パッチデータにより自装置のパッチ処理を実行することを特徴とする請求項１記載のサーバシステム。
【請求項３】
前記待機系サーバ装置は、前記パッチデータによるパッチ処理の成否を前記保守サーバ装置へ通知する手段を有し、
前記保守サーバ装置は、前記待機系サーバ装置からの通知の内容を判定する手段を有し、前記通知がパッチ処理の成功を表すとき前記運用系サーバ装置および前記一重化ユニットのサーバ装置へ前記パッチデータを送信することを特徴とする請求項１記載のサーバシステム。
【請求項４】
前記各サーバ装置は、自装置のメインメモリに記憶した前記プロセスを前記パッチデータを適用して実行し、前記パッチデータの適用が成功したとき自装置の外部メモリにおける前記プロセスの部分を前記パッチデータにより上書きすることを特徴とする請求項１乃至３のいずれか１項に記載のサーバシステム。
【請求項５】
プロセスを実行する運用系サーバ装置および該運用系サーバ装置のための代替稼動を待機する待機系サーバ装置が設けられた二重化ユニットと、前記プロセスと同一のプロセスを実行するサーバ装置が設けられた一重化ユニットとに接続された保守サーバ装置が、
前記プロセスを修正するためのパッチデータを前記一重化ユニットおよび二重化ユニットへ送信することを特徴とするパッチ処理方法。
【請求項６】
前記待機系サーバ装置が、前記パッチデータによるパッチ処理の成否を前記運用系サーバ装置へ通知し、
前記運用系サーバ装置が、前記待機系サーバ装置からの通知の内容を判定し、前記通知がパッチ処理の成功を表すとき前記パッチデータにより自装置のパッチ処理を実行することを特徴とする請求項５記載のパッチ処理方法。
【請求項７】
前記待機系サーバ装置が、前記パッチデータによるパッチ処理の成否を前記保守サーバ装置へ通知し、
前記保守サーバ装置が、前記待機系サーバ装置からの通知の内容を判定し、前記通知がパッチ処理の成功を表すとき前記運用系サーバ装置および前記一重化ユニットのサーバ装置へ前記パッチデータを送信することを特徴とする請求項５記載のパッチ処理方法。
【請求項８】
前記各サーバ装置が、自装置のメインメモリに記憶した前記プロセスを前記パッチデータを適用して実行し、前記パッチデータの適用が成功したとき自装置の外部メモリにおける前記プロセスの部分を前記パッチデータにより上書きすることを特徴とする請求項５乃至７のいずれか１項に記載のパッチ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムを修正するためのパッチ（patch）処理が実行されるサーバシステムに関し、特に、サーバ装置の一重化運用及び二重化運用が混在するシステムでのパッチ処理に関する。
【背景技術】
【０００２】
従来、コンピュータにインストールされているプログラムを修正する技術としてのパッチ処理が知られている。このパッチ処理が実行されることにより、プログラムの不具合箇所（バグ）あるいは更新すべき箇所が自動修正される。
【０００３】
ところで、クライアントサーバシステムには、サーバの一重化運用、すなわち複数のクライアントからの要求を１台のサーバが処理するという運用形態のほか、サーバを二重化するという運用形態がある。二重化運用のサーバシステムでは、常用的に稼動させるサーバに対し、予備としての別個のサーバを待機させる。そして、常用のサーバが障害などによりダウンしたとき、予備のサーバが自動的に代替稼動を開始する。
【０００４】
かかる二重化運用におけるパッチ処理に関する技術として、例えば、後述の特許文献１に記載のものがある。特許文献１に記載の技術は、クラスタに送るパッチ処理の修正データが大量である場合に、修正データを分割して伝送すると共に分割数を通知することにより、修正データの伝送エラーによるパッチ処理の失敗を回避しようとするものである。
【特許文献１】特開昭６１−１１７６４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、サーバの用途や利用頻度などによっては、二重化を必要としない場合もあり、現状では、サーバの一重化運用と二重化運用とが混在したシステムも存在する。よって、このようにサーバの運用形態が混在するシステムのためのパッチ処理の提案が望まれている。
【０００６】
本発明は、上記課題に鑑みてなされたものであり、サーバの運用形態が混在するシステムに好適なパッチ処理の技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るサーバシステムは、プロセスを実行する運用系サーバ装置および該運用系サーバ装置のための代替稼動を待機する待機系サーバ装置が設けられた二重化ユニットと、前記プロセスと同一のプロセスを実行するサーバ装置が設けられた一重化ユニットと、前記一重化ユニットおよび二重化ユニットに接続された保守サーバ装置とを備え、前記保守サーバ装置は、前記プロセスを修正するためのパッチデータを前記一重化ユニットおよび二重化ユニットへ送信する手段を有する。
【発明の効果】
【０００８】
本発明によれば、プロセスのパッチデータを保守サーバ装置が一重化ユニット及び二重化ユニットの各サーバへ配信するよう構成したことにより、サーバの運用形態が混在するシステムにおいてパッチ処理を円滑に行うことができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施形態について図面を用いて詳細に説明する。図１に、実施形態のサーバシステム１００の構成を示す。サーバシステム１００は、運用系サーバ１１０および待機系サーバ１２０によりサーバの二重化運用を行う二重化ユニット１０１と、単体系サーバ１３０による一重化運用を行う一重化ユニット１０２と、両ユニット（１０１／１０２）の各サーバ（１１０／１２０／１３０）と通信可能に接続された保守サーバ１４０とを備える。
【００１０】
二重化ユニット１０１では、運用系サーバ１１０が常用的に稼動し、待機系サーバ１２０は、運用系サーバ１１０の状況を監視しつつ障害発生時の代替稼動を待機する。一方、一重化ユニット１０２では、常用的に稼動する単体系サーバ１３０に対する予備のサーバは配備されない。なお、図示の例では各サーバが１つずつであるが、実際の運用では、それぞれ複数存在してよい。
【００１１】
運用系サーバ１１０及び待機系サーバ１２０並びに単体系サーバ１３０が実行するプロセス１５０ａ／１５０ｂ／１５０ｃは、それぞれ同一の処理内容のプログラムである。
【００１２】
保守サーバ１４０は、プロセス（１５０）を修正するためのパッチ処理に使用するパッチデータ１４１を有する。パッチデータ１４１には、プロセス（１５０）に記述されている関数プログラムの修正データ、及び、その修正に必要な処理のプログラム等が含まれる。
【００１３】
図２に、各サーバ（１１０／１２０／１３０）が実行するパッチ処理について模式的に示す。図示のメインメモリ２０２におけるプロセス使用領域２１０は、ハードディスクのような外部メモリ２０１にあるプロセス（１５０）の実行に使用する記憶領域を指す。また、このプロセス使用領域２１０のパッチ適用領域２１１は、パッチデータ１４１により得られる修正データの記憶領域を指す。
【００１４】
プロセス使用領域２１０に対しパッチデータ１４１が適用されると、関数の修正データ、すなわち正しい関数プログラムがパッチ適用領域２１１に確保される。また、プロセス（１５０）が対象の関数をコールしたときの呼び出し先がパッチ適用領域２１１となるよう、プロセス（１５０）が修正される。そして、パッチ適用領域２１１の関数にて正常に機能することが確認されると、その関数が外部メモリ２０１のプロセス（１５０）に上書きされる。これにより、パッチ処理が正常に終了する。
【００１５】
このようにプロセス（１５０）に対するパッチデータ１４１の適用処理をメインメモリ２０２上にて行うことにより、運用系サーバ１１０及び単体系サーバ１３０では、サービスを中断することなくパッチ処理を行うことができる。
【００１６】
図３に示すフローチャートを参照して、サーバシステム１００の動作について説明する。保守サーバ１４０は、プロセス（１５０）のパッチデータ１４１を二重化ユニット１０１及び一重化ユニット１０２の各サーバへ送信する（ステップＳ１_１）。各サーバ（１１０／１２０／１３０）は、保守サーバ１４０からのパッチデータ１４１を受信する（ステップＳ２_１／Ｓ３_１／Ｓ４_１）。
【００１７】
一重化ユニット１０２の単体系サーバ１３０は、パッチ処理を開始し、受信したパッチデータ１４１を自装置のプロセス１５０ａに適用する（ステップＳ４_２）。プロセス（１５０）に対するパッチ処理については、図２により説明した通りである。
【００１８】
その結果、パッチデータ１４１の適用が成功した場合（ステップＳ４_３：Yes）、外部メモリへ上書き処理を行い（ステップＳ４_４）、パッチ処理が正常に終了した旨を保守サーバ１４０へ通知する（ステップＳ４_５）。また、パッチデータ１４１の適用に失敗した場合は（ステップＳＳ４_３：No）、パッチ処理が適正に実行することができない旨を保守サーバ１４０へ通知して終了する（ステップＳ４_５）。
【００１９】
一方、二重化ユニット１０１では、まず、待機系サーバ１２０が保守サーバ１４０からのパッチデータ１４１を自装置のプロセス１５０ｂに適用する（ステップＳ３_２）。そして、適用が失敗した場合は（ステップＳ３_３：No）、その旨を運用系サーバ１１０へ通知し（ステップＳ３_４）、パッチ処理が適正に実行することができない旨を保守サーバ１４０へ通知する（ステップＳ３_７）。
【００２０】
また、パッチデータ１４１の適用が成功したとき（ステップＳ３_３：Yes）、待機系サーバ１２０は、その旨を運用系サーバ１１０へ通知する（ステップＳ３_５）。そして、外部メモリへの上書き処理（ステップＳ３_６）の後、パッチ処理が正常に終了した旨を保守サーバ１４０へ通知する（ステップＳ３_７）。
【００２１】
運用系サーバ１１０は、パッチデータ１４１の受信後、その適用の成否に関する待機系サーバ１２０からの通知を待つ。その結果、受けた通知が適用の失敗を表す場合（ステップＳ２_２：“失敗”）、保守サーバ１４０からのパッチデータ１４１を無効化し処理を終了する。
【００２２】
また、待機系サーバ１２０から適用に成功した旨を通知されたとき（ステップＳ２_２：“成功”）、運用系サーバ１１０は、自装置のプロセス１５０ａにパッチデータ１４１を適用し（ステップＳ２_３）、外部メモリへの上書き処理を行い（ステップＳ２_４）パッチ処理を終了する。
【００２３】
保守サーバ１４０は、配信したパッチデータ１４１によるパッチ処理の結果について、単体系サーバ１３０及び待機系サーバ１２０から通知を受信すると（ステップＳ１_２）、その通知内容を保守管理者に報知すべく所定の形式にて画面表示する（ステップＳ１_３）。これにより、管理者が各ユニットでのパッチ処理の状況を把握することができる。
【００２４】
以上説明した実施形態によれば、プロセス（１５０）のパッチデータ１４１を保守サーバ１４０が各サーバ（１１０／１２０／１３０）へ配信するよう構成したことにより、サーバの運用形態が混在するシステムにおいてパッチ処理を円滑に行うことができる。
【００２５】
また、二重化ユニット１０１では、待機系サーバ１２０でのパッチデータ１４１の適用結果を利用して、運用系サーバ１１０のパッチ処理を行うか否かを決定することから、サービス提供中の運用系サーバ１１０の動作に影響を与え難くすることができる。すなわち、仮に、パッチデータ１４１に問題があっても、それが待機系サーバ１２０にて検出されるので、サービスの中断を回避できる。
【００２６】
次に、図４に示すフローチャートを参照して、本発明の他の実施形態について説明する。保守サーバ１４０は、パッチデータ１４１を待機系サーバ１２０のみに送信する（ステップＳ１１_１）。これを受信した待機系サーバ１２０は（ステップＳ１３_１）、前述の実施形態と同様に、自装置のプロセス１５０ｂにパッチデータ１４１を適用する（ステップＳ１３_２）。
【００２７】
その結果、パッチデータ１４１の適用に失敗した場合（ステップＳ１３_３：No）、待機系サーバ１２０は、その旨を保守サーバ１４０へ通知する（ステップＳ１３_４）。また、パッチデータ１４１の適用に成功した場合は（ステップＳ１３_３：Yes）、その旨を保守サーバ１４０へ通知し（ステップＳ１３_５）、外部メモリの上書き処理を行い（ステップＳ１３_６）パッチ処理を終了する。
【００２８】
保守サーバ１４０は、パッチデータ１４１の適用結果に関する待機系サーバ１２０からの通知を受信する（ステップＳ１１_２）。そして、適用に成功した旨の通知を受けたとき（ステップＳ１１_３：“成功”）、保守サーバ１４０は、二重化ユニット１０１の運用系サーバ１１０と、一重化ユニット１０２の単体系サーバ１３０とにパッチデータ１４１を送信する（ステップＳ１１_４）。
【００２９】
運用系サーバ１１０及び単体系サーバ１３０は、保守サーバ１４０からのパッチデータ１４１を受信すると（ステップＳ１２_１、Ｓ１４_１）、それを自装置のプロセス（１５０ａ、１５０ｃ）に適用し（ステップＳ１２_２、Ｓ１４_２）、外部メモリへの上書き処理を行う（ステップＳ１２_３、Ｓ１４_３）。これにより、待機系サーバ１２０以外のサーバでもパッチ処理が完了する。
【００３０】
一方、待機系サーバ１２０から保守サーバ１４０への通知内容が「失敗」である場合（ステップＳ１１_３：“失敗”）、保守サーバ１４０は、今回のパッチデータ１４１がプロセス（１５０）に不適である旨のエラー表示を行う（ステップＳ１１_５）。この場合、パッチデータ１４１は他のサーバ（１１０、１３０）へは送信されない。
【００３１】
このように本実施形態では、待機系サーバ１２０での適用結果を利用して、他のサーバ（１１０、１３０）、すなわちサービス提供中のサーバ群に対するパッチデータ１４１の送信可否を判断する。そして、仮に、パッチデータ１４１がプロセス（１５０）に不適なものである場合は、サービス提供中のサーバ群へは送信しないことから、サービスに影響を与え難くすることができると共に、システム内でのデータ授受が効率化される。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施形態のシステム構成を示すブロック図である。
【図２】実施形態におけるパッチ処理を説明するための説明図である。
【図３】実施形態の動作手順を示すフローチャートである。
【図４】本発明の他の実施形態の動作手順を示すフローチャートである。
【符号の説明】
【００３３】
１００  サーバシステム
１０１  二重化ユニット
１０２  一重化ユニット
１１０  運用系サーバ
１２０  待機系サーバ
１３０  単体系サーバ
１４０  保守サーバ
１４１  パッチデータ
１５０ａ、１５０ｂ、１５０ｃ  プロセス
２０１  外部メモリ
２０２  メインメモリ
２１０  プロセス使用領域
２１１  パッチ適用領域
【図１】
2007293519.tif 000003
【図２】
2007293519.tif 000004
【図３】
2007293519.tif 000005
【図４】
2007293519.tif 000006