JP5373295B2 - マルチノード・サーバシステム、負荷分散方法、リソース管理サーバ、およびプログラム - Google Patents

マルチノード・サーバシステム、負荷分散方法、リソース管理サーバ、およびプログラム Download PDF

Info

Publication number
JP5373295B2
JP5373295B2 JP2008024207A JP2008024207A JP5373295B2 JP 5373295 B2 JP5373295 B2 JP 5373295B2 JP 2008024207 A JP2008024207 A JP 2008024207A JP 2008024207 A JP2008024207 A JP 2008024207A JP 5373295 B2 JP5373295 B2 JP 5373295B2
Authority
JP
Japan
Prior art keywords
mesh
server
node
processing
allocation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008024207A
Other languages
English (en)
Other versions
JP2009187115A (ja
Inventor
俊博 ▲高▼橋
洋 堀井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2008024207A priority Critical patent/JP5373295B2/ja
Priority to US12/365,185 priority patent/US8327371B2/en
Publication of JP2009187115A publication Critical patent/JP2009187115A/ja
Application granted granted Critical
Publication of JP5373295B2 publication Critical patent/JP5373295B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/352Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、複数の情報処理装置におけるマルチノード・サーバシステム、マルチノード・サーバシステムの負荷分散方法、およびプログラムに関し、より詳細には、複数のサーバ装置を使用して連携した処理を特定のクライアント装置に提供する、マルチノード・サーバシステム、マルチノード・サーバシステムの負荷分散方法、リソース管理サーバ、およびプログラムに関する。
近年、ネットワーク技術およびコンピュータ技術の進歩により、ネットワークを介した複数のクライアント装置への情報提供、CGI(Common Gateway Interface)、Servlet、ゲーム・アプリケーション、その他のサーバ・アプリケーションを使用したサービス提供などが普及している。サーバ装置は、複数のクライアント装置から不規則かつ予測困難なタイミングでアクセスを受け、各クライアント装置の要求に適合した処理を実行し、実行結果を各クライアント装置に返す必要がある。
また、サーバによるサービス提供も多岐にわたってきており、サーバは、情報検索サービス、ブラウジング・サービス、ゲーム・アミューズメント提供サービスなどのサービスを行っている。このうち、ゲーム・アミューズメント提供サービスは、プレイヤーがそれぞれ固有の画面でゲームプレイを行う、スタンドアロン形のゲームから、多くのプレイヤーがゲーム・サーバに同時接続し、各プレイヤーが巨大な仮想空間を共有してコラボレーション下で連携したゲームを進行させて行くタイプのゲームが登場している。
上述したゲーム・アミューズメント提供サービスを行うゲーム・サーバは、情報検索、ブラウジング・サービスなどを提供するサーバとは異なる処理環境に曝されることになる。すなわち、情報検索やブラウジング・サービスを行うサーバ装置は、クライアントからの要求に対応してスレッドなどを割当て、その処理結果を単に要求元のクライアントに返す処理を行う。この場合、他のクライアントとの間のコラボレーションが行われる場合があることも想定されるが、全部または大多数のクライアントに対してコラボレーション下での処理結果を返す処理は、極めて希なケースということができる。
一方、ゲーム・サーバは、多数のプレイヤーが参加して、ゲーム空間といった仮想空間内で、例えば対戦、生活、投資などのゲーム・アプリケーションの処理結果を、プレイヤーそれぞれをコラボレーションさせながらクライアントに表示する必要がある。さらに、近年ではゲーム内容がますます複雑多様化し、さらに同時接続するユーザ数も増加するなど、ゲーム環境の大規模化に伴い、サーバ側の処理がますます複雑、かつ高速性・高信頼性が要求されるようになっている。
上述した処理負荷や、ネットワーク環境の多様化、さらにサーバダウン時のバックアップ、サーバ拡張性などのメンテナンス性の観点から複数のサーバをLAN(Local Area Network)で相互接続し、サーバをLANノードとして、サーバ・ノードを相互接続して構成することも行われている。
ゲーム・サーバが複数台のサーバ・ノードから構成される場合、サーバ内の通信よりも、LANを介した通信速度は、ネットワーク・インタフェース・ボード(NIC)などにもよるが1Gbps以下の伝送レートとなり、サーバ内部での伝送レートよりも伝送効率が低下する。また、LANは、サーバ間のアプリケーション処理以外にも、ハブ、ルータ、DNSサーバなどを介したネットワーク通信のための情報通信なども処理する。一方、LANを構成するネットワーク基盤の伝送レートが引上げられても、それに伴いLANを経由して送受信されるデータも増加するので、アプリケーション実行のために必要なデータ通信の伝送効率を改善することにはつながらないという問題点がある。
すなわち、複数台のサーバをLANノードとして接続した場合、アプリケーション実行に関連するデータ伝送を効率化しなければ、複数台のサーバをLANで相互接続して構成される、いわゆる、マルチノード・サーバシステムの処理効率を効率的に向上させることができないという問題がある。
一方、ゲーム・アミューズメントなどのアプリケーションの場合、仮想空間内の特定領域(以下、メッシュとして参照する。)の混雑具合は、時間、ゲームの進行度合い、ユーザの好み、ゲーム内容によって常に変動する。このため、サーバ・ノード間でどのように計算資源を分配するかが大きな問題となる。計算資源をサーバ・ノード間で適切に分配しない場合、単一のサーバ・ノードで処理可能な限界性能(同時接続可能なプレイヤー数など)が、プレイヤーの要求に対応することができず、いわゆる処理落ちが発生し、ゲームなどの処理に不都合が発生する。
また、単独サーバ内でのデータ伝送であれば各メッシュ間のコラボレーションには充分対応できる性能を有している場合であってもLANのデータ輻輳により、メッシュ間の通信効率が低下する場合も想定でき、仮想空間内でのコラボレーションが妨げられたり、データが損失してしまうなどの問題も発生する。
一方、ゲーム状態を保持させながら計算資源の配置を変更する場合には、処理可能なサーバ・ノードの選択や、計算資源の割当てなどの処理のための時間が必要となる。また、仮想空間にアクセスするクライアントは、同時に同一のメッシュ近傍にアクセスするとは限らず、計算機資源の再配置を行う場合、処理負荷がオーバーフローに近いメッシュやサーバが存在することで、処理量が高くないメッシュ近傍にアクセスするクライアントへの応答性が制限されるという不都合も発生する。
これまで、複数のプレイヤーによるゲームを可能とするゲーム・システムが知られている。例えば、特開2005−234633号公報(特許文献1)では、複数のサーバによりそれぞれサービスが提供され、これらのサービスにより仮想的な世界を自由に構築・連結し、仮想的な世界の間の移動を自由にさせるサービスの拡張方法が知られている。特許文献1では、結合した仮想的な世界を構築しつつ、所定の単位でその処理を各サーバに分散し、その結果をクライアントに提供するものである。特許文献1は、サーバに対して仮想コミュニティを割当て、クライアントがサーバに設定したインタフェースを超えた場合に、新たな仮想コミュニティを管理するサーバにクライアントについての情報を渡して、新たな仮想コミュニティでの処理を可能とするものである。
しかしながら、特許文献1は、サーバに対して特定の仮想コミュニティが割当てられ、クライアントが移動先の仮想コミュニティを決定することにより、処理を担当するサーバが決定されてしまう。このため、特許文献1は、仮想コミュニティの混雑ぶりに対応して処理担当のサーバを変更することはできない。この他、特開平9−325991号公報(特許文献2)は、参加者数を増やすことを可能とし、仮想世界を領域に分断した際の違和感を低減するため、隣接する領域にそれぞれサーバを配置し、小領域が隣接した領域間で重なるように設定することを開示している。
また、特開平11−039472号公報(特許文献3)は、固定点と新規のユーザの位置との間の距離に応じてユーザに空間およびサーバを割当てることで、ユーザの移動時に要求される衝突検査などの計算量を低減する処理を開示している。特開平11−288394号公報(特許文献4)は、ゲームへの参加者の数が多くなるにつれてゲーム・サーバ間のデータ交換量が増大する難点を解消するため、ゲーム端末間の通信距離に応じてメッセージをやりとりできるゲーム端末を限定する処理を開示している。さらに、特開平11−328124号公報(特許文献5)は、仮想空間表示システムで、仮想空間をレンダリングする負担を軽減させる処理を開示し、特開2000−285064号公報(特許文献6)は、利用者情報データベースを設け、仮想空間サービスにおいて利用者およびキャラクタの単一性を保証し、操作性を向上させる処理を開示している。
特開2005−234633号公報 特開平9−325991号公報 特開平11−039472号公報 特開平11−288394号公報 特開平11−328124号公報 特開2000−285064号公報
上述したように、複数のサーバを使用して仮想空間を提供するシステムは、複数開示されている。しかしながら、複数のサーバにより提供される仮想空間のメッシュの処理において、各サーバの資源を効率的に分配することにより、クライアント増加やメッシュ内処理のオーバーヘッドに対応できるように、複数のサーバのハードウェア資源を分配することを可能とするマルチノード・サーバシステム、マルチノード・サーバシステムの負荷分散方法、リソース管理サーバ、およびプログラムが必要とされていた。
また、仮想空間に参加するクライアントの数が、時間、嗜好性、仮想空間の内容によって常時変動する環境下で、特定のクライアントに対する処理が不能となる、いわゆる「処理落ち」の不都合の発生を最低化させることにより信頼性を向上した、マルチノード・サーバシステムの負荷分散方法、リソース管理サーバ、およびプログラムが必要とされていた。
さらに、複数のサーバにより構築されるマルチノード・サーバシステムの資源を有効利用すると共にサーバ・システムの最大処理量が特定のサーバの処理能力に制限されてしまうことがないように、負荷を分散させ、マルチノード・サーバシステムの処理効率を最大化させる、マルチノード・サーバシステムの負荷分散方法、リソース管理サーバ、およびプログラムが必要とされていた。
本発明は、上述した従来技術の課題に鑑みてなされたものである。本発明では、仮想空間に対して複数の領域(メッシュ)を割当て、仮想空間を隣接するメッシュに分割する。そして、特定のサーバに対してメッシュ単位でアプリケーションを実行するためのリソースを割当てる。サーバ間の負荷分配は、メッシュが消費するハードウェア資源の利用状態を定期的にモニタリングし、それらの実測値に基づいて、当該メッシュの処理を担当するサーバを選択して変更する。
さらに、本発明では、メッシュを処理するサーバを再配置する場合、再配置に伴う時間的中断、メッシュの割当て変更に関連しないメッシュにアクセスするクライアントへの負担、システム性能などの再配置コストを含めて複数のサーバ間で最適なメッシュ割当てをオートノミックに決定する。すなわち、本発明では、複数のサーバによる最適効率の処理を可能とし、システムパーフォマンスを最適化するように、マルチノード・サーバシステムが、対象メッシュに割当てるサーバを変更することで、
サーバが処理対象とするメッシュは、LANを経由したメッシュ間通信がデータ伝送を制限している場合、LAN経由ではなく、メッシュ間通信がサーバ内のプロセス間通信などとなるように、処理サーバが異なる隣接メッシュのメッシュ境界を含む境界メッシュを選択し、メッシュ間通信がノード内通信となるようにメッシュ処理を担当するサーバ割当てを修正する。また、CPU負荷、メモリ利用率などのサーバ能力によりアプリケーションの実行が制限される可能性がある場合には、境界メッシュから順次移動対象となるメッシュを選択し、例えば、最も処理負荷の低いサーバに、処理負荷の高いメッシュの処理を依頼するなど、目的関数の上限値を最小化させるように、サーバ割当てを修正する。
上述したサーバ割当ての変更のため、本発明では、負荷状態を示すパラメータおよびサーバ割当てを行う対象処理メッシュ総数を含む目的関数を使用する。目的関数は、CPU負荷、メモリ利用率、メッシュ間通信量などのサーバの負荷状態の他、移動するべきメッシュの総数をパラメータとして含む。マルチノード・サーバシステムは、各パラメータが与える目的関数の上限値が最小となるように、メッシュ−サーバの割当てを反復的に選択して移動するべきメッシュを要素として含むメッシュ集合を生成し、このメッシュ集合を使用して最適配置データを計算し、メモリなどに格納しておく。サーバの負荷状態が設定したしきい値を超えた場合、移動処理プログラムが呼出され、最適配置データにしたがってマルチノード・サーバシステムを構成するサーバ割当てが変更される。
割当てが修正されるメッシュは、少なくとも書込み処理について排他処理制御され、サーバ割当てが進行中でも、割当てに関連しないメッシュにアクセスするクライアントは、自己がアクセスしているメッシュを含む仮想空間を使用してアプリケーション実行を継続することが可能とされる。このため、マルチノード・サーバシステムのリソース割当て変更に伴うクライアントへのアプリケーション提供サービスは、システムおよびクライアント側への負担に関連し、最小限のコストで実行できる。
以下、本発明を実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図1は、本マルチノード・サーバシステムによる仮想空間のメッシュ分割の実施形態を示す。マルチノード・サーバシステムは、ネットワークを介して複数のクライアントがアクセスし、複数のクライアントに対して共通のアプリケーションによる処理を可能としている。アプリケーションとしては、仮想空間内で複数のクライアントがコラボレーション環境の下でプレイすることができる、マルチメディア・ディスプレイ、対戦型ゲーム、仮想生活ゲーム、投資シミュレーションゲームを挙げることができる。
なお、アプリケーションは、クライアントのディスプレイ画面上に2D、3Dなどの仮想空間を表示させ、当該仮想空間を複数のクライアントに共有させることができる限り、アプリケーション種類、処理内容には限定されるものではない。また、「クライアントによる仮想空間の共有」とは、クライアントが当該仮想空間にアクセスして何らかの処理を依頼することができる限り、ゲームが表示する仮想空間に限定されるものではなく、ディスプレイ画面上に表示される2D、3Dとして識別でき、それぞれにメッシュが割当てられる限り限定されるものではない。
以下、本明細書では、用語「サーバ・コンピュータ」を、ハードウェアおよびサーバ・ソフトウェアが連携してサービスを提供する情報処理装置として定義し、以下、単に「サーバ」として参照し、ローカルエリア・ネットワーク(LAN)を構成する機能的要素としては、サーバを、「ノード」として参照する。また、本明細書では、用語「クライアント装置」を、サーバに対して遠隔的に接続され、サーバに対して処理要求を発行し、サーバによる処理結果を受領して処理を続行させる情報処理装置として定義し、以下、単に「クライアント」として参照する。
クライアントは、ユーザにより操作され、マルチノード・サーバシステムへとアプリケーションの処理を要求し、マルチノード・サーバシステムは、要求に対応する処理を実行して、クライアントのディスプレイ装置上に表示された仮想空間に処理結果を反映させて、応答する。
図1に示した仮想空間100の実施形態では、ドライビング・ゲームなどのため、3D表示された仮想空間内に、道路102が表示されている。ユーザは、仮想空間100の道路102上で、乗用車、スポーツカー、レーシングマシーンなどの車両を操作し、他のクライアントとの間でレースなどを行う。マルチノード・サーバシステムは、仮想空間100を複数のメッシュに分割して、クライアントのディスプレイ画面上に表示させ、メッシュ内の処理をそれぞれ管理している。これらのメッシュは、図1に示す仮想空間100では、交差するメッシュ境界104により示されていて、メッシュ境界104の内部に、単独のメッシュ106が規定される。
メッシュのサイズは、特に限定はないが、仮想空間100内での画素数、仮想的距離、面積など、仮想空間100を隙間なく分割することができる限り、いかなる基準の下で割当てることができる。また、メッシュ106内に移動してきたクライアントは、当該メッシュ内に割当てられたリソース・データを使用してアプリケーションを実行する。この目的から、メッシュには、RAMなどのメモリ領域を可変サイズで割当てて実装することができる。また、データの整合性などを確保するために、メッシュは、排他制御を可能とするフラグ、テーブル、セマフォなどを構造を伴っていてもよい。
マルチノード・サーバシステムは、メッシュ106単位で、処理を担当するサーバのCPU、メモリ、ユーザ・データ、表示オブジェクト・データなどを管理し、その処理を実行する。また、ユーザが隣接するメッシュに移動する場合には、隣接メッシュ間でユーザ・データ、表示オブジェクト・データなどを通信し、現在のメッシュから隣接メッシュへのアプリケーション処理の受渡しを行って、ユーザに対して違和感なく、ゲームなどの処理を継続させる。隣接するメッシュが同一のノードに割当てられる場合、メッシュ間通信は、プロセス間通信などにより実行され、隣接するメッシュが異なるノードに割当てられる場合、LANを経由したMAC転送などを使用してメッシュ間通信を実行する。
図2は、本実施形態のマルチノード・サーバシステムの機能ブロック図である。マルチノード・サーバシステムは、複数のノード202、204、206、208、218をノードとし、複数のノードが、LANにより接続されて構成されている。これらの複数のノードは、さらにブリッジ、スイッチ、ハブ、ルータなどのネットワーク機器を介して相互接続されている。ノード202、204、206、208、218は、CPU、キャッシュ・メモリ、RAM、ネットワーク・アダプタなどを含む従来知られた汎用サーバや、特定アプリケーションのために構成されるアプライアンス・サーバ、シンサーバなどを使用して構成することができる。
ノードを与えるサーバは、例えば、UNIX(登録商標)、LINUX(登録商標)、AIX(登録商標)、Windows(登録商標)200Xサーバなどのオペレーティング・システム(OS)を実行させ、各種のアプリケーションの処理に対応する。また、CPUとしては、POWERPC(登録商標)などのRISCアーキテクチャ、PENTIM(登録商用)などのCISCアーキテクチャを有する、シングルコア・プロセッサまたはマルチコア・プロセッサを使用することができ、メイン・キャッシュの他、適宜、L2キャッシュ、L3キャッシュなどを実装することができる。
図2に示すマルチノード・サーバシステムは、アプリケーション実行部200と、アプリケーション実行部200の計算機資源を管理するリソース管理手段として機能するリソース管理ノード218とを含んで構成されている。図1に示した実施形態では、アプリケーション実行部200は、ノード202、ノード204、ノード206、ノード208により構成されている。また、各ノードは、LAN226を介して相互通信しており、ネットワーク機器が管理するMAC(Media Access Control)アドレス・テーブルなどを参照して、各ノード間のデータ送信や通知を行っている。リソース管理ノード218は、アプリケーション実行部200との間で、同様にLANにより接続されていて、アプリケーション実行部200を構成するノードから、各種情報を収集し、また、ノードに対して資源配分を行うための情報を提供している。
LAN226は、例えば1000BASE−T、1000BASE−TXなどのEthernet(登録商標)などの有線LAN、IEEE802.Xなど無線LAN、またはBluetooth(登録商標)、IrDaなどを利用して構成することができる。
アプリケーション実行部200を構成するノード202、204、206、208は、図1に示した実施形態では、それぞれノード1、ノード2、・・・などのノード識別値が付与されている。ノード識別値は、MACアドレスおよびIPアドレスなどを併用して付すことができ、ネットワーク上で固有に特定のノードを識別させている。なお、IPアドレスをノードに割当てる場合、各ノードには、それぞれグローバルIPアドレスが割当てられ、ユーザからのアクセスが可能とされている。
図2に示す実施形態では、ノード202は、アプリケーションを実行するために、複数のメッシュ210、212、・・・を管理する。例えば、メッシュ210は、アプリケーションが提供する仮想空間100に割当てられる図1に示したメッシュ106の処理を実行し、メッシュ106に割当てられる仮想空間領域の表示、ユーザ識別、オブジェクト表示処理、オブジェクト移動処理などを実行する。また、ノード202のメッシュ210は、特定の実施形態によっては、ホットスポットや隠しボタンなどの操作により、当たりや、特別ゲームの呼出し、特別アイテムなどの割当ておよび表示などの処理を実行する。
メッシュ210は、アプリケーション実行に際して、ノード202が、ハードディスク装置に登録されたリソース・データなどを、RAMなどにより提供される実行空間を割当てることにより生成される。各メッシュのメモリサイズは、メッシュ内での処理要求に対応してノード202が許容可能な割当てサイズまで可変設定され、例えばアプリケーションの要求に応じてノード202での処理のオーバーヘッドに許容範囲内で対応することが可能とされている。なお、アプリケーション実行部200をウェブ・サーバとして実装する場合、各メッシュには、例えは、RFC2616で規定されるURI(Uniform Resource Identifier)またはRFC3986に規定されるURL(Uniform Resource
Locator)が付されている。また、他の実施形態では、絶対パス名や相対パス名でメッシュを固有に識別することができる。
各ノードは、クライアントからTCP/IPプロトコルやUDP/IPプロトコルなどを使用してリクエストを受付け、メッシュ内での処理結果を、HTTPレスポンスなどとして返すことが可能とされている。マルチノード・サーバシステムは、例示的にはウェブ・サーバ、ゲーム・サーバ、またはマルチメディア・サーバとして実装することができる。アプリケーション実行部200がウェブ・サーバであれば、各ノードは、クライアントからHTMLプロトコルを使用してアクセスを受付け、レスポンスを返す。また、マルチノード・サーバシステムにおけるアプリケーション実行部200は、ウェブ・サーバ以外にも、例えば、RMI(Remote Method Invocation)、RPC(Remote Procedure Call)、CORBA(Common
Object Resource Broker Architecture)、JAVA(登録商標)、Enterprise Java(登録商標) Beans: EJB)などの分散コンピューティング環境を使用して実装することができる。この他、マルチノード・サーバシステムを、専用クライアントとの間で相互通信する専用システムとして構成してもよい。また、アプリケーション実行部200およびアプリケーション実行部200を構成するノード202、204、206、208は、それぞれ処理結果をクライアントに表示させるための手段として、適切なプロトコルを使用してイメージデータをネットワークを介して送信することが可能な、ネットワーク・アダプタ、NIC(ネットワーク・インタフェース・カード)を、ネットワーク手段として実装する。
各ノードは、特定のメッシュでの処理を実行し、クライアントからの指令に応答して他メッシュに対し、当該クライアントのデータの送付や特定のクライアントについてメッシュ移動指令など送付することが必要となる。メッシュ間通信は、同一ノードの場合、プロセッサ間通信や、シグナリングなどのプロセス間通信を使用することができ、同一ノード内でのメッシュ切換の場合、プロセッサ・サイクルレベルで処理を行うことが可能となる。一方、異なるノードが処理するメッシュ間通信を行う場合、異なるノード間は、LAN226で相互通信を行う。このため、LAN226で行われるメッシュ間通信は、マルチノード・サーバシステム全体の処理効率を低下させるとともに、処理の信頼性を低下させることになる。このため、メッシュ間通信を、異なるサーバ間ではなく、単一サーバ内での、いわゆるノード内通信とし、できるだけLAN226を介したメッシュ間通信を削減することが、マルチノード・サーバシステムのパフォーマンス向上のためには好ましい。
また、図2に示すように、ノード2の特定メッシュ220には、複数のクライアント222、224などから、ネットワーク手段を構成し、NIC、DNSサーバ、ゲートウェイサーバといったリモート・サーバ、ルータ、およびウェブ・ブラウザ/サーバプログラムなどとして構成されるネットワーク基盤228を介して、ユーザがアクセスし、メッシュ220に割当てられたリソースを使用して仮想空間100上のコラボレーション環境下で、アプリケーションを実行させている。なお、クライアントは、アプリケーション実行部200へと、パーソナル・コンピュータ、携帯電話、またはPDA(Portable Data Assistant)を使用し、WAN(Wide Area Network)またはINTERNETといった通信インフラ基盤を利用してアクセスし、アプリケーションの処理を要求する。
図3は、リソース管理ノード218の実施形態の機能ブロック図である。リソース管理ノード218は、資源分配システムにおいて、アプリケーション実行部200を構成する複数のノードの間の資源配分を、特定のノードが過オーバーヘッドとなって処理落ちなどの不都合を発生させず、さらに、アプリケーション実行部200内部の各ノードのオーバーヘッドを適切に分散させることで、アプリケーション実行部200の能力が、特定のノードの容量により制約を受けないようにハードウェア資源を分散管理する。
リソース管理ノード218は、LAN226およびネットワーク・アダプタ300を介してアプリケーション実行部200と相互通信する。リソース管理ノード218は、その各機能処理手段を、ハードウェア上に展開したプログラムの実行により、サーバ上に実現することができる。リソース管理ノード218の機能処理手段は、図3に示した実施形態では、メッシュ情報取得部302、メッシュ間通信量取得部304、ノード状態検知部306、最適配置データ登録部308および目的関数最小化部310として実装することができる。なお、特定の用途に適合するように、さらに他の機能処理部を実装してもよい。以下、各機能処理部について説明する。
(1)メッシュ情報取得部302は、ハードウェア上にプログラムを展開して実行させることによりメッシュ情報取得手段として実現され、ノードが現在処理しているメッシュのメッシュ識別値、メッシュのメモリ利用率、CPU負荷など、ノードが特定のノードを処理する場合に割当てるハードウェア資源データを収集し、目的関数最小化部310に収集したハードウェア資源データを通知する。
(2)メッシュ間通信量取得部304は、ハードウェア上にプログラムを展開して実行させることによりメッシュ間通信量取得手段として実現され、LAN226を介して相互通信するメッシュiとメッシュjとの間の通信量であるメッシュ間通信量Tijを取得し、取得したメッシュ間通信量Tijを目的関数最小化部310に通知する。このため、メッシュ間通信量取得部304は、ネットワーク・アダプタ300を、プロミスキャス・モードでオープンさせ、LAN226上で転送される全フレームをモニタする。
メッシュ間通信量取得部304は、目的とするメッシュi、メッシュjのアドレスやメッシュ識別値を、IPヘッダやペイロードに含み、MACアドレスが当該メッシュを処理するノードを有するフレームをカウントし、当該カウント値を、モニタ期間にわたって平均化するなどすることにより、メッシュi、メッシュjに関する単位時間当たりのLAN226を経由したメッシュ間通信量Tijを生成し、目的関数最小化部310に通知する。また、メッシュ間でのデータ通信の他、メッシュ間通信量取得部304は、メッシュ間での処理サイクルを同期化させるため、メッシュ間で送付される同期通知通信も、同様にしてモニタすることができる。
(3)ノード状態検知部306は、ハードウェア上にプログラムを展開して実行させることによりノード状態検知手段として実現され、アプリケーション実行部200のノードの、処理能力をモニタしており、例えば、特定ノードのCPU負荷および特定メッシュのノード内でのメモリ利用率などを検知して、本実施形態にしたがい、ノードの能力状態に応答して、よりオーバーヘッドの少ない他ノードへのメッシュ処理を移動させるためのノード移動処理の開始契機を提供する。
(4)最適配置データ登録部308は、ハードウェア上にプログラムを展開して実行させることにより最適配置データ登録手段として実現され、上記(1)、(2)、(3)で説明した各機能処理手段が取得した値により目的関数最小化部310が計算したノード−処理メッシュの最適割当てを登録する。最適配置データ登録部308は、適切なポーリング間隔で取得され、アプリケーションの実行に応じて時々刻々に変化するノード−処理メッシュの割当てについて、最新の最適配置データとして更新する。その後、最適配置データ登録部308は、メッシュ移動処理の開始に応答して該当ノードからの明示的な要求、またはリソース管理ノード218からのメッシュ移動先指令により、該当ノードに最新の最適配置データを取得させ、ノードごとのメッシュ移動処理を可能とする。
(5)目的関数最小化部310は、ハードウェア上にプログラムを展開して実行させることにより目的関数最小化手段として実現され、リソース管理するべきノードのメッシュ配置を、CPU負荷、メモリ利用率、LAN経由でのメッシュ間通信量、移転させるメッシュ数などを含め、メッシュ移動のためのアプリケーション実行部200の処理オーバーヘッドおよびアプリケーション実行処理へのオーバーヘッドを最小化させるように、ノード−処理メッシュ配置を更新する処理を実行する。なお、目的関数最小化部310の処理結果は、メッシュ移動処理開始の後、上述した最適配置データ登録部308に送付され、所定のポーリング間隔ごとに更新させ、対象ノードが効率的に最新配置参照を可能としている。
本実施形態では、目的関数は、移動処理がアプリケーション実行部200によるアプリケーションの実行に対し、メッシュごとのCPU負荷、メモリ専有状態、メッシュ間通信量、および移動対象メッシュ数を含む移動処理のための処理オーバーヘッドの上限値を最小化させるように設定する。より具体的には、本実施形態では、現在のメッシュ配置についてSとし、目的関数を、下記式(1)のように設定することができる。
Figure 0005373295
上記式(1)中、Cは、メッシュiを処理するためのCPU計算時間などで与えられるCPU負荷、Mは、メッシュiのメモリ専有状態、Tijは、メッシュiおよびメッシュjの間のメッシュ間通信量、kは、移動させるべきメッシュの総数に対応するコスト係数で、アプリケーションが移動処理中に一時中断されることに対応し、移動処理当たりの平均負荷量などを使用して予め設定される係数である。
上記式(1)で示されるように、目的関数は、移動対象とされるメッシュの集合から、目的関数の上限値を取得し、当該上限値が最低化するようなメッシュ集合を与えるように、移動候補集合の要素メッシュを反復的に決定してゆくことによって最小化することができる。最小化された値を与えるメッシュの集合を、メッシュ集合として参照し、メッシュ集合全部の移動先ノードを最適配置データ登録部308に登録することができる。
また、好適な実施形態では、生成されたメッシュ集合のうち、ノードを変更する必要のあるメッシュの差分集合を計算し、当該差分集合の要素に関するノード識別値を最新最適異移動先として登録しておくこともできる。この場合でも、仮想空間100の分割するメッシュの総数は、それほど多くはないので、例えば総当たり式の最小化であってもオーバーヘッドを抑制することができる。
また、g(S,S′)は、Sを現在メッシュ配置、S′を移動後メッシュ配置
として、移動処理に際して移動対象となるメッシュの総数を与える関数である。また、関数s(M)は、メッシュiにおけるメモリ専有状態の値が、設定しきい値を超える場合、非常に大きな数を与え、設定しきい値以下の場合には0を与える関数である。
図4は、仮想空間100に割当てたメッシュを処理する場合、各ノードが実行するメッシュ間の同期通知通信の処理の実施形態についてのフローチャートを示す。メッシュ間の同期通知通信は、各メッシュのアプリケーションによる処理を、同期して仮想空間100として表示させるために利用される。図4に示す処理は、データ伝送に加え、LAN226を経由するノード間通信として実行される。図4では、説明の目的から、ノードpとノードqとの間の処理を使用して説明するが、他のノードの間でも同様のノード間通信が実行される。アプリケーション実行部200は、複数のメッシュが割当てられた仮想空間100内でのアプリケーション実行が、クライアント、より具体的にはクライアントを介して仮想空間100にアクセスするユーザに違和感を与えることがないように、各ノード間で処理サイクルを同期させている。
例えばノードpでは、ステップS400で、ノードpに割当てられたメッシュを処理し、プレイヤー(表示オブジェクト)の移動を行い、当たりなどのボーナス処理など、アプリケーションによる処理を、設定された1サイクル単位で実行する。ステップS401では、他のノードの処理と同期させるため、ノードqへとLAN226を介して通信し、他ノードの同期状態をモニタする。
その後、ステップS402では、全メッシュが1サイクルの処理を完了したか否かを判断する。全メッシュで1サイクルの処理が完了した場合(yes)処理をステップS400に戻し、次の1サイクルを開始させる。一方、全メッシュで、1サイクルの処理を完了しない場合(no)、全メッシュが1サイクルの処理を完了するまで、処理を待機させる。
ノードqも同一の処理を、ステップS410〜ステップS412で実行し、メッシュが仮想空間100全体として1サイクル分の処理を同期して実行し、仮想空間100上の表示を同期させている。なお、図4に示したメッシュ間通信は、ノードpからノードqに送付されるものとして説明しているが、メッシュ間でフルメッシュ通信を行なわなくとも良いように、ノードpおよびノードqは、それぞれリソース管理ノード218に宛てて同期状態を通知する実施形態を採用することもできる。
この実施形態の場合、リソース管理ノード218は、サイクル同期テーブルなどを実装し、メッシュ識別値について、例えば、サイクル同期識別値を登録することにより、全メッシュのサイクル同期状態を、リソース管理ノード218が判断することができる。全メッシュのサイクルが同期したと判断した場合、リソース管理ノード218は、アプリケーション実行部200を構成するノードに対して、同期完了通知を、ブロードキャストまたはマルチキャストすることで、仮想空間100内のメッシュの同期的更新処理を可能としてもよい。
以下、図5〜図7を使用して、アプリケーション実行部200を構成するノード、リソース管理ノード218がそれぞれ管理し、データを登録するデータ構造について説明する。図5は、アプリケーション実行部200を構成するノード202、204、206、208がそれぞれ管理する、メッシュ管理手段として機能する、メッシュ管理テーブル500の実施形態を示す。
図5に示すメッシュ管理テーブル500は、メッシュ管理手段として機能し、当該ノードが現在処理を実行しているメッシュについての各種情報を登録する。メッシュ管理テーブル500は、仮想空間内100内でメッシュを固有に識別するためのメッシュ識別値502、当該メッシュのネットワーク上でのアドレス504、メッシュ内の処理を実行するために、ハードウェア・リソースのメッシュ利用状態を示すメッシュ能力状態506、アプリケーション実行をメッシュ単位で可能とするリソース・データ508、および当該処理時点で移動処理中であることを示す移動処理状態識別値510などの値が登録されている。
メッシュ識別値502は、仮想空間100の特定の領域を示すものであり、ノン実施形態では、メッシュ識別値502で与えられるメッシュの処理を担当するノードが変更される。アドレス504は、ネットワーク上で、クライアントが当該メッシュを識別してアクセスすることができる限り、URL、URI、絶対パス名または相対パス名などで指定することができる。メッシュ能力状態506は、メッシュ内で実行されるタスクのために割くCPU負荷、メッシュに対して割当て可能なメモリ容量に関するメモリ利用率などをパラメータとして決定され、メッシュ単位の処理についてのサチュレーション状態を示す値が登録される。
また、リソース・データ508には、メッシュ表示のために必要なグラフィック・データ、実行設定などのメッシュ固有データ、ユーザにより指定された設定、ユーザ認証データなど、ユーザごとに異なるデータであるユーザ固有データ、および当該メッシュ内に表示されるオブジェクト(キャラクタ)の種類、移動ベクトル、位置など、メッシュ内に表示するべきオブジェクトに固有のオブジェクト固有データが登録される。
また、メッシュ管理テーブル500には、その時点でアプリケーション実行部200が移動処理中であることを示す移動処理状態識別値510が登録される。移動処理状態識別値510が設定されている間は、移動処理状態識別値510が設定されたメッシュは、移動処理プロセス以外のプログラムによる書込みが禁止され、移動処理中におけるデータの整合性を保証している。なお、この場合でも、移動対象のメッシュについてのデータ読出しなどは制限されず、他のクライアントの実行処理中断を最小限の負荷とさせている。
移動処理状態識別値510は、特定の実施形態では、フラグとして設定することができ、またさらに他の実施形態では、セマフォ、ミューテックスなどを使用して実装することができる。また、本実施形態では、特定のノードが移動状態に設定された場合、当該ノードが移動処理を開始する前に他の全部のノードに対して通知を行い、移動処理中のメッシュに対する書込み要求をブロックして、移動中のメッシュのデータ整合性をさらに保証する。図5に示した実施形態では、ハッチングで示すように、メッシュ4が移動処理の対象として移動処理状態識別値510が設定されている。
また、メッシュ管理テーブル500は、複数のメッシュの実行処理に伴うノードの能力飽和状態を示す値であるノード能力状態512を登録する、ノード能力状態512は、簡単な実施形態では、メッシュ1〜メッシュ4のメッシュ能力状態の総和の、当該ノードの最大能力であるPmaxに対する相対比514として計算することができる。なお、さらに各能力に対応して重み付け係数を設定し、より詳細な状態制御を行うこともできる。
図6は、リソース管理ノード218の最適配置データ登録部308が管理する最適配置データ600の実施形態を示す。最適配置データ600は、メッシュ識別値602に対応して、当該メッシュ識別値で指定されるメッシュの処理を現在実行しているノードを登録するカレント実行ノード604と、最新の最適移動先であって、移動後に最適配置Sresを与える最新最適移動先606とが登録されたテーブルとして構成することができる。なお、最新最適移動先606の空フィールドは、移動しないことを示すものであり、特定の実装形態に応じて図6に示すように移動するメッシュのみを明示的に登録することもできるし、移動如何にかかわらず、最適配置Sresを与えるメッシュ集合を登録することもできる。
マルチノード・サーバシステムは、メッシュを移動させる必要があると判断すると、その時点で最新の最適メッシュ配置を最適配置データ600を参照して取得し、対象となるノード/メッシュに対する排他制御を実行し、ノード1に対してメッシュ識別値を登録するレコードを追加する。その後、マルチノード・サーバシステムは、ノード2のメッシュ4のリソース・データ508を読出し、読出したリソース・データをノード1の追加されたレコードに、当該メッシュ識別値と共に登録することで、移動処理を実行する。
図7は、マルチノード・サーバシステムが実行する負荷分散処理の実施形態についてのフローチャートを示す。負荷分散処理は、ステップS700から開始し、ステップS701で、リソース管理ノード218が各メッシュごとに目的関数の計算に必要なデータを回収する。同時にステップS702でアプリケーション実行部200がアプリケーションの実行を開始する。なお、実行するアプリケーションは、本実施形態ではゲーム・アプリケーションであるものとして説明する。
ステップS703では、リソース管理ノード218は、移動するべきメッシュを要素として含む、移動候補集合を作成し、テーブルなどの追加登録してゆく。ステップS703の処理は、ハードウェア上にプログラムを展開して実装される図9に示す移動候補集合生成手段による処理として実行される。ステップS704では、移動候補集合の要素から目的関数を最小にするメッシュ集合を決定し、これを移動候補集合として設定する。ステップS705では、目的関数の最小化が収束したかまたは設定回数分最小化計算が終了したかを判断する。ステップS705の判断が否定的な値を返す場合(no)、処理をステップS703に分岐させて次の移動候補集合を作成する。
一方、ステップS705の判断が肯定的な値を返す場合(yes)、処理をステップS706に進め、移動処理を実行する。その間、アプリケーション実行部200は、ゲーム・アプリケーションの実行を継続しており、ステップS707では、クライアントから、ゲーム・アプリケーション終了の要求を受領したか否かを判断する。ゲーム・アプリケーションを終了しない場合(no)、処理をステップS702に分岐させ、さらにゲーム・アプリケーションを実行し、その間、リソース管理ノード218によるメッシュ配分の処理を継続する。
同時に、リソース管理ノード218は、ステップS708でタイマ・カウンタなどを参照して、ポーリング・タイミングとなったか否かを判断する。ステップS708でポーリング・タイミングとなっていない場合、ポーリング・タイミングが到来するまで、ステップS708で待機する。また、ポーリング・タイミングとなった場合(yes)処理をステップS701に分岐させて、各メッシュの現在状態を回収し、以後のリソース管理を実行する。なお、ステップS707の判断でゲーム・アプリケーション終了と判断された場合(yes)、ステップS709その時点のメッシュ分布、メッシュ・データなどをユーザ・データと共に各ノードの固定記憶装置などに格納し、アプリケーション実行部200の処理を停止させ、同時に負荷分散処理も終了させる。
図8は、リソース管理ノード218によるメッシュの処理ノードを移転させる場合の実施形態を示す。図8(a)は、現在メッシュ配分を示し、図8(b)〜(d)がメッシュ処理の移転候補集合の要素の実施形態を示す。なお、図8に示したテーブルは、リソース管理ノード218のメッシュ割当てテーブル800として実装することができる。図8に示すメッシュ割当てテーブル800は、メッシュ識別値に対して、処理ノードのノード識別値を割当てたテーブルとして構成することができる。例えば図8(a)の現在メッシュ配分では、メッシュ1〜11、13、14で与えられる領域804は、ノード2に処理が割当てられ、メッシュ12、15、16で与えられる領域802は、ノード1にそれらの処理が割当てられているものとしている。
図8(a)でに示すように、メッシュ列8−11−14と、メッシュ列12−15とは、処理サーバが異なる領域802と804とのサーバ境界を規定し、互いに隣接した配置にある境界メッシュである。
この段階で、例えばノード1のノード能力状態が許容能力しきい値を超えた場合や、ノード1の特定のメッシュのメモリ専有状態がメモリ割当てしきい値を超えた場合、またはアプリケーション実行部200内でのLANの通信状態が輻輳状態となる可能性がある場合、リソース管理ノード218は、移動処理を開始し、移動候補集合の生成を開始する。移動候補集合は、ノード2に含まれるメッシュのうち、ノード1のメッシュに隣接したメッシュが優先的に選択される。この理由は、隣接したメッシュ間では、他のメッシュ間よりもメッシュ間通信量Tijが大きいものと判断され、隣接するメッシュであって、処理ノードが異なるメッシュを同一ノードに繰り込むことで、メッシュ間通信量TijをLAN経由の伝送から、ノード内の伝送に変更でき、目的関数の最適化処理を効率化できるためである。
図8(b)に示すように、例えばメッシュ11とメッシュ12との間のメッシュ間通信量が、通信しきい値を超えた場合、メッシュ11の処理ノードを、ノード2からノード1に移動させることで、他の処理条件が変わらない場合、目的関数の最小化を達成することができる。また、図8(c)では、目的関数を最小化する移動候補集合は、ノード1が担当する領域802に隣接するメッシュ8、メッシュ11、メッシュ14に加え、メッシュ7が含まれている。さらに、ノード2およびノード1の実行状況に対応して図8(d)に示すように、さらに多数のメッシュを移動候補集合として選択することもできる。なお、図8(d)では、サーバ境界を規定する境界メッシュの他、領域802および領域804の処理負荷を分散させるため、CPU負荷またはメモリ利用率を考慮する結果、目的関数の上限値を最小化させるべく、サーバ境界以外のメッシュの移動候補として領域806まで、例えば隣接尺度値を変化させて選択されている。なお、隣接尺度値とは、注目するメッシュに対して直接隣接する場合を1、直隣接するメッシュに隣接するメッシュまで含める場合は、2などとして設定することができる。
図9は、リソース管理ノード218が実行する移動候補集合生成手段が実行する処理の実施形態のフローチャートを示す。移動候補集合生成処理は、図7のステップS703で呼出され、移動候補集合a、集合B=Sp(ノードpに含まれるメッシュ集合)に初期設定する。その後、移動候補集合を更新的に生成させる関数create_atemp()呼出し、その結果を集合Atempとして登録し、集合Atempを移動候補集合Apに追加登録することにより、目的関数最小化に使用する移動対象メッシュ集合を生成する。
ステップS703で、create_atemp()が呼出されると、ステップS900でグローバル変数として宣言された集合Atempを初期化して空集合として設定する。さらに、集合aおよび集合Bを取得して処理対象として設定する。ステップS901では、集合Bからメッシュiを読み出し、ステップS902で集合Bが空集合か否かを判断する。空集合の場合(yes)、当該ノードは、何もメッシュを処理していないので、処理をステップS909に分岐させ、処理を戻す。ステップS902で、集合Bが空集合ではないと判断された場合(no)、ステップS903で、メッシュ割当てテーブルを参照し、メッシュiに隣接し、集合Bに含まれないメッシュの集合を抽出し、集合Cに登録する。ステップS904で、集合Cが空集合か否かを判断し、集合Cが空集合の場合、集合Bの境界を構成するメッシュを見出すまでステップS901に処理を分岐させる。
ステップS904で集合Cが空集合でない場合(no)、ステップS905で、集合Cからメッシュj(集合Bの処理対象メッシュの境界にあって、他のノードが処理を実行しているメッシュに相当する。)を取得し、集合Bの要素として追加して、集合B′を生成し、集合aにメッシュjを追加して集合a′を生成する。この段階で、移動するべきメッシュと、移動後のメッシュ配置が更新される。
ステップS906では、集合a′が、その時点での集合Atempの要素にあるか否かを判断し、すでに含まれている場合(yes)、処理をステップS904に戻し、さらに集合a′の生成を行う。一方、ステップS906でa′がAtempの要素として含まれていない場合(no)、集合a′の要素数が設定上限値となったか否かを判断する。ステップS907で集合a′の要素数が設定上限値となるまでメッシュが収集された場合(yes)、ステップS909に処理を進め、ステップS703で、設定上限値の要素を含むAtempを、移動候補集合Apに追加登録する。
一方、ステップS907で集合a′の要素数が設定上限値未満の場合(no)、ステップS908で、集合a′を、Atempの要素に追加し、a=a′、B=B′に初期設定して、処理をステップS901に戻し、設定上限値となるか、または集合Bが空集合となるまで処理を繰り返した後、処理をステップS704へと分岐させ、目的関数の最適化の対象メッシュとして供給する。この段階で、集合Bに隣接するメッシュのうち、集合B、すなわちノードpに移動させるべきメッシュの集合である、移動候補集合Apが与えられる。
ステップS704(図7)では、目的関数が収束するか、または指定回数だけ反復計算を繰り返したうち、目的関数を最小とするメッシュ集合を、ノードpを移動先として移動処理の対象メッシュとして、図6の最適配置データ600に登録する。なお、この処理は、ポーリング・タイミングの到来に対応して繰り返し実行され、ポーリング・タイミングごとに最適配置も更新されることになり、アプリケーション実行部200の処理の変化に効率的に対応することが可能となる。
図10は、本実施形態の移動処理の実施形態のシーケンスを示す。図10に示すシーケンスは、ステップS1000で、移動処理が起動される。ここで、ノードpが移動処理を開始し、ノードp′を移動先ノードとし、ノードpが管理するメッシュiの処理を移動させるものと仮定して説明を行う。
<ノードpの処理>
ノードpは、ステップS1001で、ノード能力が予め設定した各しきい値のうちのいずれか1つを超えた段階で、リソース管理ノード218からノードpについて登録された、最新の最適移動対象メッシュ集合および移動先ノードp′のMACアドレスなどを取得する。
ステップS1002では、ノードpは、移動対象のメッシュiについて移動処理プロセスが例えば共有ロックなどの排他制御を実行し、同時にメッシュiにアクセスする全クライアントに対してアプリケーション実行の一時停止通知を発行する。
その後、ステップS1003で、ノードpは、サーバ・ノードを構成する他の全ノードに対してメッシュiへの書込み処理停止命令を送付して、他ノードがメッシュiに書込みしようとした場合、他ノードのメッシュにアクセスするクライアントに対して例外エラーが送付されないようにして、メッシュ移動に関連のないクライアントの処理の中断を防止する。
ステップS1004では、ノードp′に対して、メッシュ登録命令を発行し、メッシュ管理テーブルの空きレコードに、ノードp′でのメッシュiを参照するためのアドレスを生成させ、その他の空きフィールドにメッシュiの対応フィールドに登録されたデータを送付してコピーする。その後、ステップS1005で、クライアントに対して一時停止解除通知および接続先としてノードp′のメッシュi′に割当てられた、例えばグローバルIPアドレスなどの適切なアドレスを通知して接続させた後、ステップS1006で、ノードpは、メッシュiのデータを破棄し、移転元ノードpの処理を終了させる。
<ノードp′の処理>
一方、ノードp′は、ステップS1007でメッシュ登録命令を受信すると、メッシュi′のためのメモリ領域を確保し、ノードp′のメッシュ管理テーブルに新たなレコードを生成させ、メッシュi′のデータとして、固有アドレスを生成して登録する。その後、続けて送信されるデータを対応するフィールドに登録する。さらに、ノードp′は、ステップS1008で、メッシュi′の排他制御を解除し、メッシュiがメッシュi′に変更されたことを、そのアドレスと共に通知し、メッシュ間通信を可能とする。その後、さらに、ステップS1009でクライアントからのアクセスを受付け、移動処理後の処理を続行し、ステップS1014で処理を終了させる。
以上説明したノードpおよびノードp′の処理によって、移動対象とされていないメッシュにアクセスするクライアントの仮想空間表示およびアプリケーション実行は、最小限の制限の下で継続可能となる。
<クライアントの処理>
クライアントは、ステップS1010で、ノードpから一時停止通知を受信し、ステップS1011で一時停止画面を表示させる。なお、一時停止画面は、リソース管理ノード218などが移動処理開始時での仮想空間100のスナップショットを、例えば、BMP、PNG、GIF、JPEGなどとして作成して、一時停止間面のために確保してあるURIなどに登録しておき、クライアントに表示させることにより表示させることができる。また、一時停止解除までの残り時間については、リソース管理ノード218が、スナップショットを送付するためのHTMLなどの構造化文書に、アプレットなどとして移動処理プロセスの進行具合に対応するバー表示および「しばらくお待ち下さい」などの表示として与えることができる。
マルチノード・サーバシステムを、ゲーム・サーバとして実装し、クライアントが専用アプリケーションを使用してマルチノード・サーバシステムにアクセスする場合には、専用アプリケーションを実行するクライアントのL1キャッシュ・メモリ、L2キャッシュ・メモリなどのキャッシュ・メモリにノードの状態をキャッシュしておき、表示させることができる。この実施形態の場合、リソース管理ノード218からのHTMLの受信とは別に、専用アプリケーションが予め登録してある、「お待ちください」などの表示を、クライアントに表示させることができる。本実施形態では、リソース管理ノード218のクライアント管理による負荷をクライアント側に分散させ、マルチノード・サーバシステム側で、さらに効率的なメッシュ移動処理を実行させることができる。
ステップS1012では、クライアントが一時停止解除通知を受信すると、ステップS1013で当該通知と共に送付されるメッシュi′のアドレスを取得してノードp′へと接続し、スナップショットを表示させるためのURIからアプリケーションを実行するためのURIへと接続を切換えて以後の処理を続行させる。
なお、移動処理の対象メッシュ以外のクライアントは、移動対象のメッシュへのアクセスを行わない限り、それまでと同様のアプリケーションを実行することができる。また、クライアントが移動対象のメッシュへの移動を試みた場合でも、メッシュiへの書込み処理発行停止命令が有効なので、移動対象のメッシュへの移動が、移動処理の期間だけ制約されるのみであり、また当該メッシュからのメッシュiなどに対する書込み要求が発行されないので、例外エラーも発生せず、移動対象のメッシュ以外でアプリケーションを実行させているクライアントについては、移動処理による処理停止の影響を最小限に済ませることができる。そして、移動処理が終了した時点で全部のクライアントが移動後のメッシュにアクセスしてコラボレーションしながらアプリケーションを実行させることが可能となる。
図11は、本実施形態の負荷分散方法によるメッシュを処理するノードの移動の実施形態を示す。図11に示す実施形態では、マルチノード・サーバシステムは、ゲーム・サーバとして構成されており、アプリケーションの実行により、仮想空間上に航空機といった複数のオブジェクトを表示させた、フライトシミュレータとして構成されている。図11(a)に示す実施形態では、仮想空間1100は、16個のメッシュが割当てられ、3つのノードがそれぞれ領域1102、1104、1106に含まれるメッシュの処理を実行している。
ここで、領域1102は、ノード1により処理が実行されており、領域1106は、ノード2により処理が実行され、さらに領域1104は、ノード3により実行されている。領域1102のメッシュ1108は、表示オブジェクトの数および密度が最も高く、メッシュ1108でメッシュに割当てられたCPU負荷量がしきい値を超えたものとする。この段階で、移動処理プロセスが呼出され、ユーザに対して図11(a)に示したイメージがスナップショットとして提供され、好ましい実施形態では、「しばらくお待ち下さい」などの表示が行われる。
この間に、最適配置データが取得され、メッシュのノードに対する処理割当てが変更される。変更後、ユーザに対して新たに割当てられたメッシュのアドレスに基づいて、仮想空間上でのフライトシュミレータの処理が続行される。図11(b)は、メッシュ割当てが変更された後のメッシュ配置を示す。図11(b)に示すように、図11(a)の領域1102は、メッシュ1108がノード2に取る処理へと移動された結果、領域1122に変更され、同時に、領域1106は、メッシュ1108が加えられたことにより、領域1126で示されるメッシュの処理を実行している。
ノード2は、図11(a)に示すようにそれ以前では、背景イメージを表示させているのみで、最も処理負荷が少ないノードであり、処理負荷がノード全体にわたって分散できていない。しかしながら、図11(b)では、ノード1およびノード2、およびノード3がそれぞれ表示オブジェクトの処理を担当しており、また最小のメッシュ移動により負荷分散が可能とされているのがわかる。
なお、本実施形態は、フライトシミュレータ、レーシング・ゲーム、バトル・ゲームなどの対戦型ゲームの他、例えば「SecondLife」などのような生活環境型ゲームにも適用することができ、生活環境形ゲームの場合には、クライアントの一時停止、他の場所へのワープなどの強制的移動などがあった場合にでもゲームの臨場感を保持させることができるので、より好適に本発明を適用することができる。さらに本発明の他の実施形態では、クライアントのディスプレイ画面上に複数の連動するディスプレイ領域を構成して、複数のクライアントにアプリケーション実行画面を共有させることが可能な、ネットワークを介した動画配信サービスにも適用することができる。
以上、本発明によれば、サーバをノードとし、複数のノードが相互接続されたマルチノード・サーバシステムにおいて、マルチノード・サーバシステムの処理効率を仮想空間の領域単位で最適化するようにハードウェア資源を配分することを可能とするとともに、サーバ・システムにおけるハードウェア資源の再配分処理中にクライアントが被るアプリケーションの中断などの影響を最低化することを可能とする、マルチノード・サーバシステム、マルチノード・サーバシステムの負荷分散方法およびプログラムが提供できる。
本発明の上記機能は、C++、Java(登録商標)、Java(登録商標)Beans、Java(登録商標)Applet、Java(登録商標)Script、Perl、Rubyなどのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、装置可読な記録媒体に格納して頒布することができる。
これまで本発明を実施形態をもって説明してきたが、本発明は、実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
マルチノード・サーバシステムによる仮想空間のメッシュ分割の実施形態を示した図。 本実施形態のマルチノード・サーバシステムの機能ブロック図。 リソース管理ノードの実施形態の機能ブロック図。 仮想空間に割当てたメッシュを処理する場合、各ノードが実行する処理の実施形態についてのフローチャート。 アプリケーション実行部を構成するノードがそれぞれ管理する、メッシュ管理手段として機能する、メッシュ管理テーブルの実施形態を示した図。 リソース管理ノードの最適配置データ登録部が管理する最適配置データの実施形態を示した図。 マルチノード・サーバシステムが実行する負荷分散処理の実施形態についてのフローチャート。 リソース管理ノードによるメッシュの処理ノードを移転させる場合の実施形態を示した図。 リソース管理ノードが実行する移動候補集合生成処理の実施形態のフローチャート。 本実施形態の移動処理の実施形態のシーケンスを示した図。 本実施形態の負荷分散方法によるメッシュを処理するノードの移動の実施形態を示した図。
符号の説明
100…仮想空間、102…道路、104…メッシュ境界、106…メッシュ、200…アプリケーション実行部、202、204、206、208…サーバ(ノード)、210、212、214、216…メッシュ、218…リソース管理ノード、220…メッシュ、222、224…クライアント、226…LAN、228…ネットワーク基盤、300…ネットワーク・アダプタ、302…メッシュ情報取得部、304…メッシュ間通信量取得部、306…ノード状態検知部、308…最適配置データ登録部、310…目的関数最小化部、500…メッシュ管理テーブル、600…最適配置データ、800…メッシュ割当てテーブル、802、804…領域、1100、1120…仮想空間

