説明

クラスタリングシステム

【課題】各コンピュータの使用目的や使用状況にも対応してクラスタリングを効率的に実行するためのシステムを提供する。
【解決手段】クラスタリングによってタスクを処理するクラスタリングシステムであって、アミューズメント施設内に複数設置されたゲーム機1と、前記各ゲーム機にそれぞれ搭載されローカルネットワークを介して互いに接続された演算処理ユニット43と、前記アミューズメント施設内に設置され前記各演算処理ユニットと前記ローカルネットワークを介して接続された管理サーバ11と、有し、前記管理サーバは、前記各演算処理ユニットの可動状態をリアルタイムで示す処理状態テーブル33と、前記管理サーバに所定のタスクが新たに発生した場合に、前記処理状態テーブルに基づいて前記各演算処理ユニットのうち前記タスクを処理可能な演算処理ユニットを選択し前記タスクを処理するように指示するタスク管理手段32とを有す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アミューズメント施設内において、各ゲーム機に搭載された演算ユニットと各ゲーム機を管理する管理サーバとを用いて実行されるクラスタリングシステムに関する。
【背景技術】
【0002】
従来より、特定施設内での複数のコンピュータを通信回線で接続し、各コンピュータが割当てられた処理をそれぞれ実行することで全体としては大規模で高度な処理を実現する、いわゆるクラスタリングが広く知られている。
【0003】
例えば、特許文献1には、メイン側コンピュータと複数のスレーブ側コンピュータとでクラスタリングを実行するためのクラスタリングシステムが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2007−522547号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記のようなクラスタリングシステムでは、個人のコンピュータの余剰リソースを単に利用するものであるため、各コンピュータの使用目的やユーザによる使用状況が異なると、それに対応しきれず効率的なクラスタリングをすることができなかった。
【0006】
本発明は、このような事情に鑑みて各コンピュータの使用目的や使用状況にも対応してクラスタリングを効率的に実行するためのシステムを提供することを目的とする。
【課題を解決するための手段】
【0007】
この発明の主要な観点によれば、クラスタリングによってタスクを処理するシステムであって、アミューズメント施設内に複数設置されたゲーム機と、前記各ゲーム機にそれぞれ搭載されローカルネットワークを介して互いに接続された演算処理ユニットと、前記アミューズメント施設内に設置され前記各演算処理ユニットと前記ローカルネットワークを介して接続された管理サーバと、を有し、前記管理サーバは、前記各演算処理ユニットの可動状態をリアルタイムで示す処理状態テーブルと、前記管理サーバに所定のタスクが新たに発生した場合に、前記処理状態テーブルに基づいて前記各演算処理ユニットのうち前記タスクを処理可能な演算処理ユニットを選択し前記タスクを処理するように指示するタスク管理手段とを有し、前記演算処理ユニットは、プレイヤにゲームプレイを提供するためのゲーム処理をするゲーム処理手段と、前記タスク管理手段によって処理を指示された前記タスクを処理し、前記ゲーム処理手段が前記ゲーム処理を開始するときには処理中の前記タスクを中断するタスク処理手段と、前記タスク処理手段によって前記タスクが中断された場合に、前記ローカルネットワークを介して前記処理状態テーブルを参照し、この処理状態テーブルに基づいて前記各演算処理ユニットのうち前記中断されたタスクを処理可能な他の演算処理ユニットを選択し前記中断されたタスクを処理するように指示するタスク引継手段とを有し、前記他の演算処理ユニットは、前記処理を指示されたタスクの処理を開始することを特徴とするシステムが提供される。
【0008】
また、この発明の別の実施形態によれば、前記処理状態テーブルは、さらに、各ゲーム機毎に予め設定され、単位時間に対するゲームプレイ時間の割合としてのプレイ頻度を示すものであり、前記タスク引継手段は、前記タスク処理手段によって前記タスクが中断された場合に、前記ローカルネットワークを介して前記処理状態テーブルを参照し、前記各演算処理ユニットのうち前記中断されたタスクを処理可能な他の演算処理ユニットが複数ある場合には、前記プレイ頻度の最も低い順に前記演算処理ユニットを選択し前記中断されたタスクを処理するように指示すること特徴とするクラスタリングシステムが提供される。
【0009】
また、この場合、前記タスク引継手段は、前記タスク処理手段によって前記タスクが中断された場合に、前記ローカルネットワークを介して前記処理状態テーブルを参照し、前記各演算処理ユニットのうち前記中断されたタスクを処理可能な他の演算処理ユニットが複数ある場合には、その数に対応して前記中断されたタスクを分割し、それぞれの演算処理ユニットに前記分割されたタスクを処理するように指示することが望ましい。
【0010】
また、この発明の別の実施形態によれば、前記アミューズメント施設とは異なる地域に設置された第2アミューズメント施設内に複数設置された第2ゲーム機と、前記各第2ゲーム機にそれぞれ搭載されローカルネットワークを介して互いに接続された第2演算処理ユニットと、前記第2アミューズメント施設内に設置され前記各第2演算処理ユニットと前記ローカルネットワークを介して接続され、かつ前記管理サーバとインターネットを介して接続された第2管理サーバと、を有し、前記管理サーバは、前記タスク処理手段によって前記タスクが中断された場合に、前記ローカルネットワークを介して前記処理状態テーブルを参照し、前記各演算処理ユニットのうち前記中断されたタスクを処理可能な他の演算処理ユニットが一つもない場合には、前記中断されたタスクの処理を処理可能か否かを前記第2管理サーバに問合わせ、処理可能である場合には、前記中断されたタスクの処理を前記第2管理サーバに依頼し、前記各第2管理サーバは、前記各第2演算処理ユニットのうち前記中断されたタスクを処理可能な前記第2演算処理ユニットに前記中断されたタスクを処理するように指示し、前記第2演算処理ユニットは、前記中断されたタスクの処理を開始することを特徴とするクラスタリングシステムが提供される。
【図面の簡単な説明】
【0011】
【図1】図1は、この発明の一実施形態における全体構成図である。
【図2】図2は、この発明の一実施形態における機能ブロック図である。
【図3】図3は、管理サーバ側によるタスク割当処理を示したフローチャートである。
【図4】図4は、ゲーム機によるタスク処理を示したフローチャートである。
【図5】図5は、ゲーム機によるタスク処理を示したフローチャートである。
【図6】図6は、他アミューズメント施設割当処理を示したフローチャートである。
【図7】図7は、処理状態テーブル及びタスクテーブルの一例を示したものである。
【図8】図8は、処理状態テーブル及びタスクテーブルの一例を示したものである。
【図9】図9は、処理状態テーブル及びタスクテーブルの一例を示したものである。
【図10】図10は、処理状態テーブル及びタスクテーブルの一例を示したものである。
【図11】図11は、処理状態テーブル及びタスクテーブルの一例を示したものである。
【図12】図12は、処理状態テーブル及びタスクテーブルの一例を示したものである。
【図13】図13は、タスクテーブルの一例を示したものである。
【発明を実施するための形態】
【0012】
以下、図1〜13を参照しつつ、本願発明の一実施形態について説明する。
【0013】
図1は、一実施形態におけるクラスタリングシステム10の全体構成を示すものである。この図1において、このクラスタリングシステム10は、異なる場所に設置された複数のアミューズメント施設100〜300を有しインターネットで互いに接続されている。
【0014】
具体的には、前記アミューズメント施設100は、このアミューズメント施設100内で生じる種々のタスクを管理する管理サーバ11と、この管理サーバ11とローカルネットワークなどを介して接続された複数のゲーム機1〜3とを有している。また、図示しないが、前記管理サーバ11と同様の構成を有するサーバが各アミューズメント施設200〜300内にもそれぞれ設置され、そして、当該各管理サーバが互いにインターネットなどを介して接続されていることで、各アミューズメント施設100〜300が互いに通信可能になっている。なお、アミューズメント施設やゲーム機の設置数は上記に限定されず適宜設計が可能である。
【0015】
図2は、前記アミューズメント施設100における機能ブロック図である。この図に示すように、前記管理サーバ11は、前記ゲーム機1〜3及び前記アミューズメント施設100〜300と通信をするためのサーバ側通信装置30と、サーバ制御ユニット40(後述する)と、データ格納部41とを有している。このデータ格納部41には、後述する処理状態テーブル33、タスクテーブル34及びタスク処理に必要なデータ(以下「タスクデータ」という)35がそれぞれ格納されている。また、前記管理サーバ11には、管理者などによりタスクを管理するための外部入力装置36及び外部表示装置37が図示しないインターフェースを介して接続されている。
【0016】
前記サーバ制御ユニット40は、前記アミューズメント施設100内で発生した種々のタスク(例えば、各業務データベースのアップデートなど)を管理するための制御ユニットであり、実際には、タスク管理部32なるタスク管理プログラムがサーバ側CPU31によって、図示しないメモリ上に呼出され実行されることでその機能を奏するようになっている。
【0017】
ここで、前記タスク管理部32及び各ゲーム機1〜3に搭載された各演算処理ユニット43(後述する)は、周知のマイグレーション技術などによって、互いにタスクを移送可能に構成されている。そして、例えば、一の演算処理ユニットによる演算途中のタスクを他の演算処理ユニット(若しくは前記タスク管理部32)に移送した場合には、当該他の演算処理ユニット(若しくは前記タスク管理部32)によって前記移送されたタスクをその途中から引継ぎ処理するようになっている。
【0018】
前記タスクテーブル34は、例えば図7に示すように、前記アミューズメント施設100内で生じる種々のタスクについて、そのタスクの処理を管理するためのものであり各タスクのリアルタイムでの処理状態を示すものである。例えば、この図7では、「タスクa」の処理状態は「処理待ち」となっている。なお、詳しくは後述するが、このタスクテーブル34は、前記管理サーバ11のタスク管理部32及び各ゲーム機1〜3の各タスク処理部25(後述する)によって適宜上書され更新されるようになっている。
【0019】
前記処理状態テーブル33は、例えば図7に示すように、各ゲーム機毎のプレイ頻度及び動作状態を示すものである。ここで、前記プレイ頻度とは、単位時間(例えば、1時間)のうち、平均してどのくらいの時間でゲームプレイが行われているかを示すものである。すなわち、人気があるゲーム機は頻繁にプレイされるためプレイ頻度が高くなるが、逆に人気のないゲーム機はプレイ頻度が低くなる。なお、このことは、プレイ頻度の高いゲーム機に搭載された演算処理ユニットは余剰時間が少ないが、プレイ頻度の低いゲーム機に搭載された演算処理ユニットは余剰時間が多くあることを意味している。なお、本実施形態では、前記プレイ頻度は、「高」「中」「低」の3段階に予め設定されている。ここで、この基準としては、例えば、1時間のうちトータルでのプレイ時間が平均して30分を超えるゲーム機についてはプレイ頻度が「高」、1時間のうちトータルでのプレイ時間が平均して10〜30分のゲーム機についてはプレイ頻度が「中」、そして、1時間のうちトータルでのプレイ時間が平均して10分以下のゲーム機についてはプレイ頻度が「低」として設定される。
【0020】
ここで、具体的なプレイ頻度の設定については、例えば、予め、前記アミューズメント施設100の管理者などによって前記外部入力装置36及び前記外部表示装置37等を使用することにより定期的に設定されてもよいし、各ゲーム機に搭載された後述する演算処理ユニット43の図示しないプレイ頻度算出部によって、前記単位時間に対するプレイ時間の割合から算出して所定時間毎(例えば2時間毎)に動的に設定されるようにしてもよい。なお、この場合は、前記プレイ頻度算出部によって前記処理状態テーブル33での前記プレイ頻度の欄が所定時間毎(例えば2時間毎)に更新される。
【0021】
また、前記処理状態テーブル33での「動作状態」とは、各ゲーム機に搭載された前記演算処理ユニット(以下、ゲーム機と演算処理ユニットとを特に区別する必要のない場合には、単に「ゲーム機」という)43がどのような動作を実行しているのかをリアルタイムで示すものである。例えば、ゲーム機がタスク要求(後述する)をしている場合には「タスク要求中」と、ゲーム機がタスク処理をしている場合には、そのタスクのIDと共に例えば「タスクa処理中」(タスクIDが「タスクa」の場合)と、ゲーム機が他のゲーム機にタスクの引継処理をしている場合には「タスク引継中」と、そして、ゲーム機がゲームを実行している場合には「ゲーム実行中」などと示されるようになっている(図7〜13参照)。ここで、この処理状態テーブル33も前記タスクテーブル34と同様に、前記管理サーバ11のタスク管理部32若しくは各ゲーム機のタスク処理部25によって適宜上書きされ更新されるようになっている。
【0022】
なお、前記外部表示装置37には、前記アミューズメント施設100の管理者などが前記外部入力装置36を操作することによって、前記処理状態テーブル33及びタスクテーブル34を表示させることができる。すなわち、当該管理者は前記アミューズメント施設100内においてどのようなタスクが発生し、この発生したタスクが現在どのような状態にあるのかを全て把握することが出来るようになっている。
【0023】
図2に戻って、前記ゲーム機1は、ゲーム設定やゲーム操作を入力するためのゲーム入力装置20と、ゲーム画像を表示するためのゲーム表示装置21と、前記ゲーム機1にコインが投入されたことを検出するコイン検出装置22と、前記ローカルネットワークに接続するためのゲーム機側通信装置23と、ゲーム処理及びタスク処理を実行するための演算処理ユニット43を有している。また、このゲーム機1が有する図示しないデータ格納部には、ゲームに登場するキャラクターやゲームシーケンスデータなどゲーム実行に必要なゲームデータ28が格納されている。
【0024】
前記演算処理ユニット43は、前記管理サーバ11から割当てられたタスクを処理したり、ゲーム処理を実行したりするための制御ユニットである(なお、本実施形態でいう「割当て」とは、タスクを移送し、かつ処理するように指示することをいう)。すなわち、前記演算処理ユニット43は、タスク処理部25、タスク引継部26及びゲーム実行部27なる実行プログラムが前記演算処理ユニット43の図示しないプログラム格納部に格納され、そして、ゲーム機側CPU24によってメモリ上に呼出されて実行されることでその機能を奏するようになっている。なお、前記タスク処理部25によってタスクを処理するための具体的なアプリケーションプログラムについては、例えば、演算処理ユニット43の前記プログラム格納部に予め格納しておけばよい。
【0025】
ここで、前記ゲーム機1のタスク処理部25は、当該ゲーム機1がタスク処理中若しくはゲーム処理中でない場合には、前記ローカルネットワークを介して前記管理サーバ11のタスク管理部32に、定期的(例えば、1回/分)にタスクを要求する信号(以下「タスク要求」という)を送信するようになっている。
【0026】
そして、前記タスク管理部32は、このタスク要求を受付ると、前記処理状態テーブル33の「動作状態」の項目を「タスク要求中」に更新する。例えば図7では、前記処理状態テーブル33において、前記ゲーム機1〜3の動作状態が全て「タスク要求中」となっている。すなわちこの状態は、前記ゲーム機1〜3の各演算処理ユニット43が全て空き時間を有し前記アミューズメント施設100内で生じたタスクの処理を受付可能な状態であることを示している。
【0027】
図2において、前記ゲーム機2、3は、前記ゲーム機1と同様の構成を有する。そして、このクラスタリングシステム10においては、これらゲーム機1〜3の各演算処理ユニット43と前記管理サーバ11とで前記アミューズメント施設100内で生じたタスクを全て分散処理するようになっている。なお、前記ゲーム機1〜3の各演算処理ユニット43は、例えば、図示しないが仮想メモリを共有するようにしてもよい。そして、この場合には、各演算処理ユニット43は、この仮想メモリを使用してそれぞれに割当てられたタスクを処理する。
【0028】
なお、前記アミューズメント施設200〜300は、前記アミューズメント施設100と同様に構成されている。ここで、前記アミューズメント施設100〜300においても各タスク管理部32は、上記周知のマイグレーション技術などによって互いにタスクを移送可能に構成されている。そして、例えば、一の演算処理ユニットによる演算途中のタスクを、他のアミューズメント施設に設置された他の演算処理ユニット(若しくは他のタスク管理部)に移送した場合には、当該他の演算処理ユニット(若しくは他のタスク管理部)によって前記移送されたタスクをその途中から引継ぎ処理するようになっている。
【0029】
以下、上記構成の作用を説明する。
【0030】
(管理サーバによるタスク割当処理)
図3は、本実施形態における、管理サーバ11によって実行されるタスク割当処理を示したフローチャートである。なお、この図3に示した符号S1〜7は、以下の説明のS1〜7に対応している。なお、特に説明しない限り、以下の説明(「ゲーム機によるタスク処理」、「タスク引継処理」「タスク分割処理」の説明を含む)は全て前記アミューズメント施設100内のみで実行される処理である。
【0031】
まず、前記タスク管理部32は、前記外部入力装置36などからの入力によって処理すべきタスクが発生すると(S1)、図7に示すように、前記タスクテーブル34に、発生したタスクにタスクID(「タスクa」)を付与すると共にタスクaの処理状態(「処理待ち」)を書込む。次に、前記タスク管理部32は、この処理状態テーブル33の「動作状態」の欄を参照し(S2)、前記ゲーム機1〜3のうち何れがタスクを要求をしているかを確認する(S3)。
【0032】
そして、前記タスク管理部32は、もし前記処理状態テーブル33での「動作状態」の欄においてタスク要求中のゲーム機がない場合(S3のNO)には、後述する他アミューズメント施設割当処理(図6)を実行する。一方、前記処理状態テーブル33での「動作状態」の欄においてタスク要求中のゲーム機がある場合(S3のYES)は、次いで、タスク要求中のゲーム機が複数台あるか否かについても確認する(S4)。そして、タスク要求中のゲーム機が複数台ない(すなわち1台しかない)場合には(S4のNO)、当該タスク要求中のゲーム機にタスク処理を割当てる(S5)。
【0033】
一方、前記タスク管理部32は、前記処理状態テーブル33においてタスク要求中のゲーム機が複数ある場合には(S4のYES)、次に、前記処理状態テーブル33での「プレイ頻度」の欄を参照する(S6)。本実施形態では、図7の前記処理状態テーブル33での「動作状態」の欄を参照すると、上述したように、ゲーム機1〜3の全てがタスク要求中となっている。すなわちこの場合、前記タスク管理部32は、前記処理状態テーブル33での「プレイ頻度」の欄を参照し(S6)、そして、最もプレイ頻度の低いゲーム機(本実施形態ではゲーム機1「低」)にタスクaの処理を割当てる(S7)。また、前記ゲーム機1は、当該割当てられたタスクaの処理を開始する。
【0034】
なお、例えば、上記のようにタスク要求中のゲーム機が同時に複数ある場合には、タスクaを複数に分割し(例えば、子タスクa1、a2、a3とする)、この分割された子タスクa1〜a3を各ゲーム機1〜3にそれぞれ割当てても良い。また、図示しないが仮に同レベルのプレイ頻度(例えば「中」)を有するゲーム機が複数(例えば2台)あり、何れのゲーム機もタスク要求をしている場合に、何れのゲーム機にタスクを割当てるかは、例えば、予め設定されたゲーム機毎の識別番号順に割当てるようにしても良いし、或いは、タスクaを複数に分割し(例えば、子タスクa1、a2とする)、この分割された子タスクa1、a2をそれぞれ前記複数のゲーム機に割当てても良い。
【0035】
(ゲーム機によるタスク処理)
図4は、各ゲーム機によって実行されるタスク処理を示したフローチャートである。なお、以下、説明の便宜上、ゲーム機1についてのみ説明してあるが、他のゲーム機2、3も同様の処理を実行するものである。また、この図4に示した符号S21〜27は、以下の説明のS21〜27に対応している。
【0036】
まず、前記ゲーム機1の前記タスク処理部25は、前記ゲーム機1がゲーム実行中若しくはタスクを処理中でない場合(S21のNO)には、前記管理サーバ11のタスク管理部32に、定期的(例えば、1回/分)にタスク要求を送信する(S22)。そして、前記タスク処理部25は、前記タスク管理部32からタスクを割当てられると(S23のYES)、当該割当てられたタスクの処理を開始する(S24)。具体的に本実施形態では、タスク管理部32が前記ゲーム機1にタスクaを割当てると(図7の波線参照)、前記ゲーム機1は、当該割当てられたタスクaの処理を開始する。このとき、図8に示すように、前記ゲーム処理部25は、前記処理状態テーブル33での前記ゲーム機1の「動作状態」の欄を「タスクa処理中」と、また、前記タスクテーブル34での「処理状態」の欄を「ゲーム機1で処理中」と更新する。
【0037】
ここで、前記タスク処理部25の具体的な処理内容について簡単に説明すると、前記タスク処理部25は、前記ローカルネットワークを介し、前記管理サーバ11に格納された前記タスクデータ35からタスクaの処理に必要なデータを読出しつつ適当なアプリケーションプログラムによって、例えば前記仮想メモリ(図示せず)上で演算するものである。そして、演算結果を前記管理サーバ11の前記データ格納部41に順次格納していくようになっている。
【0038】
次いで、前記タスク処理部25は、前記ゲーム機1にコインが投入されない限りにおいて(S25のNO)、タスク処理を継続して実行する(S26)。そして、タスク処理が完了すると(S27のYES)、前記タスク処理部25は、S21まで戻り、すなわちゲーム実行が開始されない限り再び前記管理サーバ11のタスク管理部32へのタスク要求の送信を開始する。なお、前記管理サーバ11のタスク管理部32は、割当てたタスクの処理が完了すると、前記タスクテーブル34において、処理の完了したタスクの欄を全て削除する。そして、前記タスク処理の完了したゲーム機からのタスク要求を再び受付ると、前記処理状態テーブル33において、当該ゲーム機の動作状態を「タスク要求中」と更新する(図示せず)。
【0039】
一方、前記ゲーム機1によるタスクaの処理中に、プレイヤによって前記ゲーム機1にコインが投入されると(S25のYES)、前記コイン検出装置23からゲーム実行開始の指示が前記タスク処理部25及び前記ローカルネットワークを介して前記管理サーバ11のタスク管理部32にそれぞれ与えられる。すると、前記タスク処理部25及び前記管理部32は、次に、後述するタスク引継処理を開始する(図5へ)。
【0040】
(タスク引継処理)
図5はタスク引継処理を示したフローチャートである。なお、図5に示した符号S31〜37は、以下の説明のS31〜37に対応している。なお、説明の便宜上、前記ゲーム機1に対応する前記ゲーム機2、3の各処理部の符号は括弧書きで示してある。
【0041】
前記タスク処理部25は、前記コイン検出装置23からゲーム実行開始の指示を受付けると、直ちに処理中のタスクを中断する(S31)と共に前記タスク引継部26にタスクaの引継処理を指示する。また、このとき、前記タスク処理部25は、前記ローカルネットワークを介して、図9に示すように、前記処理状態テーブル33でのゲーム機1の動作状態を「タスクa引継中」と、さらに、前記タスクテーブル34でのタスクaの状態を「引継待ち」と更新する。
【0042】
次に、前記タスク引継部26は、前記処理状態テーブル33を参照し(S32)、そして、前記タスク引継部26は、もし前記処理状態テーブル33での「動作状態」の欄においてタスク要求中のゲーム機がない場合(S33のNO)には、後述する他アミューズメント施設割当処理(図6)を実行するように前記管理サーバ11の前記タスク管理部32に指示すると共に、前記中断されたタスクを前記タスク管理部32に受け渡す。そして、前記ゲーム実行部27は、ゲーム処理を開始する。一方、前記処理状態テーブル33での「動作状態」の欄においてタスク要求中のゲーム機がある場合(S33のYES)は、前記タスク引継部26は、タスク要求中のゲーム機が複数台あるか否かについても確認する(S34)。そして、前記タスク引継部26は、タスク要求中のゲーム機が複数台ない(すなわち1台しかない)場合には(S34のNO)、当該タスク要求中のゲーム機にタスク処理を割当てる(S35)。そして、前記ゲーム実行部27は、ゲーム処理を開始する。
【0043】
一方、前記タスク引継部25は、前記処理状態テーブル33においてタスク要求中のゲーム機が複数ある場合には(S34のYES)、次に、前記処理状態テーブル33での「プレイ頻度」の欄を参照する(S36)。本実施形態では、図9の前記処理状態テーブル33での「動作状態」の欄を参照すると前記ゲーム機2、3がタスク要求中となっている。すなわちこの場合、前記タスク引継部26は、前記ゲーム機2、3のうち、最もプレイ頻度の低いゲーム機(本実施形態ではゲーム機2「中」)にタスクaの処理を割当てる(S37)。そして、前記ゲーム機2は、当該割当てられたタスクaの処理を開始する。
【0044】
なお、前記ゲーム機1の前記タスク処理部25は、引継処理が完了すると、図10に示すように、前記ローカルネットワークを介して前記処理状態テーブル33でのゲーム機1の「動作状態」の欄を「ゲーム処理中」と更新する。また、前記ゲーム機2のタスク処理部(25)は、割当てられたタスクの処理を開始する場合に、前記ローカルネットワークを介して前記タスクテーブル34での前記ゲーム機2の「動作状態」の欄を「タスクa処理中」と、さらに、前記タスク処理テーブル34でのタスクaの「処理状態」の欄を「ゲーム機2で処理中」とそれぞれ更新する。次いで、前記ゲーム機1の前記ゲーム実行部27は、ゲーム処理を開始する。
【0045】
(タスク分割処理)
ここで、上述したタスク引継処理において、タスク要求中のゲーム機が同時に複数ある場合には、以下に説明するように、当該タスクを分割して複数のゲーム機に割当てるようにしてもよい。
【0046】
すなわち、例えば、前記引継処理を開始する場合に、前記タスク引継部26が前記処理状態テーブル33を参照すると、図11に示すように、前記ゲーム機2、3がそれぞれタスク要求中である場合には、まず、前記タスク引継部26は、タスクaを2つに分割しタスクIDを付与する(例えば、子タスクa1、a2とする)。また、このとき、前記タスク処理部25は、前記処理状態テーブル33での前記ゲーム機1の「動作状態」の欄を「タスクa引継中」と、また前記タスクテーブル34でのタスクa1、a2の「処理状態」の欄をそれぞれ「引継待ち」と更新する。
【0047】
そして、前記タスク引継部26は、当該分割された子タスクa1、a2を前記ゲーム機2、3にそれぞれ割当てる(図11の波線参照)。また、このとき、前記ゲーム機2のタスク処理部(25)は、図12に示すように、前記処理状態テーブル33でのゲーム機2の「動作状態」欄を「タスクa1処理中」と、また、前記タスクテーブル34での「タスクa1」の欄を「ゲーム機2で処理中」と更新する。なお、前記ゲーム機3のタスク処理部(25)も、上記ゲーム機2のタスク処理と同様に、前記処理状態テーブル33でのゲーム機3の「動作状態」欄を「タスクa2処理中」と、また、前記タスクテーブル34での「タスクa2」の欄を「ゲーム機3で処理中」と更新する。
【0048】
ここで、前記タスク引継部24は、タスクaを分割する場合、当該タスクaを均等に分割してもよいし、前記ゲーム機2及び3のプレイ頻度に応じて異なるようにタスクaを分割してもよい。すなわち、タスクaを親タスクとしてその中に子タスクが10項目あるとすると、プレイ頻度が「中」のゲーム機2には前記1〜7項目の処理を、一方、プレイ頻度が「高」であるゲーム機1には残り8〜10項目の処理を割当てるようにしてもよい。
【0049】
さらに、例えば、図示しないが仮に同レベルのプレイ頻度(例えば「中」)を有するゲーム機が複数(例えば2台)あり、何れのゲーム機もタスク要求をしている場合に、何れのゲーム機にタスクを割当てるかについては、例えば、前記タスク引継部26は、予め設定されたゲーム機毎の識別番号順に割当てるようにしても良いし、上記と同様に分割し、各ゲーム機にそれぞれに割当てても良い。
【0050】
(他アミューズメント施設割当処理)
図6は、前記管理サーバ11によって実行される他のアミューズメント施設へのタスク割当処理を示したフローチャートである。なお、この図6に示した符号S41〜44は、以下の説明のS41〜44に対応している。なお、説明の便宜上、前記アミューズメント施設100の各処理部に対応する他のアミューズメント施設200〜300の各処理部の符号は括弧書きで示してある。
【0051】
まず、前記アミューズメント施設100のタスク管理部32は、上述したタスク割当処理において、タスク要求中のゲーム機が存在しない場合(図3、S3のNO)若しくは前記引継処理において、タスク要求中のゲーム機が存在しないことから前記タスク引継部26によってタスクを受渡された場合(図5、S33のNO)には、当該引継に係るタスクa(以下「依頼タスクa」という)の受入れの可否を、アミューズメント施設200〜300のタスク管理部(32)に問合わせる(S41)。また、このとき、前記アミューズメント施設100のタスク管理部32は、図13aに示すように、前記タスクテーブル34での「タスクa」の欄を「他店舗に問合せ中」と更新する。
【0052】
そして、この問合わせを受けた前記アミューズメント施設200のタスク管理部(32)は、前記アミューズメント施設200での処理状態テーブル(33)を参照しタスク要求中のゲーム機があるか否かを確認する。そして、前記アミューズメント施設200のタスク管理部(32)は、タスク要求中のゲーム機があれば「受入可能」として判断し、そうでなければ「受入不可」として判断する。そして、その判断結果を前記アミューズメント施設100の前記タスク管理部32に返答する。なお、前記アミューズメント施設300も同様に当該依頼タスクaを受入可能か否かを判断し、その結果を前記アミューズメント施設100に返答する。
【0053】
そして、前記アミューズメント施設100のタスク管理部32は、前記アミューズメント施設200のタスク管理部32から「受入可能」との返答を受けた場合には(S42のYES)、そのアミューズメント施設200のタスク管理部(32)に依頼タスクaの処理を依頼する。具体的には、上記周知のマイグレーション技術によって前記依頼タスクaを前記アミューズメント施設100から前記アミューズメント施設200に移送する。すなわち、このとき前記アミューズメント施設200では、新たに発生したタスクとして前記アミューズメント施設100におけるタスク割当処理と同様の処理が前記S1から開始される。なお、もし受入可能なアミューズメント施設が複数あった場合には、そのうち返答が最も早かったものに決定するなどして適宜決定すれば良い。また、このとき、前記アミューズメント施設200のタスク管理部(32)は、図13bに示すように、前記タスクテーブル(34)での「タスクa」の欄を「アミューズメント施設200で処理中」と更新する。
【0054】
一方、受入可能な他のアミューズメント施設がない場合には(S42のNO)、前記タスク管理部32は、前記アミューズメント施設100内においてタスク要求をしてくるゲーム機が現れるまで当該依頼タスクaを待機させる(S43)。すなわちこの場合は、前記アミューズメント施設100における前記S1(図3)へ戻る。或いは、前記タスク管理部32は、自ら依頼タスクaを処理しても良い。
【0055】
ここで、前記依頼タスクaを依頼された前記アミューズメント施設200のタスク管理部(32)は、前記依頼タスクaを上述したタスク要求中のゲーム機に割当てるとともに、前記アミューズメント施設200の処理状態テーブル(33)を更新する(図示せず)。そして、前記依頼タスクaを割当てられたゲーム機(以下「引継ゲーム機」という)は、前記アミューズメント施設200のタスクテーブル(34)を更新する(図示せず)と共に、前記割当てられた依頼タスクaの処理を開始する。そして、処理結果を前記アミューズメント施設200のデータ格納部(41)に順次格納していく。そして、前記アミューズメント施設200の前記タスク管理部32は、ある程度の処理結果を得る毎に前記アミューズメント施設100の前記タスク管理部32に前記処理結果を転送する。この転送を受付けると、前記アミューズメント施設100における前記タスク管理部32は、前記データ格納部43に処理結果を格納する。
【0056】
そして、前記アミューズメント施設100での前記タスク管理部32は、予定されていた引継タスクaの処理が全て完了したことを検出すると、前記アミューズメント施設100の前記タスクテーブル34での「タスクa」の欄を削除する。一方、前記アミューズメント施設200においては、前記アミューズメント施設200のタスク管理部(32)が、前記アミューズメント施設200でのタスクテーブル(34)での依頼タスクaの欄を削除し、前記引継ゲーム機からタスク要求を受付けた場合に、前記処理状態テーブル(33)の前記引継ゲーム機の「動作状態」の欄を「タスク要求中」と更新する(図示せず)。
【0057】
なお、この場合、前記引継ゲーム機による依頼タスクaの処理中に、当該引継ゲーム機にコインが投入された場合には、前記アミューズメント施設200内で、上述したタスク引継処理(図5)と同様に実行しても良いし、或いは、前記アミューズメント施設100の前記タスク管理部32に前記依頼タスクaを受渡しても良い(すなわち、この場合は、前記アミューズメント施設100の内で発生した処理として図3のS1に戻る)。
【0058】
上記のような構成によれば、以下の効果を得ることが出来る。
【0059】
すなわち、従来では、スレーブ側コンピュータによってタスクが処理されている最中に、何らかの要因が生じたことによってタスク処理が中断された場合には、全てメイン側コンピュータによって、他のスレーブ側コンピュータを検索しこの検索された他のスレーブ側コンピュータに当該中断されたタスクを引継がせていた。
【0060】
しかしながら、このような従来のクラスタリングシステムでは、スレーブ側コンピュータの台数が多くなってくると、その台数に伴いタスク処理の、システム全体としての中断頻度が高くなる。そしてこの場合、メイン側コンピュータには、当該中断されたタスクを他のスレーブ側コンピュータに引継がせるための処理(タスク引継処理)が頻繁に発生することとなる。すなわち、マスター側コンピュータの処理性能によっては、一つのタスク引継処理が完了する前に次のタスク引継処理が発生するためタスク引継処理が慢性的に滞ってしまう。
【0061】
また、個々のスレーブ側コンピュータのそれぞれがタスク処理を中断する頻度の高いものである場合(例えばスレーブ側コンピュータがアーケードゲーム機などに搭載されている場合)には、メイン側コンピュータにおいてもタスク引継処理が更なる頻繁で発生するため、当該マスター側コンピュータには、ますますタスク引継処理が滞ることになってしまう。
【0062】
すなわち、従来のクラスタリングシステムでは、スレーブ側コンピュータでのタスク処理の中断頻度によって、メイン側コンピュータでのタスク引継処理の発生頻度も左右されるため、場合によっては、(例えば、従来技術をアミューズメント施設に適用した場合には頻繁なコイン投入によって引継処理も頻繁に発生するため)、却ってメイン側コンピュータにタスク引継処理が慢性的に滞ってしまう状態になってしまう。そのため、従来のクラスタリングシステムは必ずしも効率の良いタスク処理が行えないという問題がある。
【0063】
しかしながら、上記本願発明の構成によれば、上述した不具合(すなわちアミューズメント施設特有の不具合)が無く、タスクの中断頻度に左右されず、常に効率の良いタスク処理を実現することのできるクラスタリングシステムを提供することができる。
【0064】
また、タスク引継処理において、プレイ頻度の最も低いゲーム機から順にタスクを割当てることにしたので、プレイ頻度の高いゲーム機による頻繁なタスク引継処理の発生を最小限にとどめることが出来るため、結果的に、システム全体としてタスク引継処理の発生が少なくなり、当然ながらシステム全体としてタスク処理の効率を良くすることができる。
【0065】
なお、この発明は、上記一実施形態に限定されるものではなく、発明の要旨を変更しない範囲で種々変形可能である。
【0066】
例えば、上記実施形態では、まずアミューズメント施設100内でタスクの引継処理(分割処理)を実行し、その後、アミューズメント施設200、300に割当てていたが、最初から複数のアミューズメント施設にまたがっての引継処理(分割処理)を実行するものであっても良い。すなわち、この場合、各アミューズメント施設100〜300の各管理サーバ11には、各アミューズメント施設100〜300にある全てのゲーム機の処理状態を示す総合処理状態テーブル及び全てのアミューズメント施設で発生したタスクを示す総合タスクテーブルが用意されている。このような状態で、例えば、前記ゲーム機1のタスク引継部26は、前記ゲーム機1で処理中のタスクを、前記アミューズメント施設200内にあるゲーム機に直接割当てたり(上記実施形態では、管理サーバ11を介して間接的に行うものとなっている)、また、当該タスク引継部26は、前記アミューズメント施設100で発生したタスクを分割し、前記アミューズメント施設200内にあるゲーム機及び前記アミューズメント施設300内にあるゲーム機のそれぞれに直接割当てたりしてもよい。
【符号の説明】
【0067】
1〜3…ゲーム機
10…クラスタリングシステム
11…管理サーバ
20…ゲーム入力装置
21…ゲーム表示装置
22…コイン検出装置
23…ゲーム機側通信装置
24…ゲーム機側CPU
25…タスク処理部
26…タスク引継部
27…ゲーム実行部
28…ゲームデータ
30…サーバ側通信装置
31…サーバ側CPU
32…タスク管理部
33…処理状態テーブル
34…タスクテーブル
36…外部入力装置
37…外部表示装置
40…サーバ制御ユニット
41…データ格納部
43…演算処理ユニット
100…アミューズメント施設
200…アミューズメント施設
300…アミューズメント施設

