(57)【要約】【課題】クライアント等において各情報処理装置のアドレス等を保持する必要をなくす。【解決手段】情報処理装置は、他の情報処理装置を特定する情報を記憶し、利用要求と起動要求との少なくとも一つを含む要求を受け入れ、自身が起動していない場合は、自身を起動して自身を特定する情報を要求元へ送信する。自身が起動していれば、記憶している情報で特定される情報処理装置に対して、利用要求と起動要求との少なくとも一つを含む要求を送信する。【選択図】図１
2009069915.tif 000002
【特許請求の範囲】
【請求項１】
第１から第Ｎまでの複数の情報処理装置を具備し、
第ｉ番目（ｉ＝１，２，…Ｎ）の前記情報処理装置が、それぞれ第（（ｉ）ｍｏｄ（Ｎ））＋１番目（ただしＡｍｏｄＢは、ＡをＢで除した余り）の情報処理装置を特定する情報を記憶しており、
第ｋ番目の情報処理装置が、外部からの要求を受け入れたときに、自身が起動していれば、当該第ｋ番目の情報処理装置が、記憶している情報で特定される他の情報処理装置に対して要求を伝達して、
起動していない情報処理装置が見出されたときには、当該見出した情報処理装置を起動し、
当該起動した情報処理装置を特定する情報を要求元へ順次返信する情報処理システム。
【請求項２】
外部からの要求を受け入れた情報処理装置が、他の情報処理装置へ要求を伝達したときに、当該要求をさらに他の情報処理装置から受け入れたときには、外部の要求元に対して要求に応じられない旨の情報を送信することを特徴とする請求項１記載の情報処理システム。
【請求項３】
他の情報処理装置を特定する情報を記憶する手段と、
利用要求と起動要求との少なくとも一つを含む要求を受け入れる手段と、
前記要求を受けて、自身が起動していない場合は、自身を起動して自身を特定する情報を要求元へ送信する手段と、
前記要求を受け入れたときに、自身が起動していれば、前記記憶している情報で特定される情報処理装置に対して、利用要求と起動要求との少なくとも一つを含む要求を送信する手段と、
他の情報処理装置へ要求を送信した場合に、いずれかの情報処理装置を特定する情報を受け入れて、当該受け入れた情報を起動の要求元へ送信する手段と、
を含むことを特徴とする情報処理装置。
【請求項４】
他の情報処理装置へ要求を送信した場合に、当該要求をさらに他の情報処理装置から受け入れたときには、外部の要求元に対して要求に応じられない旨の情報を送信することを特徴とする請求項３記載の情報処理装置。
【請求項５】
コンピュータを、
他の情報処理装置を特定する情報を記憶する手段と、
利用要求と起動要求との少なくとも一つを含む要求を受け入れる手段と、
前記要求を受けて、自身が起動していない場合は、自身を起動して自身を特定する情報を要求元へ送信する手段と、
前記要求を受け入れたときに、自身が起動していれば、前記記憶している情報で特定される情報処理装置に対して、利用要求と起動要求との少なくとも一つを含む要求を送信する手段と、
他の情報処理装置へ要求を送信した場合に、いずれかの情報処理装置を特定する情報を受け入れて、当該受け入れた情報を起動の要求元へ送信する手段と、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、及びプログラムに関する。
【背景技術】
【０００２】
電源が投入されていないサーバ等の情報処理装置について、遠隔からネットワーク等を介して電源の投入を行わせる技術がある。
【特許文献１】特開２００６−０２３９９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
複数のサーバのいずれかを利用させるシステムで、利用されていないサーバの電源を切断しておき、遠隔のクライアントからの要求に応じてサーバを起動するサービスもある。この場合、クライアントに各サーバの要求先アドレスを記憶させるか、少なくとも一つのサーバを代表として、この代表のサーバに他のサーバの要求先アドレスを記憶させるとともに、この代表のサーバの電源を常時投入しておく。
【０００４】
すなわち、クライアントに各サーバの要求先アドレスを記憶させる場合、クライアントは、記憶しているサーバのアドレスに対して順次要求を送信し、利用されていない（電源が投入されてない）サーバを見つける。そして、当該見つけたサーバの電源投入を行わせる。
【０００５】
また、代表のサーバを用いる場合、クライアントには、この代表のサーバのアドレスを記憶させておく。クライアントからの要求を受けた代表のサーバは、記憶している他のサーバのアドレスに対して順次要求を送信し、利用されていない（電源が投入されてない）サーバを見つける。そして、当該見つけたサーバのアドレスをクライアントに送信する。クライアントは、代表のサーバから受信したアドレスで特定されるサーバを利用する。
【０００６】
このようにクライアントまたは代表となるサーバが、各サーバのアドレスを保持している必要があった。
【課題を解決するための手段】
【０００７】
請求項１記載の発明は、情報処理システムであって、第１から第Ｎまでの複数の情報処理装置を具備し、第ｉ番目（ｉ＝１，２，…Ｎ）の前記情報処理装置が、それぞれ第（（ｉ）ｍｏｄ（Ｎ））＋１番目（ただしＡｍｏｄＢは、ＡをＢで除した余り）の情報処理装置を特定する情報を記憶しており、第ｋ番目の情報処理装置が、外部からの要求を受け入れたときに、自身が起動していれば、当該第ｋ番目の情報処理装置が、記憶している情報で特定される他の情報処理装置に対して要求を伝達して、起動していない情報処理装置が見出されたときには、当該見出した情報処理装置を起動し、当該起動した情報処理装置を特定する情報を要求元へ順次返信することとしたものである。
【０００８】
請求項２記載の発明は、請求項１記載の情報処理システムであって、外部からの要求を受け入れた情報処理装置が、他の情報処理装置へ要求を伝達したときに、当該要求をさらに他の情報処理装置から受け入れたときには、外部の要求元に対して要求に応じられない旨の情報を送信することとしたものである。
【０００９】
請求項３記載の発明は、情報処理装置であって、他の情報処理装置を特定する情報を記憶する手段と、利用要求と起動要求との少なくとも一つを含む要求を受け入れる手段と、前記要求を受けて、自身が起動していない場合は、自身を起動して自身を特定する情報を要求元へ送信する手段と、前記要求を受け入れたときに、自身が起動していれば、前記記憶している情報で特定される情報処理装置に対して、利用要求と起動要求との少なくとも一つを含む要求を送信する手段と、他の情報処理装置へ要求を送信した場合に、いずれかの情報処理装置を特定する情報を受け入れて、当該受け入れた情報を起動の要求元へ送信する手段と、を含むこととしたものである。
【００１０】
請求項４記載の発明は、請求項３記載の情報処理装置であって、他の情報処理装置へ要求を送信した場合に、当該要求をさらに他の情報処理装置から受け入れたときには、外部の要求元に対して要求に応じられない旨の情報を送信することとしたものである。
【００１１】
請求項５記載の発明は、プログラムであって、コンピュータを、他の情報処理装置を特定する情報を記憶する手段と、利用要求と起動要求との少なくとも一つを含む要求を受け入れる手段と、前記要求を受けて、自身が起動していない場合は、自身を起動して自身を特定する情報を要求元へ送信する手段と、前記要求を受け入れたときに、自身が起動していれば、前記記憶している情報で特定される情報処理装置に対して、利用要求と起動要求との少なくとも一つを含む要求を送信する手段と、他の情報処理装置へ要求を送信した場合に、いずれかの情報処理装置を特定する情報を受け入れて、当該受け入れた情報を起動の要求元へ送信する手段と、として機能させることとしたものである。
【発明の効果】
【００１２】
請求項１，３，５記載の発明によると、クライアントや各サーバが、各サーバのアドレスを記憶しておく必要がなくなる。
【００１３】
請求項２，４記載の発明によると、サーバが利用できない場合に、要求に応じられない旨の情報を送信できる。
【発明を実施するための最良の形態】
【００１４】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理システムは、図１に例示するように、複数のサーバ１０ａ，１０ｂ，…１０Ｎを含んで構成されている。これらのサーバ１０は、ネットワーク等の通信回線を介して互いに通信可能に接続されている。また、サーバ１０は、クライアント２０と通信可能に接続される。
【００１５】
各サーバ１０は、図２に例示するように、制御部１１と、記憶部１２と、通信部１３と、電源部１４とを含んで構成されている。
【００１６】
ここに制御部１１は、ＣＰＵ（Central Processing Unit）等のプログラム制御デバイスなどであり、記憶部１２に格納されているプログラムに従って動作する。この制御部１１は、クライアント２０（以下、要求元クライアントと呼ぶ）からの利用要求を受けると、当該利用要求に応じられるか否かを判断する。この判断は例えば他のクライアント２０から現在利用されているか否かによって行えばよい。つまり、他のクライアント２０から現在利用されている場合は、利用要求に応じられないと判断する。また他のクライアント２０から現在利用されていなければ利用要求に応じられると判断する。
【００１７】
制御部１１は、利用要求に応じられないと判断した場合、記憶部１２に格納されている他のサーバ１０のアドレスを参照し、当該サーバ１０が起動しているか否かを調べる。そして起動していれば要求元クライアント２０から受けた利用要求を送信する。また、起動していなければ、起動要求と要求元クライアント２０から受けた利用要求とを送信する。この制御部１１の動作については後に詳しく述べる。
【００１８】
記憶部１２は、ＲＡＭ（Random Access Memory）等の記憶素子を含んで構成される。また、この記憶部１２は、ハードディスク等のデバイスを含んでもよい。この記憶部１２には、制御部１１によって実行されるプログラムが保持される。このプログラムは、例えばＤＶＤ−ＲＯＭ等、コンピュータ可読な記録媒体に格納されて提供されたものであってもよい。この記憶部１２は、さらに他のサーバ１０のアドレスを少なくとも一つ保持する。
【００１９】
通信部１３は、ネットワークインタフェース等であり、ネットワーク等の通信回線を介して他のサーバ１０や、クライアント２０との間で各種要求や情報の送受を行う。また、この通信部１３は、起動要求を受けると、電源部１４に対して電源の投入を指示する。
【００２０】
電源部１４は、各部へ電源を供給する。この電源部１４は、電源が投入されていないときに、通信部１３から電源の投入の指示を受けると、当該指示に応答して各部への電源供給を開始する。
【００２１】
本実施の形態の例では、ｉ番目のサーバ１０ｉの記憶部１２には、他のサーバ１０のアドレスとして、第（（ｉ）ｍｏｄ（Ｎ））＋１番目（ただしＡｍｏｄＢは、ＡをＢで除した余り、Ｎはサーバ１０の総数）のサーバ１０のアドレスが格納されているものとする。つまり、１番目のサーバ１０ａは、２番目のサーバ１０ｂのアドレスを記憶している。また、２番目のサーバ１０ｂは、３番目のサーバ１０ｃのアドレスを記憶している。そしてＮ番目のサーバ１０Ｎは、１番目のサーバ１０ａのアドレスを記憶している。こうして論理的には、本実施の形態の例に係るサーバ１０は、図３に示すように、リング状のデイジーチェーンネットワークを形成している。
【００２２】
クライアント２０は、いずれかのサーバ１０のアドレスを保持している。クライアント２０が複数ある場合、各クライアント２０は必ずしも同じサーバ１０のアドレスを保持している必要はない。互いに異なるサーバ１０のアドレスをそれぞれ保持している複数のクライアント２０があってもよい。
【００２３】
クライアント２０は、利用者の指示等によってサーバ１０の利用をするべきこととなると、保持しているサーバ１０のアドレスを参照して、当該サーバ１０に対して利用要求を送信する。ここで利用要求に対する応答がなければ、起動要求と利用要求とを送信する。
【００２４】
なお、この起動要求は、ＷＯＬ（Wake On LAN）技術で広く知られているマジックパケットで構わない。このマジックパケットは、任意のＵＤＰ（User Datagram Protocol）ポート宛てのＵＤＰデータグラムであり、ＩＰ（Internet Protocol）ヘッダに続いて６バイトの定数値０ｘＦＦＦＦＦＦＦＦＦＦＦＦ（０ｘは以下の値が１６進数であることを示す）と、対象となるサーバ１０のアドレス（ここでは６バイトのＭＡＣ（Media Access Control）アドレス）を１６回連続させた、合計１０２バイトのＵＤＰデータグラムである。
【００２５】
次に、本実施の形態の制御部１１の動作について説明する。なお以下の例では、各サーバ１０がそれぞれ一つのクライアント２０からの利用要求に応答するとして説明する。つまり、既にいずれかのクライアント２０に対してサービスを行っているサーバ１０は、他のクライアント２０からの利用要求には応答しないものとする。
【００２６】
また制御部１１は、起動した状態にあるときに利用要求を受信すると、受信したことを確認する信号（ＡＣＫ（Acknowledge）信号等）を、利用要求の送信元へ応答するものとする。
【００２７】
制御部１１は、利用要求を受信したときに、図４に示す処理を開始し、受信した利用要求に応答可能であるか否かを調べる（Ｓ１）。ここでは、既にいずれかのクライアント２０によって利用されているか否かを調べる。ここで、利用要求に応答可能であれば、利用要求の要求元がクライアント２０であるか否かを調べる（Ｓ２）。この処理Ｓ２において要求元がクライアント２０であれば、つまり、自己がクライアント２０からの直接の要求受入元であれば、制御部１１は、自己を特定する情報を要求元のクライアント２０へ送信する（Ｓ３）。そして、制御部１１は、クライアント２０に対するサービスの提供処理を開始する（Ｓ４）。
【００２８】
なお、処理Ｓ２において、利用要求の要求元がクライアント２０でない場合も、処理Ｓ４に移行して処理を続ける。
【００２９】
一方、制御部１１は、処理Ｓ１において、利用要求に応答可能でない場合は、利用要求の要求元がいずれかのクライアント２０であるか否かを調べ（Ｓ５）、要求元がいずれかのクライアント２０であれば、利用要求に対して、自己を特定する情報（ネットワークアドレスなど）を付加する（Ｓ６）。なお制御部１１は、このとき、要求元のクライアント２０を特定する情報を利用要求に含めてもよい。
【００３０】
そして制御部１１は、記憶部１２に保持されている他のサーバ１０のアドレス宛に、当該利用要求を送信する（Ｓ７）。
【００３１】
制御部１１は、利用要求に対する応答（例えばＡＣＫ信号などの受信）が予め定めた時間内にあるか否かを調べ（Ｓ８）、応答があれば処理を終了する。また、処理Ｓ８において応答がなければ、記憶部１２に保持されている他のサーバ１０のアドレス宛に、起動要求と利用要求とを送信し（Ｓ９）、また、利用要求の要求元に対し、利用を受け入れ可能なサーバ１０を特定する情報（ここでは起動要求先のサーバ１０を特定する情報（アドレスなど））を送信して（Ｓ１０）、処理を終了する。なお、ここで制御部１１は、利用を受け入れ可能なサーバ１０を特定する情報とともに、利用要求に含まれていた、クライアント２０から要求を直接受け入れたサーバ１０（要求受入元）を特定する情報と、さらに要求元であるクライアント２０を特定する情報とを、利用要求の送信元へ送信してもよい。また利用要求に、要求受入元を特定する情報が含まれていれば、当該要求受入元へ起動要求先のサーバ１０を特定する情報を送信してもよい。
【００３２】
また制御部１１は、処理Ｓ５において、利用要求の要求元がいずれかのクライアント２０でなければ、受信した利用要求に自己を特定する情報が付加されているか否かを調べる（Ｓ１１）。ここで、自己を付加する情報が含まれていなければ、処理Ｓ７に移行して処理を続ける。
【００３３】
さらに処理Ｓ１１において、受信した利用要求に自己を特定する情報が付加されていた場合は、当該利用要求の送信元であるクライアント２０に対して、要求に応じられないことを表す情報（エラー情報）を送信する（Ｓ１２）。
【００３４】
このように、外部のクライアント２０から受け入れた要求を他のサーバ１０へ伝達したときに、当該要求をさらに他のサーバ１０から受け入れた場合は、外部の要求元であるクライアント２０に対して要求に応じられない旨の情報を送信することになる。
【００３５】
また制御部１１は、他のサーバ１０から、起動された（つまり利用可能な）サーバ１０を特定する情報とともに、要求受入元を特定する情報や要求元クライアント２０を特定する情報を受信すると、当該要求受入元を特定する情報により、自己が特定されているか否かを調べ、自己が特定されている場合は、利用可能なサーバ１０を特定する情報を、要求元クライアント２０へ送信する。また、自己が特定されていなければ、利用要求の要求元である他のサーバ１０に対して、当該利用可能なサーバ１０を特定する情報を送信する。
【００３６】
なお、ここでは起動要求を送信したサーバ１０が、起動要求先のサーバ１０を特定する情報を送信しているが、起動されたサーバ１０が、さらに利用要求に応答して自己を特定する情報を送信するようにしてもよい。
【００３７】
本実施の形態のシステムは、以上のように構成されており、次のように動作する。以下では説明を簡便にするため、サーバ１０は、Ｎ＝３台（サーバ１０ａ，１０ｂ，１０ｃ）あるものとする。また第１番目のサーバ１０ａには、（１mod３）＋１＝１＋１＝２番目のサーバ１０ｂを特定する情報（ＭＡＣアドレス）が格納されている。同様に、２番目のサーバ１０ｂには、（２ mod ３）＋１＝２＋１＝３番目のサーバ１０ｃを特定する情報が格納されている。さらに、３番目のサーバ１０ｃには、（３ mod ３）＋１＝０＋１＝１番目のサーバ１０ａを特定する情報が格納されている。このように本実施の形態のシステムにおいては、各サーバ１０には、サーバ１０の台数Ｎよりも少数のサーバ１０を特定する情報が保持される。また、このように各サーバ１０が１つのサーバ１０を特定する情報を保持する場合は、各サーバ１０が仮想的にループ状に接続されていることとなる。
【００３８】
さて、まず第１番目のサーバ１０ａが起動しておらず、クライアント２０がサーバ１０ａのアドレスを保持しているとする。利用者の指示等によってサーバ１０を利用することとなったクライアント２０は、保持しているアドレスに対して利用要求を送信する。ところがサーバ１０ａが起動していないので一定の期間に亘って応答が得られない。そこでクライアント２０は、図５（ａ）に示すように、サーバ１０ａに対して起動要求と利用要求とを送信する。
【００３９】
サーバ１０ａは、起動要求を受けて起動し、受信した利用要求に応じ、自己のアドレスを要求元であるクライアント２０へ送信し、クライアント２０の要求に応じた処理を開始する。以下、クライアント２０はサーバ１０ａを利用して処理を行うこととなる。なお、この場合は、サーバ１０ｂ，１０ｃが起動しているか否かは問われない。
【００４０】
次に、サーバ１０ｃは起動していないが、サーバ１０ａ、１０ｂが起動しており、既に他のクライアント２０に対してサービスを提供している場合を例として説明する（図５（ｂ））。この場合、クライアント２０からの利用要求に対してサーバ１０ａは応答はするが、利用要求に応えることができないので、利用要求に自己のアドレスを付して、記憶しているアドレスで特定される第２番目のサーバ１０ｂへ送信する。ところが、サーバ１０ｂもまた利用要求に応えることができないので、記憶しているアドレスで特定される第３番目のサーバ１０ｃに利用要求を送信する。
【００４１】
ここではサーバ１０ｃは当初起動していないので、一定の時間に亘って応答がない。そこでサーバ１０ｂは、サーバ１０ｃに対して起動要求と利用要求とを送信する。サーバ１０ｃは、起動要求を受けて起動する。このときサーバ１０ｂは、サーバ１０ｃを特定する情報を、利用要求の要求元であるサーバ１０ａに送出する。そしてサーバ１０ａもまた、利用要求の要求元であるクライアント２０へ、当該サーバ１０ｃを特定する情報を送信する。
【００４２】
サーバ１０ｃは、起動後、利用要求に応じて、クライアント２０に対するサービス提供のための処理を開始する。クライアント２０では、サーバ１０ａから受信した情報で特定されるサーバ１０ｃに対してサービスの提供を要求して、処理を行う。
【００４３】
さらに図５（ｃ）に示すように、サーバ１０ａ，１０ｂ，１０ｃのいずれもが起動しており、既に他のクライアント２０に対してサービスを提供している場合について説明する。
【００４４】
この場合、クライアント２０からの利用要求に対してサーバ１０ａは応答はするが、利用要求に応えることができないので、利用要求に自己のアドレスを付して、記憶しているアドレスで特定される第２番目のサーバ１０ｂへ送信する。ところが、サーバ１０ｂもまた利用要求に応えることができないので、記憶しているアドレスで特定される第３番目のサーバ１０ｃに利用要求を送信する。
【００４５】
さらにサーバ１０ｃもまた利用要求に応えることができないので、記憶しているアドレスで特定される第１番目のサーバ１０ａに利用要求を送信する。サーバ１０ａでは、サーバ１０ｃから受け入れた利用要求に、自己のアドレスが含まれていることを検出し、その要求元であるクライアント２０に対してエラーを送信する。
【００４６】
またここまでの説明では、各サーバ１０がそれぞれ一つのクライアント２０からの利用を受けている間は、他のクライアント２０からの要求を受け入れないようにしているが、これに限られない。複数のクライアント２０に対するサービスを可能とするときには、サービスが可能であると判断すれば、自己を特定する情報（ネットワークアドレスなど）を、利用要求の要求元へ送信すればよい。
【００４７】
このように本実施の形態では、クライアントは、少なくとも一つサーバのアドレスを保持していればよく、また、代表となるサーバを設けておく必要もない。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施の形態に係る情報処理システムの例を表す構成ブロック図である。
【図２】本発明の実施の形態に係る情報処理装置であるサーバの構成例を表すブロック図である。
【図３】本発明の実施の形態に係る情報処理システムにおけるサーバの仮想的な接続状態例を表す説明図である。
【図４】本発明の実施の形態に係る情報処理装置の処理の例を表すフローチャート図である。
【図５】本発明の実施の形態に係る情報処理システムの動作例を表す説明図である。
【符号の説明】
【００４９】
１０  サーバ、１１  制御部、１２  記憶部、１３  通信部、１４  電源部、２０  クライアント。
【図１】
2009069915.tif 000003
【図２】
2009069915.tif 000004
【図３】
2009069915.tif 000005
【図４】
2009069915.tif 000006
【図５】
2009069915.tif 000007