Claims (15)

  1. 仮想空間を形成するためのマルチノード・サーバシステムであって、前記マルチノード・サーバシステムは、
    前記仮想空間を分割する複数のメッシュをそれぞれ処理する複数のサーバを相互接続して構成され、前記メッシュごとの処理結果を前記仮想空間として表示するアプリケーション実行手段と、
    ネットワークを介したクライアントからのリクエストに応答して変化する前記アプリケーション実行手段の前記サーバの負荷状態を検出し、メッシュの移動処理のための処理オーバーヘッドに関する目的関数を最小化させるようにサーバシステム内の資源配分を分散することによって前記サーバシステムで前記メッシュを処理するべき前記サーバの割当てを変更するリソース管理手段と、
    ネットワークを介して前記仮想空間を複数のクライアントに共有させるネットワーク手段と
    を含み、前記リソース管理手段は、前記メッシュを処理する前記サーバとは異なるサーバにより処理される前記メッシュとの境界として定義されるサーバ境界を挟んで隣接するメッシュを処理する前記異なるサーバの処理を前記サーバに繰り込むことにより、前記隣接するメッシュ間での通信を同一のサーバ内での通信として前記資源配分を分散させる、マルチノード・サーバシステム。
  2. 前記リソース管理手段は、異なるサーバ間でのメッシュ間通信、CPU負荷、前記サーバのメモリ利用率、割当てを変更するメッシュの総数を含む目的関数を最小化するメッシュ集合を生成し、前記メッシュ集合にしたがって前記サーバの割当を変更するための目的関数最小化手段を含む、請求項1に記載のマルチノード・サーバシステム。
  3. 前記リソース管理手段は、前記サーバ間での前記メッシュ間通信が単一サーバ内でのノード内通信となるように前記サーバ境界を変更することにより割当てを変更する、請求項2に記載のマルチノード・サーバシステム。
  4. 前記マルチノード・サーバシステムは、前記サーバの割当てを変更するメッシュを指定した後、割当変更対象メッシュについて少なくともメッシュ移動処理のためのプロセス以外のクライアントおよび他のサーバによる書込みアクセスを排他制御する排他制御手段を含む、請求項1に記載のマルチノード・サーバシステム。
  5. 前記サーバは、当該サーバが処理対象とするメッシュ識別値、前記メッシュを固有に識別するアドレス、前記メッシュが使用するリソース・データを、前記メッシュの割当て変更に応答して追加削除して更新するメッシュ管理手段を含み、
    前記リソース管理手段は、定期的に前記複数のサーバの前記メッシュ間通信、前記CPU負荷、前記サーバのメモリ利用率を検出し、前記目的関数を最小化する前記メッシュ集合を、最新の最適配置データとして登録する最適配置データ登録手段を含む、請求項2に記載のマルチノード・サーバシステム。
  6. 前記マルチノード・サーバシステムは、ゲーム・サーバであり、割当て変更の対象とされる前記メッシュにアクセスしているクライアントを除く、他のクライアントについて前記仮想空間の全メッシュの前記リソース・データの読出処理を可能に保持する、請求項5に記載のマルチノード・サーバシステム。
  7. 相互接続された複数のサーバ間の負荷を分散させ仮想空間を提供するマルチノード・サーバシステムにおける負荷分散方法であって、前記負荷分散方法は、前記マルチノード・サーバシステムが実行する負荷分散方法であって、
    相互接続された複数のサーバに対し、前記仮想空間を分割するメッシュを、前記サーバが処理すべきメッシュとして割当てるステップと、
    ネットワークを介したクライアントからのリクエストに応答して変化する前記メッシュのアプリケーションの処理により発生した前記サーバの負荷状態を検出するステップと、
    メッシュの移動処理のための処理オーバーヘッドに関する目的関数を最小化させるようにサーバシステム内の資源配分を分散させることによって、前記サーバシステム内で前記メッシュを処理するべき前記サーバの割当てを変更するステップと、
    ネットワークを介して前記仮想空間を複数のクライアントに共有させるステップと
    を含み、前記サーバの割当てを変更するステップは、
    前記メッシュを処理する前記サーバとは異なるサーバにより処理される前記メッシュとの境界として定義されるサーバ境界を挟んで隣接するメッシュを選択するステップと、
    選択した隣接するメッシュを処理する前記異なるサーバの処理を前記サーバに繰り込むステップとを含む、負荷分散方法。
  8. 前記サーバの前記負荷状態を検出するステップは、異なるサーバ間でのメッシュ間通信、CPU負荷、前記サーバのメモリ利用率、割当てを変更するメッシュの総数を含む目的関数を最小化するように前記割当てを変更するべきメッシュを決定するステップを含む、請求項7に記載の負荷分散方法。
  9. 前記サーバの割当てを修正するステップは、前記サーバ間での前記メッシュ間通信が単一サーバ内でのノード内通信となるように前記サーバ境界を変更するステップを含む、請求項8に記載の負荷分散方法。
  10. さらに、当該サーバが処理対象とする前記メッシュの識別値、前記メッシュを固有に識別するアドレス、前記メッシュが使用するリソース・データを、前記メッシュの割当て変更に応答して追加削除して更新するステップと、
    定期的に前記複数のサーバのメッシュ間通信、CPU負荷、前記サーバのメモリ利用率を検出し、前記目的関数を最小化するメッシュ集合を最新の最適配置データとして登録するステップと
    を含む、請求項9に記載の負荷分散方法。
  11. 前記マルチノード・サーバシステムは、ゲーム・サーバであり、さらに、
    前記サーバの割当てを変更するメッシュを指定した後、割当変更対象メッシュについて少なくともメッシュ移動処理のためのプロセス以外のクライアントおよび他のサーバによる書込みアクセスを排他制御するステップと、
    割当て変更の対象とされる前記メッシュにアクセスしているクライアントを除く、他のクライアントについて前記仮想空間の全メッシュの前記リソース・データの読出し処理を可能に保持するステップと
    を含む、請求項10に記載の負荷分散方法。
  12. 請求項7〜請求項11のいずれか1項に記載の各ステップをマルチノード・サーバシステムを構成するコンピュータが実行するための、コンピュータ実行可能なプログラム。
  13. 仮想空間を形成するためのマルチノード・サーバシステムのためのリソース管理サーバであって、前記リソース管理サーバは、
    前記仮想空間を分割する複数のメッシュをそれぞれ処理する複数のサーバを相互接続して構成され、前記メッシュごとの処理結果を前記仮想空間として表示するアプリケーション実行手段を実行させる前記サーバのネットワークを介したクライアントからのリクエストに応答して変化する負荷状態を検出する負荷状態検出手段と、
    前記サーバの割当てを変更するべきメッシュの移動候補集合を、前記メッシュを処理する前記サーバが異なる隣接する複数のメッシュにより規定される境界メッシュを選択して生成する移動候補集合生成手段と、
    メッシュの移動処理のための処理オーバーヘッドを最小化させるように、異なるサーバ間でのメッシュ間通信を聴取し、CPU負荷、前記サーバのメモリ利用率、割当てを変更するメッシュの総数を含む目的関数を最小化するメッシュ集合を生成する、目的関数最小化手段と、
    前記メッシュ集合を前記メッシュの最新の最適配置データとして登録する最適配置データ登録手段とを含み、
    前記リソース管理サーバは、前記メッシュを処理する前記サーバとは異なるサーバにより処理される前記メッシュとの境界として定義されるサーバ境界を挟んで隣接するメッシュを処理する前記異なるサーバの処理を前記サーバに繰り込むことにより、前記隣接するメッシュ間での通信を同一のサーバ内での通信としてサーバシステムの資源配分を分散させる、リソース管理サーバ。
  14. 前記リソース管理サーバは、サーバ間での前記メッシュ間通信がサーバ内でのノード内通信となるように前記サーバ境界を変更することにより割当てを変更する、請求項13に記載のリソース管理サーバ。
  15. 請求項13または14に記載の各手段をコンピュータに実現するためのコンピュータ実行可能なプログラム。
