上記本発明によれば、グループ化手段は、端末装置にプログラムファイルを転送する前に、プログラムファイルの転送を要する端末装置をリストアップしていくつかのグループに分ける。プログラムファイルの転送が不要な端末装置はグループから除外する。端末装置をいくつかのグループに分けたら、グループ化手段は、グループ内の所定数(好適には1台)の端末装置を親ノードに指定する。グループ内の他の端末装置は子ノードであり、グループ番号等のIDによって親ノードに関連付けられる。そして、ファイル転送手段から直接にプログラムファイルを転送するのはグループ内の親ノードに指定した端末装置のみとする。同一グループ内の他の端末装置には、親ノードに指定された端末装置がファイル転送手段から転送されてきたプログラムファイルを再転送する。つまり、親ノードに指定された端末装置は、ファイル転送手段から見ればクライアントであり、同一グループ内の他の端末装置から見ればサーバである。さらに、グループ化手段によって行なわれるグループ化(親ノードの設定を含む)は、動的(フレキシブル)である。つまり、全ての端末装置が親ノードになる資格を持っている。したがって、プログラムファイルを要求する端末装置がランダムに発生する場合でも、グループ化手段は速やかにグループ化を行なうことができ、各グループに属する端末装置の少なくとも一つを親ノードに指定する。親ノードの端末装置は、ファイル転送手段から送られてきたファイルを同一グループ内の他の端末装置に転送する。このように、端末装置にサーバ機能を分散することにより、ファイルを転送する上での無駄を省くことが可能であり、システム全体でのファイル転送時間の短縮を図ることができる。また、ファイルの最初の転送元であるコンピュータのCPU負荷、ひいてはネットワーク負荷を軽減することができる。
上記の構成によれば、ファイル転送に先立って、バージョンチェック手段は、端末装置にプログラムのバージョン情報だけを送る。プログラム改訂にかかるプログラムファイルの要否は、端末装置が有する端末側バージョンチェック手段が判断する。各端末装置が端末側バージョンチェック手段を有していることで、ファイル転送手段は、各端末装置のプログラム改訂にかかるプログラムファイルの要否を判断せずに済む。したがって、ファイル転送手段やグループ化手段を構成するコンピュータの負担減につながり、ひいてはファイル転送時間の短縮に資する。また、上記の構成によれば、全ての端末装置から返答が戻ってくるのを待たずに済むので、グループ化手段は速やかにグループ化および親ノードを指定する処理に移れる。このようにすれば、プログラムファイルを転送する前準備に費やされる時間の短縮に資する。結果として、プログラムファイルの転送にかかる時間の短縮化を実現できる。なお、バージョンチェック手段は、端末装置が通信可能状態かどうかを先に確かめ、通信可能状態である場合にバージョン情報を送信するとよい。
また、本発明のホール管理システムは、端末装置とファイル転送手段とがFTP通信によってファイル転送を行なうコンピュータネットワークを形成するものとして構成することができる。たとえば、ネットワークに接続された管理コンピュータによって実現されるファイル転送手段は、一つのグループの親ノードである端末装置へのファイル転送が終了した場合には、同時セッション中の他の端末装置へのファイル転送の終了を待たずに、次のグループの親ノードである端末装置へのファイル転送を開始する。FTPサービスは、高い信頼性の通信を提供する。したがって、プログラムファイルのような重要なファイルを確実に端末装置に転送する目的に好適である。また、同時セッション数が制限される問題は、上記のごとく、常時最大セッション数でファイル転送手段と端末装置とのFTP接続を開くことにより改善され、これによりファイル転送時間の短縮を図ることができる。
ところで、端末装置にプログラムファイルの要否を逐一問い合わせるのではなく、通信可能状態かどうかだけ確かめて、通信可能状態である旨の返答を得た全ての端末装置に一括してファイルを転送するようにしてもよい。すなわち、グループ化手段は、所定条件の成立に応じて通信可能状態にある全ての端末装置を、ファイル転送を要する端末装置であると判定する手段として構成することができる。このような構成によれば、転送しようとするプログラムのバージョンチェックを端末装置でする必要がなくなる。ほどんど全ての端末装置のバージョンアップが必要であることが予め分かっているときには、このような手順を採った方がファイル転送時間の短縮化に資する。
次に、本発明にかかるホール管理システムの特徴は、一般のネットワークシステムにも適用することができる。すなわち本発明は、複数の端末装置とサーバコンピュータとが一のプロトコルスタックを実装し、相互に通信可能に接続されてネットワークを形成しているネットワークシステムであって、サーバコンピュータは、端末装置にファイルを転送する前に、端末装置をいくつかのグループに振り分けて複数の端末装置が属する複数のグループを設定するとともに、各グループ内の1台の端末装置を親ノードに指定するグループ化手段と、親ノードに指定する旨の通知と、同一グループに属する端末装置を特定するためのIDとを含むグループ情報を、ファイルとともに親ノードに指定した端末装置に転送するファイル転送手段とを有し、端末装置は、サーバコンピュータからグループ情報を取得して親ノードであることを認識した場合に、そのグループ情報に基づいて同一グループに属する他の端末装置を特定し、特定した他の全ての端末装置にサーバコンピュータから受け取ったファイルを転送するグループ内ファイル転送手段を有することを主要な特徴とする。
たとえば、TCP/IPのネットワークでサーバからクライアントにサイズの大きいファイルを転送する場合のアプリケーションは、FTPが一般的である。ファイルの転送時間には、FTPサーバの最大同時セッション数や物理層をなすデバイスのボーレートの問題が関わってくる。すなわち、従来の方法を用いて多数のノードにファイルを転送するときの所要時間は、単一のノードにファイルを転送するときの所要時間に全ノード数を乗じた時間よりも相当大きくなる。ところが本発明によれば、既に説明したごとく、ファイルを転送する上での無駄を省くことが可能であり、システム全体でのファイル転送時間の短縮を図ることができる。また、ファイルの最初の転送元であるサーバコンピュータのCPU負荷、ひいてはネットワーク負荷を軽減することができる。
なお、本明細書においてコンピュータネットワークとは、単一の技術で相互接続された自律的なコンピュータ群という意味で用いる。すなわち、本発明はインターネットのような広域なネットワークに適用することも可能であるが、遊技店のホール管理システムのようなコンピュータネットワークに本発明を適用する場合に、最も優れた効果を得ることができる。
以下、添付の図面を参照しつつ本発明の実施形態について説明する。
図1は、本発明にかかるホール管理システムの全体概略図である。ホール管理システム100は、管理コンピュータ1と、端末装置3とを備える。端末装置3は、遊技店内に設置された多数の遊技台4に一対一で設置されている。遊技台4は、パチンコ機である。管理コンピュータ1と端末装置3、さらに端末装置3,3同士は、通信網10によって相互接続されている。通信網10はイーサネットケーブルである。管理コンピュータ1と端末装置3との通信経路上には、ハブ5が配置されている。スペースの都合上、図1には少数の遊技台4および端末装置3しか示していないが、実際の遊技店には、たとえば1000台ないしそれ以上に及ぶ遊技台4および端末装置3が設置され、全ての端末装置3と管理コンピュータ1とがコンピュータネットワークを形成している。
ハブ5はスイッチングハブであるが、リピータとして働く通常のハブであってもよい。また、図1の実施形態ではハブ5,5同士はカスケード接続されている。相当数の端末機3をホール管理システム100のネットワークに接続するときは、ハブ5,5をスタック接続する構成も好適である。また、遊技台4はスロットマシンの場合もある。また、本実施形態はネットワーク層にイーサネット(米国XEROX社の登録商標)を採用しているが、バス型でノードIDを持ったネットワークを組めれば、CAN(Controller Area Network)やMOST(Media Oriented Systems Transport)等の他のLAN規格を採用してもよい。
端末装置3には、対応する遊技台4からアウト信号、セーフ信号、大当たり信号などの信号が入力される。それらの信号の入力により、端末装置3は対応する遊技台4の稼働状況や出玉収支に関するデータを得る。また、端末装置3は貸玉装置としての機能を有しており、貸玉金額を集計したり、遊技台4に内蔵された玉補給装置に対して金額に応じた数量の玉(遊技媒体)を貸し出すように命令したりする。端末装置3が得た遊技台4に関するデータ(稼働データ)は管理コンピュータ1に送られる。管理コンピュータ1は、端末装置3から得た稼働データをデータベースに記録し、遊技台4ごとの出玉収支、大当たり回数、貸玉金額といった遊技に関するデータを管理する。
ホール管理システム100において、管理コンピュータ1と端末装置3とは共通のプロトコルスタックを実装してコンピュータネットワークを形成している。そのコンピュータネットワークはTCP/IPネットワークである。つまり、管理コンピュータ1および端末装置3は、それぞれがTCP/IPネットワークを形成するためのプロトコルスタックを持っている。また、ファイル転送(データ送信)を行なうために、管理コンピュータ1および端末装置3はそれぞれ、TCP/IPの上位層としてFTPを実装している。FTPサービスは、高い信頼性のデータ送受信をネットワーク(ホール管理システム100)に提供するので、サイズの大きいファイルの送受信に適している。たとえば、端末装置3のプログラム改訂(バージョンアップ)を行なう場合には、管理コンピュータ1から端末装置3に対してプログラムファイルをFTPで転送する。また、端末装置3が遊技台4から得た稼働データは、管理コンピュータ1にリアルタイムで送られる。稼働データはプログラムファイルに比べて小サイズなので、システムの起動時にソケットを使ってコネクション(通信路)をオープンし、通常のファイル入出力用のread/writeなどを使って通信することにより、稼働データの送受信を行なう。もちろん、稼働データの送受信にFTPサービスを利用してもよい。各種設定ファイル、画像ファイル、バックアップファイル等の送受信を行なう場合にはFTPが好適である。
図2に示すのは、図1のホール管理システム100のブロック図である。管理コンピュータ1は、CPU101、ROM102、RAM103、HDD104(ハードディスクドライブ)を有する。これらのデバイスはバスを通じて通信する。内部バスには、入出力インターフェイス105(I/O)を含むドライブ回路が接続される。入出力インターフェイス105には、モニタ106、CD−Rドライブ107、マウス/キーボード108等の入出力装置が接続される。また、入出力インターフェイス105はイーサネットアダプタを含むものである。管理コンピュータ1は、このイーサネットアダプタを通じてネットワークに接続している。
HDD104には、各遊技台の稼働データを管理するための遊技台データベース104aのほか、基本プログラム104b、データ管理プログラム104cおよびバージョンアッププログラム104d等が格納されている。基本プログラム104bは、オペレーティングシステムの各動作を提供する。TCP/IPやFTP等のプロトコルスタック、TCP/IPにおいて利用するネットワーク用APIは、この基本プログラム104bに含まれる。データ管理プログラム104cは、端末装置3から各遊技台4の稼働データを取得して遊技台データベース104aを構築し、これを運用する機能を提供する。バージョンアッププログラム104dは、データ管理プログラム104cのバージョンアップや、後述する端末装置3のプログラムのバージョンアップを行なうための機能を提供する。
端末装置3は、CPU71、ROM74およびRAM73を有する。これらのデバイスはバスを通じて通信する。内部バスには、入出力インターフェイス75(I/O)を含むドライブ回路が接続する。入出力インターフェイス75には、遊技客向けのタッチパネルモニタ76、貸玉カードリーダ77等の入出力装置が接続する。入出力インターフェイス75はイーサネットアダプタを含む。端末装置3は、イーサネットアダプタを通じてホール管理システム100のネットワークに接続する。また、端末装置3には遊技台4が接続している。具体的には、端末装置3の入出力インターフェイス75はパラレル入出力インターフェイスを含むものとして構成され、そのパラレル入出力インターフェイスに遊技台4の外部出力端子群が接続する。遊技台4の外部出力端子群は、セーフ信号端子、アウト信号端子、大当たり信号端子、確変信号端子、稼働信号端子等の各種信号端子で構成される。
ROM74には、基本プログラム74a、遊技管理プログラム74b、貸玉プログラム74cおよびバージョンアッププログラム74d等が格納されている。ROM74は、フラッシュROMまたはEEPROMのように記憶内容を書き換えることが可能な記憶装置である。ROM74をブート専用に用いる一方、IDE規格のHDDを設け、これに上記した各プログラム群を格納するようにしてもよい。基本プログラム74aは、オペレーティングシステムの各動作を提供する。TCP/IPやFTP等のプロトコルスタック、TCP/IPにおいて利用するネットワーク用APIは、基本プログラム74aに含まれる。遊技管理プログラム74bは、遊技台4側から送られてくるアウト信号、セーフ信号、大当たり信号等の遊技台4の動作状態に関する信号を監視し、それらの信号を検出することに基づいて遊技台4の出玉収支や動作状態を管理する機能を提供する。貸玉プログラム74cは、貸玉カードリーダ77によるプリペイドカードの読み取り結果を遊技台4の玉補給装置(図示省略)に通知し、遊技者に貸玉を行なう機能を提供する。バージョンアッププログラム74dは、遊技管理プログラム74b、貸玉プログラム74c等の端末装置3が持つ他のアプリケーションプログラムのバージョンアップを行なうための機能を提供する。さらに、バージョンアッププログラム74dは、管理コンピュータ1から受け取ったプログラムファイルをネットワーク内の他の端末装置3に転送する機能を提供する。つまり、端末装置3はクライアントとサーバの両方の機能を持つ。
図14は、管理コンピュータ1と端末装置3のバージョンアッププログラム104d,74dの詳細を記した概念図である。管理コンピュータ1側のバージョンアッププログラム104dは、バージョンチェックジョブ、タイマジョブ、一括操作ジョブ、グループ化ジョブ、プログラムファイル送信ジョブの各ジョブにかかるプログラムモジュールである。端末装置3側のバージョンアッププログラム74dは、バージョンチェックジョブ、プログラムファイル受信ジョブ、プログラムファイル送信ジョブおよびプログラム書換ジョブの各ジョブにかかるプログラムモジュールである。
上記のごときバージョンアッププログラム104d,74dを管理コンピュータ1と端末装置3とが協働して実行することにより、端末装置3のプログラム改訂が管理コンピュータ1から一括して行なわれる。端末装置3に転送する予定の新しいバージョンのプログラムは、CD−Rドライブ107から管理コンピュータ1に入力されてRAM103またはHDD107に一時的に格納される。そして、予め定められたコマンドがキーボード等から入力されることにより、管理コンピュータ1のCPU101は、HDD104からバージョンアッププログラム104dをRAM103に呼び出して実行する。図3は、端末装置3のプログラムのバージョンアップを行なう際に、管理コンピュータ1が実行する処理のゼネラルフローチャートである。管理コンピュータ1は、図14に示す内容のバージョンアッププログラム104dの各ジョブを、図3のフローチャート中の各処理として実行する。各処理の詳細を説明する前に、ホール管理システム100が採用するファイル転送方法を図15の概念図で説明する。
図15(a)(b)に概念的に示すファイル転送方法の特徴は、動的グループ化と、子ノードへのファイル転送を親ノードに担当させる分散処理とにある。図15(a)に示すごとく、管理コンピュータ1はファイルを転送する前に、新しいバージョンのプログラムファイルを要求する端末装置3をリストアップして複数のグループに振り分ける。各グループには複数の端末機3が所属し、そのうちの1台が親ノードに指定され、残りは子ノードに指定される。管理コンピュータ1は、親ノードに指定した端末装置3にだけプログラムファイルを転送する。子ノードである端末装置3へのプログラムファイルの転送は、同一グループ内に属する親ノードの端末装置3が担当する。図15には、スペースの都合で少数の端末装置3しか記していないが、実際の遊技店では端末装置3が1000台以上に及ぶこともある。そのような状況下で、全ての端末装置3に管理コンピュータ1から直接にファイル転送を行なうと時間が相当かかるが、図15(a)に示す分散処理によれば大幅な時間短縮が可能であり、管理コンピュータ1の負担も大幅に減る。
次に、図15(b)でグループ化について説明する。管理コンピュータ1は、FTPでファイル転送を行なうのに先立って、まず送り先の端末装置3がデータを受信可能かどうか問い合わせる。受信可能であればFTPのTCPコネクション(制御用とデータ転送用)を確立し、データ(ファイル)を送る。データを送り終わればFTPのTCPコネクションを開放(切断)する。他方、図15(b)の左端に示すごとく、端末装置3から問い合わせに対する回答が無ければ通信不可である。この場合、管理コンピュータ1は通信不可の端末装置3を無視し、通信可能な端末装置3のみでグループ化を試みる。各グループには、端数を集めた最後のグループを除けば、一定台数(たとえば21台)の端末装置3が所属することになるので、グループ内に空席は存在しないことになる。そして、グループ内の先頭IDを持つ端末装置3を親ノードに指定する。
このように、動的グループ化と分散処理とが協働することにより、プログラムファイルのようなサイズの大きいファイルを相当数の端末装置3に転送する場合に、転送時間の大幅な短縮を図ることが可能である。また、ある端末装置3が通信不能状態に陥っても他の端末装置3にその影響が及ばない。
なお、図15の例では、グループ内の親ノードは一台のみとしているが、グループ内の親ノードである端末装置3が一台であることは必須でない。一つのグループ内に複数台(たとえば同一グループに属する端末装置3の台数よりも少ない所定数)の親ノードが存在するようなグループ化を行なってもよい。
以上の説明を踏まえて各処理の詳細を説明していく。
図4に示すのは、バージョンチェック処理(図3のS1)の詳細なフローチャートである。バージョンチェック処理は、ネットワークに接続されている全ての端末装置3に対して行なわれる。全ての端末装置3には、ユニークなIDが予め付与される。このユニークなIDは、遊技台4の台番号に対応したものであり、ある端末装置3と管理コンピュータ1とが通信を行なう際の識別標識となるものである。バージョンチェック処理は、管理コンピュータ1が予め持っている端末装置3のIDごとに行なわれる。
図4に示すごとく、管理コンピュータ1は、通信フラグがオフかどうかを判断する(S11)。通信フラグは、RAM103を用いて端末装置3ごとにIDに基づいて管理されるフラグであり、ある端末装置3と通信可能かどうかを識別するフラグである。通信フラグがオフのときは、S12に進み、通信が可能になったかどうかを改めて判断する。管理コンピュータ1は電源オンにより起動すると、端末装置3からデータを受け入れる準備を整える。端末装置3は電源オンにより起動すると通信可能となるまで定期的(たとえば1分おき)にバージョン要求信号を管理コンピュータ1に送る。このバージョン要求信号を受け取ることによって管理コンピュータ1は通信開始であると判定し、通信フラグをオンに切り替えて通信路を確保する(S12,S13)。通信フラグをオンに切り替えたらバージョン情報を送信して、プログラムの改訂の要否を問い合わせる(S14)。バージョン情報は、管理コンピュータ1が持っている情報であり、端末装置3が所有するべきプログラムのバージョンを特定するものである。たとえば、CD−Rドライブ107から管理コンピュータ1に取り込まれた端末装置3のための新しいプログラムのコメントに記述されている。
一方、通信フラグがオフでない場合には、それまで通信可能だったことを表わすので、特定のIDの端末装置3には既にバージョン情報を送信していることになる。したがって、S11に続くS15において、通信障害が発生して通信不能状態になっていないかどうかを判断する。具体的には、端末装置3から所定時間おき(たとえば5分おき)にヘルスチェック信号を管理コンピュータ1に送るようにし、そのヘルスチェック信号を管理コンピュータ1が規定時間(5分または5分+α)以上受信しない場合に通信障害ありと判定する。稼働データに変化がある度にデータを送信し、データ送信してから規定時間内に稼働データが変化しない場合にヘルスチェックを行なうようにしてもよい。
通信障害が無いことを確かめた後、バージョンアップ用のプログラムファイルを要求する旨の信号(ファイル転送要求信号)が端末装置3から送られてきたか否かを判断する(S16)。ファイルを要求する旨の信号を受信した場合には、その信号を送ってきた端末装置3にかかる仮書換フラグをオンにする(S17)。仮書換フラグは、RAM103を用いて端末装置3ごとにIDに基づいて管理されるフラグであり、グループ化処理に参加する端末装置3をリストアップするためのフラグである。
図5に示すのは、タイマ処理(図3のS2)の詳細なフローチャートである。このタイマ処理は、以下の説明から明らかとなるように、時間を区切ってグループ化処理を行なうための前段階の処理である。図7のグループ化処理を行なうにあたり、いくつかの方法が考えられる。一つの方法は、全ての端末装置3についてファイルの要否が明らかになってからグループ化処理に移る方法である。ただしこの方法だと、端末装置3からの返答待ちの時間が長くなる可能性がある。そのため、場合によってはファイルの要否をいちいち問わず、全ての端末装置3にファイルを送る後述の方法(図3のS3)を採った方が効率がよい。
他の一つの方法は、一定台数(たとえば20台)の端末装置3からファイルの要求があったら、それらを一つのグループとして設定するという方法である。ファイルの要求があった端末装置3の台数は、カウンタ等の計測手段で逐次監視すればよい。設定したグループには、ファイル転送を開始することができるので、管理コンピュータ1の待ち時間を短縮できる。
他の一つの方法は、図5のタイマ処理を導入した方法である。簡単に言うと、返答の有無はさておき、バージョンチェック処理を行なった一定時間が経過したらグループ化処理に移るというものである。具体的には、たとえばバージョンチェック処理(図3のS1)の起動とともに図5のタイマ処理で用いるタイマをスタートする。管理コンピュータ1は、端末装置3からファイルを要求するとの返答を一定時間ごとに区切って待ち受ける処理として、図5のタイマ処理を行なう。図6のグループ化処理では、タイマ処理で計測する一定時間(たとえば30秒)が経過するごとに、ファイルを要求する旨との返答が得られた端末装置3をリストアップし、グループ化を行なう。そしてグループ化を行なった順に、逐次ファイルを転送していく。このような方法によれば、管理コンピュータ1の待ち時間を削減できるため、コンピュータ資源の有効活用を図れるとともに、全端末装置3へのファイル転送に要する時間を短縮化できる。
図5に示すごとく、S21において、タイマがタイムアップしたか否かを判断する。タイマがタイムアップであると判断した場合には、仮書換フラグがオンになっているIDを持つ端末装置3の有無を判断する(S22)。IDと関連付けられた仮書換フラグのオン/オフを見れば、ファイルを要求する旨の返答をした端末装置3を特定することができる。仮書換フラグがオンの端末装置3を見出したら、その端末装置3の書換フラグをオンにする(S23)。これにより、グループ化処理を実行する準備が整う。書換フラグをオンにしたら、仮書換フラグをオフにしてタイマを再スタートする(S24,S25)。以上の説明から、仮書換フラグがタイマのタイムアップ待ち状態を表わすフラグであることが分かる。
なお、図6に示すのは、先に少し触れた一括操作処理(図3のS3)の詳細なフローチャートである。遊技店の管理者によって一括ダウンロードボタンが操作された場合(所定条件の成立)、管理コンピュータ1は、S1のバージョンチェック処理を実行せずに、通信可能な全ての端末装置3をファイル転送の対象とする。つまり、通信フラグがオンである端末装置3の書換フラグをオンにする(S31,S32)。書換フラグは、端末装置3にユニークなIDと関連付けられてRAM103で管理される。一括ダウンロードボタンの操作に代えて、端末装置3が持つべきプログラムファイルを取り込み、バージョン情報の更新を行なったら上記所定条件の成立であると判断して、S32の処理を行なうようにしてもよい。
図7に示すのは、グループ化処理(図3のS4)の詳細なフローチャートである。まず、送信中フラグがオンであるかどうかを確かめる(S41)。送信中フラグは、RAM103で管理されるフラグであり、いずれかの端末装置3にプログラムファイルを転送している間はオンに保持される。FTPのセッションが継続している最中、つまりFTPのコネクションが張られていると送信中フラグがオンである。ファイル転送中でないことを確認したら、RAM103を参照して書換フラグがオンになっている端末装置3をIDに基づいて見出す(S42)。さらに、見出した端末装置3が既にグループ化されているか否かを判断する(S43)。S43の判断は、たとえば、各端末装置3にグループIDやレイヤIDが関連付けられているか否かによる。書換フラグがオンであり、未だグループに属していない端末装置3をIDに基づいてリストアップする(S44)。書換フラグは、グループ化されるのを待っている状態、若しくはグループ化は行なわれているがファイルの転送準備は整っていない状態ことを表わすフラグである。
次に、書換フラグがオンである端末装置3の台数が、予め定めた所定数N(N:自然数)より大であるか否かを判断する(S45)。この所定数Nは、FTPの最大同時セッション数を目安にして設定するのがよく、本実施形態では管理コンピュータ1のFTP最大同時セッション数である“20”を所定数Nに設定している(つまりN=20)。書換フラグがオンになっている端末装置3の台数が所定数N以下の場合、書換フラグがオンになっているそれらの端末装置3の全部について、送信準備フラグをオンにする(S52)。この場合、管理コンピュータ1は、端末装置3に個別にプログラムファイルを転送することになる。ファイルを転送するべき端末装置3(プログラムのバージョンアップを行なうべき端末装置3)の台数が少ない場合、わざわざグループ化を行なうまでも無い。したがって、本実施形態のごとく、グループ化を行なう前にファイル転送を要する端末装置3の台数を確かめ、その台数が予め定めた所定数N以下の場合にはグループ化を行なわず、管理コンピュータ1から各端末装置3に個別にファイルを転送するようにすることが望ましい。
一方、書換フラグがオンである端末装置3の台数が、予め定めた所定数Nより大の場合には、S46に進みグループ分けを行なう。図16に示すごとく、端末装置3は21台ずつグループ分けされるが、そうして分けられたグループが20を超えた場合は、管理コンピュータ1のFTP最大同時セッション数を超えることになる。したがって、その場合にはS48に進みレイヤ分けを行なう。すなわち、21番目のグループからは第2レイヤ、41番目のグループからは第3レイヤという形で所定グループ毎にレイヤ分けを行ない、各グループにレイヤ番号を割り当てる。この結果、各グループはグループを特定するための情報として、グループID(グループNo.)とレイヤID(レイヤNo.)とを有することとなる。レイヤおよびグループという複数の階層構造を形成することにより、第1レイヤに属する親ノードの端末装置3の全台にファイルを転送し終えてから、第2レイヤへのファイル転送に取り掛かるという方法を採用できる。この方法によれば、ファイル転送時の区切りが明確に設けられるので、管理コンピュータ1に懸かる負荷を軽くできる。なお、図5のタイマ処理で用いるタイマがタイムアップすることを基準に、レイヤ分けを行なうようにしてもよい。
もちろん、レイヤ分けが必須というわけではない。レイヤ分けを行なわない場合、管理コンピュータ1は常時最大セッション数で親ノードへのファイル転送を行なうことができる。つまり、一つのグループの親ノードである端末装置3へのファイル転送が終了した場合には、同時セッション中の他の端末装置3へのファイル転送の終了を待たずに、次のグループの親ノードである端末装置3へのファイル転送を開始する。このように、常時最大セッション数で管理コンピュータ1と端末装置3との間のFTP接続を開くことにより、限られたコンピュータ資源を有効に使い、ファイル転送時間を最大限に短縮することが可能となる。
また、図16の第1レイヤに示すごとく、IDが101〜120,151〜200の端末装置3がメンテナンス中等の理由で通信不能になり、グループから除外されているが、生じた空席は詰めてグループ化がなされていることが分かる。また、全ての端末装置3は親ノードになる資格を持っている。したがって、どのIDの端末装置3が通信不能に陥ったとしても、その通信不能の端末装置3の影響が他に及ばず、常に最適なグループ分けを行なうことができる。親ノードを固定する場合、その親ノードである端末装置が通信不能になったりすると、同一グループに属する他の端末装置3に影響が及んでしまう。しかしながら、本発明によればグループが固定ではなく、親ノードも固定ではないため、真にファイルを要求する端末装置3のみで動的なグループを形成し、親ノードを動的に指定することで効率良くファイル転送を行なうことが可能である。
図7に戻って説明を続ける。S47において、グループの数が所定数N(N=20)以下であると判断した場合には、各グループの親ノードである端末装置3の送信準備フラグをオンにする(S53)。これにより、その親ノードである端末装置3にファイル転送を行なう準備が整う。送信準備フラグは、ファイル転送を行なうべき端末装置3を特定するために、端末装置3が持つIDと関連付けた形でRAM103を用いて管理されるフラグであり、ファイルの転送を待っている状態を表わす。また、S48でレイヤ分けが完了したら、第1レイヤに属するグループの親ノードである端末装置3の送信準備フラグをオンにする(S49)。図16でいうと、ID番号が“1”の端末装置3の送信準備フラグがオンになる。送信準備フラグをオンにした端末装置3の書換フラグをオフに切り替える(S50)。
なお、S43で書換フラグがオンの端末装置3がグループ化済みであるとの判断をした場合、前のレイヤへのファイル転送が終了したと判断し、次のレイヤに属するグループの親ノードである端末装置3の送信準備フラグをオンにする。これにより、次のレイヤに属する端末装置3にファイルを転送する準備が整う。次のレイヤとは、書換フラグがオンである端末装置が属するレイヤの中で最も若い番号を持つレイヤのことである。
また、グループ化を行なう場合のソートは、ファイルの要求があった順としてもよいし、ID順としてもよい。さらには、ハブ単位でソートを行なうようにしてもよい。ハブ5をまたがってグループ化を行なわない、つまり同一のハブ5に接続された端末装置3同士は、必ず同一グループに属するようにする。このようにすれば通信速度の向上を見込める。また、第2レイヤのグループ数が所定数Nを超えた場合には、図16に示すごとく、第3レイヤに属するグループを形成していけばよい。
図8に示すのは、ファイル転送処理(図3のS4)の詳細なフローチャートである。S60において、送信中フラグがオフ、つまりファイル転送中でないことを確認したら、送信準備フラグがオンの端末装置3の有無を判断する(S63)。送信準備フラグがオンの端末装置3、つまりファイルを転送するべき親ノードがある場合、プログラムファイルの転送に先立ち、その親ノードである端末装置3にグループ情報を送信する(S64)。グループ情報は、その端末装置3が親ノードであることを示す情報と、同一グループに属する他の端末装置3を特定するための情報(他の端末装置のID)とを含む。ただし、ファイル転送を要する端末装置3の台数が少ない等の理由でグループ化を行なっていない場合には、グループ情報をグループ化がなされていないことを示す情報とするか、あるいはグループ情報自体を送信しなくてもよい。
次に、送信準備フラグがオンになっている端末装置3がグループ化されているかどうかを判断する(S65)。グループ化済みであれば、グループ情報に含めた他の端末装置3の書換フラグをオフする(S66)。そして、送信準備フラグがオンになっている親ノードの端末装置3にプログラムファイルの転送を開始する(S67)。ファイル転送を開始するにあたり、FTPのデータ転送用TCPコネクションを管理コンピュータ1側からアクティブモードにて確立する。そして、ファイル転送を開始した端末装置3にかかる送信準備フラグをオフ、送信中フラグをオンに切り替える(S69)。なお、グループ情報の送信をプログラムファイルの転送とともにFTPで行なうようにしてもよい。なお、S60において送信中フラグがオンであることを確認したら、プログラムファイルを親ノードの端末装置3に転送済みかどうか判断する(S61)。プログラムファイル転送済みであると判断した場合には、送信中フラグをオフする(S62)。
次に、端末装置3側の処理について説明する。
図9は、管理コンピュータ1が実行する処理に応じて端末装置3が実行する処理のゼネラルフローチャートである。端末装置3は、図14に示す内容のバージョンアッププログラム74dの各ジョブを、図9のフローチャート中の各処理として実行する。以下、各処理を詳細に説明する。
図10に示すのは、バージョンチェック処理(図9のT1)の詳細なフローチャートである。端末装置3は、管理コンピュータ1からバージョン情報を受信した場合、受け取ったバージョン情報が自身のバージョンに一致するか否かを判断する(T11,T12)。すなわち、管理コンピュータ1が端末装置3に転送するべきファイルに記述されたプログラムのバージョンと、端末装置3自身がその時に持っているプログラムのバージョンとが一致するかどうかを確認する。そして、バージョンが一致しない場合にのみ、ファイル転送要求する旨の信号を管理コンピュータ1に対して送信する(T13)。バージョンが一致する場合、端末装置3は管理コンピュータ1に何も返答しない。ただし、バージョン情報を受信した端末装置3が管理コンピュータ1に送信する信号(返答データ)は、バージョンが一致するのでファイルが不要であることを表わすものであってもよい。
図11に示すのは、ファイル受信処理(図9のT2)の詳細なフローチャートである。T21において、端末装置3はグループ情報を受信したかどうか判断する。グループ情報を受信したと判断した場合には、グループフラグをオンに切り替える(T22)。T23において、ファイルを受信したかどうかを判断する。ファイルを受信した場合には受信フラグをオンに切り替える(T24)。なお、グループ化されていない端末装置3に対してグループ情報を送信しない構成の場合には、プログラムファイルを受信したとき、あるいは受信してから所定時間内にグループ情報を受信しないときに、グループ情報が無いとの判断をする構成とすることができる。
図12に示すのは、ファイル転送処理(図9のT2)の詳細なフローチャートである。まず、ファイル転送処理終了フラグがオンであるか否かを判断する(T31)。ファイル転送処理終了フラグは、親ノードである端末装置3が同一グループに属する他の端末装置3にファイルを転送したか否かを判断するフラグであり、RAM73(図2)を用いて管理される。ファイル転送処理終了フラグがオフである場合には、グループ内の他の端末装置3にファイル転送を行なうことが必要なので、T32に進み、端末装置3はグループフラグがオンであるか否かを判断する。図11で説明したように、グループフラグはグループ情報を取得することを条件にオンに切り替わるフラグである。グループフラグがオンの場合には、受信フラグがオンであるか否かを判断する(T33)。図11で説明したように、受信フラグはプログラムファイルを管理コンピュータ1から取得したか否か(ダウンロードしたか否か)を判断するフラグである。プログラムファイルを取得している場合には、T34に進み、グループ情報に他の端末装置3のIDが含まれるかどうかを見る。これにより、ファイル転送を行なうべき子ノードである端末装置3(図15参照)を特定する。そして、特定した子ノードである端末装置3にFTP接続し、ファイルを転送する(T35)。ファイル転送を開始したら、ファイル転送処理終了フラグをオンに切り替える(T36)。
図13に示すのは、プログラム書換処理(図9のT4)の詳細なフローチャートである。まず、ファイル転送終了フラグがオフかどうかを判断する(T41)。ファイル転送終了フラグがオンの場合には、T42に進み、他の端末装置3にファイル転送中であるかどうかを判断する。ファイル転送中でない場合には、管理コンピュータ1から得たプログラムファイルに基づき、ROM74に格納しているプログラムを書き換える(T43)。プログラムの書き換えは、特定のジョブにかかるプログラムの一部を修正する形であってもよいし、そのジョブにかかるプログラムの全体を新しいバージョンのプログラムに置き換える形であってもよい。プログラムを書き換える処理が終了したら、受信フラグ、グループフラグおよびファイル転送処理終了フラグをそれぞれオフする(T44,T45,T46)。親ノードである端末装置3は、同一グループに属する他の端末装置3(子ノード)にプログラムファイルを再転送したあとでこのプログラム書換処理を実行する。これにより、ファイル転送に要する時間からプログラム書換および再起動に要する時間を間引くことができる。
以上に説明した方法では、親ノードに指定された端末装置3が、同一グループに属する他の全ての端末装置3に管理コンピュータ1から受け取ったファイルを転送する構成としている。ただし、以下に示す構成を端末装置3が有するならば同一グループ内の他の端末装置3全てに管理コンピュータ1から取得したファイルを転送することを要しない。具体的には、図17に示すごとく、端末装置3は、管理コンピュータ1から親ノードに指定された場合に、同一グループに属する他の端末装置3をさらに複数のグループに振り分け、複数の端末装置3が属する複数の第二グループを設定するとともに、各第二グループ内の1台の端末装置3を子ノード、子ノード以外の端末装置3を孫ノードに指定する(第二グループ化手段)。子ノードは、第二世代の親ノードに相当する。そして、第一世代の親ノードに当たる端末装置3は、子ノード(第二世代の親ノード)に指定する旨の通知と、同一の第二グループに属する他の端末装置3(孫ノード)を特定するためのIDとを含む第二のグループ情報を、管理コンピュータ1から取得したファイルとともに子ノードに指定した端末装置3に転送する。このように、端末装置3を親ノード、子ノード、孫ノードの三世代に階層分けし、それぞれの階層内でグループ化を行なう構成は、大型店舗向けのホール管理システムに特に好適である。なお、第二世代のグループ分けは、管理コンピュータ1が行なうようにしてもよい。この場合、管理コンピュータ1は、親ノード、子ノードおよび孫ノードの指定を一括して行なう。また、同一グループ内において親ノードは複数台であってもよいし、子ノードも複数台であってもよい。
なお、本実施形態ではFTPの最大同時セッション数が管理コンピュータ1と端末装置3とで同数(N=20)であるとしたが、同数であることには限定されない。たとえば、管理コンピュータ1のFTP最大同時セッション数が10台であり端末装置3のFTP最大同時セッション数が5台である場合には、一つのレイヤに最大10グループが所属し、一つのグループには最大6台の端末装置3(1台の親ノードと5台の子ノード)が所属するようにグループ化処理を行なうとよい。
また、一つのグループに所属する端末装置3の台数を適宜変更する構成とすることも可能である。すなわち、ファイルを要求する旨の返答があった端末装置3をリストアップし、そのリストに挙がった端末装置3の台数を計数する一方、その計数した台数を、所定数N(たとえば管理コンピュータ1のFTP最大同時セッション数)で除して一つのグループに所属する端末装置3の台数を決定する。そして、その決定に基づいて各端末装置3をグループ分けする。たとえば、60台の端末装置3からファイル転送の要求があった場合には、その60台を所定数N(たとえばN=20)で除した値(=3台)が一つのグループに属する端末装置3の台数となる。このような方法によれば、グループの親ノードに指定される端末装置3の負担を軽減することができる。したがって、端末装置3を管理コンピュータ1ほど高性能化せずに済む。
以上、本実施形態では、玉貸出機能を持った端末装置3を例示したが、玉貸出機能を持たない端末装置であってもよい。つまり、先に例示した機能の全てを端末装置3が持つ必要はない。具体的には、図18に示すごとく、遊技台4ごとに設けられるデータ表示機能付きの呼出ランプ7の二台に対して一つのプログラム基板6(入出力コントローラともいう)が設けられ、その一つのプログラム基板6で二台の呼出ランプ7,7を制御する構成のホール管理システム200は、他の一つの好適な実施形態である。もちろん、端末装置は、玉貸出機能だけを持った端末(台毎の貯玉再プレイ装置等プログラムを変更する可能性のある端末)であってもよい。
また、管理コンピュータ1がプログラムファイルの転送元でないホール管理システム300(図18)を示すことができる。ホール管理システム300の基本的な構成は、図1に示したホール管理システム100と共通である。相違する点は、入出力コントローラ8がメモリカードリーダ8aを備える点である。すなわち、そのメモリカードリーダ8aから、メモリカートリッジ9に記録されたプログラムファイルを入出力コントローラ8に取り込み、プログラムファイルを取り込んだ入出力コントローラ8が備えるグループ化手段により、他の入出力コントローラ8にかかるグループ化を行ない、プログラムファイルを取り込んだ入出力コントローラ8が備えるファイル転送手段によってファイル転送を行なう。図4等で説明したバージョンチェックは行なってもよいし、行なわなくてもよい。
また、図19のホール管理システム300の変形例として、管理コンピュータ1と入出力コントローラ8との間に島コンピュータを配置する構成を示すことができる。すなわち、その島コンピュータがグループ化処理(グループ分けとグループ情報の送信)を行なう一方、子ノードへのプログラムファイルの転送は親ノードに指定された入出力コントローラ8(端末装置)が行なうという構成を採用できる。このように、プログラムファイルの最初の転送元は管理コンピュータ1に限定されないし、グループ化処理の主体(装置)も管理コンピュータ1に限定されない。また、プログラムファイルを転送する装置と、グループ化処理(グループ情報の送信含む)を行なう装置とが別体であってもよい。
また、本明細書では遊技店のホール管理システムを具体例として説明してきたが、他の一般的なネットワークにも発明の思想を取り入れることが可能であることを断っておく。