説明

情報処理システム、情報処理装置、及びプログラム

【課題】クライアント等において各情報処理装置のアドレス等を保持する必要をなくす。
【解決手段】情報処理装置は、他の情報処理装置を特定する情報を記憶し、利用要求と起動要求との少なくとも一つを含む要求を受け入れ、自身が起動していない場合は、自身を起動して自身を特定する情報を要求元へ送信する。自身が起動していれば、記憶している情報で特定される情報処理装置に対して、利用要求と起動要求との少なくとも一つを含む要求を送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理装置、及びプログラムに関する。
【背景技術】
【0002】
電源が投入されていないサーバ等の情報処理装置について、遠隔からネットワーク等を介して電源の投入を行わせる技術がある。
【特許文献1】特開2006−023990号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
複数のサーバのいずれかを利用させるシステムで、利用されていないサーバの電源を切断しておき、遠隔のクライアントからの要求に応じてサーバを起動するサービスもある。この場合、クライアントに各サーバの要求先アドレスを記憶させるか、少なくとも一つのサーバを代表として、この代表のサーバに他のサーバの要求先アドレスを記憶させるとともに、この代表のサーバの電源を常時投入しておく。
【0004】
すなわち、クライアントに各サーバの要求先アドレスを記憶させる場合、クライアントは、記憶しているサーバのアドレスに対して順次要求を送信し、利用されていない(電源が投入されてない)サーバを見つける。そして、当該見つけたサーバの電源投入を行わせる。
【0005】
また、代表のサーバを用いる場合、クライアントには、この代表のサーバのアドレスを記憶させておく。クライアントからの要求を受けた代表のサーバは、記憶している他のサーバのアドレスに対して順次要求を送信し、利用されていない(電源が投入されてない)サーバを見つける。そして、当該見つけたサーバのアドレスをクライアントに送信する。クライアントは、代表のサーバから受信したアドレスで特定されるサーバを利用する。
【0006】
このようにクライアントまたは代表となるサーバが、各サーバのアドレスを保持している必要があった。
【課題を解決するための手段】
【0007】
請求項1記載の発明は、情報処理システムであって、第1から第Nまでの複数の情報処理装置を具備し、第i番目(i=1,2,…N)の前記情報処理装置が、それぞれ第((i)mod(N))+1番目(ただしAmodBは、AをBで除した余り)の情報処理装置を特定する情報を記憶しており、第k番目の情報処理装置が、外部からの要求を受け入れたときに、自身が起動していれば、当該第k番目の情報処理装置が、記憶している情報で特定される他の情報処理装置に対して要求を伝達して、起動していない情報処理装置が見出されたときには、当該見出した情報処理装置を起動し、当該起動した情報処理装置を特定する情報を要求元へ順次返信することとしたものである。
【0008】
請求項2記載の発明は、請求項1記載の情報処理システムであって、外部からの要求を受け入れた情報処理装置が、他の情報処理装置へ要求を伝達したときに、当該要求をさらに他の情報処理装置から受け入れたときには、外部の要求元に対して要求に応じられない旨の情報を送信することとしたものである。
【0009】
請求項3記載の発明は、情報処理装置であって、他の情報処理装置を特定する情報を記憶する手段と、利用要求と起動要求との少なくとも一つを含む要求を受け入れる手段と、前記要求を受けて、自身が起動していない場合は、自身を起動して自身を特定する情報を要求元へ送信する手段と、前記要求を受け入れたときに、自身が起動していれば、前記記憶している情報で特定される情報処理装置に対して、利用要求と起動要求との少なくとも一つを含む要求を送信する手段と、他の情報処理装置へ要求を送信した場合に、いずれかの情報処理装置を特定する情報を受け入れて、当該受け入れた情報を起動の要求元へ送信する手段と、を含むこととしたものである。
【0010】
請求項4記載の発明は、請求項3記載の情報処理装置であって、他の情報処理装置へ要求を送信した場合に、当該要求をさらに他の情報処理装置から受け入れたときには、外部の要求元に対して要求に応じられない旨の情報を送信することとしたものである。
【0011】
請求項5記載の発明は、プログラムであって、コンピュータを、他の情報処理装置を特定する情報を記憶する手段と、利用要求と起動要求との少なくとも一つを含む要求を受け入れる手段と、前記要求を受けて、自身が起動していない場合は、自身を起動して自身を特定する情報を要求元へ送信する手段と、前記要求を受け入れたときに、自身が起動していれば、前記記憶している情報で特定される情報処理装置に対して、利用要求と起動要求との少なくとも一つを含む要求を送信する手段と、他の情報処理装置へ要求を送信した場合に、いずれかの情報処理装置を特定する情報を受け入れて、当該受け入れた情報を起動の要求元へ送信する手段と、として機能させることとしたものである。
【発明の効果】
【0012】
請求項1,3,5記載の発明によると、クライアントや各サーバが、各サーバのアドレスを記憶しておく必要がなくなる。
【0013】
請求項2,4記載の発明によると、サーバが利用できない場合に、要求に応じられない旨の情報を送信できる。
【発明を実施するための最良の形態】
【0014】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理システムは、図1に例示するように、複数のサーバ10a,10b,…10Nを含んで構成されている。これらのサーバ10は、ネットワーク等の通信回線を介して互いに通信可能に接続されている。また、サーバ10は、クライアント20と通信可能に接続される。
【0015】
各サーバ10は、図2に例示するように、制御部11と、記憶部12と、通信部13と、電源部14とを含んで構成されている。
【0016】
ここに制御部11は、CPU(Central Processing Unit)等のプログラム制御デバイスなどであり、記憶部12に格納されているプログラムに従って動作する。この制御部11は、クライアント20(以下、要求元クライアントと呼ぶ)からの利用要求を受けると、当該利用要求に応じられるか否かを判断する。この判断は例えば他のクライアント20から現在利用されているか否かによって行えばよい。つまり、他のクライアント20から現在利用されている場合は、利用要求に応じられないと判断する。また他のクライアント20から現在利用されていなければ利用要求に応じられると判断する。
【0017】
制御部11は、利用要求に応じられないと判断した場合、記憶部12に格納されている他のサーバ10のアドレスを参照し、当該サーバ10が起動しているか否かを調べる。そして起動していれば要求元クライアント20から受けた利用要求を送信する。また、起動していなければ、起動要求と要求元クライアント20から受けた利用要求とを送信する。この制御部11の動作については後に詳しく述べる。
【0018】
記憶部12は、RAM(Random Access Memory)等の記憶素子を含んで構成される。また、この記憶部12は、ハードディスク等のデバイスを含んでもよい。この記憶部12には、制御部11によって実行されるプログラムが保持される。このプログラムは、例えばDVD−ROM等、コンピュータ可読な記録媒体に格納されて提供されたものであってもよい。この記憶部12は、さらに他のサーバ10のアドレスを少なくとも一つ保持する。
【0019】
通信部13は、ネットワークインタフェース等であり、ネットワーク等の通信回線を介して他のサーバ10や、クライアント20との間で各種要求や情報の送受を行う。また、この通信部13は、起動要求を受けると、電源部14に対して電源の投入を指示する。
【0020】
電源部14は、各部へ電源を供給する。この電源部14は、電源が投入されていないときに、通信部13から電源の投入の指示を受けると、当該指示に応答して各部への電源供給を開始する。
【0021】
本実施の形態の例では、i番目のサーバ10iの記憶部12には、他のサーバ10のアドレスとして、第((i)mod(N))+1番目(ただしAmodBは、AをBで除した余り、Nはサーバ10の総数)のサーバ10のアドレスが格納されているものとする。つまり、1番目のサーバ10aは、2番目のサーバ10bのアドレスを記憶している。また、2番目のサーバ10bは、3番目のサーバ10cのアドレスを記憶している。そしてN番目のサーバ10Nは、1番目のサーバ10aのアドレスを記憶している。こうして論理的には、本実施の形態の例に係るサーバ10は、図3に示すように、リング状のデイジーチェーンネットワークを形成している。
【0022】
クライアント20は、いずれかのサーバ10のアドレスを保持している。クライアント20が複数ある場合、各クライアント20は必ずしも同じサーバ10のアドレスを保持している必要はない。互いに異なるサーバ10のアドレスをそれぞれ保持している複数のクライアント20があってもよい。
【0023】
クライアント20は、利用者の指示等によってサーバ10の利用をするべきこととなると、保持しているサーバ10のアドレスを参照して、当該サーバ10に対して利用要求を送信する。ここで利用要求に対する応答がなければ、起動要求と利用要求とを送信する。
【0024】
なお、この起動要求は、WOL(Wake On LAN)技術で広く知られているマジックパケットで構わない。このマジックパケットは、任意のUDP(User Datagram Protocol)ポート宛てのUDPデータグラムであり、IP(Internet Protocol)ヘッダに続いて6バイトの定数値0xFFFFFFFFFFFF(0xは以下の値が16進数であることを示す)と、対象となるサーバ10のアドレス(ここでは6バイトのMAC(Media Access Control)アドレス)を16回連続させた、合計102バイトのUDPデータグラムである。
【0025】
次に、本実施の形態の制御部11の動作について説明する。なお以下の例では、各サーバ10がそれぞれ一つのクライアント20からの利用要求に応答するとして説明する。つまり、既にいずれかのクライアント20に対してサービスを行っているサーバ10は、他のクライアント20からの利用要求には応答しないものとする。
【0026】
また制御部11は、起動した状態にあるときに利用要求を受信すると、受信したことを確認する信号(ACK(Acknowledge)信号等)を、利用要求の送信元へ応答するものとする。
【0027】
制御部11は、利用要求を受信したときに、図4に示す処理を開始し、受信した利用要求に応答可能であるか否かを調べる(S1)。ここでは、既にいずれかのクライアント20によって利用されているか否かを調べる。ここで、利用要求に応答可能であれば、利用要求の要求元がクライアント20であるか否かを調べる(S2)。この処理S2において要求元がクライアント20であれば、つまり、自己がクライアント20からの直接の要求受入元であれば、制御部11は、自己を特定する情報を要求元のクライアント20へ送信する(S3)。そして、制御部11は、クライアント20に対するサービスの提供処理を開始する(S4)。
【0028】
なお、処理S2において、利用要求の要求元がクライアント20でない場合も、処理S4に移行して処理を続ける。
【0029】
一方、制御部11は、処理S1において、利用要求に応答可能でない場合は、利用要求の要求元がいずれかのクライアント20であるか否かを調べ(S5)、要求元がいずれかのクライアント20であれば、利用要求に対して、自己を特定する情報(ネットワークアドレスなど)を付加する(S6)。なお制御部11は、このとき、要求元のクライアント20を特定する情報を利用要求に含めてもよい。
【0030】
そして制御部11は、記憶部12に保持されている他のサーバ10のアドレス宛に、当該利用要求を送信する(S7)。
【0031】
制御部11は、利用要求に対する応答(例えばACK信号などの受信)が予め定めた時間内にあるか否かを調べ(S8)、応答があれば処理を終了する。また、処理S8において応答がなければ、記憶部12に保持されている他のサーバ10のアドレス宛に、起動要求と利用要求とを送信し(S9)、また、利用要求の要求元に対し、利用を受け入れ可能なサーバ10を特定する情報(ここでは起動要求先のサーバ10を特定する情報(アドレスなど))を送信して(S10)、処理を終了する。なお、ここで制御部11は、利用を受け入れ可能なサーバ10を特定する情報とともに、利用要求に含まれていた、クライアント20から要求を直接受け入れたサーバ10(要求受入元)を特定する情報と、さらに要求元であるクライアント20を特定する情報とを、利用要求の送信元へ送信してもよい。また利用要求に、要求受入元を特定する情報が含まれていれば、当該要求受入元へ起動要求先のサーバ10を特定する情報を送信してもよい。
【0032】
また制御部11は、処理S5において、利用要求の要求元がいずれかのクライアント20でなければ、受信した利用要求に自己を特定する情報が付加されているか否かを調べる(S11)。ここで、自己を付加する情報が含まれていなければ、処理S7に移行して処理を続ける。
【0033】
さらに処理S11において、受信した利用要求に自己を特定する情報が付加されていた場合は、当該利用要求の送信元であるクライアント20に対して、要求に応じられないことを表す情報(エラー情報)を送信する(S12)。
【0034】
このように、外部のクライアント20から受け入れた要求を他のサーバ10へ伝達したときに、当該要求をさらに他のサーバ10から受け入れた場合は、外部の要求元であるクライアント20に対して要求に応じられない旨の情報を送信することになる。
【0035】
また制御部11は、他のサーバ10から、起動された(つまり利用可能な)サーバ10を特定する情報とともに、要求受入元を特定する情報や要求元クライアント20を特定する情報を受信すると、当該要求受入元を特定する情報により、自己が特定されているか否かを調べ、自己が特定されている場合は、利用可能なサーバ10を特定する情報を、要求元クライアント20へ送信する。また、自己が特定されていなければ、利用要求の要求元である他のサーバ10に対して、当該利用可能なサーバ10を特定する情報を送信する。
【0036】
なお、ここでは起動要求を送信したサーバ10が、起動要求先のサーバ10を特定する情報を送信しているが、起動されたサーバ10が、さらに利用要求に応答して自己を特定する情報を送信するようにしてもよい。
【0037】
本実施の形態のシステムは、以上のように構成されており、次のように動作する。以下では説明を簡便にするため、サーバ10は、N=3台(サーバ10a,10b,10c)あるものとする。また第1番目のサーバ10aには、(1mod3)+1=1+1=2番目のサーバ10bを特定する情報(MACアドレス)が格納されている。同様に、2番目のサーバ10bには、(2 mod 3)+1=2+1=3番目のサーバ10cを特定する情報が格納されている。さらに、3番目のサーバ10cには、(3 mod 3)+1=0+1=1番目のサーバ10aを特定する情報が格納されている。このように本実施の形態のシステムにおいては、各サーバ10には、サーバ10の台数Nよりも少数のサーバ10を特定する情報が保持される。また、このように各サーバ10が1つのサーバ10を特定する情報を保持する場合は、各サーバ10が仮想的にループ状に接続されていることとなる。
【0038】
さて、まず第1番目のサーバ10aが起動しておらず、クライアント20がサーバ10aのアドレスを保持しているとする。利用者の指示等によってサーバ10を利用することとなったクライアント20は、保持しているアドレスに対して利用要求を送信する。ところがサーバ10aが起動していないので一定の期間に亘って応答が得られない。そこでクライアント20は、図5(a)に示すように、サーバ10aに対して起動要求と利用要求とを送信する。
【0039】
サーバ10aは、起動要求を受けて起動し、受信した利用要求に応じ、自己のアドレスを要求元であるクライアント20へ送信し、クライアント20の要求に応じた処理を開始する。以下、クライアント20はサーバ10aを利用して処理を行うこととなる。なお、この場合は、サーバ10b,10cが起動しているか否かは問われない。
【0040】
次に、サーバ10cは起動していないが、サーバ10a、10bが起動しており、既に他のクライアント20に対してサービスを提供している場合を例として説明する(図5(b))。この場合、クライアント20からの利用要求に対してサーバ10aは応答はするが、利用要求に応えることができないので、利用要求に自己のアドレスを付して、記憶しているアドレスで特定される第2番目のサーバ10bへ送信する。ところが、サーバ10bもまた利用要求に応えることができないので、記憶しているアドレスで特定される第3番目のサーバ10cに利用要求を送信する。
【0041】
ここではサーバ10cは当初起動していないので、一定の時間に亘って応答がない。そこでサーバ10bは、サーバ10cに対して起動要求と利用要求とを送信する。サーバ10cは、起動要求を受けて起動する。このときサーバ10bは、サーバ10cを特定する情報を、利用要求の要求元であるサーバ10aに送出する。そしてサーバ10aもまた、利用要求の要求元であるクライアント20へ、当該サーバ10cを特定する情報を送信する。
【0042】
サーバ10cは、起動後、利用要求に応じて、クライアント20に対するサービス提供のための処理を開始する。クライアント20では、サーバ10aから受信した情報で特定されるサーバ10cに対してサービスの提供を要求して、処理を行う。
【0043】
さらに図5(c)に示すように、サーバ10a,10b,10cのいずれもが起動しており、既に他のクライアント20に対してサービスを提供している場合について説明する。
【0044】
この場合、クライアント20からの利用要求に対してサーバ10aは応答はするが、利用要求に応えることができないので、利用要求に自己のアドレスを付して、記憶しているアドレスで特定される第2番目のサーバ10bへ送信する。ところが、サーバ10bもまた利用要求に応えることができないので、記憶しているアドレスで特定される第3番目のサーバ10cに利用要求を送信する。
【0045】
さらにサーバ10cもまた利用要求に応えることができないので、記憶しているアドレスで特定される第1番目のサーバ10aに利用要求を送信する。サーバ10aでは、サーバ10cから受け入れた利用要求に、自己のアドレスが含まれていることを検出し、その要求元であるクライアント20に対してエラーを送信する。
【0046】
またここまでの説明では、各サーバ10がそれぞれ一つのクライアント20からの利用を受けている間は、他のクライアント20からの要求を受け入れないようにしているが、これに限られない。複数のクライアント20に対するサービスを可能とするときには、サービスが可能であると判断すれば、自己を特定する情報(ネットワークアドレスなど)を、利用要求の要求元へ送信すればよい。
【0047】
このように本実施の形態では、クライアントは、少なくとも一つサーバのアドレスを保持していればよく、また、代表となるサーバを設けておく必要もない。
【図面の簡単な説明】
【0048】
【図1】本発明の実施の形態に係る情報処理システムの例を表す構成ブロック図である。
【図2】本発明の実施の形態に係る情報処理装置であるサーバの構成例を表すブロック図である。
【図3】本発明の実施の形態に係る情報処理システムにおけるサーバの仮想的な接続状態例を表す説明図である。
【図4】本発明の実施の形態に係る情報処理装置の処理の例を表すフローチャート図である。
【図5】本発明の実施の形態に係る情報処理システムの動作例を表す説明図である。
【符号の説明】
【0049】
10 サーバ、11 制御部、12 記憶部、13 通信部、14 電源部、20 クライアント。