JP2008024207A 2008-02-04 2008-02-04 マルチノード・サーバシステム、負荷分散方法、リソース管理サーバ、およびプログラム Expired - Fee Related JP5373295B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008024207A JP5373295B2 (ja) 2008-02-04 2008-02-04 マルチノード・サーバシステム、負荷分散方法、リソース管理サーバ、およびプログラム
US12/365,185 US8327371B2 (en) 2008-02-04 2009-02-04 Multinode server system, load distribution method, resource management server, and program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008024207A JP5373295B2 (ja) 2008-02-04 2008-02-04 マルチノード・サーバシステム、負荷分散方法、リソース管理サーバ、およびプログラム

Publications (2)

Publication Number Publication Date
JP2009187115A JP2009187115A (ja) 2009-08-20
JP5373295B2 true JP5373295B2 (ja) 2013-12-18

Family

ID=40933024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008024207A Expired - Fee Related JP5373295B2 (ja) 2008-02-04 2008-02-04 マルチノード・サーバシステム、負荷分散方法、リソース管理サーバ、およびプログラム

Country Status (2)

Country Link
US (1) US8327371B2 (ja)
JP (1) JP5373295B2 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100983479B1 (ko) * 2009-02-11 2010-09-27 엔에이치엔(주) 분산 스페이스를 이용하여 분산 프로그래밍 환경을 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
US20100241716A1 (en) * 2009-03-17 2010-09-23 Tayo Dare Akadiri System for interconnecting manifold entities across a real-time Meshed Information Exchange network
JP5434380B2 (ja) * 2009-08-28 2014-03-05 富士通株式会社 分散処理型シミュレータ
US8910176B2 (en) * 2010-01-15 2014-12-09 International Business Machines Corporation System for distributed task dispatch in multi-application environment based on consensus for load balancing using task partitioning and dynamic grouping of server instance
US9027017B2 (en) 2010-02-22 2015-05-05 Virtustream, Inc. Methods and apparatus for movement of virtual resources within a data center environment
US8473959B2 (en) * 2010-02-22 2013-06-25 Virtustream, Inc. Methods and apparatus related to migration of customer resources to virtual resources within a data center environment
US9122538B2 (en) 2010-02-22 2015-09-01 Virtustream, Inc. Methods and apparatus related to management of unit-based virtual resources within a data center environment
JP5388134B2 (ja) * 2010-08-06 2014-01-15 株式会社日立製作所 計算機システム、及び、移動データ決定方法
US20120102185A1 (en) * 2010-10-20 2012-04-26 Sony Computer Entertainment America Inc. Resource management of server hosts in online game environment
JP5708049B2 (ja) * 2011-03-07 2015-04-30 株式会社リコー 情報処理装置、制御方法、制御プログラム、及び記録媒体
US20130014033A1 (en) * 2011-07-08 2013-01-10 WoGo LLC Systems and methods for facilitating user interaction between multiple virtual environments
EP2748705A4 (en) 2011-08-25 2015-05-20 Virtustream Inc SYSTEMS AND METHODS FOR HOST-RELATED RESOURCE MANAGEMENT WITH CLUSTER-BASED RESOURCE POOLS
JP5927871B2 (ja) * 2011-11-30 2016-06-01 富士通株式会社 管理装置、情報処理装置、管理プログラム、管理方法、プログラムおよび処理方法
US20130238785A1 (en) * 2012-03-06 2013-09-12 Rackspace Us, Inc. System and Method for Metadata Discovery and Metadata-Aware Scheduling
WO2014016950A1 (ja) * 2012-07-27 2014-01-30 株式会社日立製作所 並列計算機システムおよび並列計算機システムへの処理負荷配置方法
US9433862B2 (en) * 2013-02-12 2016-09-06 Microsoft Technology Licensing, Llc Dynamic allocation of computing resources in remote gaming environment
JP6323446B2 (ja) * 2013-03-29 2018-05-16 ソニー株式会社 情報処理装置、情報処理方法、及び情報処理システム
US9526992B2 (en) 2013-04-02 2016-12-27 Empire Technology Development Llc Resource management for distributed games
US9295915B2 (en) * 2013-05-20 2016-03-29 Microsoft Technology Licensing, Llc Game availability in a remote gaming environment
KR101709006B1 (ko) * 2015-07-22 2017-02-21 윤종민 게임 결과 정보창을 이용한 메시지 출력 방법
JP6383336B2 (ja) * 2015-08-10 2018-08-29 日本電信電話株式会社 サーバ管理装置およびサーバ管理方法
US10492156B2 (en) * 2016-08-31 2019-11-26 Inizio Capital Llc Dynamic direct multinode (DDM) wireless network
CN106485419B (zh) * 2016-10-18 2021-01-19 财付通支付科技有限公司 一种二级资源管理方法及装置
US10454941B2 (en) 2017-05-05 2019-10-22 Bank Of America Corporation Person-to-person network architecture for secure authorization and approval
US10437899B2 (en) 2017-05-05 2019-10-08 Bank Of America Corporation System for distributed server data management with multi-user access
US10269456B2 (en) 2017-05-05 2019-04-23 Bank Of America Corporation System for identification of treatment and resource deployment based on treatment interaction
US10872321B2 (en) 2017-05-05 2020-12-22 Bank Of America Corporation Machine initiated user status update system
US10034608B1 (en) 2017-08-14 2018-07-31 Bank Of America Corporation System for receiving transmissions from disparate node and triggering automatic portal action
US11020660B2 (en) * 2019-02-21 2021-06-01 Sony Interactive Entertainment LLC Transactional memory synchronization between multiple sessions of a video game
US12033271B2 (en) 2019-06-18 2024-07-09 The Calany Holding S. À R.L. 3D structure engine-based computation platform
JP7302885B2 (ja) * 2019-12-30 2023-07-04 ティーエムアールダブリュー ファウンデーション アイピー エスエーアールエル 仮想世界または現実世界の多次元3dエンジンコンピューティングおよび仮想化ベースの動的負荷分散
US11204833B1 (en) * 2020-06-19 2021-12-21 Western Digital Technologies, Inc. NVM endurance group controller using shared resource architecture
CN112087506B (zh) * 2020-09-01 2023-02-07 北京火山引擎科技有限公司 一种集群节点管理方法、装置及计算机存储介质
CN112291010B (zh) * 2020-10-09 2021-10-01 中国人民武装警察部队工程大学 一种基于匹配博弈的多域光网络流量疏导方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01156862A (ja) * 1987-12-14 1989-06-20 Agency Of Ind Science & Technol 情報伝送路決定方式
US5560013A (en) * 1994-12-06 1996-09-24 International Business Machines Corporation Method of using a target processor to execute programs of a source architecture that uses multiple address spaces
JP3276057B2 (ja) 1996-06-04 2002-04-22 日本電信電話株式会社 3次元仮想世界表示システム
JPH10334054A (ja) * 1997-05-29 1998-12-18 Hitachi Ltd 並列画像生成方法とそのためのデータ分割手法
KR100287138B1 (ko) 1997-07-15 2001-04-16 윤종용 다자참여형가상공간에서참여자관리방법및그시스템
JP3455418B2 (ja) 1998-04-01 2003-10-14 三菱電機株式会社 ネットワークゲームシステム
JPH11328124A (ja) 1998-05-15 1999-11-30 Dainippon Printing Co Ltd 仮想空間表示システム
JP2000285064A (ja) 1999-03-31 2000-10-13 Fujitsu Ltd 仮想空間共有システム
US6898564B1 (en) * 2000-05-23 2005-05-24 Microsoft Corporation Load simulation tool for server resource capacity planning
US20030177187A1 (en) * 2000-11-27 2003-09-18 Butterfly.Net. Inc. Computing grid for massively multi-player online games and other multi-user immersive persistent-state and session-based applications
JP2002342297A (ja) * 2001-05-16 2002-11-29 Nec Corp 分散シミュレーション制御装置
JP2003099412A (ja) * 2001-09-21 2003-04-04 Hitachi Eng Co Ltd 超並列コンピュータ
JP2005004676A (ja) * 2003-06-16 2005-01-06 Fujitsu Ltd 適応型分散処理システム
JP2005234633A (ja) 2004-02-17 2005-09-02 Sony Corp サービスの拡張方法
US7133805B1 (en) * 2004-07-07 2006-11-07 Sprint Communications Company L.P. Load test monitoring system
KR100742357B1 (ko) * 2005-11-18 2007-07-24 한국전자통신연구원 지능형 분산 서버 시스템 및 이의 운용방법
JP4523565B2 (ja) * 2006-04-11 2010-08-11 原子燃料工業株式会社 並列計算のための分割領域管理方法

