(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-19
(45)【発行日】2024-08-27
(54)【発明の名称】情報処理装置、情報処理システム、及びプログラム
(51)【国際特許分類】
G06F 8/656 20180101AFI20240820BHJP
G06F 11/20 20060101ALI20240820BHJP
G06F 9/50 20060101ALI20240820BHJP
【FI】
G06F8/656
G06F11/20 635
G06F9/50 150Z
(21)【出願番号】P 2020048309
(22)【出願日】2020-03-18
【審査請求日】2023-02-24
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110000752
【氏名又は名称】弁理士法人朝日特許事務所
(72)【発明者】
【氏名】金子 和弘
【審査官】多賀 実
(56)【参考文献】
【文献】特開2017-004502(JP,A)
【文献】特開2012-230638(JP,A)
【文献】特開2019-164531(JP,A)
【文献】特開2008-287419(JP,A)
【文献】特開2011-170528(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65-8/658
G06F 9/50
G06F 11/16-11/20
(57)【特許請求の範囲】
【請求項1】
第1プログラムを実行するプロセッサを有し、前記プロセッサは、
前記第1プログラムから第2プログラムへの更新を実行するための更新情報を取得し、
前記更新情報を用いて前記更新を実行し、
自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが前記更新を完了していない場合に、前記第1プログラムの機能の要求を受付け、
自装置、及び前記他の情報処理装置のいずれもが、前記更新を完了した場合に、利用者に前記第2プログラムの機能を提供し、
前記他の情報処理装置のいずれもが前記更新を完了した後に、自装置が前記更新を完了した場合に、該他の情報処理装置のそれぞれに、自装置が最後に前記更新を完了した旨を示す第1通知を送信し、
前記第1通知を送信した場合に、前記第2プログラムの機能を提供し、
前記他の情報処理装置のいずれかから前記第1通知を受信した場合に、前記第2プログラムの機能を提供する
情報処理装置。
【請求項2】
前記プロセッサは、
自装置が前記更新を完了したときに、前記他の情報処理装置の中に、前記更新を完了していない未更新装置が存在する場合に、前記未更新装置の少なくともいずれか1つに向けて、自装置が前記更新を完了した旨を示す第2通知を送信し、
前記他の情報処理装置のいずれかから前記第2通知を受信した場合に、受信した該第2通知の内容に基づいて、前記他の情報処理装置の中に、前記未更新装置が存在するか否かを判断し、
前記未更新装置が存在すると判断した場合に、受信した前記第2通知の内容とともに、自装置が前記更新を完了した旨を示す第2通知を送信し、
前記未更新装置が存在しないと判断した場合に、前記第1通知を送信する
請求項1に記載の情報処理装置。
【請求項3】
前記プロセッサは、
前記第2通知に自装置の識別情報を含めて送信し、
前記他の情報処理装置のいずれかから前記第2通知を受信した場合に、受信した該第2通知に含まれる識別情報の数に基づいて、前記未更新装置が存在するか否かを判断する
請求項2に記載の情報処理装置。
【請求項4】
前記プロセッサは、
前記他の情報処理装置のいずれからも前記第2通知を受信せず、かつ、自装置が前記更新を完了した場合に、前記更新を完了した情報処理装置の数である1を示す前記第2通知を送信し、
前記他の情報処理装置のいずれかから前記第2通知を受信し、かつ、前記未更新装置が存在すると判断した場合に、受信した該第2通知が示す前記数に1を加算した数を示す前記第2通知を送信する
請求項2に記載の情報処理装置。
【請求項5】
前記プロセッサは、
前記更新情報に含まれる予め決められた経路を示す経路情報に基づいて、自装置が最後
に前記更新を完了したか否かを判断する
請求項1に記載の情報処理装置。
【請求項6】
前記プロセッサは、
自装置が前記更新を完了した後に、利用者から前記第1プログラムの機能の要求を受付けた場合に、前記更新を完了していない前記他の情報処理装置に該要求を転送し、
前記他の情報処理装置のいずれかから前記要求を転送された場合に、該要求に示す前記機能を提供する
請求項1から5のいずれか1項に記載の情報処理装置。
【請求項7】
第1プログラムを実行するプロセッサを有し、前記プロセッサは、
前記第1プログラムから第2プログラムへの更新を実行するための更新情報を取得し、
前記更新情報を用いて前記更新を実行し、
自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが前記更新を完了している場合に、前記第2プログラムの機能の要求を受付ける
情報処理装置。
【請求項8】
前記プロセッサは、
前記他の情報処理装置のいずれもが前記更新を完了する前に、自装置が前記更新を完了した場合に、該他の情報処理装置のそれぞれに、自装置が最初に前記更新を完了した旨を示す第3通知を送信し、
前記第3通知を送信した場合に、前記第2プログラムの機能を提供し、
前記他の情報処理装置のいずれかから前記第3通知を受信した場合に、利用者から前記第2プログラムの機能の要求を受付ける
請求項7に記載の情報処理装置。
【請求項9】
前記プロセッサは、
自装置が前記更新を完了する前に、利用者から前記第2プログラムの機能の要求を受付けた場合に、前記更新を完了している前記他の情報処理装置に該要求を転送し、
前記他の情報処理装置のいずれかから前記要求を転送された場合に、該要求に示す前記機能を提供する
請求項7又は8に記載の情報処理装置。
【請求項10】
前記プロセッサは、
自装置が前記更新を完了する前に、利用者から前記第2プログラムの機能の要求を受付けた場合に、前記更新を完了してから、該要求に示す前記機能を提供する
請求項7又は8に記載の情報処理装置。
【請求項11】
第1プログラムを実行するプロセッサを有し、前記プロセッサは、
前記第1プログラムから第2プログラムへの更新を実行するための更新情報を取得し、
前記更新情報を用いて前記更新を実行し、
自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが前記更新を完了していない場合に、前記第1プログラム、及び前記第2プログラムの、重複する機能の要求を受付け、
自装置、及び前記他の情報処理装置のいずれもが、前記更新を完了した場合に、利用者に前記第2プログラムの機能を提供する
情報処理装置。
【請求項12】
端末と、
クラスタを構成する複数の情報処理装置を有し、
前記複数の情報処理装置は、第1プログラムを実行するプロセッサをそれぞれ有し、
前記各プロセッサは、
前記第1プログラムから第2プログラムへの更新を実行するための更新情報を取得し、
前記更新情報を用いて前記更新を実行し、
前記複数の情報処理装置のうち、少なくともいずれかが前記更新を完了している場合に、前記端末から前記第2プログラムの機能の要求を受付ける
情報処理システム。
【請求項13】
端末と、
クラスタを構成する複数の情報処理装置を有し、
前記複数の情報処理装置は、第1プログラムを実行するプロセッサをそれぞれ有し、
前記各プロセッサは、
前記第1プログラムから第2プログラムへの更新を実行するための更新情報を取得し、
前記更新情報を用いて前記更新を実行し、
前記複数の情報処理装置のうち、少なくともいずれかが前記更新を完了していない場合に、前記端末から前記第1プログラム、及び前記第2プログラムの、重複する機能の要求を受付け、
前記複数の情報処理装置のいずれもが、前記更新を完了した場合に、前記端末の利用者に前記第2プログラムの機能を提供する
情報処理システム。
【請求項14】
前記複数の情報処理装置を管理する管理装置を有し、
前記各プロセッサは、
前記更新を完了した場合に、その旨を前記管理装置に通知し、
前記管理装置から、前記複数の情報処理装置のそれぞれが前記更新を完了したか否かを示す情報を取得する
請求項12
又は13に記載の情報処理システム。
【請求項15】
第1プログラムを実行するプロセッサを有するコンピュータに、
前記第1プログラムから第2プログラムへの更新を実行するための更新情報を取得するステップと、
前記更新情報を用いて前記更新を実行するステップと、
自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが前記更新を完了していない場合に、前記第1プログラムの機能の要求を受付けるステップと、
自装置、及び前記他の情報処理装置のいずれもが、前記更新を完了した場合に、利用者に前記第2プログラムの機能を提供するステップと、
前記他の情報処理装置のいずれもが前記更新を完了した後に、自装置が前記更新を完了した場合に、該他の情報処理装置のそれぞれに、自装置が最後に前記更新を完了した旨を示す第1通知を送信するステップと、
前記第1通知を送信した場合に、前記第2プログラムの機能を提供するステップと、
前記他の情報処理装置のいずれかから前記第1通知を受信した場合に、前記第2プログラムの機能を提供するステップと
を実行させるプログラム。
【請求項16】
第1プログラムを実行するプロセッサを有するコンピュータに、
前記第1プログラムから第2プログラムへの更新を実行するための更新情報を取得するステップと、
前記更新情報を用いて前記更新を実行するステップと、
自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが前記更新を完了している場合に、前記第2プログラムの機能の要求を受付けるステップと、
を実行させるプログラム。
【請求項17】
第1プログラムを実行するプロセッサを有するコンピュータに、
前記第1プログラムから第2プログラムへの更新を実行するための更新情報を取得するステップと、
前記更新情報を用いて前記更新を実行するステップと、
自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが前記更新を完了していない場合に、前記第1プログラム、及び前記第2プログラムの、重複する機能の要求を受付けるステップと、
自装置、及び前記他の情報処理装置のいずれもが、前記更新を完了した場合に、利用者に前記第2プログラムの機能を提供するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システム、及びプログラムに関する。
【背景技術】
【0002】
情報処理システムの可用性を高めるため、複数台のサーバ装置をクラスタリングした、いわゆるクラスタシステム(以下、単に「クラスタ」ともいう)が利用されている。
【0003】
例えば、特許文献1は、クラスタシステムを構成する複数の管理対象ノードに実装されているプログラムのアップデートの時期をコンピュータに管理させるアップデート管理プログラムであって、プログラムのアップデート指示に応答して、複数の管理対象ノードが複数のグループに分かれて登録されており、各グループに対してアップデート順が定義されたアップデート管理テーブルを参照し、最もアップデート順が早いグループを最初に選択し、その後、直前に選択したグループに属するすべての管理対象ノードのアップデート処理が完了するごとに、アップデート順に従って各グループを順番に選択し、アップデート管理テーブルを参照し、選択したグループに属する管理対象ノードに対して、プログラムのアップデート要求を送信し、アップデート要求を送信した各管理対象ノードからアップデート完了通知を受付け、アップデート完了通知を送信した管理対象ノードのアップデート処理が完了したことを通知するアップデート管理プログラムを開示している。
【0004】
また、例えば、特許文献2は、複数のホストを含むクラスタを有する監視対象システムと、監視対象システムの状態を監視する監視サーバ装置と、を有する情報システムであって、監視サーバ装置は、監視対象システムが正常に稼働しているか否かを確認し、確認した結果を示す第1状態情報を送信し、ホストは、監視サーバ装置から送信された第1状態情報を受信し、同一のクラスタ内の他のホストから、他のホストの動作状態を示す第2状態情報を受信し、アップデート動作の開始が指定された場合、外部からアップデート情報を取得し、アップデート情報に基づいてアップデート動作を実行し、アップデート動作が完了した後、受信した第1状態情報が正常である場合、受信した第2状態情報が、アップデート動作を実行することが可能な状態を示す他のホストのいずれかに対して、アップデート開始指令を通知する情報システムを開示している。
【0005】
また、例えば、特許文献3は、N-Active構成のサーバのソフトウェアのアップデートを行うアップデート管理装置と、サーバに対する処理要求をいずれかのサーバへ振り分けるアップデート振分装置とを備えるクラスタシステムであって、アップデート管理装置は、ソフトウェアのアップデートの指示がなされた場合に、ソフトウェアのアップデートの対象となるサーバが提供しているサービスの終了に応じて、サーバが用いているソフトウェアをアップデートし、アップデート振分装置は、ソフトウェアのアップデート中のサーバに対する処理要求を、処理要求に基づいて、ソフトウェアのアップデートがなされた新サーバ、又は、ソフトウェアのアップデートがなされていない旧サーバのいずれで処理すべきかを判定し、いずれかのサーバに振り分けるクラスタシステムを開示している。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2009-230171号公報
【文献】特開2017-4502号公報
【文献】特開2018-156555号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、クラスタにおいて各サーバ装置の提供する機能にばらつきがあると、利用者に混乱を生じさせることがある。
【0008】
本発明は、複数の情報処理装置により構成されるクラスタのプログラムの更新において、クラスタを構成する各情報処理装置のプログラムの更新の全てが完了する前に、クラスタを利用する者から更新後の機能が要求され、要求されたその機能が提供できない事態による混乱が生じることを抑制すること、を目的とする。
【課題を解決するための手段】
【0009】
本発明の請求項1に係る情報処理装置は、第1プログラムを実行するプロセッサを有し、前記プロセッサは、前記第1プログラムから第2プログラムへの更新を実行するための更新情報を取得し、前記更新情報を用いて前記更新を実行し、自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが前記更新を完了していない場合に、前記第1プログラムの機能の要求を受付け、自装置、及び前記他の情報処理装置のいずれもが、前記更新を完了した場合に、利用者に前記第2プログラムの機能を提供する情報処理装置である。
【0010】
本発明の請求項2に係る情報処理装置は、請求項1に記載の態様において、前記プロセッサは、前記他の情報処理装置のいずれもが前記更新を完了した後に、自装置が前記更新を完了した場合に、該他の情報処理装置のそれぞれに、自装置が最後に前記更新を完了した旨を示す第1通知を送信し、前記第1通知を送信した場合に、前記第2プログラムの機能を提供し、前記他の情報処理装置のいずれかから前記第1通知を受信した場合に、前記第2プログラムの機能を提供する情報処理装置である。
【0011】
本発明の請求項3に係る情報処理装置は、請求項2に記載の態様において、前記プロセッサは、自装置が前記更新を完了したときに、前記他の情報処理装置の中に、前記更新を完了していない未更新装置が存在する場合に、前記未更新装置の少なくともいずれか1つに向けて、自装置が前記更新を完了した旨を示す第2通知を送信し、前記他の情報処理装置のいずれかから前記第2通知を受信した場合に、受信した該第2通知の内容に基づいて、前記他の情報処理装置の中に、前記未更新装置が存在するか否かを判断し、前記未更新装置が存在すると判断した場合に、受信した前記第2通知の内容とともに、自装置が前記更新を完了した旨を示す第2通知を送信し、前記未更新装置が存在しないと判断した場合に、前記第1通知を送信する情報処理装置である。
【0012】
本発明の請求項4に係る情報処理装置は、請求項3に記載の態様において、前記プロセッサは、前記第2通知に自装置の識別情報を含めて送信し、前記他の情報処理装置のいずれかから前記第2通知を受信した場合に、受信した該第2通知に含まれる識別情報の数に基づいて、前記未更新装置が存在するか否かを判断する情報処理装置である。
【0013】
本発明の請求項5に係る情報処理装置は、請求項3に記載の態様において、前記プロセッサは、前記他の情報処理装置のいずれからも前記第2通知を受信せず、かつ、自装置が前記更新を完了した場合に、前記更新を完了した情報処理装置の数である1を示す前記第2通知を送信し、前記他の情報処理装置のいずれかから前記第2通知を受信し、かつ、前記未更新装置が存在すると判断した場合に、受信した該第2通知が示す前記数に1を加算した数を示す前記第2通知を送信する情報処理装置である。
【0014】
本発明の請求項6に係る情報処理装置は、請求項2に記載の態様において、前記プロセッサは、前記更新情報に含まれる予め決められた経路を示す経路情報に基づいて、自装置が最後に前記更新を完了したか否かを判断する情報処理装置である。
【0015】
本発明の請求項7に係る情報処理装置は、請求項1から6のいずれか1項に記載の態様において、前記プロセッサは、自装置が前記更新を完了した後に、利用者から前記第1プログラムの機能の要求を受付けた場合に、前記更新を完了していない前記他の情報処理装置に該要求を転送し、前記他の情報処理装置のいずれかから前記要求を転送された場合に、該要求に示す前記機能を提供する情報処理装置である。
【0016】
本発明の請求項8に係る情報処理装置は、第1プログラムを実行するプロセッサを有し、前記プロセッサは、前記第1プログラムから第2プログラムへの更新を実行するための更新情報を取得し、前記更新情報を用いて前記更新を実行し、自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが前記更新を完了している場合に、前記第2プログラムの機能の要求を受付ける情報処理装置である。
【0017】
本発明の請求項9に係る情報処理装置は、請求項8に記載の態様において、前記プロセッサは、前記他の情報処理装置のいずれもが前記更新を完了する前に、自装置が前記更新を完了した場合に、該他の情報処理装置のそれぞれに、自装置が最初に前記更新を完了した旨を示す第3通知を送信し、前記第3通知を送信した場合に、前記第2プログラムの機能を提供し、前記他の情報処理装置のいずれかから前記第3通知を受信した場合に、利用者から前記第2プログラムの機能の要求を受付ける情報処理装置である。
【0018】
本発明の請求項10に係る情報処理装置は、請求項8又は9に記載の態様において、前記プロセッサは、自装置が前記更新を完了する前に、利用者から前記第2プログラムの機能の要求を受付けた場合に、前記更新を完了している前記他の情報処理装置に該要求を転送し、前記他の情報処理装置のいずれかから前記要求を転送された場合に、該要求に示す前記機能を提供する情報処理装置である。
【0019】
本発明の請求項11に係る情報処理装置は、請求項8又は9に記載の態様において、前記プロセッサは、自装置が前記更新を完了する前に、利用者から前記第2プログラムの機能の要求を受付けた場合に、前記更新を完了してから、該要求に示す前記機能を提供する情報処理装置である。
【0020】
本発明の請求項12に係る情報処理装置は、第1プログラムを実行するプロセッサを有し、前記プロセッサは、前記第1プログラムから第2プログラムへの更新を実行するための更新情報を取得し、前記更新情報を用いて前記更新を実行し、自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが前記更新を完了していない場合に、前記第1プログラム、及び前記第2プログラムの、重複する機能の要求を受付け、自装置、及び前記他の情報処理装置のいずれもが、前記更新を完了した場合に、利用者に前記第2プログラムの機能を提供する情報処理装置である。
【0021】
本発明の請求項13に係る情報処理システムは、端末と、クラスタを構成する複数の情報処理装置を有し、前記複数の情報処理装置は、第1プログラムを実行するプロセッサをそれぞれ有し、前記各プロセッサは、前記第1プログラムから第2プログラムへの更新を実行するための更新情報を取得し、前記更新情報を用いて前記更新を実行し、前記複数の情報処理装置のうち、少なくともいずれかが前記更新を完了していない場合に、前記端末から前記第1プログラムの機能の要求を受付け、前記複数の情報処理装置のいずれもが、前記更新を完了した場合に、前記端末の利用者に前記第2プログラムの機能を提供する情報処理システムである。
【0022】
本発明の請求項14に係る情報処理システムは、端末と、クラスタを構成する複数の情報処理装置を有し、前記複数の情報処理装置は、第1プログラムを実行するプロセッサをそれぞれ有し、前記各プロセッサは、前記第1プログラムから第2プログラムへの更新を実行するための更新情報を取得し、前記更新情報を用いて前記更新を実行し、前記複数の情報処理装置のうち、少なくともいずれかが前記更新を完了している場合に、前記端末から前記第2プログラムの機能の要求を受付ける情報処理システムである。
【0023】
本発明の請求項15に係る情報処理システムは、端末と、クラスタを構成する複数の情報処理装置を有し、前記複数の情報処理装置は、第1プログラムを実行するプロセッサをそれぞれ有し、前記各プロセッサは、前記第1プログラムから第2プログラムへの更新を実行するための更新情報を取得し、前記更新情報を用いて前記更新を実行し、前記複数の情報処理装置のうち、少なくともいずれかが前記更新を完了していない場合に、前記端末から前記第1プログラム、及び前記第2プログラムの、重複する機能の要求を受付け、前記複数の情報処理装置のいずれもが、前記更新を完了した場合に、前記端末の利用者に前記第2プログラムの機能を提供する情報処理システムである。
【0024】
本発明の請求項16に係る情報処理システムは、請求項13から15のいずれか1項に記載の態様において、前記複数の情報処理装置を管理する管理装置を有し、前記各プロセッサは、前記更新を完了した場合に、その旨を前記管理装置に通知し、前記管理装置から、前記複数の情報処理装置のそれぞれが前記更新を完了したか否かを示す情報を取得する情報処理システムである。
【0025】
本発明の請求項17に係るプログラムは、第1プログラムを実行するプロセッサを有するコンピュータに、前記第1プログラムから第2プログラムへの更新を実行するための更新情報を取得するステップと、前記更新情報を用いて前記更新を実行するステップと、自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが前記更新を完了していない場合に、前記第1プログラムの機能の要求を受付けるステップと、自装置、及び前記他の情報処理装置のいずれもが、前記更新を完了した場合に、利用者に前記第2プログラムの機能を提供するステップと、を実行させるプログラムである。
【0026】
本発明の請求項18に係るプログラムは、第1プログラムを実行するプロセッサを有するコンピュータに、前記第1プログラムから第2プログラムへの更新を実行するための更新情報を取得するステップと、前記更新情報を用いて前記更新を実行するステップと、自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが前記更新を完了している場合に、前記第2プログラムの機能の要求を受付けるステップと、を実行させるプログラムである。
【0027】
本発明の請求項19に係るプログラムは、第1プログラムを実行するプロセッサを有するコンピュータに、前記第1プログラムから第2プログラムへの更新を実行するための更新情報を取得するステップと、前記更新情報を用いて前記更新を実行するステップと、自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが前記更新を完了していない場合に、前記第1プログラム、及び前記第2プログラムの、重複する機能の要求を受付けるステップと、自装置、及び前記他の情報処理装置のいずれもが、前記更新を完了した場合に、利用者に前記第2プログラムの機能を提供するステップと、を実行させるプログラムである。
【発明の効果】
【0028】
請求項1、13、17に係る発明によれば、複数の情報処理装置により構成されるクラスタにおいて、各情報処理装置の第1プログラムをそれぞれ第2プログラムに更新する際に、これら更新が全て完了する前に、利用者から更新後の機能が要求されてその機能が提供できないという事態が生じない。
請求項2に係る発明によれば、クラスタを構成する複数の情報処理装置は、第2プログラムの機能の提供を共通のタイミングで開始する。
請求項3に係る発明によれば、クラスタを構成する複数の情報処理装置は、それぞれ他の情報処理装置のいずれかが更新を完了するまで第2プログラムの機能の提供を待機する。
請求項4に係る発明によれば、複数の情報処理装置のそれぞれが更新を実行する順序は、決められていなくてもよい。
請求項5に係る発明によれば、クラスタを構成する複数の情報処理装置は、1台ずつ順に更新を完了する。
請求項6に係る発明によれば、クラスタを構成する複数の情報処理装置は、予め決められた経路に従って更新を完了する。
請求項7に係る発明によれば、クラスタを構成する複数の情報処理装置は、更新を完了することによって第1プログラムの機能を提供できなくなった場合にも、他の情報処理装置のいずれかに提供させることができる。
請求項8、14、18に係る発明によれば、クラスタは、構成する複数の情報処理装置の少なくともいずれか1台において更新が完了した後から、第2プログラムの機能の要求を受付ける。
請求項9に係る発明によれば、クラスタを構成する複数の情報処理装置は、第2プログラムの機能の受付けを共通のタイミングで開始する。
請求項10に係る発明によれば、クラスタを構成する複数の情報処理装置は、更新の完了前であるために提供できない第2プログラムの機能を、他の情報処理装置のいずれかに提供させることができる。
請求項11に係る発明によれば、クラスタを構成する複数の情報処理装置は、更新の完了前に要求された第2プログラムの機能を、更新の完了後に提供する。
請求項12、15、19に係る発明によれば、クラスタを構成する複数の情報処理装置は、いずれか1台でも更新を実行している場合、更新前後で重複する機能を提供する。
請求項16に係る発明によれば、クラスタを構成する複数の情報処理装置の管理を、管理装置において集中して管理することができる。
【図面の簡単な説明】
【0029】
【
図1】情報処理システム9の全体構成の例を示す図。
【
図8】更新の完了に伴う動作の流れの例を示すフロー図。
【
図9】未更新装置の有無を判断する動作の流れの例を示すフロー図。
【
図12】提供する機能を切替える動作の流れの例を示すフロー図。
【
図13】要求を転送する動作の流れの例を示すフロー図。
【
図14】変形例における情報処理システム9aの全体構成の例を示す図。
【
図15】変形例における情報処理装置1aの構成の例を示す図。
【
図16】変形例における管理装置4の構成の例を示す図。
【
図17】クラスタ構成DB423の構成の例を示す図。
【
図18】変形例における更新の完了に伴う動作の流れの例を示すフロー図。
【
図19】管理装置4の動作の流れの例を示すフロー図。
【
図20】変形例における情報処理装置1bの構成の例を示す図。
【
図21】変形例におけるクラスタ構成DB123bの構成の例を示す図。
【
図22】変形例における更新の完了に伴う動作の流れの例を示すフロー図。
【
図23】受信した第2通知に対して返信する動作の流れの例を示すフロー図。
【
図24】返信に応じて未更新装置の候補を修正する動作の流れの例を示すフロー図。
【
図25】第2実施形態における更新の完了に伴う動作の流れの例を示すフロー図。
【
図26】要求を転送する動作の流れの例を示すフロー図。
【
図27】機能提供を保留する動作の流れの例を示すフロー図。
【
図28】変形例における管理装置4の動作の流れの例を示すフロー図。
【
図29】第3実施形態における更新の動作の流れの例を示すフロー図。
【
図30】第3実施形態における機能を切替える動作の流れの例を示すフロー図。
【発明を実施するための形態】
【0030】
<第1実施形態>
<情報処理システムの構成>
図1は、情報処理システム9の全体構成の例を示す図である。
図1に示す情報処理システム9は、それぞれがコンピュータプログラム(以下、単にプログラムという)を実行してサービスを提供する複数のサーバ装置をクラスタリングしたシステムである。情報処理システム9は、
図1に示す通り複数の情報処理装置1、端末2、及び通信回線3を有する。
【0031】
端末2は、情報処理システム9の利用者がそれぞれ利用する端末装置であり、例えば、デスクトップ型やノート型、タブレット型等のパーソナルコンピュータである。端末2は、利用者の操作を受付けて、情報処理装置1に対してその操作に応じた指示をする。
【0032】
情報処理装置1は、例えばコンピュータであり、クライアント装置である端末2の要求に応答するサーバ装置である。情報処理システム9が有する複数の情報処理装置1は、端末2からの要求を動的に分担することにより、クラスタCを構成する。したがって、この情報処理システム9は、端末と、クラスタを構成する複数の情報処理装置を有する情報処理システムの例である。
【0033】
なお、複数の情報処理装置1のいずれかは、他の情報処理装置1の処理負荷を監視して処理の割当を行う、いわゆるロードバランサとしての機能を兼ねてもよい。
【0034】
通信回線3は、情報処理装置1及び端末2を通信可能に接続する回線である。通信回線3は、例えばLAN(Local Area Network)のほか、WAN(Wide Area Network)であってもよいし、インターネットであってもよいし、これらの組合せであってもよい。また、通信回線3は、公衆交換通信網(PSTN:Public Switched Telephone Networks)やサービス統合デジタル網(ISDN:Integrated Services Digital Network)等を含むものでもよい。また、通信回線3は、図示しない外部装置と接続しており、情報処理装置1の少なくともいずれかはこの外部装置から情報を取得する。
【0035】
なお、情報処理システム9における情報処理装置1、端末2、及び通信回線3の、それぞれの数は
図1に示したものに限られない。情報処理装置1は複数であればよい。
【0036】
<情報処理装置の構成>
図2は、情報処理装置1の構成の例を示す図である。
図2に示す情報処理装置1は、プロセッサ11、メモリ12、及びインタフェース13を有する。これらの構成は、例えばバスで、互いに通信可能に接続されている。
【0037】
プロセッサ11は、メモリ12に記憶されているプログラムを読出して実行することにより情報処理装置1の各部を制御する。プロセッサ11は、例えばCPU(Central Processing Unit)である。
【0038】
インタフェース13は、有線又は無線により通信回線3を介して、情報処理装置1を端末2に通信可能に接続する通信回路である。
【0039】
メモリ12は、プロセッサ11に読み込まれるオペレーティングシステム、各種のプログラム、データ等を記憶する記憶手段である。メモリ12は、RAM(Random Access Memory)やROM(Read Only Memory)を有する。なお、メモリ12は、ソリッドステートドライブ、ハードディスクドライブ等を有してもよい。
【0040】
また、メモリ12は、更新情報DB121、及びプログラムDB122を記憶する。さらに、
図2に示すメモリ12は、クラスタ構成DB123を記憶する。
【0041】
図3は、更新情報DB121の例を示す図である。
図3に示す更新情報DB121は、情報処理装置1で実行されるプログラムを更新させるための情報(更新情報という)を記憶するデータベースである。
【0042】
図3に示す更新情報DB121において、更新IDとは、更新情報を識別する識別情報である。更新日時とは、更新情報を用いたプログラムの更新が行われた日時を示す情報である。状態とは、更新情報を用いたプログラムの更新の状態を示す状態であり、例えば、「完了」「待機」「中止」等である。更新対象IDとは、更新情報が更新の対象とするプログラムを識別する識別情報である。更新後IDとは、更新情報が対象のプログラムを更新した後のプログラムを識別する識別情報である。更新データとは、更新の内容を示すデータである。
【0043】
なお、
図3に示す更新情報DB121は、複数の更新情報を取り扱うものであるが、更新情報DB121は、1つの更新情報のみを取り扱う構成であってもよい。この場合、更新情報DB121に更新IDの欄はなくてもよい。
【0044】
図4は、プログラムDB122の例を示す図である。プログラムDB122は、プロセッサ11が実行するプログラムを記憶するデータベースである。例えば、プログラムDB122は、ファイルシステムのうち、実行可能なファイルを格納したフォルダ等である。
【0045】
図4に示すプログラムDB122において、プログラムIDは、プログラムを識別する識別情報である。プログラム名は、プログラムの名称を示す文字列等の情報である。プログラムデータは、プログラムの内容を示すデータである。
【0046】
図5は、クラスタ構成DB123の例を示す図である。クラスタ構成DB123は、情報処理装置1が属するクラスタCの構成を示す情報を記憶するデータベースである。
図5に示すクラスタ構成DB123は、更新IDリスト1231と、装置リスト1232と、を有する。
【0047】
更新IDリスト1231は、更新情報DB121に記憶された更新IDのリストである。装置リスト1232は、更新IDリスト1231に記載された更新IDごとにそれぞれ対応付けられる装置のリストであり、装置ID及び装置データの欄を有する。装置リスト1232の装置IDは、装置リスト1232に対応付けられた更新IDに示される更新情報によりプログラムの更新を実行させる情報処理装置1を識別する識別情報である。装置リスト1232の装置データは、装置IDにより識別される情報処理装置1のIP()アドレス等の通信に用いる識別情報や更新の際に用いられる環境情報等の各種情報を示すデータである。
【0048】
図5に示す更新IDリスト1231は、例えば、更新ID「D01」に対応する装置リスト1232に、「Q21」から「Q29」までの9つの装置IDを記憶する。これは、クラスタCにおいて、更新ID「D01」で識別される更新情報を用いて更新される第1プログラムが、これら9つの装置IDでそれぞれ識別される情報処理装置1で実行されていることを意味する。
【0049】
<端末の構成>
図6は、端末2の構成の例を示す図である。
図6に示す端末2は、プロセッサ21、メモリ22、インタフェース23、操作部24、及び表示部25を有する。これらの構成は、例えばバスで、互いに通信可能に接続されている。
【0050】
プロセッサ21は、メモリ22に記憶されているプログラムを読出して実行することにより端末2の各部を制御する。プロセッサ21は、例えばCPUである。
【0051】
インタフェース23は、有線又は無線により通信回線3を介して、端末2を情報処理装置1に通信可能に接続する通信回路である。
【0052】
操作部24は、各種の指示をするための操作ボタン、キーボード、タッチパネル、マウス等の操作子を備えており、操作を受付けてその操作内容に応じた信号をプロセッサ21に送る。
【0053】
表示部25は、液晶ディスプレイ等の表示画面を有しており、プロセッサ21の制御の下、画像を表示する。表示画面の上には、操作部24の透明のタッチパネルが重ねて配置されてもよい。
【0054】
メモリ22は、プロセッサ21に読み込まれるオペレーティングシステム、各種のプログラム、データ等を記憶する記憶手段である。メモリ22は、RAMやROMを有する。なお、メモリ22は、ソリッドステートドライブ、ハードディスクドライブ等を有してもよい。
【0055】
<情報処理装置の機能的構成>
図7は、情報処理装置1の機能的構成の例を示す図である。情報処理装置1のプロセッサ11は、メモリ12に記憶されたプログラムを実行することにより、取得部111、実行部112、受付部113、判断部114、送信部115、提供部116、受信部117として機能する。また
図7に示すプロセッサ11は、転送部118としても機能する。
【0056】
取得部111は、インタフェース13及び通信回線3を介して図示しない外部装置から更新情報を取得する。この更新情報は、プロセッサ11が実行する旧版のプログラム(以下、第1プログラムという)から新版のプログラム(以下、第2プログラムという)への更新を実行するための情報である。取得部111は、取得した更新情報をメモリ12の更新情報DB121に記憶する。
【0057】
つまり、この取得部111として機能するプロセッサ11は、第1プログラムから第2プログラムへの更新を実行するための更新情報を取得するプロセッサの例である。また、更新前に第1プログラムを実行するこのプロセッサ11は、第1プログラムを実行するプロセッサの例である。
【0058】
実行部112は、メモリ12の更新情報DB121から読出した更新情報、及びプログラムDB122から読出した第1プログラムを用いて、第1プログラムから第2プログラムへの更新を実行する。つまり、この実行部112として機能するプロセッサ11は、更新情報を用いて更新を実行するプロセッサの例である。実行部112は、更新を完了して得た第2プログラムをプログラムDB122に記憶する。また、実行部112は、更新の状態を更新情報DB121に記憶する。
【0059】
受付部113は、利用者による機能の要求を、端末2からインタフェース13及び通信回線3を介して受付ける。第1実施形態において受付部113は、自装置において第1プログラムの更新中であるか更新完了後であるかに関わらず、クラスタCの全体で更新が完了するまで第1プログラムの機能の要求を受付ける。すなわち、この受付部113として機能するプロセッサ11は、自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが第1プログラムの更新を完了していない場合に、第1プログラムの機能の要求を受付けるプロセッサの例である。
【0060】
また、クラスタCを構成する複数の情報処理装置1のプロセッサ11は、いずれもこの受付部113として機能する。つまり、これらプロセッサ11は、それぞれ、クラスタを構成する複数の情報処理装置のうち、少なくともいずれかが更新を完了していない場合に、端末から第1プログラムの機能の要求を受付けるプロセッサの例である。
【0061】
判断部114は、実行部112を介して更新情報DB121、及びプログラムDB122の情報を取得し、受信部117が受信した通知を取得し、クラスタ構成DB123を読出して、各種の判断を行う。判断部114は、自装置で第1プログラムの更新の状態を判断する。
【0062】
また、第1実施形態において判断部114は、受信部117が取得した通知と、クラスタ構成DB123の内容と、を用いて、クラスタCの全体で第1プログラムの更新が完了したか否かを判断する。クラスタCの全体で第1プログラムの更新が完了していない場合、この判断部114は、更新を完了していない情報処理装置1(以下、未更新装置ともいう)を特定する。なお、上述した実行部112は、
図7に破線で示す通り、判断部114の判断の結果に応じて、上述した更新の実行を開始してもよい。
【0063】
第1実施形態における送信部115は、クラスタCにおいて他の情報処理装置1のいずれもが第1プログラムの更新を完了した後に、自装置における更新が完了したと、判断部114が判断した場合に、クラスタCにおける他の情報処理装置1のそれぞれに、自装置が最後に更新を完了した旨を示す通知(以下、第1通知という)を送信する。すなわち、この送信部115及び上述した判断部114として機能するプロセッサ11は、他の情報処理装置のいずれもが更新を完了した後に、自装置が更新を完了した場合に、他の情報処理装置のそれぞれに、自装置が最後に更新を完了した旨を示す第1通知を送信するプロセッサの例である。
【0064】
また、第1実施形態における送信部115は、自装置における更新が完了したときに、クラスタCにおいて未更新装置が存在する、と判断部114が判断した場合に、判断部114が特定する未更新装置の少なくとも1つを選択して、その未更新装置に向けて、自装置が第1プログラムの更新を完了した旨を示す通知(以下、第2通知という)を送信する。すなわち、この送信部115及び上述した判断部114として機能するプロセッサ11は、自装置が更新を完了したときに、他の情報処理装置の中に、更新を完了していない未更新装置が存在する場合に、未更新装置の少なくともいずれか1つに向けて、自装置が更新を完了した旨を示す第2通知を送信するプロセッサの例である。
【0065】
提供部116は、クラスタCを構成する複数の情報処理装置1のそれぞれが、第1プログラムから第2プログラムへの更新を実行する際に、その進捗状況に応じて、第1プログラムの機能、第2プログラムの機能、及びそれらのプログラムで重複する機能を提供する。第1実施形態において提供部116は、クラスタCにおいて自装置及び他の情報処理装置1のいずれもが第1プログラムの更新を完了したと、判断部114が判断した場合に、利用者に第2プログラムの機能を提供する。すなわち、この提供部116及び上述した判断部114として機能するプロセッサ11は、自装置、及び他の情報処理装置のいずれもが、第1プログラムの更新を完了した場合に、利用者に第2プログラムの機能を提供するプロセッサの例である。
【0066】
また、クラスタCを構成する複数の情報処理装置1のプロセッサ11は、いずれもこの提供部116及び判断部114として機能する。つまり、これらプロセッサ11は、それぞれ、クラスタを構成する複数の情報処理装置のいずれもが、第1プログラムの更新を完了した場合に、端末の利用者に第2プログラムの機能を提供するプロセッサの例である。
【0067】
例えば、送信部115が上述した第1通知を送信するとき、判断部114は、クラスタCにおいて自装置及び他の情報処理装置1のいずれもが第1プログラムの更新を完了したと、と判断している。提供部116は、送信部115が第1通知を送信した場合に、第2プログラムの機能の提供を開始する。すなわち、この提供部116として機能するプロセッサ11は、送信部115が第1通知を送信した場合に、第2プログラムの機能を提供するプロセッサの例である。
【0068】
受信部117は、他の情報処理装置1が送信する、上述した第1通知、及び第2通知を受信する。また、
図7に示す受信部117は、他の情報処理装置1から転送された、利用者によるプログラムの機能の要求を受信する。判断部114は、受信部117が受信した通知の種別を監視して、更新の状態を判断する。
【0069】
例えば、受信部117が他の情報処理装置1のいずれかから上述した第1通知を受信した場合、その第1通知を送信した情報処理装置1は、クラスタCにおいて最後に第1プログラムの更新を完了している。このとき判断部114は、クラスタCの全体において更新が完了したことを提供部116に伝え、提供部116は、第2プログラムの機能の提供を開始する。すなわち、この提供部116として機能するプロセッサ11は、他の情報処理装置のいずれかから第1通知を受信した場合に、第2プログラムの機能を提供するプロセッサの例である。
【0070】
また、例えば、受信部117が他の情報処理装置1のいずれかから上述した第2通知を受信した場合、その第2通知を送信した情報処理装置1は、第1プログラムの更新を完了しているが、クラスタCにおいて最後にその更新を完了する情報処理装置1ではない。判断部114は、受信部117が他の情報処理装置1のいずれかから第2通知を受信した場合に、その内容に基づいて、他の情報処理装置1の中に、未更新装置が存在するか否かを判断する。
【0071】
つまり、この判断部114として機能するプロセッサ11は、他の情報処理装置のいずれかから第2通知を受信した場合に、受信したこの第2通知の内容に基づいて、他の情報処理装置の中に、未更新装置が存在するか否かを判断するプロセッサの例である。
【0072】
他の情報処理装置1の中に未更新装置が存在すると判断部114が判断した場合、その旨が送信部115に伝えられる。このとき送信部115は、受信部117が受信した第2通知の内容に、自装置が更新を完了した旨を追加した新たな第2通知を生成して、これを未更新装置のいずれかに送信する。
【0073】
つまり、この送信部115として機能するプロセッサ11は、未更新装置が存在すると判断部114が判断した場合に、受信した第2通知の内容とともに、自装置が更新を完了した旨を示す新たな第2通知を送信するプロセッサの例である。
【0074】
一方、他の情報処理装置1の中に未更新装置が存在しないと判断部114が判断した場合、その旨も送信部115に伝えられる。この後に、判断部114が自装置において第1プログラムの更新が完了したと判断した場合、送信部115は、クラスタCにおける他の情報処理装置1のそれぞれに、上述した第1通知を送信する。
【0075】
つまり、この送信部115として機能するプロセッサ11は、未更新装置が存在しないと判断部114が判断した場合に、第1通知を送信するプロセッサの例である。
【0076】
転送部118は、自装置が第1プログラムの更新を完了した後に、受付部113が利用者から第1プログラムの機能の要求を受付けた場合に、未更新装置にこの要求を転送する。つまり、この転送部118として機能するプロセッサ11は、自装置が更新を完了した後に、利用者から第1プログラムの機能の要求を受付けた場合に、更新を完了していない他の情報処理装置にこの要求を転送するプロセッサの例である。
【0077】
他の情報処理装置1のプロセッサ11により実現される転送部118から、第1プログラムの機能の要求を転送された場合、受信部117がこの要求を受信する。受信部117がこの要求を受信すると、提供部116は、この要求をした利用者の端末2に向けて、要求された第1プログラムの機能を提供する。つまり、この提供部116として機能するプロセッサ11は、他の情報処理装置のいずれかから要求を転送された場合に、この要求に示す機能を提供するプロセッサの例である。
【0078】
なお、第1プログラムから第2プログラムへの更新が完了した後も、メモリ12がプログラムDB122に第1プログラムを実行可能な状態で記憶し続ける場合、プロセッサ11は、更新完了後も、第1プログラムの機能を提供してもよい。この場合、プロセッサ11は、上述した転送部118として機能しなくてもよい。
【0079】
<情報処理装置の動作>
情報処理装置1のプロセッサ11は、「更新の完了に伴う動作」及び「提供する機能を切替える動作」を行う。また、プロセッサ11は、「要求を転送する動作」を行ってもよい。プロセッサ11は、これらの動作をそれぞれ並行して行う。また、「更新の完了に伴う動作」は、「未更新装置の有無を判断する動作」を含む。
【0080】
<更新の完了に伴う動作>
図8は、更新の完了に伴う動作の流れの例を示すフロー図である。情報処理装置1のプロセッサ11は、通信回線3を介して図示しない外部装置から更新情報を取得し(ステップS101)、この更新情報を用いて更新を実行する(ステップS102)。
【0081】
第1プログラムから第2プログラムへの更新が完了すると、プロセッサ11は、クラスタC内に未更新装置が存在するか否かを判断する(ステップS200)。
【0082】
<未更新装置の有無を判断する動作>
図9は、未更新装置の有無を判断する動作の流れの例を示すフロー図である。この
図9に示す動作は、
図8に示すフロー図におけるステップS200の詳細な動作である。
【0083】
情報処理装置1のプロセッサ11は、クラスタ構成DB123に記載された自装置以外の装置(すなわち、他の情報処理装置1)を、未更新装置の候補を示すリスト(以下、未更新装置リストという)に記入する(ステップS201)。未更新装置リストは、例えば、メモリ22のRAMに記憶される。
【0084】
図10は、未更新装置リストの例を示す図である。上述した通り、
図5に示すクラスタ構成DB123は、クラスタCにおいて更新ID「D01」で識別される更新情報により第1プログラムが更新される情報処理装置1の識別情報として、「Q21」から「Q29」までの9つの装置IDを記憶している。
【0085】
取得した更新情報の更新IDが「D01」である場合、情報処理装置1のプロセッサ11は、更新情報に対応する他の情報処理装置1の識別情報として、上述した「Q21」から「Q29」までの9つの装置IDを特定する。そして、自装置の識別情報が「Q22」である場合、プロセッサ11は、特定した装置IDの中から、「Q22」を除いた8つを、上述した未更新装置リストに記入する。これにより、
図10(a)に示す未更新装置リストが生成される。
【0086】
次に、プロセッサ11は、
図9に示す通り、第2通知を受信したか否かを判断する(ステップS202)。第2通知を受信した、と判断する場合(ステップS202;YES)、プロセッサ11は、受信した第2通知に記入された情報処理装置1の識別情報を未更新装置リストから削除する(ステップS203)。
【0087】
一方、第2通知を受信していない、と判断する場合(ステップS202;NO)、プロセッサ11は、ステップS203を実行せず、処理をステップS204へ進める。
【0088】
図11は、第2通知の例を示す図である。
図11(a)に示す第2通知は、「Q24」、「Q27」、及び「Q29」の3つの装置IDが記入された第2通知である。この第2通知は、これら3つの装置IDで識別される情報処理装置1で、第1プログラムから第2プログラムへの更新が完了していることを意味する。
【0089】
情報処理装置1のプロセッサ11は、
図11(a)に示す第2通知を受信したと判断すると、この第2通知に記入された3つの装置IDを、未更新装置リストから削除する。未更新装置リストが
図10(a)に示すものである場合、これに記入されていた8つの装置IDから、3つの装置IDが削除され、
図10(b)に示す新たな未更新装置リストが生成される。この未更新装置リストは、「Q21」、「Q23」、「Q25」、「Q26」、及び「Q28」の装置IDを、未更新装置の候補として記憶する。
【0090】
次に、プロセッサ11は、
図9に示す通り、未更新装置リストに1以上の未更新装置の候補を示す装置IDが記入されているか否かを判断する(ステップS204)。
【0091】
未更新装置リストに1以上の未更新装置の装置IDが記入されている、と判断する場合(ステップS204;YES)、プロセッサ11は、未更新装置が存在する、と判断し(ステップS205)、受信した第2通知に自装置の識別情報を追加して新たな第2通知を生成する(ステップS206)。すなわち、このプロセッサ11は、第2通知に自装置の識別情報を含めて送信するプロセッサの例である。
【0092】
一方、未更新装置リストに1以上の未更新装置の装置IDが記入されていない、と判断する場合(ステップS204;NO)、プロセッサ11は、未更新装置が存在しない、と判断する(ステップS207)。
【0093】
情報処理装置1のプロセッサ11は、例えば、
図10(b)に示す未更新装置リストを生成している場合、未更新装置リストに1以上の未更新装置の装置IDが記入されている、と判断する。そして、このプロセッサ11は、
図11(a)に示す、受信した第2通知に、自装置の装置IDである「Q22」を追加して、
図11(b)に示す新たな第2通知を生成する。以上、説明した内容が、ステップS200における未更新装置の有無を判断する動作の詳細である。
【0094】
次に、
図8に示す通り、クラスタC内に未更新装置が存在する、と判断する場合(ステップS200;YES)、プロセッサ11は、それらの未更新装置のうち、いずれかを選択し(ステップS103)、選択した未更新装置に対して第2通知を送信して(ステップS104)、処理を終了する。
【0095】
一方、クラスタC内に未更新装置が存在しない、と判断する場合(ステップS200;NO)、プロセッサ11は、クラスタC内の他の情報処理装置1のそれぞれに第1通知を送信し(ステップS105)、第2プログラムの機能の提供を開始して(ステップS106)、処理を終了する。
【0096】
<提供する機能を切替える動作>
図12は、提供する機能を切替える動作の流れの例を示すフロー図である。情報処理装置1のプロセッサ11は、第1通知を受信、又は送信したか否かを判断する(ステップS111)。
【0097】
第1通知を受信、又は送信した、と判断する場合(ステップS111;YES)、プロセッサ11は、第2プログラムの機能の提供を開始する(ステップS112)。これにより、プロセッサ11は、自装置における第1プログラムの機能の提供を、更新された第2プログラムの機能の提供に切替える。なお、第1通知は、クラスタCのいずれの情報処理装置1にも一斉に通知されているので、他の情報処理装置1においても、自装置と同期して提供される機能が切替えられる。
【0098】
一方、第1通知を受信、又は送信していない、と判断する場合(ステップS111;NO)、プロセッサ11は、第1プログラムの機能の提供を続ける(ステップS113)。
【0099】
<要求を転送する動作>
図13は、要求を転送する動作の流れの例を示すフロー図である。情報処理装置1のプロセッサ11は、情報処理システム9のいずれかの端末2及び通信回線3を介して、利用者から第1プログラムの機能の要求を受付けたか否かを判断する(ステップS121)。
【0100】
第1プログラムの機能の要求を受付けていない、と判断する場合(ステップS121;NO)、プロセッサ11は、ステップS121の判断の処理を続ける。
【0101】
一方、第1プログラムの機能の要求を受付けた、と判断する場合(ステップS121;YES)、プロセッサ11は、自装置において第1プログラムから第2プログラムへの更新が完了しているか否かを判断する(ステップS122)。
【0102】
上述した更新が完了している、と判断する場合(ステップS122;YES)、プロセッサ11は、受付けたこの要求をいずれかの未更新装置へ転送する(ステップS123)。
【0103】
一方、上述した更新が完了していない、と判断する場合(ステップS122;NO)、プロセッサ11は、受付けた要求に応じて第1プログラムの機能を提供する(ステップS124)。
【0104】
以上、説明した動作をすることにより、クラスタCを構成する複数の情報処理装置1は、そのうちのいずれかが第1プログラムから第2プログラムへの更新を完了するまで、第1プログラムの機能の提供を続け、いずれもが更新を完了すると、一斉に第2プログラムの機能の提供を開始する。そのため、クラスタCを利用する利用者は、クラスタCを構成するどの情報処理装置1に割当てられたとしても、共通のタイミングで提供される機能に差が生じない。そして、この第1実施形態において、プログラムの更新がクラスタCの全てで完了する前に、利用者から更新後の機能が要求されることがないため、その機能が提供できずに混乱が生じるということはない。
【0105】
すなわち、第1実施形態の情報処理システム9は、複数の情報処理装置1により構成されるクラスタCにおいて、各情報処理装置1の第1プログラムをそれぞれ第2プログラムに更新する際に、これら各情報処理装置1がそれぞれ利用者に提供する機能のばらつきを抑制する。
【0106】
<第1実施形態の変形例>
以上が第1実施形態の説明であるが、この第1実施形態の内容は以下のように変形し得る。また、以下の変形例は、組合されてもよい。
【0107】
<1-1>
上述した第1実施形態において、クラスタCは、情報処理装置1を管理する管理装置を有していないが、クラスタは管理装置を有してもよい。この場合、クラスタを構成する複数の情報処理装置1は、第1通知、及び第2通知の少なくとも一方を他の情報処理装置1に送信しなくてもよい。
【0108】
図14は、変形例における情報処理システム9aの全体構成の例を示す図である。この情報処理システム9aは、複数の情報処理装置1a、端末2、通信回線3、及び管理装置4を有する。管理装置4は、情報処理装置1aとともにクラスタCaを構成する。この管理装置4は、ともにクラスタCaを構成する情報処理装置1aを管理するコンピュータである。すなわち、この管理装置4を有する情報処理システム9aは、端末と、クラスタを構成する複数の情報処理装置を有し、かつ、これらの複数の情報処理装置を管理する管理装置を有する情報処理システムの例である。
【0109】
図15は、変形例における情報処理装置1aの構成の例を示す図である。
図15に示す通り、この情報処理装置1aは、メモリ12にクラスタ構成DB123を記憶しない点を除いて、
図2に示す情報処理装置1と共通の構成を有する。したがって、これら複数の情報処理装置1aは、第1プログラムを実行するプロセッサをそれぞれ有する複数の情報処理装置の例である。
【0110】
図16は、変形例における管理装置4の構成の例を示す図である。
図16に示す管理装置4は、プロセッサ41、メモリ42、及びインタフェース43を有する。これらは、メモリ42に記憶するデータベースが異なる点を除き、情報処理装置1aのプロセッサ11、メモリ12、及びインタフェース13と共通の構成である。
図16に示す管理装置4のメモリ42は、クラスタ構成DB423を記憶する。
【0111】
図17は、クラスタ構成DB423の構成の例を示す図である。
図17に示すクラスタ構成DB423は、情報処理装置1aが属するクラスタCaの構成を示す情報を記憶するデータベースである。
図17に示すクラスタ構成DB423は、更新IDリスト4231と、装置リスト4232と、を有する。更新IDリスト4231は、
図5に示すクラスタ構成DB123における更新IDリスト1231と共通の構成である。
【0112】
一方、クラスタ構成DB423における装置リスト4232は、
図5に示す装置リスト1232に加えて、それぞれの装置IDで識別される情報処理装置1aの更新の「状態」を示す欄が設けられている点が異なる。管理装置4のプロセッサ41は、各情報処理装置1aから更新が完了した旨の通知(以下、完了通知という)を受信した場合に、これに応じてこの「状態」の欄を書き換える。プロセッサ41は、例えば、いずれかの情報処理装置1aから完了通知を受信すると、その情報処理装置1aの識別情報に対応する「状態」の欄を、未更新を示す「未」から、更新の完了を示す「完」へ書き換える。
【0113】
<変形例における更新の完了に伴う動作>
図18は、変形例における更新の完了に伴う動作の流れの例を示すフロー図である。情報処理装置1aのプロセッサ11は、通信回線3を介して図示しない外部装置から更新情報を取得し(ステップS101)、この更新情報を用いて更新を実行する(ステップS102)。
【0114】
第1プログラムから第2プログラムへの更新が完了すると、プロセッサ11は、更新を実行する情報処理装置1aの順序を示す(図示しない)リストにおいて、自装置が予め先頭に指定されているか、又は、管理装置4から更新の確認を促す指示(以下、確認指示という)を受けているか、を判断する(ステップS131)。
【0115】
自装置が上述したリストにおいて先頭に指定されておらず、かつ、管理装置4から確認指示を受けていない、と判断する場合(ステップS131;NO)、プロセッサ11は、このステップS131の判断の処理を続ける。
【0116】
一方、自装置が上述したリストにおいて先頭に指定されている、又は、管理装置4から確認指示を受けている、と判断する場合(ステップS131;YES)、プロセッサ11は、自装置における更新が完了した旨を示す、上述した完了通知を送るとともに、管理装置4に未更新装置の有無を問合せる(ステップS132)。つまり、管理装置4に完了通知を送るこのプロセッサ11は、更新を完了した場合に、その旨を管理装置に通知するプロセッサの例である。
【0117】
<変形例における管理装置の動作>
図19は、管理装置4の動作の流れの例を示すフロー図である。管理装置4のプロセッサ41は、上述した完了通知及び問合せを受信したか否かを判断し(ステップS301)、これらを受信していない、と判断する期間にわたって(ステップS301;NO)、この判断の処理を続ける。
【0118】
一方、上述した完了通知及び問合せを受信した、判断する場合(ステップS301;YES)、プロセッサ41は、メモリ42からクラスタ構成DB423を読出し、上述した装置リスト4232において、問合せ元である情報処理装置1aの装置IDに対応する「状態」の欄を、更新の「完了」を示す内容に変更する(ステップS302)。
【0119】
次に、プロセッサ41は、更新が完了していない装置、すなわち、未更新装置がクラスタ構成DB423の装置リスト4232に記載されているか否かを判断する(ステップS303)。
【0120】
未更新装置がクラスタ構成DB423に記載されている、と判断する場合(ステップS303;YES)、プロセッサ41は、上述した問合せに対して、未更新装置が存在する、と回答し(ステップS304)、未更新装置のいずれかに確認指示を送る(ステップS305)。これにより、確認指示を送られた未更新装置は、更新の確認を促される。
【0121】
一方、未更新装置がクラスタ構成DB423に記載されていない、と判断する場合(ステップS303;NO)、プロセッサ41は、上述した問合せに対して、未更新装置が存在しない、と回答し(ステップS306)、クラスタCa内の情報処理装置1aのそれぞれに、提供する機能を切替える旨の指示(以下、切替指示という)を送る(ステップS307)。以上、説明した内容が、情報処理装置1aからの問合せに対して、管理装置4が回答する動作の詳細である。
【0122】
次に、
図18に示す通り、情報処理装置1aのプロセッサ11は、管理装置4からの回答に応じて、クラスタCa内に未更新装置が存在するか否かを判断する(ステップS133)。
【0123】
クラスタCa内に未更新装置が存在しない、と判断する場合(ステップS133;NO)、プロセッサ11は、処理をステップS106に進める。
【0124】
一方、クラスタCa内に未更新装置が存在する、と判断する場合(ステップS133;YES)、プロセッサ11は、管理装置4から切替指示が送られているか否かを判断する(ステップS134)。
【0125】
プロセッサ11は、管理装置4から切替指示が送られていない、と判断する場合(ステップS134;NO)、この判断の処理を続ける。
【0126】
一方、管理装置4から切替指示が送られている、と判断する場合(ステップS134;YES)、プロセッサ11は、第2プログラムの機能の提供を開始する(ステップS106)。
【0127】
以上により、情報処理装置1aのプロセッサ11は、問合せにより未更新装置が存在しない、と管理装置4が判断した場合、及び、自装置に対して管理装置4から切替指示が送られていた場合に、第2プログラムの機能の提供を開始するので、クラスタCaを構成する複数の情報処理装置1aがそれぞれ利用者に提供する機能のばらつきは、抑制される。
【0128】
なお、情報処理装置1aのプロセッサ11は、管理装置4に未更新装置が存在するか否かの問合せを送っていたが、クラスタCaを構成する複数の情報処理装置1aのそれぞれが更新を完了したか否かを示す情報を要求し、これを取得してもよい。この問合せをすると、プロセッサ11は、未更新装置が存在する、という判断結果に加えて、どの情報処理装置1aが未更新装置であるかを特定することができる。
【0129】
また、例えば、第1プログラムから第2プログラムへの更新が完了することによって、第1プログラムが上書きされて実行不可能な状態になる場合、自装置における更新の完了後に、利用者から第1プログラムの機能が要求されると、自装置では要求された機能を提供できなくなる。このとき、プロセッサ11は、上述した要求をすることで、未登録装置を特定してもよい。そして、プロセッサ11は、特定した未登録装置に、利用者から受付けた第1プログラムの機能の要求を転送すればよい。この場合、このプロセッサ11は、管理装置から、複数の情報処理装置のそれぞれが第1プログラムの更新を完了したか否かを示す情報を取得するプロセッサの例である。
【0130】
<1-2>
上述した第1実施形態において、クラスタCを構成する複数の情報処理装置1は、第1プログラムから第2プログラムへの更新を実行する順序が決められていないが、この順序が予め決められていてもよい。
【0131】
図20は、変形例における情報処理装置1bの構成の例を示す図である。この情報処理装置1bは、更新を実行する順序が予め決められている。
図20に示す情報処理装置1bは、クラスタ構成DB123に代えて、メモリ12にクラスタ構成DB123bを記憶する点が
図2に示す情報処理装置1と相違している。
【0132】
図21は、変形例におけるクラスタ構成DB123bの構成の例を示す図である。
図21に示すクラスタ構成DB123bは、更新IDリスト1231と、装置リスト1232bとを有する。
【0133】
クラスタ構成DB123bにおける装置リスト1232bは、
図5に示す装置リスト1232に加えて、それぞれの装置IDで識別される情報処理装置1bの更新の「経路情報」を示す欄が設けられている点が異なる。この「経路情報」は、情報処理装置1bの更新の順番を示す情報であり、例えば正の整数である。
【0134】
<変形例における更新の完了に伴う動作>
図22は、変形例における更新の完了に伴う動作の流れの例を示すフロー図である。情報処理装置1bのプロセッサ11は、通信回線3を介して図示しない外部装置から更新情報を取得し(ステップS101)、この更新情報を用いて更新を実行する(ステップS102)。
【0135】
第1プログラムから第2プログラムへの更新が完了すると、プロセッサ11は、クラスタ構成DB123bを参照して、経路情報において自装置が先頭であるか否かを判断する(ステップS141)。
【0136】
例えば、クラスタ構成DB123bにおける装置リスト1232bの「経路情報」に「1」が記載されていると、プロセッサ11は、自装置が経路情報において先頭である、と判断し(ステップS141;YES)、自装置の直後の情報処理装置1b(この場合、例えば「経路情報」が「2」の情報処理装置1b)に、第2通知を送信する(ステップS142)。
【0137】
一方、自装置が経路情報において先頭でない、と判断すると(ステップS141;NO)、プロセッサ11は、経路情報が自装置の直前である情報処理装置1bから第2通知を受信したか否かを判断し(ステップS143)、受信していない、と判断する期間にわたって(ステップS143;NO)、この判断の処理を続ける。
【0138】
一方、経路情報が自装置の直前である情報処理装置1bから第2通知を受信した、と判断する場合(ステップS143;YES)、プロセッサ11は、経路情報において自装置が末尾であるか否かを判断する(ステップS144)。
【0139】
自装置が経路情報において末尾であるとは、自装置の更新の完了が、クラスタCにおいて最後の更新の完了であることを意味する。つまり、このプロセッサ11は、更新情報に含まれる予め決められた経路を示す経路情報に基づいて、自装置が最後に更新を完了したか否かを判断するプロセッサの例である。
【0140】
経路情報において自装置が末尾でない、と判断する場合に(ステップS144;NO)、プロセッサ11は、ステップS142に処理を進め、自装置の直後の情報処理装置1b(この場合、例えば「経路情報」が自装置の「経路情報」よりも1だけ大きい情報処理装置1b)に、第2通知を送信する(ステップS142)。
【0141】
経路情報において自装置が末尾である、と判断すると(ステップS144;YES)、プロセッサ11は、クラスタC内の他の情報処理装置1bのそれぞれに第1通知を送信し(ステップS105)、第2プログラムの機能の提供を開始して(ステップS106)、処理を終了する。
【0142】
<1-3>
上述した第1実施形態において、第2通知は、プロセッサ11で特定された未更新装置のいずれかに送信されたが、これに限られない。例えば、クラスタCにおいて、複数の情報処理装置1が並行して更新を実行している場合、未更新装置として特定した通知先が既に更新を完了していることがある。そこで、情報処理装置1は、第2通知に返信があった場合に、未更新装置の候補を修正してもよい。
【0143】
<変形例における第2通知に対して返信する動作>
図23は、受信した第2通知に対して返信する動作の流れの例を示すフロー図である。情報処理装置1のプロセッサ11は、他の情報処理装置1から第2通知を受信したか否かを判断し(ステップS151)、第2通知を受信していない、と判断する期間にわたって(ステップS151;NO)、この判断の処理を続ける。
【0144】
一方、第2通知を受信した、と判断する場合(ステップS151;YES)、プロセッサ11は、自装置において更新が完了しているか否かを判断する(ステップS152)。自装置において更新が完了していない、と判断する場合(ステップS152;NO)、プロセッサ11は、処理を終了する。
【0145】
一方、自装置において更新が完了している、と判断する場合(ステップS152;YES)、プロセッサ11は、自装置が未更新装置でない旨を、第2通知を送信した情報処理装置1に返信する(ステップS153)。
【0146】
図24は、返信に応じて未更新装置の候補を修正する動作の流れの例を示すフロー図である。
図24に示す動作は、
図8に示すステップを全て含む。この情報処理装置1のプロセッサ11は、ステップS104の後に、第2通知を送信した情報処理装置1から未更新装置でない旨の返信があるか否かを判断する(ステップS161)。
【0147】
第2通知を送信した情報処理装置1から未更新装置でない旨の返信がない、と判断する場合(ステップS161;NO)、プロセッサ11は、処理を終了する。一方、第2通知を送信した情報処理装置1から未更新装置でない旨の返信がある、と判断する場合(ステップS161;YES)、プロセッサ11は、返信元であるその情報処理装置1を未更新装置の候補から削除する(ステップS162)。この場合、例えば、プロセッサ11は、未更新装置でない旨の返信をしてきた情報処理装置1の装置IDをメモリ12に記憶し、上述した未更新装置リストを生成したときに、生成したその未更新装置リストから、その装置IDを削除すればよい。
【0148】
この構成によれば、並行して更新が実行されている環境下等において、第2通知の内容に基づいて誤った情報処理装置1を未更新装置と特定した場合であっても、その特定は、第2通知を送信した情報処理装置1からの返信に基づいて修正される。
【0149】
<1-4>
上述した第1実施形態において、情報処理装置1のプロセッサ11は、受信した第2通知に記入された情報処理装置1の識別情報を未更新装置リストから削除して、その未更新装置リストに記入された装置IDがあるか否かによって、未更新装置が存在するか否かを判断していたが、これを判断する方法は、この方法に限られない。例えば、プロセッサ11は、受信した第2通知に含まれる装置IDの数に基づいて、クラスタCに未更新装置が存在するか否かを判断してもよい。この場合、プロセッサ11は、予めクラスタCを構成する情報処理装置1の数をメモリ12に記憶しておき、その数と、第2通知に記入された装置IDの数とを用いて、クラスタCに未更新装置が存在するか否かを判断すればよい。
【0150】
すなわち、このプロセッサ11は、他の情報処理装置のいずれかから第2通知を受信した場合に、受信したこの第2通知に含まれる識別情報の数に基づいて、未更新装置が存在するか否かを判断するプロセッサの例である。
【0151】
<1-5>
上述した第1実施形態において、情報処理装置1のプロセッサ11は、自装置の識別情報を追加して新たな第2通知を生成していたが、第2通知は自装置の識別情報を含まなくてもよい。例えば、第2通知は、クラスタCにおいて、更新を完了した情報処理装置1の識別情報に代えて、それら情報処理装置1の数を含んでもよい。
【0152】
このプロセッサ11は、他の情報処理装置1のいずれからも第2通知を受信しておらず、かつ、自装置が更新を完了した場合に、「1」が記載された第2通知を生成し、いずれかの未更新装置にこれを送信する。一方、他の情報処理装置1のいずれかから第2通知を受信しており、かつ、クラスタCに未更新装置が存在すると判断する場合に、プロセッサ11は、受信した第2通知が示す数に1を加算した数を示す第2通知を生成し、いずれかの未更新装置にこれを送信する。例えば、受信した第2通知が示す数が「3」であれば、プロセッサ11は、これをインクリメントして「4」が記載された第2通知を新たに生成する。
【0153】
この場合、プロセッサ11は、予めクラスタCを構成する情報処理装置1の数をメモリ12に記憶しておき、受信した第2通知が示す数と比較することで、未更新装置が存在するか否かを判断すればよい。すなわち、このプロセッサ11は、他の情報処理装置のいずれからも第2通知を受信せず、かつ、自装置が更新を完了した場合に、更新を完了した情報処理装置の数である1を示す第2通知を送信し、他の情報処理装置のいずれかから第2通知を受信し、かつ、未更新装置が存在すると判断した場合に、受信したこの第2通知が示す数に1を加算した数を示す第2通知を送信するプロセッサの例である。
【0154】
<第2実施形態>
第2実施形態において、情報処理システム9が有する複数の情報処理装置1は、更新の完了に伴う動作が第1実施形態と異なっている。
【0155】
<第2実施形態における更新の完了に伴う動作>
図25は、第2実施形態における更新の完了に伴う動作の流れの例を示すフロー図である。情報処理装置1のプロセッサ11は、通信回線3を介して図示しない外部装置から更新情報を取得すると(ステップS101)、クラスタCを構成する複数の情報処理装置1のうち、いずれかから、自装置が最初に更新を完了した旨を示す通知(以下、第3通知という)を受信したか否かを判断する(ステップS171)。
【0156】
複数の情報処理装置1のいずれからも第3通知を受信していない、と判断する場合(ステップS171;NO)、プロセッサ11は、ステップS101において取得した更新情報を用いて更新を実行する(ステップS102)。
【0157】
この更新の実行が完了すると、プロセッサ11は、再び複数の情報処理装置1のいずれかから第3通知を受信したか否かを判断する(ステップS172)。これは、更新に時間がかかり、ステップS171の時点と、ステップS172の時点とで状況が変わっている場合があるためである。
【0158】
ステップS172において、複数の情報処理装置1のいずれかから第3通知を受信している、と判断する場合(ステップS172;YES)、プロセッサ11は、他の情報処理装置1のそれぞれに第3通知を送信する(ステップS173)。すなわち、このプロセッサ11は、他の情報処理装置のいずれもが更新を完了する前に、自装置が更新を完了した場合に、他の情報処理装置のそれぞれに、自装置が最初に更新を完了した旨を示す第3通知を送信するプロセッサの例である。
【0159】
なお、情報処理システム9が、上述した情報処理システム9aの通り、管理装置4を有する場合、プロセッサ11は、このステップS173において、管理装置4に完了通知を送信するとともに、上述した第3通知の送信を依頼してもよい。
【0160】
そして、プロセッサ11は、第2プログラムの機能の提供を開始して(ステップS106)、処理を終了する。すなわち、このプロセッサ11は、第3通知を送信した場合に、第2プログラムの機能を提供するプロセッサの例である。
【0161】
一方、ステップS171において、複数の情報処理装置1のいずれかから第3通知を受信している、と判断する場合(ステップS171;YES)、プロセッサ11は、第2プログラムの機能の受付けを開始し(ステップS174)、ステップS101において取得した更新情報を用いて更新を実行して(ステップS175)、処理を終了する。
【0162】
すなわち、このプロセッサ11は、他の情報処理装置のいずれかから第3通知を受信した場合に、利用者から第2プログラムの機能の要求を受付けるプロセッサの例である。
【0163】
また、複数の情報処理装置1のいずれかから第3通知を受信している場合とは、すなわち、クラスタを構成する複数の情報処理装置1のうち、自装置でない他の情報処理装置1が更新を完了している場合である。そして、自装置が第3通知を送信した場合とは、すなわち、クラスタを構成する複数の情報処理装置1のうち、自装置で更新を完了している場合である。
【0164】
この2つの場合において、情報処理装置1は、第2プログラムの機能の提供を開始する。したがって、このプロセッサ11は、自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが更新を完了している場合に、第2プログラムの機能の要求を受付けるプロセッサの例である。
【0165】
また、クラスタCを構成する複数の情報処理装置1のプロセッサ11は、いずれも上述した2つの場合において、第2プログラムの機能の提供を開始する。つまり、これらプロセッサ11は、それぞれ、クラスタを構成する複数の情報処理装置のうち、少なくともいずれかが更新を完了している場合に、端末から第2プログラムの機能の要求を受付けるプロセッサの例である。
【0166】
なお、情報処理システム9が、上述した情報処理システム9aの通り、管理装置4を有する場合、プロセッサ11は、上述したステップS175において、更新を完了した後、管理装置4に完了通知を送信してもよい。
【0167】
この構成により、第3通知がクラスタCを構成する複数の情報処理装置1のそれぞれに受信されたときから、一斉に第2プログラムの機能の受付けが開始されるので、クラスタCを利用する利用者は、クラスタCを構成するどの情報処理装置1に割当てられたとしても、少なくとも、共通のタイミングで受付けられる機能に差が生じない。
【0168】
<第2実施形態における要求を転送する動作>
情報処理装置1は、第3通知を受信すると、自装置で更新が完了していない場合であっても、第2プログラムの機能の要求を受付ける。しかし、更新が完了していないときに、利用者からこの要求を受付けると、少なくともその時点では自装置がこの要求に応えることができない。そこで、第2実施形態の情報処理システム9は、これを解消する方法の一つとして要求の転送を行う。
【0169】
図26は、要求を転送する動作の流れの例を示すフロー図である。情報処理装置1のプロセッサ11は、第2プログラムの機能の要求を受付けたか否かを判断し(ステップS181)、受付けていない、と判断する期間にわたって(ステップS181;NO)、この判断の処理を続ける。なお、この要求の受付けは、要求を他の情報処理装置1から転送された場合を含む。
【0170】
一方、第2プログラムの機能の要求を受付けた、と判断する場合(ステップS181;YES)、プロセッサ11は、自装置において更新が完了しているか否かを判断する(ステップS182)。
【0171】
自装置において更新が完了してない、と判断する場合(ステップS182;NO)、プロセッサ11は、受付けた要求を、クラスタCを構成する他の情報処理装置1のうち、更新が完了している情報処理装置1(以下、更新済装置という)に転送する(ステップS183)。つまり、このプロセッサ11は、自装置が更新を完了する前に、利用者から第2プログラムの機能の要求を受付けた場合に、更新を完了している他の情報処理装置にこの要求を転送するプロセッサの例である。
【0172】
一方、自装置において更新が完了している、と判断する場合(ステップS182;YES)、プロセッサ11は、自装置において第2プログラムの機能を提供する(ステップS184)。
【0173】
上述した要求が、他の情報処理装置1から転送されることによって受付けたものである場合、自装置は更新済装置であるから、上述したステップS182の判断は「YES」となり、プロセッサ11は、第2プログラムの機能を提供する。すなわち、このプロセッサ11は、他の情報処理装置のいずれかから第2プログラムの機能の要求を転送された場合に、この要求に示す機能を提供するプロセッサの例である。この動作により、クラスタCにおいてプログラムの更新が全て完了する前に、利用者から更新後の機能が要求されることがあるが、その機能が提供できないという事態は生じない。
【0174】
<第2実施形態の変形例>
以上が第2実施形態の説明であるが、この第2実施形態の内容は以下のように変形し得る。また、以下の変形例は、互いに組合されてもよく、また、上述した第1実施形態及びその変形例と組合されてもよい。
【0175】
<2-1>
上述した第2実施形態において、更新が完了していないときに利用者から受付けた要求に応えることができない不具合を解消するために、情報処理装置1は、この要求を更新済装置に転送していたが、この不具合を解消する方法はこれに限られない。例えば、情報処理装置1は、自装置において更新が完了してから、要求された第2プログラムの機能を提供してもよい。
【0176】
<変形例における機能提供を保留する動作>
図27は、機能提供を保留する動作の流れの例を示すフロー図である。
図27に示す動作は、
図26に示すステップのうち、ステップS183を除いたそれぞれを有する。
図27に示す動作は、ステップS182において、自装置が更新を完了していない、と判断する場合(ステップS182;NO)に、プロセッサ11が、このステップS182の判断の処理を続ける点が、
図26に示す動作と異なる。
【0177】
この動作により、情報処理装置1は、受付けた要求を転送せず、要求に応じた機能提供は、更新が完了するまで保留される。すなわち、このプロセッサ11は、自装置が更新を完了する前に、利用者から第2プログラムの機能の要求を受付けた場合に、更新を完了してから、この要求に示す機能を提供するプロセッサの例である。
【0178】
したがって、第2プログラムの機能を要求した利用者は、更新が完了するまで待機させられるが、クラスタCが利用者から受付ける機能に差はない。
【0179】
<2-2>
上述した第2実施形態において、クラスタCは、情報処理装置1を管理する管理装置を有していないが、クラスタは管理装置を有してもよい。この場合、クラスタを構成する複数の情報処理装置1は、第3通知を直接、他の情報処理装置1に送信せずに、その送信を管理装置に依頼してもよい。この変形例に係る情報処理システムは、上述した
図14に示す情報処理システム9aの構成を有する。そして、この情報処理システム9aが有する情報処理装置1aのプロセッサ11は、
図25に示すステップS173において、管理装置4に、自装置が更新を完了した旨の完了通知を送信するとともに、上述した第3通知の送信を依頼する。
【0180】
また、このプロセッサ11は、
図25に示すステップS175の後に、上述した完了通知を管理装置4に送信する。この場合、情報処理装置1aは、
図25に示すステップS171において他の情報処理装置1aから第3通知を受信しているので、クラスタCa内で最初に更新を完了させる情報処理装置ではない。そのため、この場合、プロセッサ11は、管理装置4に完了通知を送信するが、第3通知の送信の依頼をしない。
【0181】
<変形例における管理装置の動作>
図28は、変形例における管理装置4の動作の流れの例を示すフロー図である。管理装置4のプロセッサ41は、複数の情報処理装置1aのいずれかから完了通知を受信したか否かを判断し(ステップS301)、完了通知を受信していない、と判断する期間にわたって(ステップS311;NO)、この判断の処理を続ける。
【0182】
一方、上述した完了通知を受信した、と判断する場合(ステップS311;YES)、プロセッサ41は、メモリ42から
図17に示すクラスタ構成DB423を読出し、装置リスト4232において、完了通知の送信元である情報処理装置1aの装置IDに対応する「状態」の欄を、更新の「完了」を示す内容に変更する(ステップS312)。
【0183】
また、プロセッサ41は、受信した完了通知とともに第3通知の送信の依頼があったか否かを判断する(ステップS313)。
【0184】
第3通知の送信の依頼があった、と判断する場合(ステップS313;YES)、プロセッサ41は、その依頼元である情報処理装置1aを除く情報処理装置1aのそれぞれに、依頼された第3通知を送信する(ステップS314)。
【0185】
一方、第3通知の送信の依頼がなかった、と判断する場合(ステップS313;NO)、プロセッサ41は、処理を終了する。
【0186】
この構成においても、管理装置4から送信された第3通知が複数の情報処理装置1aのそれぞれに受信されたときから、一斉に第2プログラムの機能の受付けが開始されるので、クラスタCaを利用する利用者は、どの情報処理装置1aに割当てられたとしても、少なくとも、共通のタイミングで受付けられる機能に差が生じない。
【0187】
<第3実施形態>
第3実施形態において、情報処理システム9が有する複数の情報処理装置1は、更新の動作が第1実施形態及び第2実施形態と異なっている。
【0188】
<第3実施形態における更新の動作>
図29は、第3実施形態における更新の動作の流れの例を示すフロー図である。
図29に示す動作は、
図8に示すステップを全て含む。第3実施形態において、情報処理装置1のプロセッサ11は、更新情報を取得した後(ステップS101)、その更新情報を用いて更新を実行する(ステップS102)前に、第1プログラム及び第2プログラムの重複する機能(以下、重複機能という)の提供を開始する(ステップS191)。重複機能の提供の開始とは、提供する機能をこの重複機能に制限して受付けを開始することである。すなわち、このプロセッサ11は、自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが第1プログラムの更新を完了していない場合に、第1プログラム、及び第2プログラムの、重複する機能の要求を受付けるプロセッサの例である。
【0189】
また、クラスタCを構成する複数の情報処理装置1のプロセッサ11は、いずれも更新情報を取得した後、 その更新情報を用いて更新を実行する前に、上述した重複機能の提供を開始する。つまり、これらプロセッサ11は、それぞれ、クラスタを構成する複数の情報処理装置のうち、少なくともいずれかが更新を完了していない場合に、端末から第1プログラム、及び第2プログラムの、重複する機能の要求を受付けるプロセッサの例である。
【0190】
この構成により、第3実施形態においてクラスタCを構成する複数の情報処理装置1は、それぞれ外部装置から一斉に更新情報を取得することにより、共通のタイミングで上述した重複機能の提供を開始する。
【0191】
なお、このプロセッサ11は、更新情報を取得した後、例えば、この更新情報に含まれる、予め決められた日時になったときに、上述した重複機能の提供を開始してもよい。これにより、複数の情報処理装置1は、更新情報の取得のタイミングがずれたとしても、共通のタイミングで上述した重複機能の提供を開始する。
【0192】
<第3実施形態における提供する機能を切替える動作>
図30は、第3実施形態における機能を切替える動作の流れの例を示すフロー図である。
図30に示す動作は、
図12に示すステップS113に代えてステップS192を有し、これ以外のステップは
図12と共通である。情報処理装置1のプロセッサ11は、第1通知を受信、又は送信していない、と判断する場合(ステップS111;NO)、上述した重複機能の提供を続ける(ステップS192)。
【0193】
つまり、第3実施形態においてクラスタCを構成する複数の情報処理装置1は、それぞれ他の情報処理装置1から第1通知を受信しておらず、かつ、自装置が第1通知を送信していない期間にわたって、第1プログラムと第2プログラムとの重複機能を提供する。そして、これら複数の情報処理装置1は、それぞれ他の情報処理装置1から第1通知を受信するか、又は、自装置が第1通知を送信すると、第2プログラムの機能の提供を開始する。
【0194】
この構成により、クラスタCを構成する複数の情報処理装置1は、これら全てにおいて更新が完了した共通のタイミングで上述した重複機能の提供を終了して、第2プログラムの機能の提供を開始する。すなわち、この情報処理装置1のプロセッサ11は、自装置、及び他の情報処理装置のいずれもが、第1プログラムの更新を完了した場合に、利用者に第2プログラムの機能を提供するプロセッサの例である。
【0195】
また、このプロセッサ11は、クラスタを構成する複数の情報処理装置のいずれもが、更新を完了した場合に、端末の利用者に第2プログラムの機能を提供するプロセッサの例である。したがって、この第3実施形態においても、プログラムの更新がクラスタCの全てで完了する前に、利用者から更新後にのみ存在する機能が要求されることがないため、その機能が提供できずに混乱が生じるということはない。
【0196】
第3実施形態の情報処理システム9によれば、複数の情報処理装置1のそれぞれにおける更新の開始から、クラスタC全体における更新の完了までの期間、重複機能が提供される。この重複機能は、第1プログラム及び第2プログラムのいずれにも含まれる機能であるため、更新の開始前、更新中、及び完了後のいずれにおいても提供可能な機能である。したがって、第3実施形態において情報処理装置1は、更新中に要求された機能を提供可能であり、これを他の情報処理装置1に転送する必要がない。
【0197】
<共通の変形例>
第1実施形態、第2実施形態、及び第3実施形態の内容は以下のように変形し得る。また、以下の変形例は、互いに組合されてもよく、また、上述した各実施形態及びその変形例と組合されてもよい。
【0198】
<1>
上述した各実施形態において、情報処理装置1、情報処理装置1a、及び情報処理装置1bは、CPUで構成されるプロセッサ11を有していたが、これら情報処理装置1等を制御する制御手段は他の構成であってもよい。例えば、情報処理装置1は、CPU以外にも各種のプロセッサ等を有してもよい。
【0199】
ここでプロセッサとは広義的なプロセッサを指し、汎用的なプロセッサ(例えば上述したCPU等)や、専用のプロセッサ(例えばGPU: Graphics Processing Unit、ASIC: Application Specific Integrated Circuit、FPGA: Field Programmable Gate Array、プログラマブル論理デバイス、等)を含むものである。
【0200】
<2>
上記各実施形態におけるプロセッサ11の動作は、1つのプロセッサ11によって成すのみでなく、物理的に離れた位置に存在する複数のプロセッサが協働して成すものであってもよい。
【0201】
また、プロセッサの各動作の順序は上記各実施形態において記載した順序のみに限定されるものではなく、適宜変更してもよい。
【0202】
<3>
上述した実施形態において、情報処理装置1のプロセッサ11は、第2通知又は第3通知に更新情報を含めてもよい。この場合、更新情報は外部装置によりクラスタCを構成する少なくともいずれか1台の情報処理装置1に供給されればよい。外部装置から更新情報を供給された情報処理装置1は、自装置で更新を完了したときに他の情報処理装置1に第2通知又は第3通知を送信する。第2通知又は第3通知を受信した情報処理装置1は、これらに含まれる更新情報を抽出することにより、更新情報を取得すればよい。
【0203】
<4>
上述した第1実施形態において、情報処理装置1のプロセッサ11によって実行されるプログラムは、第1プログラムを実行するプロセッサを有するコンピュータに、第1プログラムから第2プログラムへの更新を実行するための更新情報を取得するステップと、更新情報を用いて更新を実行するステップと、自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが更新を完了していない場合に、第1プログラムの機能の要求を受付けるステップと、自装置、及び他の情報処理装置のいずれもが、更新を完了した場合に、利用者に第2プログラムの機能を提供するステップと、を実行させるプログラムの例である。
【0204】
また、上述した第2実施形態において、情報処理装置1のプロセッサ11によって実行されるプログラムは、第1プログラムを実行するプロセッサを有するコンピュータに、第1プログラムから第2プログラムへの更新を実行するための更新情報を取得するステップと、更新情報を用いて更新を実行するステップと、自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが更新を完了している場合に、第2プログラムの機能の要求を受付けるステップと、を実行させるプログラムの例である。
【0205】
また、上述した第3実施形態において、情報処理装置1のプロセッサ11によって実行されるプログラムは、第1プログラムを実行するプロセッサを有するコンピュータに、第1プログラムから第2プログラムへの更新を実行するための更新情報を取得するステップと、更新情報を用いて更新を実行するステップと、自装置、及び自装置とともにクラスタを構成する他の情報処理装置のうち、少なくともいずれかが更新を完了していない場合に、第1プログラム、及び第2プログラムの、重複する機能の要求を受付けるステップと、自装置、及び他の情報処理装置のいずれもが、更新を完了した場合に、利用者に第2プログラムの機能を提供するステップと、を実行させるプログラムの例である。
【0206】
これらのプログラムは、磁気テープ及び磁気ディスク等の磁気記録媒体、光ディスク等の光記録媒体、光磁気記録媒体、半導体メモリ等の、コンピュータ装置が読取り可能な記録媒体に記憶された状態で提供し得る。また、このプログラムは、インターネット等の通信回線経由でダウンロードされてもよい。
【符号の説明】
【0207】
1、1a、1b…情報処理装置、11…プロセッサ、111…取得部、112…実行部、113…受付部、114…判断部、115…送信部、116…提供部、117…受信部、118…転送部、12…メモリ、121…更新情報DB、122…プログラムDB、123、123b…クラスタ構成DB、1231…更新IDリスト、1232、1232b…装置リスト、13…インタフェース、2…端末、21…プロセッサ、22…メモリ、23…インタフェース、24…操作部、25…表示部、3…通信回線、4…管理装置、41…プロセッサ、42…メモリ、423…クラスタ構成DB、4231…更新IDリスト、4232…装置リスト、43…インタフェース、9、9a…情報処理システム。