前述の集中管理システムでは、複数のクライアント装置が、運用系サーバ装置に接続されている。運用系サーバ装置は、様々なサービスを提供する装置である。以下においては、複数のサーバ装置のうち、運用系サーバ装置以外のサーバ装置を、「待機系サーバ装置」ともいう。
集中管理システムでは、運用系サーバ装置は、所定のタイミングで、待機系サーバ装置に対して、データ同期処理を行う。これにより、データ更新時に生じる、サーバ装置間でのデータ同期処理に関するオーバヘッドを削減できる。
しかし、以下の状況Stnにおいては、集中管理システムに、複数の運用系サーバ装置が存在する場合がある。当該状況Stnは、例えば、運用系サーバ装置と待機系サーバ装置とを接続する回線に障害が存在するという状況である。また、当該状況Stnは、待機系サーバ装置を一時的に運用系サーバ装置として動作させる状況である。
そこで、集中管理システムにおいて、適切なサーバ装置を選択することが要求される。以下の実施の形態では、この要求を満たすような構成について説明する。
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の図面では、同一の各構成要素には同一の符号を付してある。同一の符号が付されている各構成要素の名称および機能は同じである。したがって、同一の符号が付されている各構成要素の一部についての詳細な説明を省略する場合がある。
<実施の形態1>
(システム構成)
図1は、本発明の実施の形態1に係るネットワークシステム1000の構成を示す図である。ネットワークシステム1000は、集中管理システムである。
図1を参照して、ネットワークシステム1000は、複数のサーバ装置200と、複数のクライアント装置100とを含む。図1では、一例として、4台のサーバ装置200が示される。
なお、ネットワークシステム1000に含まれるサーバ装置200の数は、4に限定されず、2,3または5以上であってもよい。また、ネットワークシステム1000に含まれるクライアント装置100の数は、1であってもよい。
複数のクライアント装置100の各々は、同じ構成を有する。また、複数のサーバ装置200の各々は、同じ構成を有する。複数のサーバ装置200の各々は、複数のクライアント装置100と通信可能なように構成される。複数のサーバ装置200の各々は、例えば、ネットワークにより、複数のクライアント装置100と接続される。
複数のサーバ装置200は、互いに通信可能なように構成される。複数のサーバ装置200は、例えば、ネットワークにより、互いに接続される。なお、複数のサーバ装置200は、互いに通信可能なように構成されていなくてもよい。
複数のサーバ装置200のうち、少なくとも1台のサーバ装置200は、運用系サーバ装置である。運用系サーバ装置は、複数のクライアント装置100を集中管理するサーバ装置である。また、運用系サーバ装置は、様々なサービスを提供する装置である。なお、複数のサーバ装置200のうち、運用系サーバ装置以外のサーバ装置200は、待機系サーバ装置である。
運用系サーバ装置は、当該運用系サーバ装置が通信可能な待機系サーバ装置に対して、定期的に、バックアップデータを同期するための処理を行う。
前述したように、ネットワークシステム1000は、集中管理システムである。そのため、各クライアント装置100が、同時にアクセスできるサーバ装置200は、様々なサービスを提供する運用系サーバ装置のみである。当該サービスは、例えば、各クライアント装置100が共通して使用する暗号鍵を管理するというサービスである。
各クライアント装置100は、例えば、当該クライアント装置100に対しての操作の履歴を管理する。また、各クライアント装置100は、例えば、当該クライアント装置100と、当該クライアント装置100の配下である端末装置との間における、通信の障害状況、トラフィック状況等のログを管理する。各クライアント装置100は、定期的に、ログ等を示す管理情報を運用系サーバ装置へ送信する。
このように、複数のサーバ装置200のうち、少なくとも1台のサーバ装置200は、運用系サーバ装置である。当該運用系サーバ装置は、例えば、各クライアント装置100に対しサービスを提供し、各クライアント装置100からの要求を処理する。
(サーバ装置)
図2は、本発明の実施の形態1に係るサーバ装置200の構成を示すブロック図である。以下においては、図2に示される各構成要素に対応するサーバ装置200を、「自サーバ装置」ともいう。自サーバ装置は、図1の複数のサーバ装置200のいずれかである。また、以下においては、図1の複数のサーバ装置200のうち、自サーバ装置以外のサーバ装置200を、「他サーバ装置」ともいう。
また、以下においては、サーバ装置200の動作状態を、「系状態」ともいう。サーバ装置200の系状態は、運用系および待機系のいずれかが設定される。「運用系」とは、複数のクライアント装置100を集中管理するための状態である。系状態が運用系であるサーバ装置200は、運用系サーバ装置である。
「待機系」とは、例えば、サーバ装置200が負荷の高い処理を行わない状態である。系状態が待機系であるサーバ装置200は、待機系サーバ装置である。
図2を参照して、サーバ装置200は、記憶部210、データ管理部220、管理部230、制御部250、入力部270および通信部280を備える。
通信部280は、クライアント装置100および他サーバ装置の各々と通信する機能を有する。具体的には、通信部280は、クライアント通信部281およびサーバ通信部282を含む。クライアント通信部281は、クライアント装置100と通信する機能を有する。サーバ通信部282は、他サーバ装置と通信する機能を有する。なお、サーバ通信部282は、他サーバ装置と正常に通信ができない場合、通信異常を検出する機能を有する。通信異常は、例えば、自サーバ装置と他サーバ装置とを接続する回線に障害が存在する場合に、発生する。
記憶部210は、データ等を記憶する機能を有する。記憶部210が記憶しているデータは、例えば、自サーバ装置が生成したデータ、他サーバ装置またはクライアント装置100から通信部280が受信したデータ等である。クライアント装置100から通信部280が受信したデータは、例えば、サービスを提供するために必要なデータである。
データ管理部220は、通信部280(クライアント通信部281)を介して、クライアント装置100とデータ通信を行う機能を有する。また、データ管理部220は、通信部280(サーバ通信部282)を介して、他サーバ装置とデータ通信を行う機能を有する。データ管理部220は、通信部280を介して受信したデータを、当該データの更新時刻とともに、記憶部210に格納する機能を有する。
入力部270は、例えば、オペレーターによる操作を受付けるインタフェースである。入力部270は、例えば、キーボード、マウス等である。以下においては、オペレーターが、入力部270に対して行う操作を、「操作M」ともいう。
制御部250は、定期的に、系状態情報を、通信部280(サーバ通信部282)を介して、他サーバ装置へ送信する系状態送信処理を行う。系状態情報は、自サーバ装置の系状態を示す情報である。なお、系状態情報は、死活監視情報ともいう。
複数のサーバ装置200の各々が、定期的に、系状態送信処理を行うことにより、各サーバ装置200は、自サーバ装置および他サーバ装置の系状態を把握している。
制御部250は、系設定部251を含む。系設定部251は、自サーバ装置の系状態を、運用系または待機系に設定する機能を有する。系設定部251は、系状態を設定するための系設定操作が行われた場合、当該系設定操作に従って、自サーバ装置の系状態を運用系または待機系に設定する。系設定操作は、例えば、系状態を運用系に設定するための操作Mである。また、系設定操作は、例えば、系状態を待機系に設定するための操作Mである。
系設定部251は、系状態を設定した場合、系状態情報を、管理部230へ送信する。系状態情報は、設定後の系状態(運用系または待機系)を示す。
管理部230は、系設定部251から系状態情報を受信する機能を有する。また、管理部230は、サーバ状態情報を管理する機能を有する。サーバ状態情報は、サーバ装置の状態に関する情報である。以下においては、サーバ状態情報を、「サーバ状態情報SVSt」または「SVSt」ともいう。サーバ状態情報SVStは、一例として、サーバ状態情報SVSta,SVStbを含む。
また、管理部230は、時刻管理部231を含む。時刻管理部231は、常時、最新の日時(時刻)を管理している。管理部230は、常時、時刻管理部231から最新の日時(時刻)を取得している。管理部230は、系状態情報を受信した場合、当該系状態情報が示す系状態と、当該系状態情報を受信した日時(時刻)とを示す、サーバ状態情報SVStaを生成または更新する。系状態情報が示す系状態は、運用系または待機系である。
図3は、本発明の実施の形態1に係るサーバ状態情報SVStaの一例を示す図である。図3を参照して、サーバ状態情報SVStaは、系状態およびサーバ設定時刻を示す。「サーバ設定時刻」とは、サーバ装置200の系状態が、運用系または待機系に設定された日時(時刻)である。すなわち、「サーバ設定時刻」は、サーバ装置200の状態に関する日時(時刻)である。
図4は、本発明の実施の形態1に係るサーバ状態情報SVStbの一例を示す図である。図4を参照して、サーバ状態情報SVStbは、データ識別番号およびデータ更新時刻を示す。「データ識別番号」とは、データを識別するための番号である。「データ更新時刻」とは、データ識別番号により特定(識別)される、サーバ装置200が保持しているデータが更新された日時(時刻)である。すなわち、「データ更新時刻」は、サーバ装置200の状態に関する日時(時刻)である。
サーバ装置200の系状態が運用系である場合、管理部230は、定期的に、サーバ状態情報SVStを、通信部280を介して、クライアント装置100へ送信する機能を有する。なお、サーバ状態情報SVStは、サーバ識別番号を示す。サーバ識別番号は、当該サーバ識別番号を示すサーバ状態情報SVStを送信したサーバ装置200を識別するための番号である。
(クライアント装置)
図5は、本発明の実施の形態1に係るクライアント装置100の構成を示すブロック図である。図5を参照して、クライアント装置100は、記憶部110、選択処理部130、データ管理部120および通信部180を備える。
記憶部110は、データ等を記憶する機能を有する。
通信部180は、サーバ装置200および下位装置(端末装置)の各々と通信する機能を有する。具体的には、通信部180は、サーバ通信部181および下位装置通信部182を含む。サーバ通信部181は、サーバ装置200と通信する機能を有する。下位装置通信部182は、下位装置である端末装置(図示せず)と通信する機能を有する。
選択処理部130は、サーバ状態情報を管理する機能を有する。具体的には、選択処理部130は、サーバ状態情報テーブルSVTLを記憶している。サーバ状態情報テーブルSVTLは、サーバ識別番号と、サーバ状態情報SVStに含まれるサーバ状態情報SVSta,SVStbとを対応づけて示す。なお、サーバ状態情報テーブルSVTLは、系状態は示さない。
選択処理部130は、通信部180(サーバ通信部181)を介して、サーバ装置200が送信したサーバ状態情報SVStを受信する機能を有する。選択処理部130は、サーバ状態情報SVStを受信する毎に、当該サーバ状態情報SVStが示すサーバ識別番号と、サーバ状態情報SVStに含まれるサーバ状態情報SVSta,SVStbとを対応づけて、サーバ状態情報テーブルSVTLに追記する。
図6は、本発明の実施の形態1に係るサーバ状態情報テーブルSVTLの一例を示す図である。
また、選択処理部130は、複数のサーバ装置200から複数のサーバ状態情報SVStを受信した場合、当該複数のサーバ状態情報SVStに基づいて、クライアント装置100の通信対象となる運用系サーバ装置を選択する機能を有する。
データ管理部120は、データ収集処理を行う機能を有する。データ収集処理では、データ管理部120が、選択処理部130により選択されたサーバ装置200が保持するデータを、当該サーバ装置200から取得する。データ管理部120は、取得したデータを記憶部110に格納する。
また、データ管理部120は、下位装置(端末装置)から、下位装置通信部182を介して受信したデータを、記憶部110に格納する。また、データ管理部120は、下位装置から受信したデータを、通信部180(サーバ通信部181)を介して、サーバ装置200へ送信する機能を有する。
(ネットワークシステムにおける処理)
次に、ネットワークシステム1000において行われる処理(以下、「通信制御処理」ともいう)について説明する。以下においては、ネットワークシステム1000の複数のサーバ装置200の各々を、総括的に、「サーバ装置SV」ともいう。また、以下においては、複数のサーバ装置200に含まれる2台のサーバ装置SVを、それぞれ、サーバ装置SVa,SVbとも表記する。また、以下においては、サーバ装置SVa,SVbを、それぞれ、「SVa」および「SVb」とも表記する。
また、以下においては、ネットワークシステム1000の複数のクライアント装置100の各々を、総括的に、「クライアント装置CL」ともいう。また、以下においては、複数のクライアント装置100に含まれる2台のクライアント装置100を、それぞれ、クライアント装置CLa,CLbとも表記する。また、以下においては、クライアント装置CLa,CLbを、それぞれ、「CLa」、「CLb」とも表記する。
本実施の形態の通信制御処理では、説明を分かりやすくするために、一例として、サーバ装置SVa,SVbおよびクライアント装置CLa,CLbが行う処理を説明する。
図7は、本発明の実施の形態1に係る通信制御処理のシーケンス図である。ここで、以下の前提Pm1を考慮する。前提Pm1では、サーバ装置SVaの系状態は、予め、運用系に設定されている。すなわち、サーバ装置SVaは、運用系サーバ装置である。また、前提Pm1では、例えば、予め、サーバ装置SVaに対し、系状態を運用系に設定するための系設定操作が行われている。系設定操作は、入力部270を使用して行われる操作である。
また、前提Pm1では、サーバ装置SVbの系状態は、予め、運用系に設定されている。すなわち、サーバ装置SVbは、運用系サーバ装置である。
前提Pm1における通信制御処理では、ステップS501Aにおいて、サーバ装置SVaの電源がオンにされる。これにより、サーバ装置SVaの管理部230は、運用系処理を行う。
サーバ装置SVaにおける運用系処理では、ステップS502a,S503aにおいて、サーバ装置SVaの管理部230は、定期的に、サーバ状態情報SVStを、クライアント装置CLa,CLbへ送信する。これにより、クライアント装置CLa,CLbの各々は、サーバ状態情報SVStを受信する。
また、ステップS501bにおいて、サーバ装置SVbの電源がオンにされる。これにより、サーバ装置SVbの管理部230は、運用系処理を行う。
サーバ装置SVbにおける運用系処理では、ステップS502b,S503bにおいて、サーバ装置SVbの管理部230は、定期的に、サーバ状態情報SVStを、クライアント装置CLa,CLbへ送信する。これにより、クライアント装置CLa,CLbの各々は、サーバ状態情報SVStを受信する。
以下においては、運用系処理が行われるための条件を、「運用条件」ともいう。運用条件は、サーバ装置の電源がオンにされるという条件に限定されない。運用条件は、例えば、待機系のサーバ装置SVに対し、系状態を運用系に設定(変更)するための系設定操作が行われたという条件であってもよい。
また、運用条件は、待機系サーバ装置のサーバ通信部282が、通信異常を検出したという条件であってもよい。サーバ通信部282が通信異常を検出した場合、当該サーバ通信部282は、運用系サーバ装置において動作不良が発生したと判定する。この場合、クライアント装置へのサービスの提供を継続するために、待機系サーバ装置の系状態は運用系に設定される。これにより、待機系サーバ装置は運用系サーバ装置になり、当該運用系サーバ装置は運用系処理を行う。
通信制御処理において、クライアント装置CLa,CLbの各々は同じ処理を行う。ここでは、一例として、クライアント装置CLaにおける処理について説明する。なお、図7では、図の簡略化のため、クライアント装置CLbにおける処理は示していない。
ステップS710では、記憶処理が行われる。記憶処理では、クライアント装置CLの選択処理部130が、サーバ状態情報SVStが示すサーバ識別番号と、サーバ状態情報SVStに含まれるサーバ状態情報SVSta,SVStbとを対応づけて、前述のサーバ状態情報テーブルSVTLに追記する。
ステップS720では、選択処理部130が、クライアント装置CLが複数のサーバ状態情報SVStを受信したか否かを判定する。ステップS720においてYESならば処理はステップS730へ移行する。すなわち、クライアント装置CLが複数のサーバ状態情報SVStを受信した場合、後述の選択処理が行われる。一方、ステップS720においてNOならば、クライアント装置CLにおける処理は終了し、後述の選択処理は行われない。
前提Pm1における通信制御処理では、クライアント装置CLaは、サーバ装置SVa,SVbから、少なくとも2つのサーバ状態情報SVStを受信する。そのため、ステップS720でYESと判定され、処理はステップS730へ移行する。
以下においては、複数のサーバ装置200から、運用系サーバ装置を選択するための条件を、「選択条件Cd」ともいう。選択条件Cdは、予め決められた条件である。また、以下においては、各クライアント装置CLの通信対象となる運用系サーバ装置を、「対象運用系サーバ装置」ともいう。
ステップS730では、選択処理が行われる。選択処理では、選択処理部130が、選択条件Cdにおける日時(時刻)に基づいて、複数のサーバ装置SVから、対象運用系サーバ装置を選択する。
選択条件Cdは、例えば、サーバ状態情報テーブルSVTLが示す複数のサーバ設定時刻のうち、最新のサーバ設定時刻に対応するサーバ識別番号に対応するサーバ装置SVを選択するという条件である。サーバ状態情報テーブルSVTLが示す複数のサーバ設定時刻の各々は、クライアント装置CLが受信したサーバ状態情報SVStに含まれるサーバ状態情報SVStaに含まれるサーバ設定時刻である。
また、選択条件Cdは、例えば、サーバ状態情報テーブルSVTLが示す複数のデータ更新時刻のうち、最新のデータ更新時刻に対応するサーバ識別番号に対応するサーバ装置SVを選択するという条件である。サーバ状態情報テーブルSVTLが示す複数のデータ更新時刻の各々は、クライアント装置CLが受信したサーバ状態情報SVStに含まれるサーバ状態情報SVStbに含まれるデータ更新時刻である。
ここで、前提Pm1における選択条件Cdは、一例として、サーバ状態情報テーブルSVTLが示す複数のサーバ設定時刻のうち、最新のサーバ設定時刻に対応するサーバ識別番号に対応するサーバ装置SVを、対象運用系サーバ装置として選択するという条件である。
また、前提Pm1における選択処理で使用されるサーバ状態情報テーブルSVTLは、一例として、図6のサーバ状態情報テーブルSVTLである。なお、前提Pm1では、一例として、サーバ装置SVaのサーバ識別番号は、“1001”である。
具体的には、前提Pm1における選択処理では、選択処理部130が、選択条件Cdに従い、複数のサーバ装置SVから、複数のサーバ設定時刻のうちの最新のサーバ設定時刻に対応するサーバ識別番号“1001”に対応するサーバ装置SVa(対象運用系サーバ装置)を選択する。
ステップS740では、選択処理部130は、選択したサーバ装置SVaに対し、接続要求CRqを送信する。これにより、サーバ装置SVaは、接続要求CRqの受信に応じて、当該接続要求CRqを送信したクライアント装置CLと通信可能な状況となる。
ステップS750では、データ収集処理が行われる。データ収集処理では、データ管理部120は、選択されたサーバ装置SVに対し、当該サーバ装置SVが保持するデータの収集を行う。前提Pm1におけるデータ収集処理では、データ管理部120は、選択されたサーバ装置SVaに対し、当該サーバ装置SVaが保持するデータの収集を行う。
以上説明したように、本実施の形態によれば、選択処理部130は、複数のサーバ装置SVから、複数のクライアント装置CLを集中管理するサーバ装置であって、かつ、各クライアント装置CLの通信対象となるサーバ装置(対象運用系サーバ装置)を選択する。
これにより、複数のクライアント装置CLを集中管理するサーバ装置であって、かつ、各クライアント装置の通信対象となるサーバ装置(対象運用系サーバ装置)を選択することができる。
また、本実施の形態の構成によれば、集中管理システムであるネットワークシステム1000において、適切なサーバ装置を選択することができる。
なお、前述したように、状況Stnにおいては、集中管理システムに、複数の運用系サーバ装置が存在する場合がある。当該状況Stnは、例えば、運用系サーバ装置と待機系サーバ装置とを接続する回線に障害が存在するという状況である。また、当該状況Stnは、待機系サーバ装置を一時的に運用系サーバ装置として動作させる状況である。
このような状況Stnにおいても、本実施の形態によれば、各クライアント装置CLは、共通の運用系サーバ装置(集中管理サーバ装置)を選択することができる。したがって、状況Stnにおいても、各クライアント装置CLは、共通のデータ資源にアクセスできる。
<実施の形態2>
実施の形態1では、接続要求CRqの送信対象となるサーバ装置が運用系サーバ装置でない状態でも、当該サーバ装置に対し、データ収集処理を行うことができる。このため、選択処理において選択されなかったサーバ装置SVbは、運用系サーバ装置として動作し続ける。したがって、サーバ装置SVbが動作するために必要な電力の分だけ、ネットワークシステム1000における消費電力が無駄になっていた。本実施の形態では、このような問題を解決する構成について説明する。
(ネットワークシステムにおける処理)
本実施の形態の、ネットワークシステム1000、サーバ装置200(SV)およびクライアント装置100(CL)の構成は、実施の形態1と同様である。以下、実施の形態1と異なる点を主に説明する。本実施の形態では、ネットワークシステム1000において、通信制御処理Aが行われる。
図8は、本発明の実施の形態2に係る通信制御処理Aのシーケンス図である。図8において、図7のステップ番号と同じステップ番号の処理は、実施の形態1で説明した処理と同様な処理が行われるので詳細な説明は繰り返さない。なお、通信制御処理Aにおいて、クライアント装置CLa,CLbの各々は同じ処理を行う。ここでは、一例として、クライアント装置CLaにおける処理について説明する。なお、図8では、図の簡略化のため、クライアント装置CLbにおける処理は示していない。
本実施の形態では、前述の前提Pm1において通信制御処理Aが行われる場合の処理について説明する。以下、実施の形態1と異なる点を中心に説明する。
前述のステップS740の処理により、接続要求CRqがサーバ装置SVaへ送信される。サーバ装置SVaの系設定部251は、通信部280(クライアント通信部281)を介して、接続要求CRqを受信する。これにより、ステップS520において、系設定部251は、自サーバ装置の系状態を、運用系に設定する。そして、管理部230は、系状態の設定内容に基づいて、サーバ状態情報SVStaを更新する。
そして、管理部230は、当該接続要求CRqにより指定されたデータを、記憶部210から読み出す。そして、管理部230は、当該接続要求CRqを送信したクライアント装置CLaに対し、通信部280を介して、応答を送信する。
クライアント装置CLaは、応答の受信に応じて、実施の形態1と同様に、データ収集処理を行う。
以下においては、ステップS730の選択処理において選択されたサーバ装置SVを、「選択サーバ装置」ともいう。選択サーバ装置は、前述の対象運用系サーバ装置である。また、以下においては、ネットワークシステム1000における複数のサーバ装置SVのうち、選択サーバ装置以外のサーバ装置SVを、「非選択装置」ともいう。
ステップS760では、クライアント装置CLaの選択処理部130は、非選択装置からサーバ状態情報SVStを受信したか否かを判定する。具体的には、選択処理部130は、期間Tm1において、非選択装置からサーバ状態情報SVStを受信したか否かを判定する。当該期間Tm1は、例えば、前述の応答を受信してから、所定時間経過するまでの期間において、当該所定時間は、例えば、5秒から20秒の範囲の時間である。
ステップS760においてYESならば、処理はステップS761へ移行する。一方、ステップS760においてNOならば、クライアント装置CLaにおける、処理は終了する。
なお、本実施の形態の前提Pm1では、一例として、クライアント装置CLaは、期間Tm1において、非選択装置であるサーバ装置SVbから、サーバ状態情報SVStを受信する。そのため、ステップS760でYESと判定され、処理はステップS761へ移行する。
ステップS761では、選択処理部130は、非選択装置が運用系サーバ装置として動作しないようにするための処理を行う。具体的には、選択処理部130が、接続拒否要求を、非選択装置へ送信する。接続拒否要求は、非選択装置の系状態を待機系に設定するための指示を示す。
前提Pm1におけるステップS761では、選択処理部130が、接続拒否要求を、非選択装置であるサーバ装置SVbへ送信する。これにより、サーバ装置SVbは接続拒否要求を受信する。
ステップS570において、サーバ装置SVbの系設定部251は、接続拒否要求に従って、自サーバ装置の系状態を待機系に設定する。そして、管理部230は、系状態の設定内容に基づいて、サーバ状態情報SVStaを更新する。これにより、サーバ装置SVbは、待機系サーバ装置となる。そして、管理部230は、当該接続拒否要求を送信したクライアント装置CLに対し、通信部280を介して、応答を送信する。
ステップS571において、サーバ装置SVbの管理部230は、運用系処理を終了する。すなわち、管理部230は、サーバ状態情報SVStを定期的に送信する処理を終了する。なお、待機系サーバ装置となったサーバ装置SVbは、クライアント装置CLから接続要求CRqを受信した場合、拒否応答を当該クライアント装置CLへ送信する。
以上説明したように、本実施の形態によれば、クライアント装置CLの選択処理部130は、非選択装置が運用系サーバ装置として動作しないようにするための処理を行う。具体的には、選択処理部130は、非選択装置の系状態を待機系に設定するための処理を行う。これにより、非選択装置であるサーバ装置SVbが、待機系サーバ装置になる。その結果、データ収集処理を、対象運用系サーバ装置である運用系サーバ装置に対してのみ行うことができる。以上により、ネットワークシステム1000(待機系サーバ装置)における消費電力を低減することができる。
<実施の形態3>
実施の形態2では、ステップS520において、サーバ装置SVの系状態が設定される。なお、実施の形態2の通信制御処理Aでは、各クライアント装置CLが受信する複数のサーバ状態情報SVStの各々に含まれる時刻(サーバ設定時刻)は同一である。
そのため、実施の形態2では、選択処理において、特定のクライアント装置CLが選択するサーバ装置が、別のクライアント装置CLが選択するサーバ装置と異なる状況(選択のミス)が生じる場合がある。すなわち、各クライアント装置CLが、共通のサーバ装置SVを選択できない可能性があるという問題が存在する。本実施の形態では、この問題を解決するための構成について説明する。
(ネットワークシステムにおける処理)
本実施の形態の、ネットワークシステム1000、サーバ装置200(SV)およびクライアント装置100(CL)の構成は、実施の形態1,2と同様である。以下、実施の形態2と異なる点を主に説明する。本実施の形態では、ネットワークシステム1000において、通信制御処理Bが行われる。
なお、本実施の形態の各サーバ装置SVの管理部230は、サーバ状態情報SVStXを管理する機能を有する。具体的には、管理部230は、サーバ状態情報SVStXを記憶している。なお、サーバ状態情報SVStXは、サーバ識別番号を示す。サーバ識別番号は、当該サーバ識別番号を示すサーバ状態情報SVStXを送信したサーバ装置200を識別するための番号である。また、サーバ状態情報SVStXは、一例として、サーバ状態情報SVStaX,SVStbXを含む。
図9は、本発明の実施の形態3に係るサーバ状態情報SVStaXの一例を示す図である。図9を参照して、サーバ状態情報SVStaXは、図3のサーバ状態情報SVStaと比較して、「セッション番号」をさらに示す点が異なる。サーバ状態情報SVStaXのそれ以外の情報は、サーバ状態情報SVStaと同様なので詳細な説明は繰り返さない。
「セッション番号」は、ネットワークシステム1000において、ある期間に処理対象となるデータを一意に管理するための番号である。このため、セッション番号は、全てのサーバ装置SVにおいて、共通して定義される番号である。例えば、各サーバ装置SVにおいて、セッション番号は、所定時間の経過毎に、1が加算された値となるように、使用される。
図10は、本発明の実施の形態3に係るサーバ状態情報SVStbXの一例を示す図である。図10を参照して、サーバ状態情報SVStbXは、図4のサーバ状態情報SVStbと比較して、「セッション番号」をさらに示す点が異なる。サーバ状態情報SVStbのそれ以外の情報は、サーバ状態情報SVStbと同様なので詳細な説明は繰り返さない。
また、本実施の形態の各クライアント装置CLの選択処理部130は、サーバ状態情報SVTLXを管理する機能を有する。具体的には、選択処理部130は、サーバ状態情報テーブルSVTLXを記憶している。
図11は、本発明の実施の形態3に係るサーバ状態情報テーブルSVTLXの一例を示す図である。図11を参照して、サーバ状態情報テーブルSVTLXは、図6のサーバ状態情報テーブルSVTLと比較して、「セッション番号」をさらに示す点が異なる。サーバ状態情報テーブルSVTLXのそれ以外の情報は、サーバ状態情報テーブルSVTLと同様なので詳細な説明は繰り返さない。
図12は、本発明の実施の形態3に係る通信制御処理Bのシーケンス図である。図12において、図8のステップ番号と同じステップ番号の処理は、実施の形態2で説明した処理と同様な処理が行われるので詳細な説明は繰り返さない。なお、通信制御処理Bにおいて、クライアント装置CLa,CLbの各々は同じ処理を行う。ここでは、一例として、クライアント装置CLaにおける処理について説明する。なお、図12では、図の簡略化のため、クライアント装置CLbにおける処理は示していない。
本実施の形態では、前述の前提Pm1において通信制御処理Bが行われる場合の処理について説明する。以下、実施の形態2と異なる点を中心に説明する。
ステップS501A,S501Bでは、実施の形態1と同様な処理が行われる。
ステップS502aB,S503aBにおいて、サーバ装置SVaの管理部230は、定期的に、サーバ状態情報SVStXを、クライアント装置CLa,CLbへ送信する。また、ステップS502bB,S503bBにおいて、サーバ装置SVbの管理部230は、定期的に、サーバ状態情報SVStXを、クライアント装置CLa,CLbへ送信する。
ステップS710Bでは、記憶処理Bが行われる。記憶処理Bでは、クライアント装置CLの選択処理部130が、サーバ状態情報SVStXが示すサーバ識別番号と、サーバ状態情報SVStXに含まれるサーバ状態情報SVStaX,SVStbXとを対応づけて、前述のサーバ状態情報テーブルSVTLXに追記する。
ステップS720Bでは、選択処理部130が、クライアント装置CLが複数のサーバ状態情報SVStXを受信したか否かを判定する。ステップS720BにおいてYESならば処理はステップS730Bへ移行する。一方、ステップS720BにおいてNOならば、クライアント装置CLにおける処理は終了し、後述の選択処理Bは行われない。
前提Pm1における通信制御処理Bでは、クライアント装置CLaは、サーバ装置SVa,SVbから、少なくとも2つのサーバ状態情報SVStXを受信する。そのため、ステップS720BでYESと判定され、処理はステップS730Bへ移行する。
前提Pm1におけるステップS730Bでは、選択処理Bが行われる。選択処理Bでは、選択処理部130が、選択条件Cdにおける日時(時刻)に基づいて、複数のサーバ装置CLから、対象運用系サーバ装置を選択する。
選択条件Cdは、例えば、同一のセッション番号に対応する、サーバ状態情報テーブルSVTLXが示す複数のサーバ設定時刻のうち、最新のサーバ設定時刻に対応するサーバ識別番号に対応するサーバ装置SVを選択するという条件である。サーバ状態情報テーブルSVTLXが示す複数のサーバ設定時刻の各々は、クライアント装置CLが受信したサーバ状態情報SVStXに含まれるサーバ状態情報SVStaXに含まれるサーバ設定時刻である。
また、選択条件Cdは、例えば、同一のセッション番号に対応する、サーバ状態情報テーブルSVTLXが示す複数のデータ更新時刻のうち、最新のデータ更新時刻に対応するサーバ識別番号に対応するサーバ装置SVを選択するという条件である。サーバ状態情報テーブルSVTLXが示す複数のデータ更新時刻の各々は、クライアント装置CLが受信したサーバ状態情報SVStXに含まれるサーバ状態情報SVStbXに含まれるデータ更新時刻である。
ここで、本実施の形態の前提Pm1における選択条件Cdは、一例として、同一のセッション番号に対応する、サーバ状態情報テーブルSVTLXが示す複数のサーバ設定時刻のうち、最新のサーバ設定時刻に対応するサーバ識別番号に対応するサーバ装置SVを、対象運用系サーバ装置として選択するという条件である。
また、前提Pm1における選択処理Bで使用されるサーバ状態情報テーブルSVTLXは、一例として、図11のサーバ状態情報テーブルSVTLXである。なお、前提Pm1では、一例として、サーバ装置SVaのサーバ識別番号は、“1001”である。また、前提Pm1では、サーバ装置SVbのサーバ識別番号は、“1002”である。また、前提Pm1では、選択条件Cdにおける前述の同一のセッション番号は、一例として、“1”である。
具体的には、前提Pm1における選択処理Bでは、選択処理部130が、選択条件Cdに従い、複数のサーバ装置SVから、セッション番号“1”に対応する複数のサーバ設定時刻のうちの最新のサーバ設定時刻に対応するサーバ識別番号“1001”に対応するサーバ装置SVa(対象運用系サーバ装置)を選択する。
前提Pm1におけるステップS740Bでは、選択処理部130は、選択したサーバ装置SVaに対し、接続要求CRqを送信する。当該接続要求CRqには、前提Pm1における選択処理Bで使用されたセッション番号“1”が含まれる。
前提Pm1におけるステップS510では、サーバ装置SVaの管理部230が、所定期間TmBにおいて、当該サーバ装置SVaがサーバ状態情報SVStXを送信した全てのクライアント装置CLから接続要求CRqを受信したか否かが判定される。
また、所定期間TmBは、例えば、サーバ装置SVaがサーバ状態情報SVStXを送信してから、20秒経過するまでの期間である。管理部230は、所定期間TmBにおいて、全てのクライアント装置CLから、同一のセッション番号を含む接続要求CRqを受信するまで待機する。
ステップS510においてYESならば処理はステップS520へ移行する。一方、ステップS510においてNOならば、処理はステップS502aBへ移行する。
処理がステップS502aBへ移行する場合、サーバ装置SVaの管理部230は、再選択シーケンスを行う。再選択シーケンスでは、サーバ状態情報SVStXのサーバ設定時刻、および、再選択処理であることを識別するためのセッション番号を再設定する。その後、再度、ステップS502aBの処理を行う。なお、新規のセッション番号を受信したクライアント装置CLは、旧セッション番号の接続要求に対する応答待機を終了する。
本実施の形態の前提Pm1では、サーバ装置SVaが、全てのクライアント装置CLから接続要求CRqを受信する。そのため、ステップS510でYESと判定され、ステップS520の処理が行われる。
ステップS520では、実施の形態2と同様、系設定部251は、自サーバ装置の系状態を、運用系に設定する。これ以降の処理は、実施の形態2と同様である。
以上の、前提Pm1における通信制御処理Bでは、複数のクライアント装置CLがステップS740Bを行う。これにより、複数のクライアント装置CLが、同一のセッション番号を含む複数の接続要求CRqを、サーバ装置SVaへ送信する。そして、ステップS510でYESと判定され、ステップS520が行われることにより、サーバ装置SVaが運用系サーバ装置として動作する。すなわち、クライアント装置CLaの選択処理部130は、別のクライアント装置CLと協調して、選択したサーバ装置SVaを運用系サーバ装置として動作させるための処理(接続要求CRqの送信)を行う。
以上説明したように、本実施の形態によれば、セッション番号を使用して、対象運用系サーバ装置を選択する処理を行う。これにより、各クライアント装置CLが受信する複数のサーバ状態情報の各々に含まれる時刻(サーバ設定時刻)が同一であることにより生じる、前述の問題を解決することができる。
すなわち、特定のクライアント装置CLが選択するサーバ装置が、別のクライアント装置CLが選択するサーバ装置と異なる状況が生じること(選択のミス)を防ぐことができる。換言すれば、各クライアント装置CLが受信する複数のサーバ状態情報の各々に含まれる時刻(サーバ設定時刻)が同一であっても、各クライアント装置CLが、共通のサーバ装置SVを確実に選択することができる。
(機能ブロック図)
図13は、クライアント装置BL10の特徴的な機能構成を示すブロック図である。クライアント装置BL10は、クライアント装置100に相当する。つまり、図13は、クライアント装置BL10の有する機能のうち、本発明に関わる主要な機能を示すブロック図である。
クライアント装置BL10は、複数のサーバ装置の各々が送信する、当該サーバ装置の状態に関する時刻を含むサーバ状態情報を受信する。
クライアント装置BL10は、機能的には、選択処理部BL1と、データ管理部BL2とを備える。
選択処理部BL1は、前記サーバ状態情報に含まれる前記時刻に基づいて、前記複数のサーバ装置から、前記クライアント装置を含む複数のクライアント装置を集中管理するサーバ装置であって、かつ、各前記クライアント装置の通信対象となるサーバ装置である対象運用系サーバ装置を選択する。選択処理部BL1は、選択処理部130に相当する。
データ管理部BL2は、選択された前記サーバ装置に対し、当該サーバ装置が保持するデータの収集を行う。データ管理部BL2は、データ管理部120に相当する。
(その他の変形例)
以上、本発明に係るプリントシステムについて、各実施の形態に基づいて説明したが、本発明は、当該各実施の形態に限定されるものではない。本発明の主旨を逸脱しない範囲内で、当業者が思いつく変形を各実施の形態に施したものも、本発明に含まれる。つまり、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
また、クライアント装置100は、図で示される全ての構成要素を含まなくてもよい。すなわち、クライアント装置100は、本発明の効果を実現できる最小限の構成要素のみを含めばよい。
また、クライアント装置100に含まれる、選択処理部130およびデータ管理部120の各々の機能は、処理回路により実現されてもよい。
当該処理回路は、前記サーバ状態情報に含まれる前記時刻に基づいて、前記複数のサーバ装置から、前記クライアント装置を含む複数のクライアント装置を集中管理するサーバ装置であって、かつ、各前記クライアント装置の通信対象となるサーバ装置である対象運用系サーバ装置を選択するための回路である。
また、当該処理回路は、選択された前記サーバ装置に対し、当該サーバ装置が保持するデータの収集を行うための回路でもある。
処理回路は、専用のハードウエアであってよい。また、処理回路は、メモリに格納されるプログラムを実行するプロセッサであってもよい。当該プロセッサは、例えば、CPU(Central Processing Unit)、中央処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、DSP(Digital Signal Processor)等である。
以下においては、処理回路が専用のハードウエアである構成を、「構成Cs1」ともいう。また、以下においては、処理回路が、プロセッサである構成を、「構成Cs2」ともいう。また、以下においては、選択処理部130およびデータ管理部120の各々の機能を、ハードウエアとソフトウエアとの組み合わせにより実現する構成を、「構成Cs3」ともいう。
構成Cs1では、処理回路は、例えば、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化されたプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはこれらを組み合わせたものが該当する。選択処理部130およびデータ管理部120の機能は、それぞれ、2つの処理回路で実現されてもよい。また、選択処理部130およびデータ管理部120の全ての機能が、1つの処理回路で実現されてもよい。
なお、クライアント装置100に含まれる各構成要素の全てまたは一部を、ハードウエアで示した構成は、例えば、以下のようになる。以下においては、クライアント装置100に含まれる各構成要素の全てまたは一部を、ハードウエアで示したクライアント装置を、「クライアント装置hd10」ともいう。
図14は、クライアント装置hd10のハードウエア構成図である。図14を参照して、クライアント装置hd10は、プロセッサhd1と、メモリhd2とを備える。メモリhd2は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM、EEPROM等の、不揮発性または揮発性の半導体メモリである。また、例えば、メモリhd2は、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等である。
構成Cs2では、処理回路は、プロセッサhd1である。構成Cs2では、選択処理部130およびデータ管理部120の各々の機能は、ソフトウエア、ファームウエア、またはソフトウエアとファームウエアとの組み合わせにより実現される。ソフトウエアまたはファームウエアは、プログラムとして記述され、メモリhd2に格納される。
また、構成Cs2では、処理回路(プロセッサhd1)が、メモリhd2に記憶されたプログラムを読み出して、当該プログラムを実行することにより、選択処理部130およびデータ管理部120の各々の機能は実現される。すなわち、メモリhd2は、以下のプログラムを格納する。
当該プログラムは、前記サーバ状態情報に含まれる前記時刻に基づいて、前記複数のサーバ装置から、前記クライアント装置を含む複数のクライアント装置を集中管理するサーバ装置であって、かつ、各前記クライアント装置の通信対象となるサーバ装置である対象運用系サーバ装置を選択するステップと、選択された前記サーバ装置に対し、当該サーバ装置が保持するデータの収集を行うステップとを、処理回路(プロセッサhd1)に実行させるためのプログラムである。
また、当該プログラムは、選択処理部130およびデータ管理部120の各々が行う処理の手順、当該処理を実行する方法等をコンピュータに実行させるものでもある。
構成Cs3では、選択処理部130およびデータ管理部120の一部の機能は、専用のハードウエアで実現される。また、構成Cs3では、選択処理部130およびデータ管理部120の別の一部の機能は、ソフトウエアまたはファームウエアで実現される。
例えば、選択処理部130の機能は、処理回路がメモリに格納されたプログラムを読み出して実行することによって実現される。また、例えば、データ管理部120の機能は、専用のハードウエアとしての処理回路で実現される。
以上の構成Cs1、構成Cs2および構成Cs3のように、処理回路は、ハードウエア、ソフトウエア、ファームウエア、またはこれらの組み合わせによって、上述の各機能を実現することができる。
また、本発明は、クライアント装置100が備える特徴的な構成部の動作をステップとするサーバ選択方法として実現してもよい。また、本発明は、そのようなサーバ選択方法に含まれる各ステップをコンピュータに実行させるプログラムとして実現してもよい。また、本発明は、そのようなプログラムを格納するコンピュータ読み取り可能な記録媒体として実現されてもよい。また、当該プログラムは、インターネット等の伝送媒体を介して配信されてもよい。
また、本発明に係るサーバ選択方法は、図7の通信制御処理、図8の通信制御処理A、および、図12の通信制御処理Bのいずれかに相当する。
上記実施の形態で用いた全ての数値は、本発明を具体的に説明するための一例の数値である。すなわち、本発明は、上記実施の形態で用いた各数値に制限されない。
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。