Also Published As

Publication number Publication date
US8327371B2 (en) 2012-12-04
JP2009187115A (ja) 2009-08-20
US20090199198A1 (en) 2009-08-06

Similar Documents

Publication Publication Date Title
JP5373295B2 (ja) マルチノード・サーバシステム、負荷分散方法、リソース管理サーバ、およびプログラム
JP6751780B2 (ja) アクセラレーション・リソース処理方法及び装置
US9942339B1 (en) Systems and methods for providing messages to multiple subscribers
JP2004171572A (ja) サーバ間の負荷分散方法、負荷分散システム、負荷分散サーバおよびプログラム
CN109460297B (zh) 一种边缘云游戏缓存和资源调度方法
JPH09511115A (ja) スケーラブル分散計算環境
JP2007066161A (ja) キャッシュシステム
KR101987960B1 (ko) 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템 및 방법
Ricci et al. Distributed virtual environments: From client server to cloud and p2p architectures
CN115499859B (zh) 一种基于nwdaf对计算资源的管理和决策的方法
US7966394B1 (en) Information model registry and brokering in virtualized environments
De Giovanni et al. Revamping cloud gaming with distributed engines
Liu et al. Deadline guaranteed service for multi-tenant cloud storage
CN115766722A (zh) 一种基于信息中心网络的算力网络任务调度方法及装置
CN113486042A (zh) 数据处理方法、装置、计算机可读介质及电子设备
CN110191362B (zh) 数据传输方法及装置、存储介质及电子设备
CN113055461A (zh) 一种基于ZooKeeper的无人集群分布式协同指挥控制方法
CN106790354A (zh) 一种防数据拥堵的通信方法及其装置
CN106550002A (zh) 一种paas云托管***及方法
CN117560369A (zh) 资源渲染方法、装置和计算机可读存储介质
Beskow et al. Latency reduction by dynamic core selection and partial migration of game state
Shen et al. Virtual net: a decentralized architecture for interaction in mobile virtual worlds
CN114979130A (zh) 算力信息的处理方法、第一网络设备及***
Zhang et al. MACVE: A mobile agent based framework for large-scale collaborative virtual environments
CN116389349B (zh) 一种节点自治的混合云数据传输方法及***

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100922

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120925

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130724

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130801

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130827

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20130827

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130919

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees