大規模ネットワークゲームのインフラを自律的に
構築するシステムのJXTAによる実装


氏名 : 嵩原大典(Daisuke Takehara)
学籍番号 : 015730K
研究室 : 河野研
指導教員 : 河野真治
Email : daiten@cr.ie.u-ryukyu.ac.jp


[1.はじめに] [2.AgentSystemとは] [3.JXTAとは] [4.AgentのJXTAでの実装] [5.従来のAgentSystemとの比較] [6.今後の課題] [7.参考文献]


1.はじめに

従来のネットワークゲームでは,サーバ・クライアント方式がのネットワークシ ステムが主に用いられている.し かし,この方式のネットワークゲームは,現在数万人規模のネッ トワークゲームしか実現できていない.そこで,我々は百万人規模のネットワー クゲームを実現するために,ネットワークのインフラを自律的に構築するシステ ム,AgentSystemを提案している.

本研究の目的は,我々が設計,実装したAgentSystemを,JXTAを用いて実際 にネットワークゲームに組み込んで実装し,従来のAgentSystemとの比較,検証 である.


2.AgentSystemとは

2.1 従来のネットワークシステム

まず,サーバ・クライアント方式には,次の様な特徴がある.

  • サーバに,いくつかのクライアントが接続することによってネットワー クが成り立っている.
  • サーバ同士の繋がりは無いので,別々のサーバに接続しているクライア ント同士は出会うことはない.
  • サーバ側でほとんどの仕事を処理するので,クライアントは意志決定を送 信するだけでよく,クライアント側は負担が少ない.
  • サーバでは,クライアントから送信されてくる処理をいろいろと行わない といけないので,サーバの負担は大きい.

    図1:従来のネットワークシステム

    この方式では,サーバがクライアントから送られてきたデータなどを一括管理す るので,比較的安定したネットワークが構築できる.サーバ側となるマシン の性能で,クライアントの接続数が決まる.現状では,数万人の接続が限界 である.

    2.2 AgentSystem

    AgentSystemとは,自律的にネットワークのインフラを構築するシステムである. AgentSystemによるネットワークは並列分散型のネットワークであり, Agent同士が論理的に繋がって構築されている.いくつかAgent同 士がTree構造でつながっいて,クライアントはその内のどれかのAgentに接続す る.Agentにはそれぞれ役割があり,接続したクライアントが必要な部分があった ら,その部分の役割を持っているAgentに移動する.このように,クライアント を全てのAgentに振り分け,1つのAgentにクライアントが集中してしまうことを 避ける.そして,ひとつのAgentに大 多数の人数が接続しないように振り分けることによって,大多数のクライアント の接続を可能にしようというものである.


    図2:Agentによるネットワーク

    3.JXTAとは

    JXTAとは,サン・マイクロシステムズが提供するP2P(Peer to Peer)のフレーム ワーク技術で,このJXTAを用いることによって,P2Pのプログラムが容易に作成 できるという技術である.

    JXTAの主な特徴としては,各ピアがアドバタイズメントと呼ばれるピア固有の識 別情報などを作成・公開し,他のピアがその公開されたアドバタイズメントを検 索・発見することによって,通信が行われる.その際,通信が行われるピア同士 の間にパイプコネクションが確立され,ピア同士は直接通信が可能となる.


    図3:JXTAのしくみ

    JXTAを用いてAgentを作成し,従来のAgentとの比較,検証を行っていく.


    4.AgentのJXTAでの実装

    現在のAgentSystemでは,NodeManegerを用いて設計されている.NodeManegerとは, 新規Agentが接続しようとしたときに,その接続の流れについて設計されてい る部分である.その流れとは,新規Agentが接続されたときに,その新規Agentが 接続されるに望ましいノードから,新規Agentに対する新しいIDと,そのノード 自身の情報を新規Agentに渡す.その情報をもとに新規Agentは,ノードに接続す るというものである.

    この部分をJXTAを用いて実装するには,Agentにまずピアグループアドバタイズ メントを公開さる.他のAgentは,そのピアグループアドバタイズメントを検索 し,ピアグループを形成していく.ピアグループに所属しているAgent同士を,Tree 構造で接続し,AgentSystemによるネットワークを形成する.


    5.従来のAgentSystemとの比較

    従来のAgentSystemと比較するために,投票ゲームに今までのAgentSystemと, JXTAで実装したAgentSystemをそれぞれ組み込む.その上で,通信速度や安定性, 接続できる数などの比較,検証を行う.

    5.1 投票ゲームとは

    投票ゲームとは,ゲーム参加者が質問に対して「YES」,「NO」を選択して,そ の結果を送信するゲームである.あるノードから「YES」,「NO」の情報を送信 したとすると,その情報を受け取った側は,その情報が送られてきたノード以外 の自分がつながっているノードに対して送られてきた情報を送信する.この課程 を全てのノードが行っていき,最終的には情報が全てのノードに伝えられ,それ ぞれのノードからの投票の結果が反映され,集計が行われるというしくみである.


    6.今後の課題

    現在の進行具合は,AgentSystemのJXTAでの設計はまだ完了していない.JXTAのしく みについて理解し,AgentSystemのどの部分にJXTAを組み込んでいくかを考え, それを実現させようとしている段階である.\par 今後は,いち早くAgentSystemをJXTAを用いて設計し,従来のAgentSystemとの比 較・検証をしていく予定である.


    7.参考文献

    1. 小杉隆ニ, 大規模ネットワークゲームのインフラを自律的に構築するシ ステムの設計と実装, 卒業論文, 2004
    2. 2次元コードの基礎知識(http://www.keyence.co.jp/barcode/2jigenbasic/index.html)」株式会社キーエンス,2004年
    3. 「バーコード(http://www.asahi-net.or.jp/~ax2s-kmtn/bcodes.html)」CyberLibrarian,2004年