【特許請求の範囲】
【請求項1】
クラスタリングによってタスクを処理するクラスタリングシステムであって、
アミューズメント施設内に複数設置されたゲーム機と、
前記各ゲーム機にそれぞれ搭載されローカルネットワークを介して互いに接続された演算処理ユニットと、
前記アミューズメント施設内に設置され前記各演算処理ユニットと前記ローカルネットワークを介して接続された管理サーバと、
を有し、
前記管理サーバは、
前記各演算処理ユニットの可動状態をリアルタイムで示す処理状態テーブルと、
前記管理サーバに所定のタスクが新たに発生した場合に、前記処理状態テーブルに基づいて前記各演算処理ユニットのうち前記タスクを処理可能な演算処理ユニットを選択し前記タスクを処理するように指示するタスク管理手段と
を有し、
前記演算処理ユニットは、
プレイヤにゲームプレイを提供するためのゲーム処理をするゲーム処理手段と、
前記タスク管理手段によって処理を指示された前記タスクを処理し、前記ゲーム処理手段が前記ゲーム処理を開始するときには処理中の前記タスクを中断するタスク処理手段と、
前記タスク処理手段によって前記タスクが中断された場合に、前記ローカルネットワークを介して前記処理状態テーブルを参照し、この処理状態テーブルに基づいて前記各演算処理ユニットのうち前記中断されたタスクを処理可能な他の演算処理ユニットを選択し前記中断されたタスクを処理するように指示するタスク引継手段と
を有し、
前記他の演算処理ユニットは、前記処理を指示されたタスクの処理を開始する
ことを特徴とするクラスタリングシステム。
【請求項2】
請求項1記載のクラスタリングシステムであって、
前記処理状態テーブルは、さらに、各ゲーム機毎に予め設定され、単位時間に対するゲームプレイ時間の割合としてのプレイ頻度を示すものであり、
前記タスク引継手段は、
前記タスク処理手段によって前記タスクが中断された場合に、前記ローカルネットワークを介して前記処理状態テーブルを参照し、前記各演算処理ユニットのうち前記中断されたタスクを処理可能な他の演算処理ユニットが複数ある場合には、前記プレイ頻度の最も低い順に前記演算処理ユニットを選択し前記中断されたタスクを処理するように指示する
ことを特徴とするクラスタリングシステム。
【請求項3】
請求項1記載のクラスタリングシステムであって、
前記タスク引継手段は、
前記タスク処理手段によって前記タスクが中断された場合に、前記ローカルネットワークを介して前記処理状態テーブルを参照し、前記各演算処理ユニットのうち前記中断されたタスクを処理可能な他の演算処理ユニットが複数ある場合には、その数に対応して前記中断されたタスクを分割し、それぞれの演算処理ユニットに前記分割されたタスクを処理するように指示する
ことを特徴とするクラスタリングシステム。
【請求項4】
請求項1記載のクラスタリングシステムにおいて、
前記アミューズメント施設とは異なる地域に設置された第2アミューズメント施設内に複数設置された第2ゲーム機と、
前記各第2ゲーム機にそれぞれ搭載されローカルネットワークを介して互いに接続された第2演算処理ユニットと、
前記第2アミューズメント施設内に設置され前記各第2演算処理ユニットと前記ローカルネットワークを介して接続され、かつ前記管理サーバとインターネットを介して接続された第2管理サーバと、
を有し、
前記管理サーバは、
前記タスク処理手段によって前記タスクが中断された場合に、前記ローカルネットワークを介して前記処理状態テーブルを参照し、前記各演算処理ユニットのうち前記中断されたタスクを処理可能な他の演算処理ユニットが一つもない場合には、前記中断されたタスクの処理を処理可能か否かを前記第2管理サーバに問合わせ、処理可能である場合には、前記中断されたタスクの処理を前記第2管理サーバに依頼し、
前記各第2管理サーバは、
前記各第2演算処理ユニットのうち前記中断されたタスクを処理可能な前記第2演算処理ユニットに前記中断されたタスクを処理するように指示し、
前記第2演算処理ユニットは、前記中断されたタスクの処理を開始する
ことを特徴とするクラスタリングシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2011−134215(P2011−134215A)
【公開日】平成23年7月7日(2011.7.7)
【国際特許分類】
【出願番号】特願2009−294718(P2009−294718)
【出願日】平成21年12月25日(2009.12.25)
【出願人】(310009993)株式会社タイトー (207)