(57)【要約】【課題】複数台の情報処理装置によって構成されるネットワークにおいて処理の分散を図る。【解決手段】ネットワーク１を構成する複数台のパーソナルコンピュータＴＲのうちの一部のパーソナルコンピュータＴＲに対して、所定の処理を実行するのを休止する休止設定を行っておき、休止設定が現在なされているパーソナルコンピュータＴＲにおいて所定の要件が満たされた場合に、そのパーソナルコンピュータＴＲに現在なされている休止設定を解除する第一の処理と、休止設定が現在なされていないいずれかのパーソナルコンピュータＴＲに対して休止設定を行う第二の処理と、を実行する。【選択図】図１
2007334800.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを構成する複数台の情報処理装置のうちの一部の情報処理装置に対して、所定の処理を実行するのを休止する設定を行っておき、
前記設定が現在なされている情報処理装置において所定の要件が満たされた場合に、当該情報処理装置に現在なされている前記設定を解除する第一の処理と、前記設定が現在なされていないいずれかの情報処理装置に対して前記設定を行う第二の処理と、を実行する、
ことを特徴とする、ネットワークを構成する情報処理装置の管理方法。
【請求項２】
前記設定が現在なされている情報処理装置に対して前記所定の処理を実行すべき旨の実行依頼がなされた場合は、当該情報処理装置は、前記設定が現在なされていない他の情報処理装置に対して当該実行依頼を転送する、
請求項１記載のネットワークを構成する情報処理装置の管理方法。
【請求項３】
前記設定が現在なされていない情報処理装置は、当該情報処理装置が実行すべきである前記所定の処理を他の情報処理装置に代行するように依頼を行う必要がある場合は、当該依頼の依頼先として、前記設定が現在なされている情報処理装置を優先的に選択する、
請求項１または請求項２記載のネットワークを構成する情報処理装置の管理方法。
【請求項４】
前記第二の処理における前記設定を行う対象の情報処理装置の台数は、前記第一の処理において前記設定を解除した情報処理装置の台数と同数である、
請求項１ないし請求項３のいずれかに記載のネットワークを構成する情報処理装置の管理方法。
【請求項５】
前記所定の要件とは、前記設定が現在なされている情報処理装置に対して当該設定がなされてから所定の時間を経過したことである、
請求項１ないし請求項４のいずれかに記載のネットワークを構成する情報処理装置の管理方法。
【請求項６】
前記所定の要件とは、前記設定が現在なされている情報処理装置に対して、他の情報処理装置が実行すべきである前記所定の処理を代行すべき旨の代行依頼が当該他の情報処理装置からなされたことである、
請求項１ないし請求項４のいずれかに記載のネットワークを構成する情報処理装置の管理方法。
【請求項７】
前記所定の要件とは、前記設定が現在なされている情報処理装置に対して他の情報処理装置が実行すべきである前記所定の処理を代行すべき旨の代行依頼が当該他の情報処理装置からなされ、かつ、当該他の情報処理装置の負荷が所定の時間を経過しても軽減されていない、ことである、
請求項１ないし請求項４のいずれかに記載のネットワークを構成する情報処理装置の管理方法。
【請求項８】
前記第二の処理において、前記設定を行う対象として、過去に前記設定がなされた回数が少ない情報処理装置を優先的に選択する、
請求項１ないし請求項７のいずれかに記載のネットワークを構成する情報処理装置の管理方法。
【請求項９】
前記第二の処理において、前記設定を行う対象として、前記代行依頼の依頼元である情報処理装置を選択する、
請求項６または請求項７記載のネットワークを構成する情報処理装置の管理方法。
【請求項１０】
ネットワークのノードとして使用される情報処理装置であって、
所定の処理を実行するのを休止する設定が当該情報処理装置になされているときに前記所定の処理を実行すべき旨の実行依頼を受けた場合に、前記設定が現在なされていない他の情報処理装置に対して当該実行依頼を転送する、実行依頼転送手段と、
前記設定が当該情報処理装置になされていないときに前記実行依頼を受けた場合に、当該実行依頼に基づいて前記所定の処理を実行する、処理実行手段と、
前記設定が当該情報処理装置になされているときに当該情報処理装置において所定の要件が満たされた場合に、当該情報処理装置に現在なされている前記設定を解除する設定解除手段と、
前記設定が当該情報処理装置になされているときに当該情報処理装置において前記所定の要件が満たされた場合に、前記設定が現在なされていない他のいずれかの情報処理装置に対して前記設定を行うための処理を行う、他装置設定処理手段と、
を有することを特徴とする情報処理装置。
【請求項１１】
前記設定が当該情報処理装置になされておらずかつ所定の大きさ以上の負荷が当該情報処理装置に掛かっているときに前記実行依頼を受けた場合に、前記設定が現在なされている他の情報処理装置に対して当該実行依頼に係る前記所定の処理を代行すべき旨の代行依頼を行う、代行依頼手段、を有する、
請求項１０記載の情報処理装置。
【請求項１２】
ネットワークのノードとして使用される情報処理装置を制御するためのコンピュータプログラムであって、
当該情報処理装置に、
所定の処理を実行するのを休止する設定が当該情報処理装置になされているときに前記所定の処理を実行すべき旨の実行依頼を受けた場合に、前記設定が現在なされていない他の情報処理装置に対して当該実行依頼を転送する処理を実行させ、
前記設定が当該情報処理装置になされていないときに前記実行依頼を受けた場合に、当該実行依頼に基づいて前記所定の処理を実行させ、
前記設定が当該情報処理装置になされているときに当該情報処理装置において所定の要件が満たされた場合に、当該情報処理装置に現在なされている前記設定を解除する処理を実行させ、
前記設定が当該情報処理装置になされているときに当該情報処理装置において前記所定の要件が満たされた場合に、前記設定が現在なされていない他のいずれかの情報処理装置に対して前記設定を行うための処理を実行させる、
ことを特徴とするコンピュータプログラム。
【請求項１３】
前記設定が当該情報処理装置になされておらずかつ所定の大きさ以上の負荷が当該情報処理装置に掛かっているときに前記実行依頼を受けた場合に、当該情報処理装置に、前記設定が現在なされている他の情報処理装置に対して当該実行依頼に係る前記所定の処理を代行するように依頼する処理を実行させる、
請求項１２記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを構成する情報処理装置の管理方法などに関する。
【背景技術】
【０００２】
近年、情報処理装置同士が通信を行う際にＰ２Ｐ（Peer To Peer）の技術がよく用いられる。
【０００３】
サーバクライアント型のネットワークでは、所定の処理に関しては、サーバが一元的に管理を行う。したがって、サーバは、クライアントからのリクエストが集中するので、それに十分に応対し得るスペックを備えていなければならない。急激なリクエストの増大、故障、または災害の発生による通信回線の不通などの事態に対処するために、処理の分散用の情報処理装置または予備の情報処理装置を用意しておくことがある。
【０００４】
ところが、そうすると、冗長性が高くなり、ネットワーク全体としてのコストパフォーマンスが低くなる。
【０００５】
一方、Ｐ２Ｐ型のネットワークでは、基本的に、サーバが存在せず、かつ、各情報処理装置（ノード）は対等である。したがって、理論的には、所定の処理は各情報処理装置に分散され実行される。よって、Ｐ２Ｐ型のネットワークによると、情報処理装置同士が互いに負荷を負担し合い、サーバクライアント型のネットワークのような冗長性をなくし、良好なコストパフォーマンスを得ることができる。また、故障または通信回線の不通によって一部の情報処理装置がネットワークに参加できなくなっても、予備の情報処理装置を使用することなくネットワーク全体の機能を維持することができる。
【特許文献１】特開平５−８９００７号公報
【特許文献２】特開平７−２９７８２５号公報
【特許文献３】特開平８−３１４８７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、現実にＰ２Ｐ型のネットワークを構成する際には、様々なスペックの情報処理装置が使用される。よって、高スペックな特定の情報処理装置への処理の集中が常態化してしまうことがある。
【０００７】
そうすると、処理の分散化を図ることができる、というＰ２Ｐのメリットが得られなくなってしまう。
【０００８】
特許文献１〜３には、障害が発生した場合の対処方法について記載されている。しかし、平常時における処理の分散を図ることはできない。
【０００９】
本発明は、このような問題点に鑑み、複数台の情報処理装置によって構成されるネットワークにおいて処理の分散を図ることを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係るネットワークを構成する情報処理装置の管理方法は、ネットワークを構成する複数台の情報処理装置のうちの一部の情報処理装置に対して、所定の処理を実行するのを休止する設定を行っておき、前記設定が現在なされている情報処理装置において所定の要件が満たされた場合に、当該情報処理装置に現在なされている前記設定を解除する第一の処理と、前記設定が現在なされていないいずれかの情報処理装置に対して前記設定を行う第二の処理と、を実行する、ことを特徴とする。
【００１１】
好ましくは、前記設定が現在なされている情報処理装置に対して前記所定の処理を実行すべき旨の実行依頼がなされた場合は、当該情報処理装置は、前記設定が現在なされていない他の情報処理装置に対して当該実行依頼を転送する。
【００１２】
または、前記設定が現在なされていない情報処理装置は、当該情報処理装置が実行すべきである前記所定の処理を他の情報処理装置に代行するように依頼を行う必要がある場合は、当該依頼の依頼先として、前記設定が現在なされている情報処理装置を優先的に選択する。
【００１３】
または、前記第二の処理における前記設定を行う対象の情報処理装置の台数は、前記第一の処理において前記設定を解除した情報処理装置の台数と同数である。
【００１４】
前記所定の要件とは、例えば、前記設定が現在なされている情報処理装置に対して当該設定がなされてから所定の時間を経過したことである。または、前記所定の要件とは、前記設定が現在なされている情報処理装置に対して、他の情報処理装置が実行すべきである前記所定の処理を代行すべき旨の代行依頼が当該他の情報処理装置からなされたことである。または、前記所定の要件とは、前記設定が現在なされている情報処理装置に対して他の情報処理装置が実行すべきである前記所定の処理を代行すべき旨の代行依頼が当該他の情報処理装置からなされ、かつ、当該他の情報処理装置の負荷が所定の時間を経過しても軽減されていない、ことである。
【００１５】
前記第二の処理において、前記設定を行う対象として、例えば、過去に前記設定がなされた回数が少ない情報処理装置を優先的に選択する。または、前記代行依頼の依頼元である情報処理装置を選択する。
【発明の効果】
【００１６】
本発明によると、複数台の情報処理装置によって構成されるネットワークにおいて処理の分散を図ることができる。
【発明を実施するための最良の形態】
【００１７】
図１はネットワーク１の全体的な構成の例を示す図、図２はパーソナルコンピュータＴＲのハードウェア構成の例を示す図、図３はパーソナルコンピュータＴＲの機能的構成の例を示す図、図４はネットワーク１の各ノードの関連性の例を示す図である。
【００１８】
本発明に係るネットワーク１は、図１に示すように、複数のセグメントＳＧ（ＳＧ１、ＳＧ２、…）および広域通信回線ＷＮＴなどによって構成される。各セグメントＳＧには、１台または複数台のパーソナルコンピュータＴＲ、ハブＤＨ、およびルータＤＲなどが設けられている。パーソナルコンピュータＴＲおよびルータＤＲは、同じセグメントＳＧの中のハブＤＨにツイストペアケーブルによって繋がれている。
【００１９】
さらに、各セグメントＳＧのルータＤＲ同士は、広域通信回線ＷＮＴを介して互いに接続されている。これにより、互いに異なるセグメントＳＧに属するパーソナルコンピュータＴＲ同士がデータ通信を行うことができる。広域通信回線ＷＮＴとして、インターネット、専用線、または公衆回線などが用いられる。なお、セグメントＳＧにおいて、ハブＤＨおよびルータＤＲの代わりにモデムまたはターミナルアダプタなどが用いられる場合もある。
【００２０】
このネットワーク１は、Ｐ２Ｐ（peer to peer）の形態のネットワークであり、これらのパーソナルコンピュータＴＲは、ネットワーク１のノードとして機能する。これにより、各パーソナルコンピュータＴＲ同士で、互いの資源（例えば、ＣＰＵ、ハードディスク、または印刷ユニットなどのハードウェア資源、アプリケーションなどのソフトウェア資源、または書類データ、音楽データ、または画像データなどの情報資源）を共有することができる。
【００２１】
また、ネットワーク１は、例えば複数の拠点を有する企業などに構築される。この場合は、セグメントＳＧは、これらの拠点ごとに設けられる。
【００２２】
以下、各パーソナルコンピュータＴＲを「パーソナルコンピュータＴＲ１」、「パーソナルコンピュータＴＲ２」、「パーソナルコンピュータＴＲ３」、…と区別して記載することがある。
【００２３】
図２に示すように、パーソナルコンピュータＴＲは、ＣＰＵ２０ａ、ＲＡＭ２０ｂ、ＲＯＭ２０ｃ、ハードディスク２０ｄ、通信インタフェース２０ｅ、画像インタフェース２０ｆ、入出力インタフェース２０ｇ、その他の種々の回路または装置などによって構成される。
【００２４】
通信インタフェース２０ｅは、ＮＩＣ（Network Interface Card）であって、ツイストペアケーブルを介してハブＤＨのいずれかのポートに繋がれている。画像インタフェース２０ｆは、モニタと繋がれており、画面を表示するための映像信号をモニタに送出する。
【００２５】
入出力インタフェース２０ｇは、キーボードもしくはマウスなどの入力装置またはフロッピディスクドライブもしくはＣＤ−ＲＯＭドライブなどの外部記憶装置などと繋がれている。そして、ユーザが入力装置に対して行った操作の内容を示す信号を入力装置から入力する。または、フロッピディスクまたはＣＤ−ＲＯＭなどの記録媒体に記録されているデータを外部記憶装置に読み取らせ、これを入力する。または、記録媒体に書き込むためのデータを外部記憶装置に出力する。
【００２６】
ハードディスク２０ｄには、図３に示すようなパケット生成部２０１、パケット送信部２０２、パケット受信部２０３、データ解析部２０４、処理実行要求部２１１、処理マネージメント部２１２、通常ノード処理部２１３、負荷監視部２１４、処理分散要求部２１５、遊休ノード処理部２１６、ノード種別切換部２１７、接続テーブル管理部２Ｋ１、共有データ記憶部２Ｋ２、証明書記憶部２Ｋ３、およびジョブスプーラ２Ｋ４などの機能を実現するためのプログラムおよびデータが格納されている。これらのプログラムおよびデータは必要に応じてＲＡＭ２０ｂに読み出され、ＣＰＵ２０ａによってプログラムが実行される。
【００２７】
パーソナルコンピュータＴＲ１、ＴＲ２、…には、それぞれ、他のパーソナルコンピュータＴＲとの識別のために、ノードＩＤ、ＩＰアドレス、およびＭＡＣアドレスが与えられている。ノードＩＤおよびＩＰアドレスは、ネットワーク１の規則に従って与えられる。ＭＡＣアドレスは、そのパーソナルコンピュータＴＲの通信インタフェース２０ｅに対して固定的に与えられている。
【００２８】
また、パーソナルコンピュータＴＲ１、ＴＲ２、…、は、図４に示すように、仮想空間に配置されているものと仮想されている。そして、点線で示すように、仮想空間内の近隣の少なくとも１台の他のパーソナルコンピュータＴＲと関連付けられている。かつ、これらの関連付けによって、すべてのパーソナルコンピュータＴＲが互いに直接的にまたは間接的に関係するようになっている。なお、「直接的に関係する」とは、図４において１本の点線で繋がれていること（例えば、パーソナルコンピュータＴＲ１とパーソナルコンピュータＴＲ２とのような関係）を言い、「間接的に関係する」とは、２本以上の点線および１つ以上のノードで繋がれていること（例えば、パーソナルコンピュータＴＲ１とパーソナルコンピュータＴＲ７とのような関係）を言う。直接的に関係し合う２台のパーソナルコンピュータＴＲは、互いに相手を信頼している。
【００２９】
パーソナルコンピュータＴＲは、自らに関連付けられている他のパーソナルコンピュータＴＲとの間でデータの送受信を行うことができる。さらに、間接的に関連付けられている他のパーソナルコンピュータＴＲとの間で、両パーソナルコンピュータＴＲの間にある１台または複数台のパーソナルコンピュータＴＲを介してデータの送受信を行うことができる。または、間接的に関連付けられているパーソナルコンピュータＴＲ同士が、それぞれのノードＩＤ、ＭＡＣアドレス、またはＩＰアドレスを互いに通知し合うことによって関連付け合い、データの送受信を行うこともできる。
【００３０】
ネットワーク１を構成するパーソナルコンピュータＴＲのうちの一部は、所定の処理の実行を休止している。例えば、データを他のパーソナルコンピュータＴＲに提供する処理、データを検索する処理、所定のアプリケーションを使用して行う処理などを休止している。以下、所定の処理の実行を休止している状態であることを「遊休モード」と記載し、係る状態のパーソナルコンピュータＴＲを「遊休ノード」と記載する。これに対して、通常通りに所定の処理を実行する状態であることを「通常モード」と記載し、係る状態のパーソナルコンピュータＴＲを「通常ノード」と記載する。そのほか、パーソナルコンピュータＴＲは一時的に「臨時モード」という状態（モード）になる場合があるが、これについては後に説明する。
【００３１】
図５は遊休ノード証明書ＲＮＣに含まれる履歴の例を示す図、図６は接続テーブルＴＬの例を示す図、図７は遊休ノード処理部２１６の構成の例を示す図である。
【００３２】
次に、図３に示すパーソナルコンピュータＴＲの各部の処理内容などについて詳細に説明する。
【００３３】
共有データ記憶部２Ｋ２は、他のパーソナルコンピュータＴＲと共有するデータ（以下、「共有データＤＴＫ」と記載する。）をファイル単位で記憶する。
【００３４】
証明書記憶部２Ｋ３は、遊休ノードであることを証明する遊休ノード証明書ＲＮＣを記憶する。この遊休ノード証明書ＲＮＣを有しているパーソナルコンピュータＴＲが、遊休ノードとして認められる。遊休ノード証明書ＲＮＣを有していないパーソナルコンピュータＴＲは、通常ノードである。
【００３５】
遊休ノード証明書ＲＮＣには、遊休ノードであることを証明する情報のほか、図５に示すような、その遊休ノード証明書ＲＮＣを過去に有したことのあるノード（つまり、その遊休ノード証明書ＲＮＣに基づいて過去に遊休ノードになったことのあるノード）の履歴が記載されている。
【００３６】
１台のパーソナルコンピュータＴＲに、複数の遊休ノード証明書ＲＮＣを同時に持たすことはできない。また、遊休モードから通常モードに遷移する際には、他のパーソナルコンピュータＴＲに遊休ノード証明書ＲＮＣを譲渡する。つまり、遊休ノードの役割は、ネットワーク１の中のパーソナルコンピュータＴＲ同士で交代し得る。
【００３７】
遊休ノード証明書ＲＮＣは、ネットワーク１の中に所定の個数だけ存在する。例えば、ネットワーク１に存在するパーソナルコンピュータＴＲの全台数の１〜５％に相当する個数（ただし、全台数が２０台未満の場合は、１つ）の遊休ノード証明書ＲＮＣが存在する。
【００３８】
管理者は、ネットワーク１の運用を開始する際に、所定の個数の遊休ノード証明書ＲＮＣを任意のパーソナルコンピュータＴＲに事前にインストール（プリインストール）する。運用の開始後、パーソナルコンピュータＴＲの台数が増えた場合は、上記の所定の個数の遊休ノード証明書ＲＮＣが保たれるように、適宜、遊休ノード証明書ＲＮＣを追加する。この際に、新規に追加されたパーソナルコンピュータＴＲに対して優先的に遊休ノード証明書ＲＮＣをインストールするのが望ましい。
【００３９】
また、ネットワーク１の全ノードに対する遊休ノードの割合は、ネットワーク１の運用の開始後、管理者が既存のパーソナルコンピュータＴＲに遊休ノード証明書ＲＮＣをインストールしまたは既存のパーソナルコンピュータＴＲから遊休ノード証明書ＲＮＣをアンインストールすることによって、調整可能である。
【００４０】
パケット生成部２０１は、他のパーソナルコンピュータＴＲに送信するための種々のデータをパケット化する処理を行う。パケット送信部２０２は、パケット生成部２０１によって生成されたパケットを宛先の装置に宛てて送信する。
【００４１】
パケット受信部２０３は、通信回線を流れるパケットを受信する。データ解析部２０４は、パケット受信部２０３が受信したパケットを解析することによって、そのパーソナルコンピュータＴＲ自身にとって必要なパケットのみを抽出する。つまり、宛先に自らが指定されているパケットをフィルタリングする。そして、それらのパケットを統合するなどして元のデータを再生する。
【００４２】
パケット受信部２０３およびデータ解析部２０４によって得られたデータは、通常ノード処理部２１３によって実行すべき処理（ジョブ）の実行要求に係るものである場合は、ジョブスプーラ２Ｋ４に保存される。つまり、ジョブスプーラ２Ｋ４にスプールされる。具体的には、後に説明するジョブ実行要求データＤＴ１またはジョブ代行要求データＤＴ２が保存される。
【００４３】
処理実行要求部２１１は、そのパーソナルコンピュータＴＲ自身のユーザ（以下、「ローカルユーザ」と記載する。）が指令した所定の処理（ジョブ）を実行するように他のパーソナルコンピュータＴＲに対して要求するための処理を行う。具体的には、ローカルユーザが指令した処理を実行すべき旨のメッセージを示すジョブ実行要求データＤＴ１を生成し、そのジョブ実行要求データＤＴ１が他のパーソナルコンピュータＴＲに対して送信されるようにパケット生成部２０１およびパケット送信部２０２を制御する。
【００４４】
処理マネージメント部２１２は、後に順次説明するような種々の処理が実行されるように、通常ノード処理部２１３、遊休ノード処理部２１６、ノード種別切換部２１７、および接続テーブル管理部２Ｋ１などを制御する。ただし、そのパーソナルコンピュータＴＲ自身の現在のモードが遊休モードである場合は、通常ノード処理部２１３を休止させ遊休ノード処理部２１６を動作させる。一方、通常モードである場合は、遊休ノード処理部２１６を休止させ通常ノード処理部２１３を動作させる。臨時モードの場合については、後に説明する。
【００４５】
接続テーブル管理部２Ｋ１は、そのパーソナルコンピュータＴＲ自身に関連付けられている他のパーソナルコンピュータＴＲごとのノードデータＤＴＮを格納した接続テーブルＴＬを記憶している。例えば、パーソナルコンピュータＴＲ１、ＴＲ２、およびＴＲ３の各接続テーブル記憶部２Ｋ１は、それぞれ、図６（ａ）〜（ｃ）に示すような接続テーブルＴＬ１、ＴＬ２、およびＴＬ３を記憶し管理している。
【００４６】
ノードデータＤＴＮには、当該他のパーソナルコンピュータＴＲのノードＩＤ、ＩＰアドレス、およびＭＡＣアドレスなどの情報のほか、当該他のパーソナルコンピュータＴＲの現在のモードが示されている。
【００４７】
接続テーブルＴＬの内容は、それを有するパーソナルコンピュータＴＲの運用の開始前に管理者によって予め設定される。運用の開始後は、接続テーブル管理部２Ｋ１は、接続テーブルＴＬの内容を、パーソナルコンピュータＴＲ自身にとっての他のパーソナルコンピュータＴＲとの関連付けの変更に応じて更新する。また、当該他のパーソナルコンピュータＴＲのモードが変更されるごとに更新する。
【００４８】
例えば、パーソナルコンピュータＴＲ１において、パケット受信部２０３およびデータ解析部２０４がパーソナルコンピュータＴＲ２からモードの変更の通知のデータ（後述する切換通知データＤＴ５）を取得し、処理マネージメント部２１２がそのデータに基づいて接続テーブルＴＬ１を更新すべき旨の指令を接続テーブル管理部２Ｋ１に対して与えたとする。すると、接続テーブル管理部２Ｋ１は、パーソナルコンピュータＴＲ２のノードデータＤＴＮの「モード」の項目をそのデータに示されるモードに書き換える。
【００４９】
通常ノード処理部２１３は、そのパーソナルコンピュータＴＲ自身のモードが通常モードである場合に、ジョブスプーラ２Ｋ４に保存されているジョブ実行要求データＤＴ１または後述するジョブ代行要求データＤＴ２に基づいて処理（ジョブ）を実行する。
【００５０】
例えば、ジョブ実行要求データＤＴ１またはジョブ代行要求データＤＴ２が、ある共有データＤＴＫを他のパーソナルコンピュータＴＲに送信するように要求する旨のメッセージを示す場合は、通常ノード処理部２１３は、その共有データＤＴＫをローカルの共有データ記憶部２Ｋ２から呼び出し、その共有データＤＴＫが要求元つまり当該他のパーソナルコンピュータＴＲに送信されるようにパケット生成部２０１およびパケット送信部２０２を制御する。
【００５１】
または、ジョブ実行要求データＤＴ１またはジョブ代行要求データＤＴ２が、あるキーワードを含む共有データＤＴＫの検索を要求する旨のメッセージを示す場合は、通常ノード処理部２１３は、その共有データＤＴＫをローカルの共有データ記憶部２Ｋ２の中から検索し、その検索結果が要求元に送信されるようにパケット生成部２０１およびパケット送信部２０２を制御する。
【００５２】
または、ジョブ実行要求データＤＴ１またはジョブ代行要求データＤＴ２が、所定のアプリケーションを使用して演算処理を実行することを要求する旨のメッセージを示す場合は、通常ノード処理部２１３は、その所定のアプリケーションを使用しそのジョブ実行要求データＤＴ１またはジョブ代行要求データＤＴ２に基づいて演算処理を行い、その演算結果が要求元に送信されるようにパケット生成部２０１およびパケット送信部２０２を制御する。
【００５３】
ジョブ実行要求データＤＴ１またはジョブ代行要求データＤＴ２に係る処理（ジョブ）が完了したら、そのデータはジョブスプーラ２Ｋ４から削除される。
【００５４】
負荷監視部２１４は、そのパーソナルコンピュータＴＲ自身のモードが通常モードである場合に、ジョブスプーラ２Ｋ４に現在保存（スプール）されているジョブ実行要求データＤＴ１およびジョブ代行要求データＤＴ２の個数またはデータ量を監視することによって、そのパーソナルコンピュータＴＲ自身に掛かっている負荷を監視する。また、これらのデータの個数またはデータ量が多いほど、大きな負荷が掛かっていると判別する。
【００５５】
処理分散要求部２１５は、所定の値を超える負荷がそのパーソナルコンピュータＴＲ自身に掛かっていることが負荷監視部２１４によって検知された場合に、そのパーソナルコンピュータＴＲ自身が実行しなければならない処理の一部を至急に代行するように他のパーソナルコンピュータＴＲに対して依頼する。つまり、そのパーソナルコンピュータＴＲ自身が本来行うべき処理を代行するように緊急のメッセージを発する。
【００５６】
具体的には、処理分散要求部２１５は、ジョブスプーラ２Ｋ４に保存されている一部のジョブ実行要求データＤＴ１を呼び出し、それぞれをジョブ代行要求データＤＴ２として他のパーソナルコンピュータＴＲに送信するようにパケット生成部２０１およびパケット送信部２０２を制御する。呼び出したジョブ実行要求データＤＴ１はジョブスプーラ２Ｋ４から削除しておく。
【００５７】
ジョブ代行要求データＤＴ２の送信先は遊休ノードであるのが望ましい。遊休ノードは、所定の処理を実行していないので、現在負荷がほとんど掛かっていないと考えられるからである。そこで、パケット送信部２０２は、接続テーブルＴＬをチェックし、遊休ノード（つまり、遊休モードである他のパーソナルコンピュータＴＲ）があれば、それに対して優先的にジョブ代行要求データＤＴ２のパケットを送信する。
【００５８】
遊休ノード処理部２１６は、図７に示すように、ジョブ転送制御部３０１、ジョブ返還制御部３０２、および分散処理開始指令部３０３などによって構成される。遊休ノード処理部２１６の各部は、そのパーソナルコンピュータＴＲ自身が遊休モードである場合に、動作する。
【００５９】
ジョブ転送制御部３０１は、ジョブスプーラ２Ｋ４に保存されたジョブ実行要求データＤＴ１を、要求元以外のパーソナルコンピュータＴＲ２に転送する。それは、前述の通り遊休モードである間は通常ノード処理部２１３が休止しているので、ジョブスプーラ２Ｋ４に保存されたジョブ実行要求データＤＴ１を放置しておくと、そのジョブ実行要求データＤＴ１に係る処理が滞ってしまうからである。
【００６０】
例えば、パーソナルコンピュータＴＲ１のジョブ転送制御部３０１は、パーソナルコンピュータＴＲ２からのジョブ実行要求データＤＴ１がジョブスプーラ２Ｋ４に保存されたら、そのジョブ実行要求データＤＴ１をパーソナルコンピュータＴＲ２以外のノード（例えば、パーソナルコンピュータＴＲ３）に転送する。転送先は、通常ノードであることが望ましい。転送したジョブ実行要求データＤＴ１は、ジョブスプーラ２Ｋ４から削除しておく。
【００６１】
ジョブ返還制御部３０２は、ジョブスプーラ２Ｋ４に保存されているジョブ代行要求データＤＴ２を、その送信元（要求元）であるノード（パーソナルコンピュータＴＲ）の負荷が収拾したら、そのノードに返還するために送信する。
【００６２】
すなわち、前に述べたように、ジョブ代行要求データＤＴ２は、負荷が所定の値以上になったノードから送信されてくる。しかし、その負荷は一時的なものであって、すぐに減少する場合もあり得る。そこで、ジョブ返還制御部３０２は、そのノードの負荷が収拾したら、そのジョブ代行要求データＤＴ２を返還する。返還後、そのジョブ代行要求データＤＴ２は、ジョブスプーラ２Ｋ４から削除しておく。一方、返還を受けたノードでは、そのジョブ代行要求データＤＴ２をジョブ実行要求データＤＴ１として自らのジョブスプーラ２Ｋ４に再び保存する。
【００６３】
ジョブ代行要求データＤＴ２の要求元であるノードの負荷が収拾したか否かの判別は、そのノードに対して問い合わせることによって行えばよい。または、所定の時間ごとにローカルのジョブスプーラ２Ｋ４をチェックし、現在蓄積されているそのノードからのジョブ代行要求データＤＴ２の個数またはデータ量が所定の値未満であれば、負荷が収拾したと判別してもよい。
【００６４】
分散処理開始指令部３０３は、ジョブスプーラ２Ｋ４に保存されているジョブ代行要求データＤＴ２の送信元（要求元）であるノード（パーソナルコンピュータＴＲ）の負荷が所定の時間を経過しても収拾しない場合に、そのノードの代わりにそのジョブ代行要求データＤＴ２に係る処理を開始するように、通常ノード処理部２１３を制御する。すなわち、そのノードから分散されてきた処理を代行するように通常ノード処理部２１３を制御する。
【００６５】
さらに、この際に、そのパーソナルコンピュータＴＲ自身のモードを遊休モードから臨時モードに切り換えるようにノード種別切換部２１７に対して指令する。
【００６６】
負荷が収拾したか否かの判別は、ジョブ返還制御部３０２がジョブ代行要求データＤＴ２の返還を行うか否かを判別する場合と同様に、そのノードに対して問い合わせることによって判別すればよい。または、現在蓄積されているそのノードからのジョブ代行要求データＤＴ２の個数またはデータ量が所定の値以上になったら、負荷が収拾していないと判別するようにしてもよい。
【００６７】
図３に戻って、ノード種別切換部２１７は、そのパーソナルコンピュータＴＲ自身のモードを切り換えるための処理を、例えば次のように行う。
【００６８】
（Ａ）  遊休モードから臨時モードへの切換
ノード種別切換部２１７は、臨時モードに切り換えるべき旨の指令を分散処理開始指令部３０３から受け付けると、通常ノード処理部２１３の休止状態を解除するように処理マネージメント部２１２に対して指令する。これにより、そのパーソナルコンピュータＴＲの遊休モードが臨時的に解除され、臨時モードとなる。
【００６９】
（Ｂ）  臨時モードから通常モードへの切換
ジョブスプーラ２Ｋ４に保存されている全部または所定の個数以上のジョブ代行要求データＤＴ２に係る処理（ジョブ）が通常ノード処理部２１３によって完了したら、ノード種別切換部２１７は、そのパーソナルコンピュータＴＲ自身のモードを臨時モードから通常モードに切り換える。
【００７０】
この際に、証明書記憶部２Ｋ３に記憶されている遊休ノード証明書ＲＮＣを、そのパーソナルコンピュータＴＲ自身の識別情報（例えば、ノードＩＤ）を追記した後、そのジョブ代行要求データＤＴ２の送信元であるノードに譲渡し遊休ノードの役割をそのノードに交代するために転送する。転送した遊休ノード証明書ＲＮＣは、証明書記憶部２Ｋ３から削除しておく。なお、後に（Ｅ）で説明するような方法によって、ジョブ代行要求データＤＴ２の送信元であるノード以外のノードを交代相手に決定しても構わない。
【００７１】
また、通常モードに切り換わると遊休モードのときよりも多くのリソースが必要となるので、リソースの確保を行っておく。リソースの確保は、遊休モードから臨時モードへの切換の際に行っておいてもよい。
【００７２】
（Ｃ）  遊休ノードから通常モードへの切換
上記の（Ａ）および（Ｂ）のように、パーソナルコンピュータＴＲは、臨時モードを経て遊休モードから通常モードに切り換わることもあれば、ダイレクトに遊休モードから通常モードに切り換わることもある。具体的には、所定の時間以上、遊休ノード処理部２１６の分散処理開始指令部３０３（図７参照）が指令を発しなかった場合は、パーソナルコンピュータＴＲは、遊休ノードの役割を他のノード（パーソナルコンピュータＴＲ）に交代し、自らは通常モードに移行する。交代相手の決定方法については、後に（Ｅ）で説明する。なお、遊休ノードの交代は、上記の（Ｂ）の場合と同様に、遊休ノード証明書ＲＮＣなどの必要なデータを交代相手に送信によって行うとともに、リソースの確保を行う。
【００７３】
（Ｄ）  通常モードから遊休モードへの切換
ノード種別切換部２１７は、他のパーソナルコンピュータＴＲから送信された遊休ノード証明書ＲＮＣがパケット受信部２０３およびデータ解析部２０４によって取得されると、その遊休ノード証明書ＲＮＣを証明書記憶部２Ｋ３に記憶させる。これにより、そのパーソナルコンピュータＴＲ自身のモードが通常モードから遊休モードに切り換わる。
【００７４】
（Ｅ）  遊休ノードの交代相手の決定方法
ノード種別切換部２１７は、遊休ノードの交代相手つまりどのノードに対して遊休ノード証明書ＲＮＣを譲渡するのかを、次のように決定する。
【００７５】
例えば、交代を依頼する旨のメッセージを示す交代依頼データＤＴ３を生成し、その交代依頼データＤＴ３がブロードキャストされるようにパケット生成部２０１およびパケット送信部２０２を制御する。または、接続テーブルＴＬに示されるメンバに交代依頼データＤＴ３がマルチキャストされるように制御する。交代依頼データＤＴ３を受信した他のノード（パーソナルコンピュータＴＲ）は、遊休ノードになってもよい場合（例えば、所定の期間以上、通常モードの状態が継続している場合）は、自らのスペックおよび状況に関する情報（例えば、ＣＰＵの速度、ＲＡＭまたはハードディスクの容量、通信速度、現在のＣＰＵの負荷の状況、現在のＲＡＭまたはハードディスクの空き容量、過去の所定の期間中に遊休ノードになった回数、または障害の発生の有無などの情報）および遊休ノードになってもよい旨のメッセージを示す回答データＤＴ４を返信する。
【００７６】
ノード種別切換部２１７は、各ノードから返信されてきた回答データＤＴ４の内容を比較するなどして、遊休ノードの交代相手を決定する。例えば、交代相手を、最も高いスペックのノードに決定する。または、一定以上の高さのスペックを有するノードの中からランダムに決定してもよい。または、ＣＰＵの負荷が最も大きいノードに決定してもよい。または、過去に遊休ノードのなった回数が最も少ないノードに決定してもよい。または、現在障害が発生しているノードに決定してもよい。
【００７７】
または、ジョブ代行要求データＤＴ２が１つも返信されてこない場合は、強制的に交代相手を決定してもよい。例えば、遊休ノード証明書ＲＮＣに記載されている履歴（図５参照）に示される個数（つまり、その遊休ノード証明書ＲＮＣに基づいて遊休ノードになった回数）が最も少ないノードに決定してもよい。
【００７８】
または、回答データＤＴ４を強制的に返信させるように構成し、集まった回答データＤＴ４の内容を上記のように比較するなどして決定してもよい。
【００７９】
（Ｆ）  モードの切換の通知
さらに、ノード種別切換部２１７は、あるモードから他のノードへの切換の処理を行った後、どのモードに切り換わったかを知らせる切換通知データＤＴ５を、接続テーブルＴＬに示される各パーソナルコンピュータＴＲに送信する。
【００８０】
図８はパーソナルコンピュータＴＲの全体的な処理の流れの例を説明するフローチャート、図９は遊休ノード処理の流れの例を説明するフローチャート、図１０は通常モード切換処理の流れの例を説明するフローチャート、図１１は通常ノード処理の流れの例を説明するフローチャートである。
【００８１】
次に、ネットワーク１に参加するパーソナルコンピュータＴＲの処理の流れを、フローチャートを参照して説明する。
【００８２】
図８において、パーソナルコンピュータＴＲは、ネットワーク１に参加するにあたって、既にネットワーク１に参加している他の１台または複数台のパーソナルコンピュータＴＲと相互に認証を行う（＃１）。
【００８３】
認証に成功しネットワーク１に参加することができたら、パーソナルコンピュータＴＲは、最初は、遊休ノードおよび通常ノードのうちのいずれか一方の役割を担う。遊休ノード証明書ＲＮＣがプリインストールされている場合は遊休ノードとして機能する（＃２でＹｅｓ）。この場合は、パーソナルコンピュータＴＲは、図９に示すような遊休ノード処理を実行する（＃３）。
【００８４】
図９において、パーソナルコンピュータＴＲは、自らが遊休ノードである間、ジョブスプーラ２Ｋ４（図３参照）にジョブ実行要求データＤＴ１またはジョブ代行要求データＤＴ２が保存されていないかどうかを常時チェックする（＃１２）。
【００８５】
ジョブ実行要求データＤＴ１が保存されている場合は（＃１３でＹｅｓ、＃１４でＹｅｓ）、そのジョブ実行要求データＤＴ１を、その送信元（要求元）とは異なる他のパーソナルコンピュータＴＲに転送する（＃１５）。
【００８６】
一方、ジョブ代行要求データＤＴ２が保存されている場合は（＃１３でＹｅｓ、＃１４でＮｏ）、その送信元（要求元）の負荷が増大していると考えられる。そこで、パーソナルコンピュータＴＲは、その送信元の負荷をチェックする（＃１６）。
【００８７】
その結果、所定の時間内にその送信元の負荷が収拾（軽減）したことが分かった場合は（＃１７でＹｅｓ）、その送信元の代わりに処理を実行する必要はないと判断し、その送信元にジョブ代行要求データＤＴ２を送り返す（＃１８）。負荷が収拾しなかった場合は（＃１８でＮｏ）、その送信元の代わりに処理を実行する必要があると判断し、パーソナルコンピュータＴＲは自らのモードを臨時モードに切り換える（＃１９）。そして、ジョブ代行要求データＤＴ２に係る処理の代行を開始する（＃２０）。これにより、その送信元が本来実行すべき処理が、そのパーソナルコンピュータＴＲ自身とその送信元とに分散される。
【００８８】
パーソナルコンピュータＴＲは、自らが遊休ノードとして機能し始めてから所定の時間が経過した場合は（＃１１でＹｅｓ）、他のパーソナルコンピュータＴＲと遊休ノードの役割を交代し通常モードに切り換わる処理（通常モード切換処理）を行う（＃２１）。ステップ＃２０で開始したジョブ代行要求データＤＴ２に係る処理が完了した場合も、通常モード切換処理を行う（＃２１）。通常モード切換処理の手順は、図１０に示す通りである。
【００８９】
すなわち、パーソナルコンピュータＴＲは、他のパーソナルコンピュータＴＲそれぞれのスペックおよび状況に関する情報（回答データＤＴ４）を収集しそれらの情報を比較するなどして、遊休ノードの役割の交代相手を決定する（図１０の＃１０１、＃１０２）。
【００９０】
パーソナルコンピュータＴＲが現在持っている遊休ノード証明書ＲＮＣに自らの識別情報を追記し（＃１０３）、その遊休ノード証明書ＲＮＣを、ステップ＃１０２で決定した交代相手に譲渡する（＃１０４）。
【００９１】
遊休ノード処理部２１６を休止させるとともに、通常ノード処理部２１３を稼動する（＃１０５、＃１０６）。そして、切換が完了した旨を他のパーソナルコンピュータＴＲに通知する（＃１０７）。
【００９２】
図８に戻って、パーソナルコンピュータＴＲは、遊休ノード証明書ＲＮＣがプリインストールされていない場合は通常ノードとして機能する（＃２でＮｏ）。この場合は、パーソナルコンピュータＴＲは、図１１に示すような通常ノード処理を実行する（＃４）。
【００９３】
図１１において、パーソナルコンピュータＴＲは、自らが通常ノードである間つまり他のパーソナルコンピュータＴＲから遊休ノード証明書ＲＮＣを受信するまでの間（＃２１でＮｏ）、ジョブスプーラ２Ｋ４にジョブ実行要求データＤＴ１またはジョブ代行要求データＤＴ２が保存されていないかどうかを常時チェックする（＃２２）。ジョブ実行要求データＤＴ１またはジョブ代行要求データＤＴ２が保存されている場合は（＃２３でＹｅｓ）、それに係る処理（ジョブ）を実行する（＃２４）。
【００９４】
パーソナルコンピュータＴＲは、遊休ノード証明書ＲＮＣを受信すると（＃２１でＹｅｓ）、その遊休ノード証明書ＲＮＣを証明書記憶部２Ｋ３に記憶させ（＃２５）、通常ノード処理部２１３を休止し（＃２６）、遊休ノード処理部２１６を稼動させる（＃２７）。これにより、遊休ノードに切り換わる。そして、その旨を他のパーソナルコンピュータＴＲに通知する（＃２８）。
【００９５】
図８に戻って、パーソナルコンピュータＴＲは、ネットワーク１に参加している間（＃５でＮｏ）、遊休ノード証明書ＲＮＣを有しているときは（＃２でＹｅｓ）遊休ノード処理を実行し（＃３）、有していないときは（＃２でＮｏ）通常ノード処理を実行する（＃４）。また、他のパーソナルコンピュータＴＲから送信されてきたジョブ実行要求データＤＴ１およびジョブ代行要求データＤＴ２をスプールする処理、他のパーソナルコンピュータＴＲからの交代依頼データＤＴ３に対して回答する処理、その他種々の処理を必要に応じて実行する。
【００９６】
本実施形態によると、ネットワーク１を構成する一部分のパーソナルコンピュータＴＲを遊休ノードに設定し、所定のタイミングで遊休ノードの役割を交代させた。これにより、処理の依頼が特定のパーソナルコンピュータＴＲに集中するのを防止し、処理の分散を図ることができる。
【００９７】
本実施形態では、遊休ノードの交代を行う際に、遊休ノード証明書ＲＮＣのやり取りを行ったが、必要に応じて、これ以外のデータのやり取りを行ってもよい。例えば、遊休ノードの役割を終えるパーソナルコンピュータＴＲは、これから通常ノードとして機能するために必要なアプリケーションまたは共有データＤＴＫなどを、交代相手であるパーソナルコンピュータＴＲから取得してもよい。
【００９８】
遊休ノードの交代のタイミングは、適宜変更可能である。例えば、パーソナルコンピュータＴＲ１が遊休ノードでありパーソナルコンピュータＴＲ２が通常ノードである場合において、パーソナルコンピュータＴＲ２がジョブ代行要求データＤＴ２をパーソナルコンピュータＴＲ１に送信し、その後もパーソナルコンピュータＴＲの負荷が軽減しなかったとする。すると、パーソナルコンピュータＴＲ１は、パーソナルコンピュータＴＲ２以外のノードに遊休ノードを交代してもらった後、パーソナルコンピュータＴＲ２から分散されてきたジョブ代行要求データＤＴ２の処理を開始してもよい。
【００９９】
その他、ネットワーク１、パーソナルコンピュータＴＲの全体または各部の構成、処理内容、処理順序、テーブルの構成などは、本発明の趣旨に沿って適宜変更することができる。
【図面の簡単な説明】
【０１００】
【図１】ネットワークの全体的な構成の例を示す図である。
【図２】パーソナルコンピュータのハードウェア構成の例を示す図である。
【図３】パーソナルコンピュータの機能的構成の例を示す図である。
【図４】ネットワークの各ノードの関連性の例を示す図である。
【図５】遊休ノード証明書に含まれる履歴の例を示す図である。
【図６】接続テーブルの例を示す図である。
【図７】遊休ノード処理部の構成の例を示す図である。
【図８】パーソナルコンピュータの全体的な処理の流れの例を説明するフローチャートである。
【図９】遊休ノード処理の流れの例を説明するフローチャートである。
【図１０】通常モード切換処理の流れの例を説明するフローチャートである。
【図１１】通常ノード処理の流れの例を説明するフローチャートである。
【符号の説明】
【０１０１】
１  ネットワーク
ＴＲ  パーソナルコンピュータ（情報処理装置）
２０２  パケット送信部（実行依頼転送手段、他装置設定処理手段、代行依頼手段）
２１１  処理実行要求部（実行依頼転送手段）
２１３  通常ノード処理部（処理実行手段）
２１５  処理分散要求部（代行依頼手段）
２１７  ノード種別切換部（設定解除手段、他装置設定処理手段）
【図１】
2007334800.tif 000003
【図２】
2007334800.tif 000004
【図３】
2007334800.tif 000005
【図４】
2007334800.tif 000006
【図５】
2007334800.tif 000007
【図６】
2007334800.tif 000008
【図７】
2007334800.tif 000009
【図８】
2007334800.tif 000010
【図９】
2007334800.tif 000011
【図１０】
2007334800.tif 000012
【図１１】
2007334800.tif 000013