(57)【要約】      （修正有）【課題】各コンピュータの使用目的や使用状況にも対応してクラスタリングを効率的に実行するためのシステムを提供する。【解決手段】クラスタリングによってタスクを処理するクラスタリングシステムであって、アミューズメント施設内に複数設置されたゲーム機１と、前記各ゲーム機にそれぞれ搭載されローカルネットワークを介して互いに接続された演算処理ユニット４３と、前記アミューズメント施設内に設置され前記各演算処理ユニットと前記ローカルネットワークを介して接続された管理サーバ１１と、有し、前記管理サーバは、前記各演算処理ユニットの可動状態をリアルタイムで示す処理状態テーブル３３と、前記管理サーバに所定のタスクが新たに発生した場合に、前記処理状態テーブルに基づいて前記各演算処理ユニットのうち前記タスクを処理可能な演算処理ユニットを選択し前記タスクを処理するように指示するタスク管理手段３２とを有す。【選択図】図２
2011134215.tif 000002
【特許請求の範囲】
【請求項１】
クラスタリングによってタスクを処理するクラスタリングシステムであって、
アミューズメント施設内に複数設置されたゲーム機と、
前記各ゲーム機にそれぞれ搭載されローカルネットワークを介して互いに接続された演算処理ユニットと、
前記アミューズメント施設内に設置され前記各演算処理ユニットと前記ローカルネットワークを介して接続された管理サーバと、
を有し、
前記管理サーバは、
前記各演算処理ユニットの可動状態をリアルタイムで示す処理状態テーブルと、
前記管理サーバに所定のタスクが新たに発生した場合に、前記処理状態テーブルに基づいて前記各演算処理ユニットのうち前記タスクを処理可能な演算処理ユニットを選択し前記タスクを処理するように指示するタスク管理手段と
を有し、
前記演算処理ユニットは、
プレイヤにゲームプレイを提供するためのゲーム処理をするゲーム処理手段と、
前記タスク管理手段によって処理を指示された前記タスクを処理し、前記ゲーム処理手段が前記ゲーム処理を開始するときには処理中の前記タスクを中断するタスク処理手段と、
前記タスク処理手段によって前記タスクが中断された場合に、前記ローカルネットワークを介して前記処理状態テーブルを参照し、この処理状態テーブルに基づいて前記各演算処理ユニットのうち前記中断されたタスクを処理可能な他の演算処理ユニットを選択し前記中断されたタスクを処理するように指示するタスク引継手段と
を有し、
前記他の演算処理ユニットは、前記処理を指示されたタスクの処理を開始する
ことを特徴とするクラスタリングシステム。
【請求項２】
請求項１記載のクラスタリングシステムであって、
前記処理状態テーブルは、さらに、各ゲーム機毎に予め設定され、単位時間に対するゲームプレイ時間の割合としてのプレイ頻度を示すものであり、
前記タスク引継手段は、
前記タスク処理手段によって前記タスクが中断された場合に、前記ローカルネットワークを介して前記処理状態テーブルを参照し、前記各演算処理ユニットのうち前記中断されたタスクを処理可能な他の演算処理ユニットが複数ある場合には、前記プレイ頻度の最も低い順に前記演算処理ユニットを選択し前記中断されたタスクを処理するように指示する
ことを特徴とするクラスタリングシステム。
【請求項３】
請求項１記載のクラスタリングシステムであって、
前記タスク引継手段は、
前記タスク処理手段によって前記タスクが中断された場合に、前記ローカルネットワークを介して前記処理状態テーブルを参照し、前記各演算処理ユニットのうち前記中断されたタスクを処理可能な他の演算処理ユニットが複数ある場合には、その数に対応して前記中断されたタスクを分割し、それぞれの演算処理ユニットに前記分割されたタスクを処理するように指示する
ことを特徴とするクラスタリングシステム。
【請求項４】
請求項１記載のクラスタリングシステムにおいて、
前記アミューズメント施設とは異なる地域に設置された第２アミューズメント施設内に複数設置された第２ゲーム機と、
前記各第２ゲーム機にそれぞれ搭載されローカルネットワークを介して互いに接続された第２演算処理ユニットと、
前記第２アミューズメント施設内に設置され前記各第２演算処理ユニットと前記ローカルネットワークを介して接続され、かつ前記管理サーバとインターネットを介して接続された第２管理サーバと、
を有し、
前記管理サーバは、
前記タスク処理手段によって前記タスクが中断された場合に、前記ローカルネットワークを介して前記処理状態テーブルを参照し、前記各演算処理ユニットのうち前記中断されたタスクを処理可能な他の演算処理ユニットが一つもない場合には、前記中断されたタスクの処理を処理可能か否かを前記第２管理サーバに問合わせ、処理可能である場合には、前記中断されたタスクの処理を前記第２管理サーバに依頼し、
前記各第２管理サーバは、
前記各第２演算処理ユニットのうち前記中断されたタスクを処理可能な前記第２演算処理ユニットに前記中断されたタスクを処理するように指示し、
前記第２演算処理ユニットは、前記中断されたタスクの処理を開始する
ことを特徴とするクラスタリングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アミューズメント施設内において、各ゲーム機に搭載された演算ユニットと各ゲーム機を管理する管理サーバとを用いて実行されるクラスタリングシステムに関する。
【背景技術】
【０００２】
従来より、特定施設内での複数のコンピュータを通信回線で接続し、各コンピュータが割当てられた処理をそれぞれ実行することで全体としては大規模で高度な処理を実現する、いわゆるクラスタリングが広く知られている。
【０００３】
例えば、特許文献１には、メイン側コンピュータと複数のスレーブ側コンピュータとでクラスタリングを実行するためのクラスタリングシステムが開示されている。  
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００７−５２２５４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記のようなクラスタリングシステムでは、個人のコンピュータの余剰リソースを単に利用するものであるため、各コンピュータの使用目的やユーザによる使用状況が異なると、それに対応しきれず効率的なクラスタリングをすることができなかった。
【０００６】
本発明は、このような事情に鑑みて各コンピュータの使用目的や使用状況にも対応してクラスタリングを効率的に実行するためのシステムを提供することを目的とする。  
【課題を解決するための手段】
【０００７】
この発明の主要な観点によれば、クラスタリングによってタスクを処理するシステムであって、アミューズメント施設内に複数設置されたゲーム機と、前記各ゲーム機にそれぞれ搭載されローカルネットワークを介して互いに接続された演算処理ユニットと、前記アミューズメント施設内に設置され前記各演算処理ユニットと前記ローカルネットワークを介して接続された管理サーバと、を有し、前記管理サーバは、前記各演算処理ユニットの可動状態をリアルタイムで示す処理状態テーブルと、前記管理サーバに所定のタスクが新たに発生した場合に、前記処理状態テーブルに基づいて前記各演算処理ユニットのうち前記タスクを処理可能な演算処理ユニットを選択し前記タスクを処理するように指示するタスク管理手段とを有し、前記演算処理ユニットは、プレイヤにゲームプレイを提供するためのゲーム処理をするゲーム処理手段と、前記タスク管理手段によって処理を指示された前記タスクを処理し、前記ゲーム処理手段が前記ゲーム処理を開始するときには処理中の前記タスクを中断するタスク処理手段と、前記タスク処理手段によって前記タスクが中断された場合に、前記ローカルネットワークを介して前記処理状態テーブルを参照し、この処理状態テーブルに基づいて前記各演算処理ユニットのうち前記中断されたタスクを処理可能な他の演算処理ユニットを選択し前記中断されたタスクを処理するように指示するタスク引継手段とを有し、前記他の演算処理ユニットは、前記処理を指示されたタスクの処理を開始することを特徴とするシステムが提供される。
【０００８】
また、この発明の別の実施形態によれば、前記処理状態テーブルは、さらに、各ゲーム機毎に予め設定され、単位時間に対するゲームプレイ時間の割合としてのプレイ頻度を示すものであり、前記タスク引継手段は、前記タスク処理手段によって前記タスクが中断された場合に、前記ローカルネットワークを介して前記処理状態テーブルを参照し、前記各演算処理ユニットのうち前記中断されたタスクを処理可能な他の演算処理ユニットが複数ある場合には、前記プレイ頻度の最も低い順に前記演算処理ユニットを選択し前記中断されたタスクを処理するように指示すること特徴とするクラスタリングシステムが提供される。
【０００９】
また、この場合、前記タスク引継手段は、前記タスク処理手段によって前記タスクが中断された場合に、前記ローカルネットワークを介して前記処理状態テーブルを参照し、前記各演算処理ユニットのうち前記中断されたタスクを処理可能な他の演算処理ユニットが複数ある場合には、その数に対応して前記中断されたタスクを分割し、それぞれの演算処理ユニットに前記分割されたタスクを処理するように指示することが望ましい。
【００１０】
また、この発明の別の実施形態によれば、前記アミューズメント施設とは異なる地域に設置された第２アミューズメント施設内に複数設置された第２ゲーム機と、前記各第２ゲーム機にそれぞれ搭載されローカルネットワークを介して互いに接続された第２演算処理ユニットと、前記第２アミューズメント施設内に設置され前記各第２演算処理ユニットと前記ローカルネットワークを介して接続され、かつ前記管理サーバとインターネットを介して接続された第２管理サーバと、を有し、前記管理サーバは、前記タスク処理手段によって前記タスクが中断された場合に、前記ローカルネットワークを介して前記処理状態テーブルを参照し、前記各演算処理ユニットのうち前記中断されたタスクを処理可能な他の演算処理ユニットが一つもない場合には、前記中断されたタスクの処理を処理可能か否かを前記第２管理サーバに問合わせ、処理可能である場合には、前記中断されたタスクの処理を前記第２管理サーバに依頼し、前記各第２管理サーバは、前記各第２演算処理ユニットのうち前記中断されたタスクを処理可能な前記第２演算処理ユニットに前記中断されたタスクを処理するように指示し、前記第２演算処理ユニットは、前記中断されたタスクの処理を開始することを特徴とするクラスタリングシステムが提供される。  
【図面の簡単な説明】
【００１１】
【図１】図１は、この発明の一実施形態における全体構成図である。
【図２】図２は、この発明の一実施形態における機能ブロック図である。
【図３】図３は、管理サーバ側によるタスク割当処理を示したフローチャートである。
【図４】図４は、ゲーム機によるタスク処理を示したフローチャートである。
【図５】図５は、ゲーム機によるタスク処理を示したフローチャートである。
【図６】図６は、他アミューズメント施設割当処理を示したフローチャートである。
【図７】図７は、処理状態テーブル及びタスクテーブルの一例を示したものである。
【図８】図８は、処理状態テーブル及びタスクテーブルの一例を示したものである。
【図９】図９は、処理状態テーブル及びタスクテーブルの一例を示したものである。
【図１０】図１０は、処理状態テーブル及びタスクテーブルの一例を示したものである。
【図１１】図１１は、処理状態テーブル及びタスクテーブルの一例を示したものである。
【図１２】図１２は、処理状態テーブル及びタスクテーブルの一例を示したものである。
【図１３】図１３は、タスクテーブルの一例を示したものである。
【発明を実施するための形態】
【００１２】
以下、図１〜１３を参照しつつ、本願発明の一実施形態について説明する。
【００１３】
図１は、一実施形態におけるクラスタリングシステム１０の全体構成を示すものである。この図１において、このクラスタリングシステム１０は、異なる場所に設置された複数のアミューズメント施設１００〜３００を有しインターネットで互いに接続されている。
【００１４】
具体的には、前記アミューズメント施設１００は、このアミューズメント施設１００内で生じる種々のタスクを管理する管理サーバ１１と、この管理サーバ１１とローカルネットワークなどを介して接続された複数のゲーム機１〜３とを有している。また、図示しないが、前記管理サーバ１１と同様の構成を有するサーバが各アミューズメント施設２００〜３００内にもそれぞれ設置され、そして、当該各管理サーバが互いにインターネットなどを介して接続されていることで、各アミューズメント施設１００〜３００が互いに通信可能になっている。なお、アミューズメント施設やゲーム機の設置数は上記に限定されず適宜設計が可能である。
【００１５】
図２は、前記アミューズメント施設１００における機能ブロック図である。この図に示すように、前記管理サーバ１１は、前記ゲーム機１〜３及び前記アミューズメント施設１００〜３００と通信をするためのサーバ側通信装置３０と、サーバ制御ユニット４０（後述する）と、データ格納部４１とを有している。このデータ格納部４１には、後述する処理状態テーブル３３、タスクテーブル３４及びタスク処理に必要なデータ（以下「タスクデータ」という）３５がそれぞれ格納されている。また、前記管理サーバ１１には、管理者などによりタスクを管理するための外部入力装置３６及び外部表示装置３７が図示しないインターフェースを介して接続されている。
【００１６】
前記サーバ制御ユニット４０は、前記アミューズメント施設１００内で発生した種々のタスク（例えば、各業務データベースのアップデートなど）を管理するための制御ユニットであり、実際には、タスク管理部３２なるタスク管理プログラムがサーバ側ＣＰＵ３１によって、図示しないメモリ上に呼出され実行されることでその機能を奏するようになっている。
【００１７】
ここで、前記タスク管理部３２及び各ゲーム機１〜３に搭載された各演算処理ユニット４３（後述する）は、周知のマイグレーション技術などによって、互いにタスクを移送可能に構成されている。そして、例えば、一の演算処理ユニットによる演算途中のタスクを他の演算処理ユニット（若しくは前記タスク管理部３２）に移送した場合には、当該他の演算処理ユニット（若しくは前記タスク管理部３２）によって前記移送されたタスクをその途中から引継ぎ処理するようになっている。
【００１８】
前記タスクテーブル３４は、例えば図７に示すように、前記アミューズメント施設１００内で生じる種々のタスクについて、そのタスクの処理を管理するためのものであり各タスクのリアルタイムでの処理状態を示すものである。例えば、この図７では、「タスクａ」の処理状態は「処理待ち」となっている。なお、詳しくは後述するが、このタスクテーブル３４は、前記管理サーバ１１のタスク管理部３２及び各ゲーム機１〜３の各タスク処理部２５（後述する）によって適宜上書され更新されるようになっている。
【００１９】
前記処理状態テーブル３３は、例えば図７に示すように、各ゲーム機毎のプレイ頻度及び動作状態を示すものである。ここで、前記プレイ頻度とは、単位時間（例えば、１時間）のうち、平均してどのくらいの時間でゲームプレイが行われているかを示すものである。すなわち、人気があるゲーム機は頻繁にプレイされるためプレイ頻度が高くなるが、逆に人気のないゲーム機はプレイ頻度が低くなる。なお、このことは、プレイ頻度の高いゲーム機に搭載された演算処理ユニットは余剰時間が少ないが、プレイ頻度の低いゲーム機に搭載された演算処理ユニットは余剰時間が多くあることを意味している。なお、本実施形態では、前記プレイ頻度は、「高」「中」「低」の３段階に予め設定されている。ここで、この基準としては、例えば、１時間のうちトータルでのプレイ時間が平均して３０分を超えるゲーム機についてはプレイ頻度が「高」、１時間のうちトータルでのプレイ時間が平均して１０〜３０分のゲーム機についてはプレイ頻度が「中」、そして、１時間のうちトータルでのプレイ時間が平均して１０分以下のゲーム機についてはプレイ頻度が「低」として設定される。
【００２０】
ここで、具体的なプレイ頻度の設定については、例えば、予め、前記アミューズメント施設１００の管理者などによって前記外部入力装置３６及び前記外部表示装置３７等を使用することにより定期的に設定されてもよいし、各ゲーム機に搭載された後述する演算処理ユニット４３の図示しないプレイ頻度算出部によって、前記単位時間に対するプレイ時間の割合から算出して所定時間毎（例えば２時間毎）に動的に設定されるようにしてもよい。なお、この場合は、前記プレイ頻度算出部によって前記処理状態テーブル３３での前記プレイ頻度の欄が所定時間毎（例えば２時間毎）に更新される。
【００２１】
また、前記処理状態テーブル３３での「動作状態」とは、各ゲーム機に搭載された前記演算処理ユニット（以下、ゲーム機と演算処理ユニットとを特に区別する必要のない場合には、単に「ゲーム機」という）４３がどのような動作を実行しているのかをリアルタイムで示すものである。例えば、ゲーム機がタスク要求（後述する）をしている場合には「タスク要求中」と、ゲーム機がタスク処理をしている場合には、そのタスクのＩＤと共に例えば「タスクａ処理中」（タスクＩＤが「タスクａ」の場合）と、ゲーム機が他のゲーム機にタスクの引継処理をしている場合には「タスク引継中」と、そして、ゲーム機がゲームを実行している場合には「ゲーム実行中」などと示されるようになっている（図７〜１３参照）。ここで、この処理状態テーブル３３も前記タスクテーブル３４と同様に、前記管理サーバ１１のタスク管理部３２若しくは各ゲーム機のタスク処理部２５によって適宜上書きされ更新されるようになっている。
【００２２】
なお、前記外部表示装置３７には、前記アミューズメント施設１００の管理者などが前記外部入力装置３６を操作することによって、前記処理状態テーブル３３及びタスクテーブル３４を表示させることができる。すなわち、当該管理者は前記アミューズメント施設１００内においてどのようなタスクが発生し、この発生したタスクが現在どのような状態にあるのかを全て把握することが出来るようになっている。
【００２３】
図２に戻って、前記ゲーム機１は、ゲーム設定やゲーム操作を入力するためのゲーム入力装置２０と、ゲーム画像を表示するためのゲーム表示装置２１と、前記ゲーム機１にコインが投入されたことを検出するコイン検出装置２２と、前記ローカルネットワークに接続するためのゲーム機側通信装置２３と、ゲーム処理及びタスク処理を実行するための演算処理ユニット４３を有している。また、このゲーム機１が有する図示しないデータ格納部には、ゲームに登場するキャラクターやゲームシーケンスデータなどゲーム実行に必要なゲームデータ２８が格納されている。
【００２４】
前記演算処理ユニット４３は、前記管理サーバ１１から割当てられたタスクを処理したり、ゲーム処理を実行したりするための制御ユニットである（なお、本実施形態でいう「割当て」とは、タスクを移送し、かつ処理するように指示することをいう）。すなわち、前記演算処理ユニット４３は、タスク処理部２５、タスク引継部２６及びゲーム実行部２７なる実行プログラムが前記演算処理ユニット４３の図示しないプログラム格納部に格納され、そして、ゲーム機側ＣＰＵ２４によってメモリ上に呼出されて実行されることでその機能を奏するようになっている。なお、前記タスク処理部２５によってタスクを処理するための具体的なアプリケーションプログラムについては、例えば、演算処理ユニット４３の前記プログラム格納部に予め格納しておけばよい。
【００２５】
ここで、前記ゲーム機１のタスク処理部２５は、当該ゲーム機１がタスク処理中若しくはゲーム処理中でない場合には、前記ローカルネットワークを介して前記管理サーバ１１のタスク管理部３２に、定期的（例えば、１回／分）にタスクを要求する信号（以下「タスク要求」という）を送信するようになっている。
【００２６】
そして、前記タスク管理部３２は、このタスク要求を受付ると、前記処理状態テーブル３３の「動作状態」の項目を「タスク要求中」に更新する。例えば図７では、前記処理状態テーブル３３において、前記ゲーム機１〜３の動作状態が全て「タスク要求中」となっている。すなわちこの状態は、前記ゲーム機１〜３の各演算処理ユニット４３が全て空き時間を有し前記アミューズメント施設１００内で生じたタスクの処理を受付可能な状態であることを示している。
【００２７】
図２において、前記ゲーム機２、３は、前記ゲーム機１と同様の構成を有する。そして、このクラスタリングシステム１０においては、これらゲーム機１〜３の各演算処理ユニット４３と前記管理サーバ１１とで前記アミューズメント施設１００内で生じたタスクを全て分散処理するようになっている。なお、前記ゲーム機１〜３の各演算処理ユニット４３は、例えば、図示しないが仮想メモリを共有するようにしてもよい。そして、この場合には、各演算処理ユニット４３は、この仮想メモリを使用してそれぞれに割当てられたタスクを処理する。
【００２８】
なお、前記アミューズメント施設２００〜３００は、前記アミューズメント施設１００と同様に構成されている。ここで、前記アミューズメント施設１００〜３００においても各タスク管理部３２は、上記周知のマイグレーション技術などによって互いにタスクを移送可能に構成されている。そして、例えば、一の演算処理ユニットによる演算途中のタスクを、他のアミューズメント施設に設置された他の演算処理ユニット（若しくは他のタスク管理部）に移送した場合には、当該他の演算処理ユニット（若しくは他のタスク管理部）によって前記移送されたタスクをその途中から引継ぎ処理するようになっている。
【００２９】
以下、上記構成の作用を説明する。
【００３０】
（管理サーバによるタスク割当処理）
図３は、本実施形態における、管理サーバ１１によって実行されるタスク割当処理を示したフローチャートである。なお、この図３に示した符号Ｓ１〜７は、以下の説明のＳ１〜７に対応している。なお、特に説明しない限り、以下の説明（「ゲーム機によるタスク処理」、「タスク引継処理」「タスク分割処理」の説明を含む）は全て前記アミューズメント施設１００内のみで実行される処理である。
【００３１】
まず、前記タスク管理部３２は、前記外部入力装置３６などからの入力によって処理すべきタスクが発生すると（Ｓ１）、図７に示すように、前記タスクテーブル３４に、発生したタスクにタスクＩＤ（「タスクａ」）を付与すると共にタスクａの処理状態（「処理待ち」）を書込む。次に、前記タスク管理部３２は、この処理状態テーブル３３の「動作状態」の欄を参照し（Ｓ２）、前記ゲーム機１〜３のうち何れがタスクを要求をしているかを確認する（Ｓ３）。
【００３２】
そして、前記タスク管理部３２は、もし前記処理状態テーブル３３での「動作状態」の欄においてタスク要求中のゲーム機がない場合（Ｓ３のＮＯ）には、後述する他アミューズメント施設割当処理（図６）を実行する。一方、前記処理状態テーブル３３での「動作状態」の欄においてタスク要求中のゲーム機がある場合（Ｓ３のＹＥＳ）は、次いで、タスク要求中のゲーム機が複数台あるか否かについても確認する（Ｓ４）。そして、タスク要求中のゲーム機が複数台ない（すなわち１台しかない）場合には（Ｓ４のＮＯ）、当該タスク要求中のゲーム機にタスク処理を割当てる（Ｓ５）。
【００３３】
一方、前記タスク管理部３２は、前記処理状態テーブル３３においてタスク要求中のゲーム機が複数ある場合には（Ｓ４のＹＥＳ）、次に、前記処理状態テーブル３３での「プレイ頻度」の欄を参照する（Ｓ６）。本実施形態では、図７の前記処理状態テーブル３３での「動作状態」の欄を参照すると、上述したように、ゲーム機１〜３の全てがタスク要求中となっている。すなわちこの場合、前記タスク管理部３２は、前記処理状態テーブル３３での「プレイ頻度」の欄を参照し（Ｓ６）、そして、最もプレイ頻度の低いゲーム機（本実施形態ではゲーム機１「低」）にタスクａの処理を割当てる（Ｓ７）。また、前記ゲーム機１は、当該割当てられたタスクａの処理を開始する。
【００３４】
なお、例えば、上記のようにタスク要求中のゲーム機が同時に複数ある場合には、タスクａを複数に分割し（例えば、子タスクａ１、ａ２、ａ３とする）、この分割された子タスクａ１〜ａ３を各ゲーム機１〜３にそれぞれ割当てても良い。また、図示しないが仮に同レベルのプレイ頻度（例えば「中」）を有するゲーム機が複数（例えば２台）あり、何れのゲーム機もタスク要求をしている場合に、何れのゲーム機にタスクを割当てるかは、例えば、予め設定されたゲーム機毎の識別番号順に割当てるようにしても良いし、或いは、タスクａを複数に分割し（例えば、子タスクａ１、ａ２とする）、この分割された子タスクａ１、ａ２をそれぞれ前記複数のゲーム機に割当てても良い。
【００３５】
（ゲーム機によるタスク処理）
図４は、各ゲーム機によって実行されるタスク処理を示したフローチャートである。なお、以下、説明の便宜上、ゲーム機１についてのみ説明してあるが、他のゲーム機２、３も同様の処理を実行するものである。また、この図４に示した符号Ｓ２１〜２７は、以下の説明のＳ２１〜２７に対応している。
【００３６】
まず、前記ゲーム機１の前記タスク処理部２５は、前記ゲーム機１がゲーム実行中若しくはタスクを処理中でない場合（Ｓ２１のＮＯ）には、前記管理サーバ１１のタスク管理部３２に、定期的（例えば、１回／分）にタスク要求を送信する（Ｓ２２）。そして、前記タスク処理部２５は、前記タスク管理部３２からタスクを割当てられると（Ｓ２３のＹＥＳ）、当該割当てられたタスクの処理を開始する（Ｓ２４）。具体的に本実施形態では、タスク管理部３２が前記ゲーム機１にタスクａを割当てると（図７の波線参照）、前記ゲーム機１は、当該割当てられたタスクａの処理を開始する。このとき、図８に示すように、前記ゲーム処理部２５は、前記処理状態テーブル３３での前記ゲーム機１の「動作状態」の欄を「タスクａ処理中」と、また、前記タスクテーブル３４での「処理状態」の欄を「ゲーム機１で処理中」と更新する。
【００３７】
ここで、前記タスク処理部２５の具体的な処理内容について簡単に説明すると、前記タスク処理部２５は、前記ローカルネットワークを介し、前記管理サーバ１１に格納された前記タスクデータ３５からタスクａの処理に必要なデータを読出しつつ適当なアプリケーションプログラムによって、例えば前記仮想メモリ（図示せず）上で演算するものである。そして、演算結果を前記管理サーバ１１の前記データ格納部４１に順次格納していくようになっている。
【００３８】
次いで、前記タスク処理部２５は、前記ゲーム機１にコインが投入されない限りにおいて（Ｓ２５のＮＯ）、タスク処理を継続して実行する（Ｓ２６）。そして、タスク処理が完了すると（Ｓ２７のＹＥＳ）、前記タスク処理部２５は、Ｓ２１まで戻り、すなわちゲーム実行が開始されない限り再び前記管理サーバ１１のタスク管理部３２へのタスク要求の送信を開始する。なお、前記管理サーバ１１のタスク管理部３２は、割当てたタスクの処理が完了すると、前記タスクテーブル３４において、処理の完了したタスクの欄を全て削除する。そして、前記タスク処理の完了したゲーム機からのタスク要求を再び受付ると、前記処理状態テーブル３３において、当該ゲーム機の動作状態を「タスク要求中」と更新する（図示せず）。
【００３９】
一方、前記ゲーム機１によるタスクａの処理中に、プレイヤによって前記ゲーム機１にコインが投入されると（Ｓ２５のＹＥＳ）、前記コイン検出装置２３からゲーム実行開始の指示が前記タスク処理部２５及び前記ローカルネットワークを介して前記管理サーバ１１のタスク管理部３２にそれぞれ与えられる。すると、前記タスク処理部２５及び前記管理部３２は、次に、後述するタスク引継処理を開始する（図５へ）。
【００４０】
（タスク引継処理）
図５はタスク引継処理を示したフローチャートである。なお、図５に示した符号Ｓ３１〜３７は、以下の説明のＳ３１〜３７に対応している。なお、説明の便宜上、前記ゲーム機１に対応する前記ゲーム機２、３の各処理部の符号は括弧書きで示してある。
【００４１】
前記タスク処理部２５は、前記コイン検出装置２３からゲーム実行開始の指示を受付けると、直ちに処理中のタスクを中断する（Ｓ３１）と共に前記タスク引継部２６にタスクａの引継処理を指示する。また、このとき、前記タスク処理部２５は、前記ローカルネットワークを介して、図９に示すように、前記処理状態テーブル３３でのゲーム機１の動作状態を「タスクａ引継中」と、さらに、前記タスクテーブル３４でのタスクaの状態を「引継待ち」と更新する。
【００４２】
次に、前記タスク引継部２６は、前記処理状態テーブル３３を参照し（Ｓ３２）、そして、前記タスク引継部２６は、もし前記処理状態テーブル３３での「動作状態」の欄においてタスク要求中のゲーム機がない場合（Ｓ３３のＮＯ）には、後述する他アミューズメント施設割当処理（図６）を実行するように前記管理サーバ１１の前記タスク管理部３２に指示すると共に、前記中断されたタスクを前記タスク管理部３２に受け渡す。そして、前記ゲーム実行部２７は、ゲーム処理を開始する。一方、前記処理状態テーブル３３での「動作状態」の欄においてタスク要求中のゲーム機がある場合（Ｓ３３のＹＥＳ）は、前記タスク引継部２６は、タスク要求中のゲーム機が複数台あるか否かについても確認する（Ｓ３４）。そして、前記タスク引継部２６は、タスク要求中のゲーム機が複数台ない（すなわち１台しかない）場合には（Ｓ３４のＮＯ）、当該タスク要求中のゲーム機にタスク処理を割当てる（Ｓ３５）。そして、前記ゲーム実行部２７は、ゲーム処理を開始する。
【００４３】
一方、前記タスク引継部２５は、前記処理状態テーブル３３においてタスク要求中のゲーム機が複数ある場合には（Ｓ３４のＹＥＳ）、次に、前記処理状態テーブル３３での「プレイ頻度」の欄を参照する（Ｓ３６）。本実施形態では、図９の前記処理状態テーブル３３での「動作状態」の欄を参照すると前記ゲーム機２、３がタスク要求中となっている。すなわちこの場合、前記タスク引継部２６は、前記ゲーム機２、３のうち、最もプレイ頻度の低いゲーム機（本実施形態ではゲーム機２「中」）にタスクａの処理を割当てる（Ｓ３７）。そして、前記ゲーム機２は、当該割当てられたタスクａの処理を開始する。
【００４４】
なお、前記ゲーム機１の前記タスク処理部２５は、引継処理が完了すると、図１０に示すように、前記ローカルネットワークを介して前記処理状態テーブル３３でのゲーム機１の「動作状態」の欄を「ゲーム処理中」と更新する。また、前記ゲーム機２のタスク処理部（２５）は、割当てられたタスクの処理を開始する場合に、前記ローカルネットワークを介して前記タスクテーブル３４での前記ゲーム機２の「動作状態」の欄を「タスクａ処理中」と、さらに、前記タスク処理テーブル３４でのタスクａの「処理状態」の欄を「ゲーム機２で処理中」とそれぞれ更新する。次いで、前記ゲーム機１の前記ゲーム実行部２７は、ゲーム処理を開始する。
【００４５】
（タスク分割処理）
ここで、上述したタスク引継処理において、タスク要求中のゲーム機が同時に複数ある場合には、以下に説明するように、当該タスクを分割して複数のゲーム機に割当てるようにしてもよい。
【００４６】
すなわち、例えば、前記引継処理を開始する場合に、前記タスク引継部２６が前記処理状態テーブル３３を参照すると、図１１に示すように、前記ゲーム機２、３がそれぞれタスク要求中である場合には、まず、前記タスク引継部２６は、タスクａを２つに分割しタスクＩＤを付与する（例えば、子タスクａ１、ａ２とする）。また、このとき、前記タスク処理部２５は、前記処理状態テーブル３３での前記ゲーム機１の「動作状態」の欄を「タスクａ引継中」と、また前記タスクテーブル３４でのタスクａ１、ａ２の「処理状態」の欄をそれぞれ「引継待ち」と更新する。
【００４７】
そして、前記タスク引継部２６は、当該分割された子タスクａ１、ａ２を前記ゲーム機２、３にそれぞれ割当てる（図１１の波線参照）。また、このとき、前記ゲーム機２のタスク処理部（２５）は、図１２に示すように、前記処理状態テーブル３３でのゲーム機２の「動作状態」欄を「タスクａ１処理中」と、また、前記タスクテーブル３４での「タスクａ１」の欄を「ゲーム機２で処理中」と更新する。なお、前記ゲーム機３のタスク処理部（２５）も、上記ゲーム機２のタスク処理と同様に、前記処理状態テーブル３３でのゲーム機３の「動作状態」欄を「タスクａ２処理中」と、また、前記タスクテーブル３４での「タスクａ２」の欄を「ゲーム機３で処理中」と更新する。
【００４８】
ここで、前記タスク引継部２４は、タスクａを分割する場合、当該タスクａを均等に分割してもよいし、前記ゲーム機２及び３のプレイ頻度に応じて異なるようにタスクａを分割してもよい。すなわち、タスクａを親タスクとしてその中に子タスクが１０項目あるとすると、プレイ頻度が「中」のゲーム機２には前記１〜７項目の処理を、一方、プレイ頻度が「高」であるゲーム機１には残り８〜１０項目の処理を割当てるようにしてもよい。
【００４９】
さらに、例えば、図示しないが仮に同レベルのプレイ頻度（例えば「中」）を有するゲーム機が複数（例えば２台）あり、何れのゲーム機もタスク要求をしている場合に、何れのゲーム機にタスクを割当てるかについては、例えば、前記タスク引継部２６は、予め設定されたゲーム機毎の識別番号順に割当てるようにしても良いし、上記と同様に分割し、各ゲーム機にそれぞれに割当てても良い。
【００５０】
（他アミューズメント施設割当処理）
図６は、前記管理サーバ１１によって実行される他のアミューズメント施設へのタスク割当処理を示したフローチャートである。なお、この図６に示した符号Ｓ４１〜４４は、以下の説明のＳ４１〜４４に対応している。なお、説明の便宜上、前記アミューズメント施設１００の各処理部に対応する他のアミューズメント施設２００〜３００の各処理部の符号は括弧書きで示してある。
【００５１】
まず、前記アミューズメント施設１００のタスク管理部３２は、上述したタスク割当処理において、タスク要求中のゲーム機が存在しない場合（図３、Ｓ３のＮＯ）若しくは前記引継処理において、タスク要求中のゲーム機が存在しないことから前記タスク引継部２６によってタスクを受渡された場合（図５、Ｓ３３のＮＯ）には、当該引継に係るタスクａ（以下「依頼タスクａ」という）の受入れの可否を、アミューズメント施設２００〜３００のタスク管理部（３２）に問合わせる（Ｓ４１）。また、このとき、前記アミューズメント施設１００のタスク管理部３２は、図１３ａに示すように、前記タスクテーブル３４での「タスクａ」の欄を「他店舗に問合せ中」と更新する。
【００５２】
そして、この問合わせを受けた前記アミューズメント施設２００のタスク管理部（３２）は、前記アミューズメント施設２００での処理状態テーブル（３３）を参照しタスク要求中のゲーム機があるか否かを確認する。そして、前記アミューズメント施設２００のタスク管理部（３２）は、タスク要求中のゲーム機があれば「受入可能」として判断し、そうでなければ「受入不可」として判断する。そして、その判断結果を前記アミューズメント施設１００の前記タスク管理部３２に返答する。なお、前記アミューズメント施設３００も同様に当該依頼タスクａを受入可能か否かを判断し、その結果を前記アミューズメント施設１００に返答する。
【００５３】
そして、前記アミューズメント施設１００のタスク管理部３２は、前記アミューズメント施設２００のタスク管理部３２から「受入可能」との返答を受けた場合には（Ｓ４２のＹＥＳ）、そのアミューズメント施設２００のタスク管理部（３２）に依頼タスクａの処理を依頼する。具体的には、上記周知のマイグレーション技術によって前記依頼タスクａを前記アミューズメント施設１００から前記アミューズメント施設２００に移送する。すなわち、このとき前記アミューズメント施設２００では、新たに発生したタスクとして前記アミューズメント施設１００におけるタスク割当処理と同様の処理が前記Ｓ１から開始される。なお、もし受入可能なアミューズメント施設が複数あった場合には、そのうち返答が最も早かったものに決定するなどして適宜決定すれば良い。また、このとき、前記アミューズメント施設２００のタスク管理部（３２）は、図１３ｂに示すように、前記タスクテーブル（３４）での「タスクａ」の欄を「アミューズメント施設２００で処理中」と更新する。
【００５４】
一方、受入可能な他のアミューズメント施設がない場合には（Ｓ４２のＮＯ）、前記タスク管理部３２は、前記アミューズメント施設１００内においてタスク要求をしてくるゲーム機が現れるまで当該依頼タスクａを待機させる（Ｓ４３）。すなわちこの場合は、前記アミューズメント施設１００における前記Ｓ１（図３）へ戻る。或いは、前記タスク管理部３２は、自ら依頼タスクａを処理しても良い。
【００５５】
ここで、前記依頼タスクａを依頼された前記アミューズメント施設２００のタスク管理部（３２）は、前記依頼タスクａを上述したタスク要求中のゲーム機に割当てるとともに、前記アミューズメント施設２００の処理状態テーブル（３３）を更新する（図示せず）。そして、前記依頼タスクａを割当てられたゲーム機（以下「引継ゲーム機」という）は、前記アミューズメント施設２００のタスクテーブル（３４）を更新する（図示せず）と共に、前記割当てられた依頼タスクａの処理を開始する。そして、処理結果を前記アミューズメント施設２００のデータ格納部（４１）に順次格納していく。そして、前記アミューズメント施設２００の前記タスク管理部３２は、ある程度の処理結果を得る毎に前記アミューズメント施設１００の前記タスク管理部３２に前記処理結果を転送する。この転送を受付けると、前記アミューズメント施設１００における前記タスク管理部３２は、前記データ格納部４３に処理結果を格納する。
【００５６】
そして、前記アミューズメント施設１００での前記タスク管理部３２は、予定されていた引継タスクaの処理が全て完了したことを検出すると、前記アミューズメント施設１００の前記タスクテーブル３４での「タスクａ」の欄を削除する。一方、前記アミューズメント施設２００においては、前記アミューズメント施設２００のタスク管理部（３２）が、前記アミューズメント施設２００でのタスクテーブル（３４）での依頼タスクａの欄を削除し、前記引継ゲーム機からタスク要求を受付けた場合に、前記処理状態テーブル（３３）の前記引継ゲーム機の「動作状態」の欄を「タスク要求中」と更新する（図示せず）。
【００５７】
なお、この場合、前記引継ゲーム機による依頼タスクａの処理中に、当該引継ゲーム機にコインが投入された場合には、前記アミューズメント施設２００内で、上述したタスク引継処理（図５）と同様に実行しても良いし、或いは、前記アミューズメント施設１００の前記タスク管理部３２に前記依頼タスクａを受渡しても良い（すなわち、この場合は、前記アミューズメント施設１００の内で発生した処理として図３のＳ１に戻る）。
【００５８】
上記のような構成によれば、以下の効果を得ることが出来る。
【００５９】
すなわち、従来では、スレーブ側コンピュータによってタスクが処理されている最中に、何らかの要因が生じたことによってタスク処理が中断された場合には、全てメイン側コンピュータによって、他のスレーブ側コンピュータを検索しこの検索された他のスレーブ側コンピュータに当該中断されたタスクを引継がせていた。
【００６０】
しかしながら、このような従来のクラスタリングシステムでは、スレーブ側コンピュータの台数が多くなってくると、その台数に伴いタスク処理の、システム全体としての中断頻度が高くなる。そしてこの場合、メイン側コンピュータには、当該中断されたタスクを他のスレーブ側コンピュータに引継がせるための処理（タスク引継処理）が頻繁に発生することとなる。すなわち、マスター側コンピュータの処理性能によっては、一つのタスク引継処理が完了する前に次のタスク引継処理が発生するためタスク引継処理が慢性的に滞ってしまう。
【００６１】
また、個々のスレーブ側コンピュータのそれぞれがタスク処理を中断する頻度の高いものである場合（例えばスレーブ側コンピュータがアーケードゲーム機などに搭載されている場合）には、メイン側コンピュータにおいてもタスク引継処理が更なる頻繁で発生するため、当該マスター側コンピュータには、ますますタスク引継処理が滞ることになってしまう。
【００６２】
すなわち、従来のクラスタリングシステムでは、スレーブ側コンピュータでのタスク処理の中断頻度によって、メイン側コンピュータでのタスク引継処理の発生頻度も左右されるため、場合によっては、（例えば、従来技術をアミューズメント施設に適用した場合には頻繁なコイン投入によって引継処理も頻繁に発生するため）、却ってメイン側コンピュータにタスク引継処理が慢性的に滞ってしまう状態になってしまう。そのため、従来のクラスタリングシステムは必ずしも効率の良いタスク処理が行えないという問題がある。
【００６３】
しかしながら、上記本願発明の構成によれば、上述した不具合（すなわちアミューズメント施設特有の不具合）が無く、タスクの中断頻度に左右されず、常に効率の良いタスク処理を実現することのできるクラスタリングシステムを提供することができる。
【００６４】
また、タスク引継処理において、プレイ頻度の最も低いゲーム機から順にタスクを割当てることにしたので、プレイ頻度の高いゲーム機による頻繁なタスク引継処理の発生を最小限にとどめることが出来るため、結果的に、システム全体としてタスク引継処理の発生が少なくなり、当然ながらシステム全体としてタスク処理の効率を良くすることができる。
【００６５】
なお、この発明は、上記一実施形態に限定されるものではなく、発明の要旨を変更しない範囲で種々変形可能である。
【００６６】
例えば、上記実施形態では、まずアミューズメント施設１００内でタスクの引継処理（分割処理）を実行し、その後、アミューズメント施設２００、３００に割当てていたが、最初から複数のアミューズメント施設にまたがっての引継処理（分割処理）を実行するものであっても良い。すなわち、この場合、各アミューズメント施設１００〜３００の各管理サーバ１１には、各アミューズメント施設１００〜３００にある全てのゲーム機の処理状態を示す総合処理状態テーブル及び全てのアミューズメント施設で発生したタスクを示す総合タスクテーブルが用意されている。このような状態で、例えば、前記ゲーム機１のタスク引継部２６は、前記ゲーム機１で処理中のタスクを、前記アミューズメント施設２００内にあるゲーム機に直接割当てたり（上記実施形態では、管理サーバ１１を介して間接的に行うものとなっている）、また、当該タスク引継部２６は、前記アミューズメント施設１００で発生したタスクを分割し、前記アミューズメント施設２００内にあるゲーム機及び前記アミューズメント施設３００内にあるゲーム機のそれぞれに直接割当てたりしてもよい。
【符号の説明】
【００６７】
１〜３…ゲーム機
１０…クラスタリングシステム
１１…管理サーバ
２０…ゲーム入力装置
２１…ゲーム表示装置
２２…コイン検出装置
２３…ゲーム機側通信装置
２４…ゲーム機側ＣＰＵ
２５…タスク処理部
２６…タスク引継部
２７…ゲーム実行部
２８…ゲームデータ
３０…サーバ側通信装置
３１…サーバ側ＣＰＵ
３２…タスク管理部
３３…処理状態テーブル
３４…タスクテーブル
３６…外部入力装置
３７…外部表示装置
４０…サーバ制御ユニット
４１…データ格納部
４３…演算処理ユニット
１００…アミューズメント施設
２００…アミューズメント施設
３００…アミューズメント施設
【図１】
2011134215.tif 000003
【図２】
2011134215.tif 000004
【図３】
2011134215.tif 000005
【図４】
2011134215.tif 000006
【図５】
2011134215.tif 000007
【図６】
2011134215.tif 000008
【図７】
2011134215.tif 000009
【図８】
2011134215.tif 000010
【図９】
2011134215.tif 000011
【図１０】
2011134215.tif 000012
【図１１】
2011134215.tif 000013
【図１２】
2011134215.tif 000014
【図１３】
2011134215.tif 000015