【特許請求の範囲】
【請求項1】
第1から第Nまでの複数の情報処理装置を具備し、
第i番目(i=1,2,…N)の前記情報処理装置が、それぞれ第((i)mod(N))+1番目(ただしAmodBは、AをBで除した余り)の情報処理装置を特定する情報を記憶しており、
第k番目の情報処理装置が、外部からの要求を受け入れたときに、自身が起動していれば、当該第k番目の情報処理装置が、記憶している情報で特定される他の情報処理装置に対して要求を伝達して、
起動していない情報処理装置が見出されたときには、当該見出した情報処理装置を起動し、
当該起動した情報処理装置を特定する情報を要求元へ順次返信する情報処理システム。
【請求項2】
外部からの要求を受け入れた情報処理装置が、他の情報処理装置へ要求を伝達したときに、当該要求をさらに他の情報処理装置から受け入れたときには、外部の要求元に対して要求に応じられない旨の情報を送信することを特徴とする請求項1記載の情報処理システム。
【請求項3】
他の情報処理装置を特定する情報を記憶する手段と、
利用要求と起動要求との少なくとも一つを含む要求を受け入れる手段と、
前記要求を受けて、自身が起動していない場合は、自身を起動して自身を特定する情報を要求元へ送信する手段と、
前記要求を受け入れたときに、自身が起動していれば、前記記憶している情報で特定される情報処理装置に対して、利用要求と起動要求との少なくとも一つを含む要求を送信する手段と、
他の情報処理装置へ要求を送信した場合に、いずれかの情報処理装置を特定する情報を受け入れて、当該受け入れた情報を起動の要求元へ送信する手段と、
を含むことを特徴とする情報処理装置。
【請求項4】
他の情報処理装置へ要求を送信した場合に、当該要求をさらに他の情報処理装置から受け入れたときには、外部の要求元に対して要求に応じられない旨の情報を送信することを特徴とする請求項3記載の情報処理装置。
【請求項5】
コンピュータを、
他の情報処理装置を特定する情報を記憶する手段と、
利用要求と起動要求との少なくとも一つを含む要求を受け入れる手段と、
前記要求を受けて、自身が起動していない場合は、自身を起動して自身を特定する情報を要求元へ送信する手段と、
前記要求を受け入れたときに、自身が起動していれば、前記記憶している情報で特定される情報処理装置に対して、利用要求と起動要求との少なくとも一つを含む要求を送信する手段と、
他の情報処理装置へ要求を送信した場合に、いずれかの情報処理装置を特定する情報を受け入れて、当該受け入れた情報を起動の要求元へ送信する手段と、
として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2009−69915(P2009−69915A)
【公開日】平成21年4月2日(2009.4.2)
【国際特許分類】
【出願番号】特願2007−234680(P2007−234680)
【出願日】平成19年9月10日(2007.9.10)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】