サーバーミラーリング方法及びそのシステム
過度なトラフィックの誘発なしに、特定のサーバーに生成されたチャネルのリアルタイム情報を他のサーバーに接続した使用者がモニタリングできるようにするサーバーミラーリング方法及びそのシステムを開示する。本発明のサーバーミラーリング方法は、使用者からチャネル生成要請を受信する段階と;使用者のチャネル生成要請に基づいてパブリッシャーサーバーに第1チャネルを生成する段階と;第1チャネルのチャネル生成情報に基づいて少なくとも一つのミラーリングサーバーに第2チャネルを生成する段階と;第1チャネルのチャネル状態変更情報に基づいて前記第2チャネルの状態を変更する段階と;を含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバーミラーリング(mirroring)方法及びそのシステムに関するもので、より詳細には、特定のサーバーに生成されたチャネル情報を他のサーバーにミラーリングする方法及びそのシステムに関するものである。
【背景技術】
【0002】
インターネットの使用者数が継続的に増加しており、これによって、サーバーの負荷がインターネットサービスの最も根本的な問題点の一つとなりつつある。特に、オンラインゲームサービスシステム及びチャットサービスシステムなどのように多数の使用者がサーバーに接続するシステムの場合、サーバー負荷の問題点が一層深刻になる。このようなサーバー負荷問題を解決するための一般的な方法として、使用者の増加とともにサーバーを増設する方法がある。
【0003】
図1は、通常的な複数個のサーバーによるサービス提供システムの一例を示した図で、一つのサーバーで使用者たちのコネクションを全て収容できない場合、図1に示すように、複数のサーバー110,120,130を用いてインターネットサービスを提供する。
【0004】
しかしながら、複数のサーバーを通してサーバーの負荷問題を解決する従来のシステムは、使用者が接続したサーバーに使用者の活動領域を制限してしまうという問題点を有する。すなわち、第1サーバー110に接続した使用者111,112は、第2サーバー120に生成されたチャネルに参加することができず、第2サーバー120に生成されたチャネルの状況をモニタリングすることもできなかった。
【0005】
以下、上記のような問題点を、オンラインゲームサービスシステムを例に挙げてより詳細に説明する。
【0006】
近来のゲーム技術の発展と伴い、スポーツと同様に、ゲームの観戦が一つの文化として定着されつつある。特に、囲碁やスタークラフトなどのような戦略シミュレーションゲームにおいてゲームの観戦に対する使用者の関心が高まるにつれて、ゲームの観戦がゲームプレイと同じ程度に重要な要素となっており、ゲーム中継のための新しいシステムが開発されている。
【0007】
初期には、ゲーム状況をカメラで撮影して放送する方法が主に用いられたが、この方法によると、TV視聴者のみにゲームが中継されるという限界があるので、多くの使用者がコンピュータを通してゲームを観戦できるシステムが要求された。
【0008】
従来のコンピュータを通してゲームを観戦できるゲーム中継システムでは、サーバーの負荷が最も大きな問題であった。ゲーム観戦のために多数の使用者がゲームサーバーに接続する場合、サーバーの容量限界のために、一定の数以上の使用者にはゲーム観戦サービスが提供されないという問題点があった。
【0009】
図2は、通常的なゲーム中継システムの一例を示した図である。
【0010】
多数の使用者が接続するオンラインゲームサービスの場合、使用者は、複数のサーバー210,220,230のうち一つのサーバーを選択し、選択したサーバーでゲームプレイまたはゲーム観戦を行う。
【0011】
例えば、使用者が第1ゲームサーバー210に接続した場合、使用者は、第1ゲームサーバー210に接続した使用者たちとのコミュニケーションが可能であり、第1ゲームサーバー210に生成されたゲームルームのみでゲームプレイまたはゲーム観戦が可能であった。
【0012】
すなわち、第1ゲームサーバー210に接続した使用者は、第2ゲームサーバー220に生成されたゲームルームに参加することができず、第2サーバー220に生成されたゲームルームで進行されるゲーム状況を観戦することもできなかった。
【0013】
したがって、例えば、第1ゲームサーバー210でプロ棋士の間の対局が行われ、特定の中継者が対局状況に対する解説をしている場合、第2ゲームサーバー220及び第3ゲームサーバー230に接続した使用者たちは、第1ゲームサーバー210で進行される対局状況を観戦したり、中継者の解説を聞くことができなかった。
【0014】
上記のような問題点を解決するために、第1ゲームサーバー210での対局進行状況を第1ゲームサーバー210が第2ゲームサーバー220及び第3ゲームサーバー230に伝送することもできるが、この場合、トラフィックが急激に増加するようになる。その結果、対局進行状況を伝達するためのコントロールサーバーを備える必要があり、該コントロールサーバーが非常に複雑なロジックで構成されてしまうという問題点がある。
【0015】
上記のような問題点は、ゲームのみならず、独立的なチャネルを通してサービスを提供する全てのシステムにおいて問題となっている。
【発明の開示】
【発明が解決しようとする課題】
【0016】
本発明は、上記のような従来技術の問題点を解決するためのもので、その目的は、最小のトラフィックで特定のサーバーに生成されたチャネルを他のサーバーにミラーリングできるサーバーミラーリング方法及びそのシステムを提案することにある。
【0017】
本発明の他の目的は、比較的簡単なロジックを有するメッセージルーティングサーバーを用いて特定のサーバーに生成されたチャネルを他のサーバーにミラーリングできるサーバーミラーリング方法及びそのシステムを提案することにある。
【0018】
本発明の更に他の目的は、特定のサーバーに接続した使用者が、他のサーバーに生成されたチャネルの状況をモニタリングできるサーバーミラーリング方法及びそのシステムを提案することにある。
【0019】
本発明の更に他の目的は、サーバー容量の制限を受けることなく、多数の使用者がゲーム中継を観戦できるゲーム中継方法及びそのシステムを提案することにある。
【0020】
本発明の更に他の目的は、サーバーミラーリングを用いることで、ゲームが進行されるサーバーでない他のサーバーに接続した使用者たちもゲーム進行状況を観戦したり、中継者の解説を聞くことができるゲーム中継方法及びそのシステムを提案することにある。
【0021】
本発明の更に他の目的は、比較的簡単なロジックを有するメッセージルーティングサーバーを用いてサーバーミラーリングを行うことで、ゲーム中継時におけるサーバー負荷の問題を解決できるゲーム中継方法及びそのシステムを提案することにある。
【課題を解決するための手段】
【0022】
上記のような目的を達成するための本発明の一側面によると、チャネル生成要請を受信する段階と;前記チャネル生成要請に基づいてパブリッシャーサーバーに第1チャネルを生成する段階と;前記第1チャネルのチャネル生成情報に基づいて少なくとも一つのミラーリングサーバーに第2チャネルを生成する段階と;前記第1チャネルのチャネル状態変更情報に基づいて前記第2チャネルの状態を変更する段階と;を含むことを特徴とするサーバーミラーリング方法が提供される。
【0023】
前記第2チャネルを生成する段階は、メッセージルーティングサーバーにサブスクライバーグループとして登録されている各ミラーリングサーバーに前記第1チャネルのチャネル生成情報に基づいて前記第2チャネルを生成する。
【0024】
前記第1チャネルのチャネル生成情報は第1チャネル番号を含み、前記第2チャネルを生成する段階は、前記第2チャネルに該当する第2チャネル番号を生成する段階と、前記第1及び第2チャネル番号をマッチングさせるマッチングテーブルまたはマッチングコードを生成する段階と、を含む。
【0025】
前記第2チャネルの状態を変更する段階は、メッセージルーティングサーバーにサブスクライバーグループとして連結されているミラーリングサーバーに前記第1チャネルのチャネル状態変更情報を伝送することで、前記第2チャネルの状態を変更する。
【0026】
前記サーバーミラーリング方法は、前記ミラーリングサーバーに障害が発生する場合、前記第1チャネルのヒストリーデータを生成する段階と;前記第1チャネルのヒストリーデータに基づいて前記障害の発生したミラーリングサーバーに第3チャネルを生成する段階と;をさらに含むことができる。
【0027】
前記第1及び第2チャネルは、ゲームルームまたはチャットルームである。
【0028】
本発明の他の側面によると、少なくとも一つのミラーリングサーバーをサブスクライバーグループとして登録させる段階と;パブリッシャーサーバーに生成されたチャネルに対する情報を受信する段階と;前記チャネルに対する情報を前記サブスクライバーグループに伝送する段階と;を含むサーバーミラーリング方法が提供される。
【0029】
前記チャネルに対する情報を前記サブスクライバーグループに伝送する段階は、前記サブスクライバーグループとして登録された全てのミラーリングサーバーに前記チャネルに対する情報を伝送する。
【0030】
前記チャネルに対する情報はチャネル生成情報及びチャネル状態変更情報を含み、前記チャネルはゲームルームまたはチャットルームである。
【0031】
本発明の更に他の側面によると、ゲームルーム生成要請を受信する段階と;前記ゲームルーム生成要請に基づいてパブリッシャーサーバーに第1ゲームルームを生成する段階と;メッセージルーティングサーバーにサブスクライバーグループとして登録されているミラーリングサーバーに、前記第1ゲームルームのゲームルーム生成情報に基づいて第2ゲームルームを生成する段階と;前記第1ゲームルームのゲーム進行情報を、前記メッセージルーティングサーバーを通して前記ミラーリングサーバーに伝送する段階と;を含むサーバーミラーリング方法が提供される。
【0032】
前記サーバーミラーリング方法は、ゲーム中継者から動映像ストリーミングデータを受信する段階と;前記動映像ストリーミングデータをゲーム観戦者に提供する段階と;をさらに含むことができる。
【0033】
前記動映像ストリーミングデータは、2以上の放送サーバーを通して前記ゲーム中継者から受信され、前記2以上の放送サーバーのうち最もロードの少ない放送サーバーを通して前記ゲーム観戦者に提供される。
【0034】
前記第2ゲームルーム生成段階は、前記第2ゲームルームの生成主体として認識される仮想のダミープレイヤーを生成する段階を含むことができる。
【0035】
前記サーバーミラーリング方法は、前記第1ゲームルームの全ての使用者が前記第1ゲームルームから退場する場合、前記第1ゲームルームを削除する段階と;前記第1ゲームルームを削除した後、前記第2ゲームルームの前記ダミープレイヤーを削除する段階と;前記ダミープレイヤーを含む前記第2ゲームルームの全ての使用者が前記第2ゲームルームから退場する場合、前記第2ゲームルームを削除する段階と;をさらに含むことができる。
【0036】
本発明の更に他の側面によると、チャネル生成要請を受信し、前記チャネル生成要請に基づいて第1チャネルを生成し、前記第1チャネルのチャネル生成情報及びチャネル状態変更情報を発生させるパブリッシャーサーバーと;前記パブリッシャーサーバーから前記第1チャネルのチャネル生成情報及びチャネル状態変更情報を受信するメッセージルーティングサーバーと;前記メッセージルーティングサーバーにサブスクライバーグループとして登録されており、前記メッセージルーティングサーバーから前記第1チャネルのチャネル生成情報及びチャネル状態変更情報を受信し、前記第1チャネルのチャネル生成情報に基づいて第2チャネルを生成し、前記第1チャネルのチャネル状態変更情報に基づいて前記第2チャネルの状態を変更させるミラーリングサーバーと;を含むサーバーミラーリングシステムを提供する。
【0037】
前記メッセージルーティングサーバーは、前記サブスクライバーグループとして登録された全てのミラーリングサーバーに前記第1チャネルのチャネル生成情報及びチャネル状態変更情報を伝送する。
【0038】
前記第1及び第2チャネルがゲームルームである場合、前記サーバーミラーリングシステムは、ゲーム中継者クライアントから動映像ストリーミングデータを受信し、前記動映像ストリーミングデータを前記第1及び第2チャネルにそれぞれ接続したゲーム観戦者クライアントに伝送する放送サーバーシステムをさらに含むことができる。
【0039】
前記放送サーバーシステムは接続制御サーバーを含み、前記接続制御サーバーは、前記ゲーム中継者クライアントから前記動映像ストリーミングデータを受信する2以上の放送サーバーを指定し、前記指定された2以上の放送サーバーのうち一つの放送サーバーのみを、前記ゲーム観戦者クライアントに前記動映像ストリーミングデータを伝送するためのサーバーとして指定することができる。
【発明の効果】
【0040】
本発明のサーバーミラーリング方法及びそのシステムによると、最小のトラフィックで特定のサーバーに生成されたチャネルの状況を他のサーバーに接続した使用者または運営者がモニタリングすることができ、比較的簡単なロジックを有するメッセージルーティングサーバーを用いて特定のサーバーに生成されたチャネルを他のサーバーにミラーリングすることができる。
【0041】
特に、特定のゲームサーバーに生成されたゲームルームで進行されるゲームを、他のサーバーに接続した使用者たちが過度なトラフィックの誘発なしに観戦することができる。
【0042】
また、本発明によるサーバーミラーリング方法は、ゲーム運営者たちが特定のサーバーに形成されたゲームルームの状況をモニタリングする場合にも用いることができる。ゲーム運営者たちは、ゲーム内の不正行為などをモニタリングするためにゲームルームにアクセスしなくても、運営者が接続したサーバーに該当のゲームルームをミラーリングすることで、ゲームルームの状況をモニタリングすることができる。
【0043】
また、本発明によるサーバーミラーリング方法は、特定のチャットサーバーに接続した使用者が、他のチャットサーバーに生成されたチャットルームのチャット状況をモニタリングするときに用いることができる。
【発明を実施するための最良の形態】
【0044】
以下、添付された図面を参照して、本発明によるサーバーミラーリングシステム及びその方法の好適な実施例を詳細に説明する。
【0045】
本発明は、サーバーに生成された特定のチャネルの情報を他のサーバーにミラーリングする方法及びそのシステムに関するものである。多数の使用者が接続し、各使用者の間の競争または協力を通してゲームを進行するオンラインゲームサーバー、または接続した各使用者の間のチャットメッセージを交換するチャットサーバーなどは、サーバー内に多数のチャネルを形成し、チャネルに参加した使用者たちが伝送するメッセージパケットを同一のチャネルを通して他の使用者たちに伝送する。主に、このようなチャネルは‘ルーム’と命名されるもので、ゲームサーバーの場合にはゲームルームという形態で称され、チャットサーバーの場合にはチャットルームという形態で称される。本発明は、ゲームサーバーまたはチャットサーバーの他にも、チャネルを形成して使用者たちの要請を処理するサーバーに適用可能である。以下、本発明を一般的に説明するときには‘チャネル’または‘ルーム’という用語を使用し、本発明をオンラインゲームまたはチャットサービスなどに限定して説明するときには‘ゲームルーム’または‘チャットルーム’という用語を使用することにする。
【0046】
図3は、本発明の好適な一実施例に係るサーバーミラーリングシステムの構成を示した図である。
【0047】
図3を参照すると、本発明の一実施例に係るサーバーミラーリングシステムは、メッセージルーティングサーバー340及び複数のサーバー310,320,330を含むことができる。複数のサーバーには、複数の使用者クライアント311,312,321,322,331,332がネットワーク(図示せず)を通して連結される。
【0048】
第1サーバー310、第2サーバー320及び第3サーバー330には、それぞれ独立的にチャネルが形成され、各クライアント311,312,321,322,331,332は、接続したサーバーに形成されたチャネルに参加する。
【0049】
図3において、第1サーバー310に生成されたチャネルは第2サーバー320及び第3サーバー330にミラーリングされ、第1サーバー310のようにチャネルがミラーリングされるサーバーをパブリッシャー(Publisher)サーバーといい、第2サーバー320及び第3サーバー330のように他のサーバーのチャネルをミラーリングするサーバーをミラーリング(Mirroring)サーバーという。
【0050】
パブリッシャーサーバーである第1サーバー310は、使用者からの要請を受信し、他のサーバーにミラーリングされるチャネルを生成する。第1サーバー310に生成されたチャネルに対する情報(以下、“チャネル生成情報”という。)は、メッセージルーティングサーバー340に伝送される。ここで、チャネル生成情報は、チャネルのタイプ及び/またはチャネルに関与している使用者情報を含むことができる。
【0051】
また、第1サーバー310は、生成されたチャネルで発生する状況に対する情報をメッセージルーティングサーバー340に伝送する。ここで、チャネルで発生する状況または状態の変更に対する情報(以下、“チャネル状態変更情報”という。)は、チャネルがオンラインゲームのためのゲームルームである場合には、ゲーム進行情報、例えば、ゲーム進行のために伝送するゲームコマンド情報を含むことができ、チャネルがチャットルームである場合にはチャットメッセージを含むことができる。
【0052】
本発明では、チャネルミラーリングのための各サーバーの間の通信を簡素化するためにメッセージルーティングサーバー340を用いる。メッセージルーティングサーバー340は、第1サーバー310からチャネル生成情報及びチャネル状態変更情報を受信し、これを第2サーバー320及び第3サーバー330に提供する。
【0053】
図4は、本発明の好適な一実施例に係るサーバーミラーリングを用いたゲーム中継システムの構成を示した図である。
【0054】
図4を参照すると、本発明の一実施例に係るサーバーミラーリングを用いたゲーム中継システムは、複数のゲームサーバー410,420,430、メッセージルーティングサーバー440及び放送サーバーシステム450を含むことができる。本発明の一実施例に係るサーバーミラーリングを用いたゲーム中継システムには、ネットワークを通して複数の使用者クライアント411,412,421,422,431,432が連結される。
【0055】
ここで、ゲームサーバーの特定のゲームルームで進行されるゲームは、各使用者の間の競争または協力を通してゲームを進行する多様な種類のオンラインゲームを含むことができる。例えば、本発明によって中継されるゲームは、囲碁及び将棋などのゲームであったり、スタークラフト及びウォークラフトなどのリアルタイム戦略シミュレーションゲームである。
【0056】
本発明によるゲーム中継システムには、このようなゲームの他にも、多様な種類のボードゲーム及び対戦ゲームなどが使用される。
【0057】
本発明では、ゲームが進行されて中継されるゲームルームが開設されたゲームサーバーに接続していない使用者たちも、サーバーミラーリングを用いてゲーム中継を観戦できる方法を提案する。例えば、本発明によると、第1ゲームサーバー410の特定のゲームルームでゲーム及びその中継が進行される場合、第2ゲームサーバー420及び第3ゲームサーバー430に接続した使用者たちも、第1ゲームサーバー410の特定のゲームルームで進行されるゲーム中継を観戦することが可能である。
【0058】
本発明の好適な実施例によると、特定のサーバーのゲームルームを他のサーバーにミラーリングすることで、他のサーバーに接続した使用者たちも、その接続されたサーバーにミラーリングによって生成されたゲームルーム(以下、“ミラーリングゲームルーム”という。)を通してゲーム中継を観戦することができる。通常、ゲーム及びその中継が進行されるゲームルームには、ゲームを直接プレイするプレイヤー、プレイヤーのゲームに対する解説をする中継者、及びゲームを観戦しながら解説を聞く観戦者が参加する。他のサーバーのミラーリングゲームルームに参加した使用者たちは、ゲーム及びその中継が進行されるゲームルームに参加した場合と同様に、各プレイヤーによるゲーム進行状況を観戦したり、中継者の解説情報を聞くことができる。
【0059】
図4において、第1ゲームサーバー410に生成されたゲームルームは第2ゲームサーバー420及び第3ゲームサーバー430にミラーリングされ、第1ゲームサーバー410のように他のゲームサーバーにミラーリングされるゲームルームを有するサーバーをパブリッシャーゲームサーバーといい、第2ゲームサーバー420及び第3ゲームサーバー430のように他のゲームサーバーのゲームルームをミラーリングするサーバーをミラーリングゲームサーバーという。
【0060】
パブリッシャーゲームサーバーとして機能する第1ゲームサーバー410は、ゲームプレイヤーまたはゲーム中継者から他のサーバーにミラーリングされるゲームルーム生成要請情報を受信する。ゲームルーム生成を要請したゲームプレイヤーまたはゲーム中継者は、ゲームルーム生成を要請するとき、ゲーム中継のために他のサーバーにミラーリングされるゲームルームという情報を入力する。
【0061】
第1ゲームサーバー410は、ゲームプレイヤーまたはゲーム中継者のゲームルーム生成要請に応答して他のサーバーにミラーリングされるゲームルームを生成する。生成されたゲームルームには、ゲームルーム生成者の他に、ゲームプレイヤー、中継者及び観戦者などが参加する。
【0062】
第1ゲームサーバー410に生成されたゲームルーム情報(以下、“ゲームルーム生成情報”という。)は、メッセージルーティングサーバー440に伝送される。ここで、ゲームルーム生成情報は、ゲームルームタイプ、ゲームルームに参加した使用者情報、ゲームルームタイトル及びゲームルーム番号などを含むことができる。また、第1ゲームサーバー410は、生成されたゲームルームでのゲーム進行状況に関する情報(以下、“ゲーム進行情報”という。)をメッセージルーティングサーバー440に伝送する。ここで、ゲーム進行情報は、ゲームプレイヤーたちがオンラインゲーム進行のために伝送するゲームコマンド情報を含むことができる。例えば、第1ゲームサーバー410で進行されるゲームが囲碁ゲームである場合、前記ゲームコマンド情報は囲碁棋譜情報である。第1ゲームサーバー410で進行されるゲームが戦略シミュレーションゲームである場合、ゲームコマンド情報は、ユニットの攻撃命令及びユニットの移動命令などを含むことができる。また、ゲーム進行情報は、第1ゲームサーバー410のゲームルームに参加したプレイヤー、中継者及び観戦者が交換するチャットメッセージを含むことができる。
【0063】
また、本発明の好適な実施例では、ゲームルームミラーリングのための各サーバーの間の通信を簡素化するためにメッセージルーティングサーバー440を用いる。メッセージルーティングサーバー440は、第1ゲームサーバー410で提供するゲームルーム生成情報メッセージ及びゲーム進行情報メッセージを第2ゲームサーバー420及び第3ゲームサーバー430に提供する。
【0064】
一方、中継者の音声及び映像情報は、放送サーバーシステム450を通してパブリッシャーゲームサーバーである第1ゲームサーバー410のゲームルームに参加した使用者と、ミラーリングゲームサーバーである第2ゲームサーバー420及び第3ゲームサーバー430のミラーリングゲームルームに参加した使用者に提供される。
【0065】
中継者がパブリッシャーゲームサーバーである第1ゲームサーバー410のゲームルームに参加する場合、中継者は、放送サーバーシステム450に解説動映像放送のための放送IDを要請し、放送サーバーシステム450は、ゲーム解説のための放送ID、中継者の音声及び映像情報を放送する放送サーバーの住所情報(Address Information)を提供する。
【0066】
中継者のゲームアプリケーションには、中継者の音声及び映像を動映像ストリーミングデータにコーディングするモジュールが備わり、中継者の音声及び映像を含む動映像ストリーミングデータは、放送サーバーシステム450によって定められた放送サーバーに伝送される。
【0067】
パブリッシャーゲームサーバーである第1ゲームサーバー410に生成されたゲームルーム、ミラーリングゲームサーバーである第2ゲームサーバー420及び第3ゲームサーバー430に生成されたミラーリングゲームルームに参加した使用者たちは、参加した各ゲームルームから中継者の解説情報をストリーミングするための放送ID情報を受ける。
【0068】
すなわち、本発明の好適な実施例によると、囲碁棋譜などのゲーム進行情報は、メッセージルーティングサーバー440を通してミラーリングゲームサーバーに生成されたミラーリングゲームルームに伝送され、中継者の解説動映像ストリーミングデータは、放送サーバーシステム450を通してパブリッシャーゲームサーバーのゲームルーム及びミラーリングゲームサーバーのミラーリングゲームルームに参加した各使用者クライアントに伝送される。
【0069】
したがって、第1ゲームサーバー410の観戦者がサーバーの収容限界を越えるほどに多くなるとしても、他の使用者たちは、第2ゲームサーバー420及び第3ゲームサーバー430に接続してゲームを観戦することができる。
【0070】
以下、本発明の好適な実施例に係るメッセージルーティングサーバー340について説明する。本発明の好適な実施例によると、メッセージルーティングサーバー340は、複数のコネクションを一つのグループとして管理する機能を支援する。
【0071】
図5は、本発明の好適な一実施例に係るメッセージルーティングサーバー340に生成されるグループを示した図である。
【0072】
図5を参照すると、本発明の一実施例に係るメッセージルーティングサーバー340にはサブスクライバーグループ520及びパブリッシャーグループ510が生成され、サブスクライバーグループ520は、パブリッシャーサーバーのチャネルをミラーリングするミラーリングサーバーの属するグループであり、パブリッシャーグループ510は、ミラーリングされるチャネル情報を提供するパブリッシャーサーバーの属するグループである。
【0073】
例えば、図3において、パブリッシャーサーバーとして機能する第1サーバー310はパブリッシャーグループ510に登録され、ミラーリングサーバーとして機能する第2サーバー320及び第3サーバー330はサブスクライバーグループ520に登録される。
【0074】
メッセージルーティングサーバー340と連結された第1サーバー乃至第3サーバー310,320,330は、サーバーの開始時にメッセージルーティングサーバー340のパブリッシャーグループ510またはサブスクライバーグループ520のうち一つに参加するように設定され、メッセージルーティングサーバー340は、連結された各サーバーの要請によってサブスクライバーグループ520またはパブリッシャーグループ510に参加させる。
【0075】
本発明の好適な実施例によると、パブリッシャーサーバーである第1サーバー310は、マルチキャスト方式でミラーリングされるチャネルに対する情報をメッセージルーティングサーバー340に提供する。パブリッシャーサーバーである第1サーバー310は、メッセージルーティングサーバー340にサブスクライバーグループ520に伝送されるメッセージという情報のみを含み、メッセージルーティングサーバー340にチャネル情報を提供する。すなわち、第1サーバー310がメッセージルーティングサーバー340に伝送するチャネル情報と関連したメッセージは、チャネル情報をミラーリングする第2サーバー320及び第3サーバー330の住所情報を含んでおらず、メッセージが伝送されるサブスクライバーグループ520の識別情報のみを含む。
【0076】
メッセージルーティングサーバー340は、パブリッシャーサーバーである第1サーバー310からサブスクライバーグループ520に伝送されるメッセージを受信する場合、サブスクライバーグループ520に参加した全てのミラーリングサーバーにパブリッシャーサーバーから伝送されたメッセージを伝送する。すなわち、メッセージルーティングサーバー340は、第1サーバー310からメッセージを受信し、これをサブスクライバーグループ520に参加した第2サーバー320及び第3サーバー330に伝送する。
【0077】
メッセージルーティングサーバー340は、伝送されるメッセージがサブスクライバーグループ520の各サーバーに伝送されるメッセージであるか、パブリッシャーグループ510の各サーバーに伝送されるメッセージであるかを判断し、受信されたメッセージをパブリッシャーグループ510のサーバーまたはサブスクライバーグループ520のサーバーに伝送する役割のみを行い、受信されたメッセージの分析、判断及び制御手順は行わない。
【0078】
したがって、メッセージルーティングサーバー340は、既存のサーバーの間の情報交換のためのコントロールサーバーに比べて簡素な構成を有することができ、メッセージも、メッセージの受信者をその都度指定する必要なしに、より単純化された方式で伝送されるので、メッセージトラフィックも減少する。
【0079】
サブスクライバーサーバーである第2サーバー320及び第3サーバー330は、メッセージルーティングサーバー340からパブリッシャーサーバーである第1サーバー310が伝送したチャネル関連メッセージを受信し、メッセージを分析してチャネルミラーリングを行う。
【0080】
例えば、第1サーバー310から伝送されたメッセージがチャネル生成情報を含むメッセージである場合、第2サーバー320及び第3サーバー330は、メッセージを分析し、チャネル生成情報に含まれた情報と同一の条件を有するチャネル(以下、“ミラーリングチャネル”という。)を生成する。第1サーバー310から伝送されたメッセージがチャネルの状態変更情報を含むメッセージである場合、第2サーバー320及び第3サーバー330は、メッセージを分析し、第1サーバーのチャネルと同一の状態にミラーリングチャネルの状態を変更する。
【0081】
図15は、パブリッシャーサーバーのメッセージがメッセージルーティングサーバーを通してサブスクライバーグループに属した各ミラーリングサーバーに伝達されることを示した概念図である。
【0082】
図15を参照すると、メッセージルーティングサーバーのパブリッシャーグループ510及びサブスクライバーグループ520に参加したパブリッシャーサーバー1530及びミラーリングサーバー1510,1520は、ソケットを通してメッセージルーティングサーバーと連結される。
【0083】
図15に示すように、パブリッシャーサーバー1530がサブスクライバーグループ520に参加した各ミラーリングサーバー1510,1520にメッセージを伝達しようとする場合、パブリッシャーサーバー1530は、サブスクライバーグループ520を目的地(Destination)住所としてマルチキャスト方式でメッセージを伝送する。
【0084】
メッセージルーティングサーバーは、サブスクライバーグループ520に属した各ミラーリングサーバー1510,1520との連結媒体であるソケットを通して各ミラーリングサーバー1510,1520にパブリッシャーサーバー1530から伝送されたメッセージを伝達する。
【0085】
一方、サーバーミラーリングを用いたゲーム中継システムの場合、図5の第1、第2及び第3サーバー310,320,330は、図4の第1、第2及び第3ゲームサーバー410,420,430にそれぞれ該当し、チャネル生成情報及びチャネル状態変更情報は、ゲームルーム生成情報及びゲーム進行情報を意味する。
【0086】
すなわち、メッセージルーティングサーバー440は、パブリッシャーゲームサーバーである第1ゲームサーバー410からサブスクライバーグループ520に伝送されるメッセージを受信する場合、サブスクライバーグループ520に参加した全てのミラーリングゲームサーバーにパブリッシャーゲームサーバーから伝送されたメッセージを伝送する。すなわち、メッセージルーティングサーバー440は、サブスクライバーグループ520に参加した第2ゲームサーバー420及び第3サーバー430に第1ゲームサーバー410から伝送されたメッセージを伝送する。
【0087】
ミラーリングゲームサーバーである第2ゲームサーバー420及び第3ゲームサーバー430は、メッセージルーティングサーバー440からパブリッシャーゲームサーバーである第1ゲームサーバー410が伝送したゲームルーム関連メッセージを受信し、メッセージを分析してゲームルームミラーリングを行う。
【0088】
例えば、第1ゲームサーバー410から伝送されたメッセージがゲームルーム生成情報を含むメッセージである場合、第2ゲームサーバー420及び第3サーバー430は、メッセージを分析し、ゲームルーム生成情報に含まれた情報と同一の条件を有するゲームルームを生成する。第1ゲームサーバー410から伝送されたメッセージがゲーム進行情報を含むメッセージである場合、第2ゲームサーバー420及び第3ゲームサーバー430は、メッセージを分析し、第1ゲームサーバーのゲームルームで進行されるゲームの進行状況をミラーリングゲームルームに反映する。
【0089】
上述したような構成によると、中継されるゲームが囲碁ゲームである場合、各プレイヤーによる囲碁棋譜情報及び解説者の解説のための囲碁棋譜情報は、メッセージルーティングサーバー440を通して第2ゲームサーバー420及び第3ゲームサーバー430のミラーリングゲームルームに伝送され、第2ゲームサーバー420及び第3ゲームサーバー430のミラーリングゲームルームに参加した使用者たちは、第1ゲームサーバー410のゲームルームでのプレイヤー及び解説者の棋譜情報を受けることができる。
【0090】
図6は、パブリッシャーゲームサーバーとミラーリングゲームサーバーとの間のゲーム進行及び中継の状態を示した図である。
【0091】
図6を参照すると、パブリッシャーゲームサーバーのゲームルーム610はプレイヤーまたは中継者によって生成され、パブリッシャーゲームサーバーに接続した使用者のみがパブリッシャーゲームサーバーのゲームルーム610に参加する。パブリッシャーゲームサーバーのゲームルーム610に参加した使用者のうちプレイヤーは、パブリッシャーゲームサーバーを通してゲームパケットを交換しながらゲームを進行する。ゲームは、囲碁ゲーム、戦略シミュレーションゲーム及びボードゲームなどを含むことができ、パブリッシャーゲームサーバーに接続したプレイヤークライアントには、ゲームプレイのためのアプリケーションが設置されている。
【0092】
パブリッシャーゲームサーバーは、ゲームルーム生成情報、ゲーム進行中に交換されるゲームコマンド情報及びゲームルーム終了情報などのゲームルームのゲーム進行状況と関連した情報がメッセージルーティングサーバー440のサブスクライバーグループに伝送されるようにプログラミングされる。
【0093】
パブリッシャーゲームサーバーでゲームルーム610が生成される場合、ゲームルーム生成情報は、メッセージルーティングサーバー440を通してミラーリングゲームサーバーに伝送され、ミラーリングゲームサーバーには、パブリッシャーゲームサーバーで生成されたゲームルーム610と同一の条件のゲームルーム620が生成される。
【0094】
パブリッシャーゲームサーバーなどのゲームルーム620の生成のために、ミラーリングゲームサーバーは、ゲームルームの生成主体として認識される仮想のダミープレイヤーを生成する。ダミープレイヤーは、ゲームルーム620が生成されるときにゲームルーム620に対する制御権限を有するプレイヤーが必要であることから、仮想的に生成されるプレイヤーであり、一般的なプレイヤーと同一の構造を有しているが、クライアントとの連結を有していないので、ダミープレイヤーへのデータ送受信は不可能であることが好ましい。
【0095】
ミラーリングゲームサーバーに生成されたゲームルーム620には、ミラーリングゲームサーバーに接続した使用者たちが参加する。ゲームルーム生成メッセージがパブリッシャーゲームサーバーからメッセージルーティングサーバー440を通してサブスクライバーグループに参加した各ミラーリングゲームサーバーに伝送される場合、ミラーリングゲームサーバーは、ゲームルーム生成メッセージに含まれたゲームルーム情報と同一の条件のミラーリングゲームルーム620を生成する。ミラーリングゲームサーバーは、一般的なゲームルームと一緒に、ミラーリングされたゲームルーム620もゲームルームリストに含ませて使用者に提供し、ミラーリングゲームサーバーに接続した使用者たちは、ミラーリングされたゲームルーム620に参加することができる。
【0096】
パブリッシャーゲームサーバーのゲームルーム610でゲームが進行される場合、パブリッシャーゲームサーバーのゲームルーム610は、ゲーム進行と関連した情報をメッセージルーティングサーバー440に伝送し、メッセージルーティングサーバー440は、ゲーム進行情報をサブスクライバーグループに参加したミラーリングゲームサーバーに伝送し、ミラーリングゲームサーバーは、ゲーム進行情報を関連したゲームルーム620に伝達する。したがって、ミラーリングゲームルーム620に参加した使用者たちは、パブリッシャーゲームサーバーで進行されるゲーム状況を観戦することができる。
【0097】
例えば、パブリッシャーゲームサーバーのゲームルーム610で囲碁ゲームが進行される場合、パブリッシャーゲームサーバーのゲームルーム610のプレイヤーたちによって生成される棋譜情報は、実時間(リアルタイム)でメッセージルーティングサーバー440を通してミラーリングゲームサーバーのゲームルーム620に伝送され、ミラーリングゲームサーバーのゲームルーム620は、伝送された棋譜情報を参加した観戦者たちに提供し、囲碁観戦を可能にする。
【0098】
図7は、本発明の好適な一実施例に係る放送サーバーシステムの構成を示した図である。
【0099】
図7を参照すると、本発明の一実施例に係る放送サーバーシステムは、接続制御サーバー710及び複数の放送サーバー720,730,740を含むことができる。
【0100】
接続制御サーバー710は、中継者クライアント701から放送ID要請情報を受信し、中継者クライアント701に放送ID及び中継者クライアント701が動映像ストリーミングデータを伝送する放送サーバー720,730の住所情報を提供する。
【0101】
従来では、接続制御サーバーは、中継者クライアントが放送IDを要請する場合、中継者クライアントが動映像ストリーミングデータを伝送する一つの放送サーバーの住所を提供していた。通常、接続制御サーバーは、複数の放送サーバーのうちロードの最も少ない放送サーバーの住所情報を提供していた。
【0102】
しかしながら、本発明の好適な実施例によると、接続制御サーバー710は、中継者クライアント701に動映像ストリーミングデータを伝送する少なくとも二つの放送サーバー720,730の住所を提供し、中継者クライアント701は、二つの放送サーバー720,730に動映像ストリーミングデータをそれぞれ伝送する。図7に示すように、接続制御サーバー710が放送サーバー1(720)及び放送サーバー2(730)に接続するように住所情報を提供した場合、中継者クライアント701は、放送サーバー1(720)及び放送サーバー2(730)に動映像ストリーミングデータをそれぞれ伝送する。
【0103】
ここで、住所情報は、放送サーバーのIPアドレス及びポート番号であるが、その他の住所情報も使用可能であることは当業者にとって自明である。
【0104】
通常、放送サーバーには約2500人が同時に接続可能であり、最大の接続人員を超える場合、ストリーミングデータの中断現象が発生する。したがって、本発明の好適な実施例によると、このようなストリーミングデータの中断現象を防止するために、中継者クライアント701が複数の放送サーバーに動映像ストリーミングデータを伝送している。
【0105】
接続制御サーバー710は、放送IDに相応する放送サーバーのIPアドレス及びポート番号を管理し、観戦者クライアント702が放送IDに相応する住所情報を要請する場合、観戦者クライアント702に放送IDに相応する放送サーバーのIPアドレス及びポート番号を提供する。二つの放送サーバー720,730に中継者の動映像ストリーミングデータが伝送されるが、観戦者クライアントには、二つの放送サーバー720,730のうち一つの放送サーバー730のIPアドレス及びポート番号のみを提供する。接続制御サーバー710は、二つの放送サーバー720,730のうちロードの少ない放送サーバー730の住所情報を提供することができる。
【0106】
図7において、放送サーバー2(730)のロードが放送サーバー1(720)のロードより少ないと判断される場合、接続制御サーバー710は、観戦者クライアント702に放送サーバー2(730)の住所情報を提供し、観戦者クライアント702は、放送サーバー2(730)から中継者の動映像ストリーミングデータを受信する。
【0107】
図8及び図9は、パブリッシャーゲームサーバー及びミラーリングゲームサーバーにミラーリングされるゲームルーム及びミラーリングゲームルームがそれぞれ生成される過程を示したフローチャートである。図8は、ゲームプレイヤーがミラーリングされるゲームルームの生成をパブリッシャーゲームサーバーに要請する場合を示したフローチャートで、図9は、ゲーム中継者がゲームルームの生成を要請する場合を示したフローチャートである。
【0108】
図8を参照すると、ゲームプレイヤーは、クライアントを通してパブリッシャーゲームサーバーにゲームルームの生成を要請する(段階810)。プレイヤーは、他のサーバーにミラーリングされるゲームルームを予め指定して要請することができる。パブリッシャーゲームサーバーは、ゲームルームの生成時に他のサーバーにミラーリングするかどうかを選択するインターフェースを提供し、ゲームプレイヤーは、インターフェースを通して他のサーバーにミラーリングされるゲームルームの生成を要請することができる。
【0109】
パブリッシャーゲームサーバーは、プレイヤークライアントのゲームルーム生成要請に応答してゲームルームを生成する(段階820)。パブリッシャーゲームサーバーは、ゲームルーム生成を完了した後、プレイヤークライアントにゲームルーム生成情報を伝送し(段階830)、プレイヤークライアントは、パブリッシャーゲームサーバーに生成されたゲームルームに参加する(段階840)。
【0110】
パブリッシャーゲームサーバーは、メッセージルーティングサーバーのパブリッシャーグループに参加した状態であり、他のサーバーにミラーリングゲームルームが生成される場合、ゲームルーム生成情報をメッセージルーティングサーバーのサブスクライバーグループに伝送するように設定されている。
【0111】
パブリッシャーゲームサーバーは、ゲームルーム生成メッセージをメッセージルーティングサーバーに伝送する(段階850)。ゲームルーム生成メッセージは、ゲームルームタイトル、ゲームルームのゲームID、ゲームルーム設定情報などを含むことができ、ゲームルーム生成メッセージの目的地住所は、メッセージルーティングサーバーのサブスクライバーグループに設定される。
【0112】
ゲームルーム生成メッセージを受信したメッセージルーティングサーバーは、ゲームルーム生成メッセージを、サブスクライバーグループに参加してソケットを通してメッセージルーティングサーバーに連結されているミラーリングゲームサーバーにそれぞれ伝送する(段階860)。
【0113】
メッセージルーティングサーバーのサブスクライバーグループに参加したミラーリングゲームサーバーは、ゲームルーム生成メッセージをそれぞれ受信すると、ミラーリングゲームルーム生成のために仮想のダミープレイヤーを生成する(段階870)。上述したように、ダミープレイヤーは、一般的なプレイヤーと同一の構造を有しているが、クライアントとの連結を有していないので、ダミープレイヤーへのデータ送受信は不可能である。
【0114】
ダミープレイヤーが生成されると、ミラーリングゲームサーバーは、受信したゲームルーム生成情報に含まれた情報と同一の条件を有し、かつダミープレイヤーがゲームルーム生成者として設定されるゲームルームを生成する(段階880)。ミラーリングゲームサーバーにミラーリングゲームルームが生成される際、ミラーリングゲームルームの番号は、各ミラーリングゲームサーバーによって独立的に与えられたり、ミラーリングゲームルームのために予め用意された番号が与えられたり、また、一般的なゲームルームのように順次的に番号が与えられる。なお、ミラーリングゲームサーバーは、パブリッシャーゲームサーバーで生成されたゲームルームとミラーリングゲームルームとを互いにマッチングできるように、パブリッシャーゲームサーバーのゲームルーム番号とミラーリングゲームルーム番号とをマッチングさせるマッチングテーブルまたはマッチングコードを管理する。
【0115】
図9は、ゲーム中継者がミラーリングされるゲームルームの生成をパブリッシャーゲームサーバーに要請する場合のミラーリングゲームルーム生成過程を示したフローチャートである。
【0116】
図9を参照すると、中継者クライアントは、パブリッシャーゲームサーバーにゲームルームの生成を要請する(段階911)。中継者は、他のサーバーにミラーリングされるゲームルームを予め指定して要請することができる。パブリッシャーゲームサーバーは、ゲームルームの生成時に他のサーバーにミラーリングするかどうかを選択するインターフェースを提供し、中継者は、インターフェースを通して他のサーバーにミラーリングされるゲームルームの生成を要請することができる。
【0117】
パブリッシャーゲームサーバーは、中継者クライアントのゲームルーム生成要請に応答してゲームルームを生成する(段階912)。パブリッシャーゲームサーバーは、ゲームルームの生成を完了した後、中継者クライアントにゲームルーム生成情報を伝送し(段階913)、中継者クライアントは、パブリッシャーゲームサーバーに生成されたゲームルームに参加する(段階914)。ゲームルームの生成後、ゲームプレイヤー及び観戦者は、生成されたゲームルームに参加することができる。
【0118】
中継者がゲームルームに参加した後、中継者クライアントは、放送サーバーシステムに放送IDを要請する(段階921)。放送サーバーシステムは、中継者クライアントの放送ID要請に応答して、放送ID及び放送IDに相応して中継者クライアントが動映像ストリーミングデータを伝送する放送サーバーの住所情報を提供する(段階922)。中継者クライアントは、該当の放送サーバーに動映像ストリーミングデータを伝送する(段階923)。
【0119】
また、パブリッシャーゲームサーバーは、メッセージルーティングサーバーのパブリッシャーグループに参加した状態であり、他のサーバーにミラーリングゲームルームが生成される場合、ゲームルーム生成情報をメッセージルーティングサーバーのサブスクライバーグループに伝送するように設定されている。
【0120】
パブリッシャーゲームサーバーは、ゲームルーム生成情報を含むメッセージをメッセージルーティングサーバーに伝送する(段階915)。ゲームルーム生成情報は、ゲームルーム番号、ゲームルームタイトル、ゲームルームのゲームID、ゲームルーム設定情報及び放送ID(放送サーバーシステムから中継者クライアントに割り当てられる)などを含むことができ、ゲームルーム生成メッセージの目的地住所は、メッセージルーティングサーバーのサブスクライバーグループに設定される。
【0121】
ゲームルーム生成メッセージを受信したメッセージルーティングサーバーは、ゲームルーム生成メッセージを、サブスクライバーグループに参加してソケットを通してメッセージルーティングサーバーと連結されているミラーリングゲームサーバーにそれぞれ伝送する(段階916)。
【0122】
メッセージルーティングサーバーのサブスクライバーグループに参加したミラーリングゲームサーバーは、ゲームルーム生成メッセージをそれぞれ受信し、ミラーリングゲームルーム生成のために仮想のダミープレイヤーを生成する(段階917)。上述したように、ダミープレイヤーは、一般的なプレイヤーと同一の構造を有しているが、クライアントとの連結を有していないので、ダミープレイヤーへのデータを送受信は不可能である。
【0123】
ダミープレイヤーが生成されると、ミラーリングゲームサーバーは、受信したゲームルーム生成情報に含まれた情報と同一の条件を有し、前記ダミープレイヤーがゲームルーム生成者として設定されるゲームルームを生成する(段階918)。ミラーリングゲームサーバーに生成されるミラーリングゲームルームの番号は、各ミラーリングゲームサーバーによって独立的に与えられたり、ミラーリングゲームルームのために予め用意された番号が与えられたり、また、一般的なゲームルームのように順次的に番号が与えられる。ミラーリングゲームサーバーは、パブリッシャーゲームサーバーで生成されたゲームルームとミラーリングゲームルームとを互いにマッチングできるように、パブリッシャーゲームサーバーのゲームルーム番号とミラーリングゲームルームの番号とをマッチングさせるマッチングテーブルまたはマッチングコードを管理する。
【0124】
図10は、中継者の解説に対する音声及び映像データがパブリッシャーゲームサーバーまたはミラーリングゲームサーバーの観戦者クライアントに伝送される過程を示したフローチャートである。
【0125】
図10を参照すると、中継者クライアントが他のサーバーにミラーリングされる中継ゲームルームに参加した場合、中継者クライアントは、放送サーバーシステムの接続制御サーバーに放送IDを要請する(段階1010)。
【0126】
接続制御サーバーは、放送ID及び複数の放送サーバーのうち放送IDを要請した中継者クライアントが解説に対する動映像ストリーミングデータを伝送する放送サーバーの住所情報を中継者クライアントに伝送する(段階1020)。上述したように、接続制御サーバーは、少なくとも二つの放送サーバー住所情報を提供する。
【0127】
中継者クライアントは、接続制御サーバーから二つの放送サーバー住所情報を受けた場合、放送サーバー1及び放送サーバー2に中継者の動映像ストリーミングデータをそれぞれ伝送する(段階1030、1040)。図10には、放送サーバー1及び放送サーバー2に動映像ストリーミングデータが順次的に伝送されるように示されているが、中継者クライアントは、放送サーバー1及び放送サーバー2に同時に動映像ストリーミングデータを伝送する。
【0128】
一方、パブリッシャーゲームサーバーのゲームルームの観戦者またはミラーリングゲームサーバーに生成されたミラーリングゲームルームに参加した観戦者は、ゲームルームの参加時に中継者の放送ID情報を受ける(段階1050)。
【0129】
放送ID情報を受けた観戦者クライアントは、接続制御サーバーに放送IDに相応する放送サーバーの住所情報を要請する(段階1060)。
【0130】
接続制御サーバーは、放送IDに相応する二つの放送サーバー住所のうち一つの放送サーバー住所情報を観戦者クライアントに伝送する(段階1070)。上述したように、二つの放送サーバーのうちロードの少ない放送サーバーの住所情報を伝送することが好ましい。
【0131】
接続制御サーバーが放送サーバー2の住所情報を提供した場合、観戦者クライアントは、放送サーバー2に動映像ストリーミングデータの伝送を要請し(段階1080)、放送サーバー2は、中継者から伝送される解説に対する動映像ストリーミングデータを受信し、これを観戦者クライアントに伝送する(段階1090)。
【0132】
図10の過程によって、パブリッシャーゲームサーバーのゲームルームまたはミラーリングゲームサーバーのミラーリングゲームルームに参加した観戦者たちは、中継者の解説動映像を受けることができる。
【0133】
図11及び図12は、パブリッシャーゲームサーバーでゲームルームを削除するとき、ミラーリングゲームサーバーでミラーリングゲームルームが削除される過程を示したフローチャートである。図11は、ゲーム中継者が関与していない場合を示し、図12は、ミラーリングされるゲームルームにゲーム中継者が関与した場合を示している。
【0134】
図11を参照すると、パブリッシャーゲームサーバーに生成されたゲームルームに参加しているプレイヤークライアントがゲームルーム退場を要請し(段階1110)、パブリッシャーゲームサーバーに生成されたゲームルームに参加したプレイヤーが全てゲームルームから退場する場合、パブリッシャーゲームサーバーは、該当のゲームルームを削除する(段階1120)。
【0135】
パブリッシャーゲームサーバーは、ミラーリングゲームサーバーにミラーリングされるゲームルームから特定のプレイヤーが退場する場合、そのプレイヤーがゲームルームから退場したというメッセージをメッセージルーティングサーバーに伝送し、該当のゲームルームを削除する場合には削除メッセージを伝送する(段階1130)。
【0136】
特定のプレイヤーのゲームルーム退場に対する情報及び/またはゲームルーム削除情報を含むメッセージは、メッセージルーティングサーバーのサブスクライバーグループに伝送され、メッセージルーティングサーバーは、サブスクライバーグループに参加してメッセージルーティングサーバーとソケットを通して連結されているミラーリングゲームサーバーに該当のメッセージをそれぞれ伝送する(段階1140)。
【0137】
ミラーリングゲームサーバーは、該当のメッセージに含まれたゲームルーム番号に相応するミラーリングゲームルームの番号を決定する。上述したマッチングテーブルまたはマッチングコードを用いてパブリッシャーゲームサーバーのゲームルーム番号に相応するミラーリングゲームルーム番号を決定することができる。ミラーリングゲームサーバーは、このように決定されたミラーリングゲームルーム番号を用いて、それに相応するミラーリングゲームルームを探し出す。受信したメッセージにパブリッシャーゲームサーバーの生成主体であるプレイヤーのゲームルーム退場情報が含まれている場合、ミラーリングゲームサーバーは、ミラーリングゲームルーム番号に相応するダミープレイヤーを削除する(段階1150)。
【0138】
ダミープレイヤーを含む全ての使用者がミラーリングゲームサーバーに生成されたミラーリングゲームルームから退場すると、ミラーリングゲームサーバーは、そのミラーリングゲームルームを削除する(段階1160)。
【0139】
図12は、ゲーム中継者が関与した場合、パブリッシャーゲームサーバーでゲームルームを削除するとき、ミラーリングゲームサーバーでミラーリングゲームルームが削除される過程を示したフローチャートである。
【0140】
図12を参照すると、パブリッシャーゲームサーバーに生成されたゲームルームに参加している中継者クライアントがゲームルーム退場を要請し(段階1210)、パブリッシャーゲームサーバーに生成されたゲームルームに参加したゲームプレイヤーを含む全ての使用者がゲームルームから退場する場合、パブリッシャーゲームサーバーは、該当のゲームルームを削除する(段階1220)。
【0141】
ゲームルームが削除されると、中継者の解説に対する動映像ストリーミングデータを放送サーバーに伝送する過程が中断される(段階1230)。
【0142】
また、パブリッシャーゲームサーバーは、ゲームルームに参加した特定の使用者がゲームルームから退場する場合、該当の使用者のルーム退場情報をメッセージルーティングサーバーに伝送し、該当のゲームルームを削除する場合には削除メッセージを伝送する(段階1240)。特定の使用者のルーム退場情報は、削除されたゲームルームの番号情報を含むことができる。
【0143】
パブリッシャーゲームサーバーは、特定の使用者のルーム退場情報及び/またはゲームルーム削除情報を含むメッセージをメッセージルーティングサーバーのサブスクライバーグループに伝送し、メッセージルーティングサーバーは、サブスクライバーグループに参加してメッセージルーティングサーバーとソケットを通して連結されているミラーリングゲームサーバーにそれぞれメッセージを伝送する(段階1250)。
【0144】
ミラーリングゲームサーバーは、メッセージに含まれたゲームルーム番号に相応するミラーリングゲームサーバーでのゲームルーム番号を判断する。上述したマッチングテーブルまたはマッチングコードを用いてパブリッシャーゲームサーバーのゲームルーム番号に相応するミラーリングゲームルーム番号を判断することができる。パブリッシャーゲームサーバーのゲームルームから退場した使用者がそのゲームルームの生成主体である中継者である場合、ミラーリングゲームサーバーは、ミラーリングゲームルーム番号に相応するダミープレイヤーを削除する(段階1260)。また、ミラーリングゲームサーバーのミラーリングゲームルームにおいて、ダミープレイヤーを含む全ての使用者がゲームルームから退場すると、ミラーリングゲームサーバーは、該当のミラーリングゲームルームを削除する(段階1270)。
【0145】
図13は、パブリッシャーゲームサーバーのゲームルームでのゲーム進行状況がミラーリングゲームサーバーのミラーリングゲームルームで再現されるように、パブリッシャーゲームサーバーのゲームルーム内で交換されるゲームコマンドがミラーリングゲームサーバーに伝達される過程に対するフローチャートである。
【0146】
図13を参照すると、パブリッシャーゲームサーバーのゲームルームに参加したプレイヤークライアントは、ゲームコマンドメッセージをパブリッシャーゲームサーバーに伝送する(段階1310)。前記ゲームコマンドは、多様なゲームでのゲームコマンドを全て含むことができる。例えば、ゲームコマンドは、囲碁における特定のプレイヤーの棋譜情報であるか、戦略シミュレーションゲームでの特定のユニットに対する移動コマンドである。
【0147】
パブリッシャーゲームサーバーのゲームルームで進行されるゲームが囲碁及びボードゲームなどのターン方式のゲームである場合、前記ゲームコマンドは、コマンドの手順情報を含むことができる。パブリッシャーゲームサーバーのゲームルームで進行されるゲームがリアルタイム戦略シミュレーションゲームである場合、ゲームコマンドは時間情報を含むことができる。
【0148】
また、ゲームコマンドメッセージは、ゲームコマンドメッセージをプレイヤークライアントから受信したパブリッシャーゲームサーバーのゲームルームの番号情報を含む。
【0149】
プレイヤークライアントからゲームコマンドメッセージを受信したパブリッシャーゲームサーバーは、受信したゲームコマンドメッセージをメッセージルーティングサーバーに伝送する(段階1320)。
【0150】
メッセージルーティングサーバーは、メッセージルーティングサーバーのサブスクライバーグループに参加してメッセージルーティングサーバーとソケットを通してコネクションを維持しているミラーリングゲームサーバーにそれぞれゲームコマンドメッセージを伝送する(段階1330)。
【0151】
メッセージルーティングサーバーからゲームコマンドメッセージを受信したミラーリングゲームサーバーは、ゲームコマンドメッセージを分析し、受信されたゲームコマンドと関連したミラーリングゲームルームの番号を判断する(段階1340)。
【0152】
ミラーリングゲームサーバーは、判断されたミラーリングゲームルームの番号に相応するミラーリングゲームルームにメッセージルーティングサーバーから受信したゲームコマンドメッセージを伝達する(段階1350)。ミラーリングゲームサーバーは、該当のミラーリングゲームルームに参加した観戦者を含む使用者クライアントにゲームコマンドを伝達し、ゲームコマンドを受信した使用者クライアントに設置されたゲームアプリケーションは、受信したコマンドに相応するゲームプロセスを行う。図13の手順によって、ミラーリングゲームサーバーのミラーリングゲームルームに参加した使用者たちは、パブリッシャーゲームサーバーのゲームルームで進行されるゲームと同一のゲーム進行を観戦することができる。
【0153】
図13に示していないが、パブリッシャーゲームサーバーのゲームルームで各プレイヤーの間に送受信されるチャットメッセージも図13のような方式によってミラーリングゲームサーバーのミラーリングゲームルームに提供可能であることは、当業者にとって自明である。
【0154】
図14は、特定のミラーリングサーバーで障害が発生する場合、障害を復旧する過程に対するフローチャートである。
【0155】
図14を参照すると、メッセージルーティングサーバーのサブスクライバーグループに参加したミラーリングサーバーのうち特定のミラーリングサーバーで障害が発生する場合、該当のミラーリングサーバーはパブリッシャーサーバーに生成されており、メッセージルーティングサーバーを通して各ミラーリングサーバーに情報を提供しているチャネルまたは各ルームに対するリストをメッセージルーティングサーバーに要請する(段階1410)。
【0156】
ルームリスト要請メッセージはパブリッシャーグループを目的地住所とし、メッセージルーティングサーバーは、パブリッシャーグループに参加したパブリッシャーサーバーにルームリスト要請メッセージを伝達する(段階1420)。
【0157】
メッセージルーティングサーバーからルームリスト要請メッセージを受信したパブリッシャーサーバーは、現在ミラーリングサーバーに情報を提供している各ルームに対する情報を検索する(段階1430)。
【0158】
また、パブリッシャーサーバーは、検索された各ルームの生成及び状態変更を表すヒストリーデータを生成する(段階1440)。検索されたルームがゲームルームである場合、そのゲームルームで進行されているゲームに対するゲームヒストリーデータが生成される。ここで、ゲームヒストリーデータは、ミラーリングサーバーが現在のゲーム進行状況を観戦者に正確に提供できるようにするもので、障害発生前に進行されたゲーム進行ヒストリーが記録されたデータを意味する。例えば、ゲームヒストリーデータは、囲碁ゲームの場合には囲碁の棋譜データであり、戦略シミュレーションゲームの場合には各プレイヤーの間に交換されたゲームコマンドデータである。もちろん、ゲームの種類によっては、このようなゲームヒストリーデータの生成が不可能であるか、ゲームヒストリーデータの生成が要求されないこともある。
【0159】
パブリッシャーサーバーは、メッセージルーティングサーバーにルームリスト情報及び各ルームのヒストリーデータを含むメッセージをメッセージルーティングサーバーに伝送する(段階1450)。
【0160】
メッセージルーティングサーバーは、パブリッシャーサーバーからのメッセージをサブスクライバーグループに参加している全てのミラーリングサーバーに伝送する(段階1460)。サブスクライバーグループに参加している各ミラーリングサーバーのうち一つのミラーリングサーバーのみに障害が発生するとしても、メッセージルーティングサーバーの伝送原則によってサブスクライバーグループに参加している全てのミラーリングサーバーにメッセージを伝送する。
【0161】
メッセージルーティングサーバーからルームリスト及び各ルームのヒストリーデータを含むメッセージを受信した各ミラーリングサーバーのうちルームリストを要請していないミラーリングサーバーは、受信されたメッセージを無視する。ルームリストを要請したミラーリングサーバーは、受信したルームリスト及び各ルームのヒストリーデータに基づいてミラーリングルームを再び生成する(段階1470)。
【0162】
以上、本発明を好適な実施例を参照して説明してきたが、該当の技術分野で通常の知識を有する者であれば、特許請求の範囲に記載された本発明の思想及び領域から逸脱しない範囲内で本発明を多様に修正及び変更可能であることを理解できるだろう。
【図面の簡単な説明】
【0163】
【図1】通常的な複数個のサーバーによるサービス提供システムの一例を示した図である。
【図2】通常的なゲーム中継システムの一例を示した図である。
【図3】本発明の好適な一実施例に係るサーバーミラーリングシステムの構成を示した図である。
【図4】本発明の好適な一実施例に係るサーバーミラーリングを用いたゲーム中継システムの構成を示した図である。
【図5】本発明の好適な一実施例に係るメッセージルーティングサーバーに生成されるグループを示した図である。
【図6】パブリッシャーゲームサーバーとミラーリングゲームサーバーとの間のゲーム進行状態及び中継状態を示した図である。
【図7】本発明の好適な一実施例に係る放送サーバーシステムの構成を示した図である。
【図8】パブリッシャーゲームサーバー及びミラーリングゲームサーバーにミラーリングされるゲームルーム及びミラーリングゲームルームがそれぞれ生成される過程を示したフローチャートである。
【図9】パブリッシャーゲームサーバー及びミラーリングゲームサーバーにミラーリングされるゲームルーム及びミラーリングゲームルームがそれぞれ生成される過程を示したフローチャートである。
【図10】中継者の解説に対する音声及び映像データがパブリッシャーゲームサーバーまたはミラーリングゲームサーバーの観戦者クライアントに伝送される過程を示したフローチャートである。
【図11】パブリッシャーゲームサーバーでゲームルームが削除されるとき、ミラーリングゲームサーバーでミラーリングゲームルームが削除される過程を示したフローチャートである。
【図12】パブリッシャーゲームサーバーでゲームルームが削除されるとき、ミラーリングゲームサーバーでミラーリングゲームルームが削除される過程を示したフローチャートである。
【図13】パブリッシャーゲームサーバーのゲームルーム内で交換されるゲームコマンドがミラーリングゲームサーバーに伝達される過程に対するフローチャートである。
【図14】特定のミラーリングサーバーで障害が発生する場合、障害を復旧する過程に対するフローチャートである。
【図15】パブリッシャーサーバーのメッセージがメッセージルーティングサーバーを通してサブスクライバーグループに属するミラーリングサーバーに伝達されることを示した概念図である。
【技術分野】
【0001】
本発明は、サーバーミラーリング(mirroring)方法及びそのシステムに関するもので、より詳細には、特定のサーバーに生成されたチャネル情報を他のサーバーにミラーリングする方法及びそのシステムに関するものである。
【背景技術】
【0002】
インターネットの使用者数が継続的に増加しており、これによって、サーバーの負荷がインターネットサービスの最も根本的な問題点の一つとなりつつある。特に、オンラインゲームサービスシステム及びチャットサービスシステムなどのように多数の使用者がサーバーに接続するシステムの場合、サーバー負荷の問題点が一層深刻になる。このようなサーバー負荷問題を解決するための一般的な方法として、使用者の増加とともにサーバーを増設する方法がある。
【0003】
図1は、通常的な複数個のサーバーによるサービス提供システムの一例を示した図で、一つのサーバーで使用者たちのコネクションを全て収容できない場合、図1に示すように、複数のサーバー110,120,130を用いてインターネットサービスを提供する。
【0004】
しかしながら、複数のサーバーを通してサーバーの負荷問題を解決する従来のシステムは、使用者が接続したサーバーに使用者の活動領域を制限してしまうという問題点を有する。すなわち、第1サーバー110に接続した使用者111,112は、第2サーバー120に生成されたチャネルに参加することができず、第2サーバー120に生成されたチャネルの状況をモニタリングすることもできなかった。
【0005】
以下、上記のような問題点を、オンラインゲームサービスシステムを例に挙げてより詳細に説明する。
【0006】
近来のゲーム技術の発展と伴い、スポーツと同様に、ゲームの観戦が一つの文化として定着されつつある。特に、囲碁やスタークラフトなどのような戦略シミュレーションゲームにおいてゲームの観戦に対する使用者の関心が高まるにつれて、ゲームの観戦がゲームプレイと同じ程度に重要な要素となっており、ゲーム中継のための新しいシステムが開発されている。
【0007】
初期には、ゲーム状況をカメラで撮影して放送する方法が主に用いられたが、この方法によると、TV視聴者のみにゲームが中継されるという限界があるので、多くの使用者がコンピュータを通してゲームを観戦できるシステムが要求された。
【0008】
従来のコンピュータを通してゲームを観戦できるゲーム中継システムでは、サーバーの負荷が最も大きな問題であった。ゲーム観戦のために多数の使用者がゲームサーバーに接続する場合、サーバーの容量限界のために、一定の数以上の使用者にはゲーム観戦サービスが提供されないという問題点があった。
【0009】
図2は、通常的なゲーム中継システムの一例を示した図である。
【0010】
多数の使用者が接続するオンラインゲームサービスの場合、使用者は、複数のサーバー210,220,230のうち一つのサーバーを選択し、選択したサーバーでゲームプレイまたはゲーム観戦を行う。
【0011】
例えば、使用者が第1ゲームサーバー210に接続した場合、使用者は、第1ゲームサーバー210に接続した使用者たちとのコミュニケーションが可能であり、第1ゲームサーバー210に生成されたゲームルームのみでゲームプレイまたはゲーム観戦が可能であった。
【0012】
すなわち、第1ゲームサーバー210に接続した使用者は、第2ゲームサーバー220に生成されたゲームルームに参加することができず、第2サーバー220に生成されたゲームルームで進行されるゲーム状況を観戦することもできなかった。
【0013】
したがって、例えば、第1ゲームサーバー210でプロ棋士の間の対局が行われ、特定の中継者が対局状況に対する解説をしている場合、第2ゲームサーバー220及び第3ゲームサーバー230に接続した使用者たちは、第1ゲームサーバー210で進行される対局状況を観戦したり、中継者の解説を聞くことができなかった。
【0014】
上記のような問題点を解決するために、第1ゲームサーバー210での対局進行状況を第1ゲームサーバー210が第2ゲームサーバー220及び第3ゲームサーバー230に伝送することもできるが、この場合、トラフィックが急激に増加するようになる。その結果、対局進行状況を伝達するためのコントロールサーバーを備える必要があり、該コントロールサーバーが非常に複雑なロジックで構成されてしまうという問題点がある。
【0015】
上記のような問題点は、ゲームのみならず、独立的なチャネルを通してサービスを提供する全てのシステムにおいて問題となっている。
【発明の開示】
【発明が解決しようとする課題】
【0016】
本発明は、上記のような従来技術の問題点を解決するためのもので、その目的は、最小のトラフィックで特定のサーバーに生成されたチャネルを他のサーバーにミラーリングできるサーバーミラーリング方法及びそのシステムを提案することにある。
【0017】
本発明の他の目的は、比較的簡単なロジックを有するメッセージルーティングサーバーを用いて特定のサーバーに生成されたチャネルを他のサーバーにミラーリングできるサーバーミラーリング方法及びそのシステムを提案することにある。
【0018】
本発明の更に他の目的は、特定のサーバーに接続した使用者が、他のサーバーに生成されたチャネルの状況をモニタリングできるサーバーミラーリング方法及びそのシステムを提案することにある。
【0019】
本発明の更に他の目的は、サーバー容量の制限を受けることなく、多数の使用者がゲーム中継を観戦できるゲーム中継方法及びそのシステムを提案することにある。
【0020】
本発明の更に他の目的は、サーバーミラーリングを用いることで、ゲームが進行されるサーバーでない他のサーバーに接続した使用者たちもゲーム進行状況を観戦したり、中継者の解説を聞くことができるゲーム中継方法及びそのシステムを提案することにある。
【0021】
本発明の更に他の目的は、比較的簡単なロジックを有するメッセージルーティングサーバーを用いてサーバーミラーリングを行うことで、ゲーム中継時におけるサーバー負荷の問題を解決できるゲーム中継方法及びそのシステムを提案することにある。
【課題を解決するための手段】
【0022】
上記のような目的を達成するための本発明の一側面によると、チャネル生成要請を受信する段階と;前記チャネル生成要請に基づいてパブリッシャーサーバーに第1チャネルを生成する段階と;前記第1チャネルのチャネル生成情報に基づいて少なくとも一つのミラーリングサーバーに第2チャネルを生成する段階と;前記第1チャネルのチャネル状態変更情報に基づいて前記第2チャネルの状態を変更する段階と;を含むことを特徴とするサーバーミラーリング方法が提供される。
【0023】
前記第2チャネルを生成する段階は、メッセージルーティングサーバーにサブスクライバーグループとして登録されている各ミラーリングサーバーに前記第1チャネルのチャネル生成情報に基づいて前記第2チャネルを生成する。
【0024】
前記第1チャネルのチャネル生成情報は第1チャネル番号を含み、前記第2チャネルを生成する段階は、前記第2チャネルに該当する第2チャネル番号を生成する段階と、前記第1及び第2チャネル番号をマッチングさせるマッチングテーブルまたはマッチングコードを生成する段階と、を含む。
【0025】
前記第2チャネルの状態を変更する段階は、メッセージルーティングサーバーにサブスクライバーグループとして連結されているミラーリングサーバーに前記第1チャネルのチャネル状態変更情報を伝送することで、前記第2チャネルの状態を変更する。
【0026】
前記サーバーミラーリング方法は、前記ミラーリングサーバーに障害が発生する場合、前記第1チャネルのヒストリーデータを生成する段階と;前記第1チャネルのヒストリーデータに基づいて前記障害の発生したミラーリングサーバーに第3チャネルを生成する段階と;をさらに含むことができる。
【0027】
前記第1及び第2チャネルは、ゲームルームまたはチャットルームである。
【0028】
本発明の他の側面によると、少なくとも一つのミラーリングサーバーをサブスクライバーグループとして登録させる段階と;パブリッシャーサーバーに生成されたチャネルに対する情報を受信する段階と;前記チャネルに対する情報を前記サブスクライバーグループに伝送する段階と;を含むサーバーミラーリング方法が提供される。
【0029】
前記チャネルに対する情報を前記サブスクライバーグループに伝送する段階は、前記サブスクライバーグループとして登録された全てのミラーリングサーバーに前記チャネルに対する情報を伝送する。
【0030】
前記チャネルに対する情報はチャネル生成情報及びチャネル状態変更情報を含み、前記チャネルはゲームルームまたはチャットルームである。
【0031】
本発明の更に他の側面によると、ゲームルーム生成要請を受信する段階と;前記ゲームルーム生成要請に基づいてパブリッシャーサーバーに第1ゲームルームを生成する段階と;メッセージルーティングサーバーにサブスクライバーグループとして登録されているミラーリングサーバーに、前記第1ゲームルームのゲームルーム生成情報に基づいて第2ゲームルームを生成する段階と;前記第1ゲームルームのゲーム進行情報を、前記メッセージルーティングサーバーを通して前記ミラーリングサーバーに伝送する段階と;を含むサーバーミラーリング方法が提供される。
【0032】
前記サーバーミラーリング方法は、ゲーム中継者から動映像ストリーミングデータを受信する段階と;前記動映像ストリーミングデータをゲーム観戦者に提供する段階と;をさらに含むことができる。
【0033】
前記動映像ストリーミングデータは、2以上の放送サーバーを通して前記ゲーム中継者から受信され、前記2以上の放送サーバーのうち最もロードの少ない放送サーバーを通して前記ゲーム観戦者に提供される。
【0034】
前記第2ゲームルーム生成段階は、前記第2ゲームルームの生成主体として認識される仮想のダミープレイヤーを生成する段階を含むことができる。
【0035】
前記サーバーミラーリング方法は、前記第1ゲームルームの全ての使用者が前記第1ゲームルームから退場する場合、前記第1ゲームルームを削除する段階と;前記第1ゲームルームを削除した後、前記第2ゲームルームの前記ダミープレイヤーを削除する段階と;前記ダミープレイヤーを含む前記第2ゲームルームの全ての使用者が前記第2ゲームルームから退場する場合、前記第2ゲームルームを削除する段階と;をさらに含むことができる。
【0036】
本発明の更に他の側面によると、チャネル生成要請を受信し、前記チャネル生成要請に基づいて第1チャネルを生成し、前記第1チャネルのチャネル生成情報及びチャネル状態変更情報を発生させるパブリッシャーサーバーと;前記パブリッシャーサーバーから前記第1チャネルのチャネル生成情報及びチャネル状態変更情報を受信するメッセージルーティングサーバーと;前記メッセージルーティングサーバーにサブスクライバーグループとして登録されており、前記メッセージルーティングサーバーから前記第1チャネルのチャネル生成情報及びチャネル状態変更情報を受信し、前記第1チャネルのチャネル生成情報に基づいて第2チャネルを生成し、前記第1チャネルのチャネル状態変更情報に基づいて前記第2チャネルの状態を変更させるミラーリングサーバーと;を含むサーバーミラーリングシステムを提供する。
【0037】
前記メッセージルーティングサーバーは、前記サブスクライバーグループとして登録された全てのミラーリングサーバーに前記第1チャネルのチャネル生成情報及びチャネル状態変更情報を伝送する。
【0038】
前記第1及び第2チャネルがゲームルームである場合、前記サーバーミラーリングシステムは、ゲーム中継者クライアントから動映像ストリーミングデータを受信し、前記動映像ストリーミングデータを前記第1及び第2チャネルにそれぞれ接続したゲーム観戦者クライアントに伝送する放送サーバーシステムをさらに含むことができる。
【0039】
前記放送サーバーシステムは接続制御サーバーを含み、前記接続制御サーバーは、前記ゲーム中継者クライアントから前記動映像ストリーミングデータを受信する2以上の放送サーバーを指定し、前記指定された2以上の放送サーバーのうち一つの放送サーバーのみを、前記ゲーム観戦者クライアントに前記動映像ストリーミングデータを伝送するためのサーバーとして指定することができる。
【発明の効果】
【0040】
本発明のサーバーミラーリング方法及びそのシステムによると、最小のトラフィックで特定のサーバーに生成されたチャネルの状況を他のサーバーに接続した使用者または運営者がモニタリングすることができ、比較的簡単なロジックを有するメッセージルーティングサーバーを用いて特定のサーバーに生成されたチャネルを他のサーバーにミラーリングすることができる。
【0041】
特に、特定のゲームサーバーに生成されたゲームルームで進行されるゲームを、他のサーバーに接続した使用者たちが過度なトラフィックの誘発なしに観戦することができる。
【0042】
また、本発明によるサーバーミラーリング方法は、ゲーム運営者たちが特定のサーバーに形成されたゲームルームの状況をモニタリングする場合にも用いることができる。ゲーム運営者たちは、ゲーム内の不正行為などをモニタリングするためにゲームルームにアクセスしなくても、運営者が接続したサーバーに該当のゲームルームをミラーリングすることで、ゲームルームの状況をモニタリングすることができる。
【0043】
また、本発明によるサーバーミラーリング方法は、特定のチャットサーバーに接続した使用者が、他のチャットサーバーに生成されたチャットルームのチャット状況をモニタリングするときに用いることができる。
【発明を実施するための最良の形態】
【0044】
以下、添付された図面を参照して、本発明によるサーバーミラーリングシステム及びその方法の好適な実施例を詳細に説明する。
【0045】
本発明は、サーバーに生成された特定のチャネルの情報を他のサーバーにミラーリングする方法及びそのシステムに関するものである。多数の使用者が接続し、各使用者の間の競争または協力を通してゲームを進行するオンラインゲームサーバー、または接続した各使用者の間のチャットメッセージを交換するチャットサーバーなどは、サーバー内に多数のチャネルを形成し、チャネルに参加した使用者たちが伝送するメッセージパケットを同一のチャネルを通して他の使用者たちに伝送する。主に、このようなチャネルは‘ルーム’と命名されるもので、ゲームサーバーの場合にはゲームルームという形態で称され、チャットサーバーの場合にはチャットルームという形態で称される。本発明は、ゲームサーバーまたはチャットサーバーの他にも、チャネルを形成して使用者たちの要請を処理するサーバーに適用可能である。以下、本発明を一般的に説明するときには‘チャネル’または‘ルーム’という用語を使用し、本発明をオンラインゲームまたはチャットサービスなどに限定して説明するときには‘ゲームルーム’または‘チャットルーム’という用語を使用することにする。
【0046】
図3は、本発明の好適な一実施例に係るサーバーミラーリングシステムの構成を示した図である。
【0047】
図3を参照すると、本発明の一実施例に係るサーバーミラーリングシステムは、メッセージルーティングサーバー340及び複数のサーバー310,320,330を含むことができる。複数のサーバーには、複数の使用者クライアント311,312,321,322,331,332がネットワーク(図示せず)を通して連結される。
【0048】
第1サーバー310、第2サーバー320及び第3サーバー330には、それぞれ独立的にチャネルが形成され、各クライアント311,312,321,322,331,332は、接続したサーバーに形成されたチャネルに参加する。
【0049】
図3において、第1サーバー310に生成されたチャネルは第2サーバー320及び第3サーバー330にミラーリングされ、第1サーバー310のようにチャネルがミラーリングされるサーバーをパブリッシャー(Publisher)サーバーといい、第2サーバー320及び第3サーバー330のように他のサーバーのチャネルをミラーリングするサーバーをミラーリング(Mirroring)サーバーという。
【0050】
パブリッシャーサーバーである第1サーバー310は、使用者からの要請を受信し、他のサーバーにミラーリングされるチャネルを生成する。第1サーバー310に生成されたチャネルに対する情報(以下、“チャネル生成情報”という。)は、メッセージルーティングサーバー340に伝送される。ここで、チャネル生成情報は、チャネルのタイプ及び/またはチャネルに関与している使用者情報を含むことができる。
【0051】
また、第1サーバー310は、生成されたチャネルで発生する状況に対する情報をメッセージルーティングサーバー340に伝送する。ここで、チャネルで発生する状況または状態の変更に対する情報(以下、“チャネル状態変更情報”という。)は、チャネルがオンラインゲームのためのゲームルームである場合には、ゲーム進行情報、例えば、ゲーム進行のために伝送するゲームコマンド情報を含むことができ、チャネルがチャットルームである場合にはチャットメッセージを含むことができる。
【0052】
本発明では、チャネルミラーリングのための各サーバーの間の通信を簡素化するためにメッセージルーティングサーバー340を用いる。メッセージルーティングサーバー340は、第1サーバー310からチャネル生成情報及びチャネル状態変更情報を受信し、これを第2サーバー320及び第3サーバー330に提供する。
【0053】
図4は、本発明の好適な一実施例に係るサーバーミラーリングを用いたゲーム中継システムの構成を示した図である。
【0054】
図4を参照すると、本発明の一実施例に係るサーバーミラーリングを用いたゲーム中継システムは、複数のゲームサーバー410,420,430、メッセージルーティングサーバー440及び放送サーバーシステム450を含むことができる。本発明の一実施例に係るサーバーミラーリングを用いたゲーム中継システムには、ネットワークを通して複数の使用者クライアント411,412,421,422,431,432が連結される。
【0055】
ここで、ゲームサーバーの特定のゲームルームで進行されるゲームは、各使用者の間の競争または協力を通してゲームを進行する多様な種類のオンラインゲームを含むことができる。例えば、本発明によって中継されるゲームは、囲碁及び将棋などのゲームであったり、スタークラフト及びウォークラフトなどのリアルタイム戦略シミュレーションゲームである。
【0056】
本発明によるゲーム中継システムには、このようなゲームの他にも、多様な種類のボードゲーム及び対戦ゲームなどが使用される。
【0057】
本発明では、ゲームが進行されて中継されるゲームルームが開設されたゲームサーバーに接続していない使用者たちも、サーバーミラーリングを用いてゲーム中継を観戦できる方法を提案する。例えば、本発明によると、第1ゲームサーバー410の特定のゲームルームでゲーム及びその中継が進行される場合、第2ゲームサーバー420及び第3ゲームサーバー430に接続した使用者たちも、第1ゲームサーバー410の特定のゲームルームで進行されるゲーム中継を観戦することが可能である。
【0058】
本発明の好適な実施例によると、特定のサーバーのゲームルームを他のサーバーにミラーリングすることで、他のサーバーに接続した使用者たちも、その接続されたサーバーにミラーリングによって生成されたゲームルーム(以下、“ミラーリングゲームルーム”という。)を通してゲーム中継を観戦することができる。通常、ゲーム及びその中継が進行されるゲームルームには、ゲームを直接プレイするプレイヤー、プレイヤーのゲームに対する解説をする中継者、及びゲームを観戦しながら解説を聞く観戦者が参加する。他のサーバーのミラーリングゲームルームに参加した使用者たちは、ゲーム及びその中継が進行されるゲームルームに参加した場合と同様に、各プレイヤーによるゲーム進行状況を観戦したり、中継者の解説情報を聞くことができる。
【0059】
図4において、第1ゲームサーバー410に生成されたゲームルームは第2ゲームサーバー420及び第3ゲームサーバー430にミラーリングされ、第1ゲームサーバー410のように他のゲームサーバーにミラーリングされるゲームルームを有するサーバーをパブリッシャーゲームサーバーといい、第2ゲームサーバー420及び第3ゲームサーバー430のように他のゲームサーバーのゲームルームをミラーリングするサーバーをミラーリングゲームサーバーという。
【0060】
パブリッシャーゲームサーバーとして機能する第1ゲームサーバー410は、ゲームプレイヤーまたはゲーム中継者から他のサーバーにミラーリングされるゲームルーム生成要請情報を受信する。ゲームルーム生成を要請したゲームプレイヤーまたはゲーム中継者は、ゲームルーム生成を要請するとき、ゲーム中継のために他のサーバーにミラーリングされるゲームルームという情報を入力する。
【0061】
第1ゲームサーバー410は、ゲームプレイヤーまたはゲーム中継者のゲームルーム生成要請に応答して他のサーバーにミラーリングされるゲームルームを生成する。生成されたゲームルームには、ゲームルーム生成者の他に、ゲームプレイヤー、中継者及び観戦者などが参加する。
【0062】
第1ゲームサーバー410に生成されたゲームルーム情報(以下、“ゲームルーム生成情報”という。)は、メッセージルーティングサーバー440に伝送される。ここで、ゲームルーム生成情報は、ゲームルームタイプ、ゲームルームに参加した使用者情報、ゲームルームタイトル及びゲームルーム番号などを含むことができる。また、第1ゲームサーバー410は、生成されたゲームルームでのゲーム進行状況に関する情報(以下、“ゲーム進行情報”という。)をメッセージルーティングサーバー440に伝送する。ここで、ゲーム進行情報は、ゲームプレイヤーたちがオンラインゲーム進行のために伝送するゲームコマンド情報を含むことができる。例えば、第1ゲームサーバー410で進行されるゲームが囲碁ゲームである場合、前記ゲームコマンド情報は囲碁棋譜情報である。第1ゲームサーバー410で進行されるゲームが戦略シミュレーションゲームである場合、ゲームコマンド情報は、ユニットの攻撃命令及びユニットの移動命令などを含むことができる。また、ゲーム進行情報は、第1ゲームサーバー410のゲームルームに参加したプレイヤー、中継者及び観戦者が交換するチャットメッセージを含むことができる。
【0063】
また、本発明の好適な実施例では、ゲームルームミラーリングのための各サーバーの間の通信を簡素化するためにメッセージルーティングサーバー440を用いる。メッセージルーティングサーバー440は、第1ゲームサーバー410で提供するゲームルーム生成情報メッセージ及びゲーム進行情報メッセージを第2ゲームサーバー420及び第3ゲームサーバー430に提供する。
【0064】
一方、中継者の音声及び映像情報は、放送サーバーシステム450を通してパブリッシャーゲームサーバーである第1ゲームサーバー410のゲームルームに参加した使用者と、ミラーリングゲームサーバーである第2ゲームサーバー420及び第3ゲームサーバー430のミラーリングゲームルームに参加した使用者に提供される。
【0065】
中継者がパブリッシャーゲームサーバーである第1ゲームサーバー410のゲームルームに参加する場合、中継者は、放送サーバーシステム450に解説動映像放送のための放送IDを要請し、放送サーバーシステム450は、ゲーム解説のための放送ID、中継者の音声及び映像情報を放送する放送サーバーの住所情報(Address Information)を提供する。
【0066】
中継者のゲームアプリケーションには、中継者の音声及び映像を動映像ストリーミングデータにコーディングするモジュールが備わり、中継者の音声及び映像を含む動映像ストリーミングデータは、放送サーバーシステム450によって定められた放送サーバーに伝送される。
【0067】
パブリッシャーゲームサーバーである第1ゲームサーバー410に生成されたゲームルーム、ミラーリングゲームサーバーである第2ゲームサーバー420及び第3ゲームサーバー430に生成されたミラーリングゲームルームに参加した使用者たちは、参加した各ゲームルームから中継者の解説情報をストリーミングするための放送ID情報を受ける。
【0068】
すなわち、本発明の好適な実施例によると、囲碁棋譜などのゲーム進行情報は、メッセージルーティングサーバー440を通してミラーリングゲームサーバーに生成されたミラーリングゲームルームに伝送され、中継者の解説動映像ストリーミングデータは、放送サーバーシステム450を通してパブリッシャーゲームサーバーのゲームルーム及びミラーリングゲームサーバーのミラーリングゲームルームに参加した各使用者クライアントに伝送される。
【0069】
したがって、第1ゲームサーバー410の観戦者がサーバーの収容限界を越えるほどに多くなるとしても、他の使用者たちは、第2ゲームサーバー420及び第3ゲームサーバー430に接続してゲームを観戦することができる。
【0070】
以下、本発明の好適な実施例に係るメッセージルーティングサーバー340について説明する。本発明の好適な実施例によると、メッセージルーティングサーバー340は、複数のコネクションを一つのグループとして管理する機能を支援する。
【0071】
図5は、本発明の好適な一実施例に係るメッセージルーティングサーバー340に生成されるグループを示した図である。
【0072】
図5を参照すると、本発明の一実施例に係るメッセージルーティングサーバー340にはサブスクライバーグループ520及びパブリッシャーグループ510が生成され、サブスクライバーグループ520は、パブリッシャーサーバーのチャネルをミラーリングするミラーリングサーバーの属するグループであり、パブリッシャーグループ510は、ミラーリングされるチャネル情報を提供するパブリッシャーサーバーの属するグループである。
【0073】
例えば、図3において、パブリッシャーサーバーとして機能する第1サーバー310はパブリッシャーグループ510に登録され、ミラーリングサーバーとして機能する第2サーバー320及び第3サーバー330はサブスクライバーグループ520に登録される。
【0074】
メッセージルーティングサーバー340と連結された第1サーバー乃至第3サーバー310,320,330は、サーバーの開始時にメッセージルーティングサーバー340のパブリッシャーグループ510またはサブスクライバーグループ520のうち一つに参加するように設定され、メッセージルーティングサーバー340は、連結された各サーバーの要請によってサブスクライバーグループ520またはパブリッシャーグループ510に参加させる。
【0075】
本発明の好適な実施例によると、パブリッシャーサーバーである第1サーバー310は、マルチキャスト方式でミラーリングされるチャネルに対する情報をメッセージルーティングサーバー340に提供する。パブリッシャーサーバーである第1サーバー310は、メッセージルーティングサーバー340にサブスクライバーグループ520に伝送されるメッセージという情報のみを含み、メッセージルーティングサーバー340にチャネル情報を提供する。すなわち、第1サーバー310がメッセージルーティングサーバー340に伝送するチャネル情報と関連したメッセージは、チャネル情報をミラーリングする第2サーバー320及び第3サーバー330の住所情報を含んでおらず、メッセージが伝送されるサブスクライバーグループ520の識別情報のみを含む。
【0076】
メッセージルーティングサーバー340は、パブリッシャーサーバーである第1サーバー310からサブスクライバーグループ520に伝送されるメッセージを受信する場合、サブスクライバーグループ520に参加した全てのミラーリングサーバーにパブリッシャーサーバーから伝送されたメッセージを伝送する。すなわち、メッセージルーティングサーバー340は、第1サーバー310からメッセージを受信し、これをサブスクライバーグループ520に参加した第2サーバー320及び第3サーバー330に伝送する。
【0077】
メッセージルーティングサーバー340は、伝送されるメッセージがサブスクライバーグループ520の各サーバーに伝送されるメッセージであるか、パブリッシャーグループ510の各サーバーに伝送されるメッセージであるかを判断し、受信されたメッセージをパブリッシャーグループ510のサーバーまたはサブスクライバーグループ520のサーバーに伝送する役割のみを行い、受信されたメッセージの分析、判断及び制御手順は行わない。
【0078】
したがって、メッセージルーティングサーバー340は、既存のサーバーの間の情報交換のためのコントロールサーバーに比べて簡素な構成を有することができ、メッセージも、メッセージの受信者をその都度指定する必要なしに、より単純化された方式で伝送されるので、メッセージトラフィックも減少する。
【0079】
サブスクライバーサーバーである第2サーバー320及び第3サーバー330は、メッセージルーティングサーバー340からパブリッシャーサーバーである第1サーバー310が伝送したチャネル関連メッセージを受信し、メッセージを分析してチャネルミラーリングを行う。
【0080】
例えば、第1サーバー310から伝送されたメッセージがチャネル生成情報を含むメッセージである場合、第2サーバー320及び第3サーバー330は、メッセージを分析し、チャネル生成情報に含まれた情報と同一の条件を有するチャネル(以下、“ミラーリングチャネル”という。)を生成する。第1サーバー310から伝送されたメッセージがチャネルの状態変更情報を含むメッセージである場合、第2サーバー320及び第3サーバー330は、メッセージを分析し、第1サーバーのチャネルと同一の状態にミラーリングチャネルの状態を変更する。
【0081】
図15は、パブリッシャーサーバーのメッセージがメッセージルーティングサーバーを通してサブスクライバーグループに属した各ミラーリングサーバーに伝達されることを示した概念図である。
【0082】
図15を参照すると、メッセージルーティングサーバーのパブリッシャーグループ510及びサブスクライバーグループ520に参加したパブリッシャーサーバー1530及びミラーリングサーバー1510,1520は、ソケットを通してメッセージルーティングサーバーと連結される。
【0083】
図15に示すように、パブリッシャーサーバー1530がサブスクライバーグループ520に参加した各ミラーリングサーバー1510,1520にメッセージを伝達しようとする場合、パブリッシャーサーバー1530は、サブスクライバーグループ520を目的地(Destination)住所としてマルチキャスト方式でメッセージを伝送する。
【0084】
メッセージルーティングサーバーは、サブスクライバーグループ520に属した各ミラーリングサーバー1510,1520との連結媒体であるソケットを通して各ミラーリングサーバー1510,1520にパブリッシャーサーバー1530から伝送されたメッセージを伝達する。
【0085】
一方、サーバーミラーリングを用いたゲーム中継システムの場合、図5の第1、第2及び第3サーバー310,320,330は、図4の第1、第2及び第3ゲームサーバー410,420,430にそれぞれ該当し、チャネル生成情報及びチャネル状態変更情報は、ゲームルーム生成情報及びゲーム進行情報を意味する。
【0086】
すなわち、メッセージルーティングサーバー440は、パブリッシャーゲームサーバーである第1ゲームサーバー410からサブスクライバーグループ520に伝送されるメッセージを受信する場合、サブスクライバーグループ520に参加した全てのミラーリングゲームサーバーにパブリッシャーゲームサーバーから伝送されたメッセージを伝送する。すなわち、メッセージルーティングサーバー440は、サブスクライバーグループ520に参加した第2ゲームサーバー420及び第3サーバー430に第1ゲームサーバー410から伝送されたメッセージを伝送する。
【0087】
ミラーリングゲームサーバーである第2ゲームサーバー420及び第3ゲームサーバー430は、メッセージルーティングサーバー440からパブリッシャーゲームサーバーである第1ゲームサーバー410が伝送したゲームルーム関連メッセージを受信し、メッセージを分析してゲームルームミラーリングを行う。
【0088】
例えば、第1ゲームサーバー410から伝送されたメッセージがゲームルーム生成情報を含むメッセージである場合、第2ゲームサーバー420及び第3サーバー430は、メッセージを分析し、ゲームルーム生成情報に含まれた情報と同一の条件を有するゲームルームを生成する。第1ゲームサーバー410から伝送されたメッセージがゲーム進行情報を含むメッセージである場合、第2ゲームサーバー420及び第3ゲームサーバー430は、メッセージを分析し、第1ゲームサーバーのゲームルームで進行されるゲームの進行状況をミラーリングゲームルームに反映する。
【0089】
上述したような構成によると、中継されるゲームが囲碁ゲームである場合、各プレイヤーによる囲碁棋譜情報及び解説者の解説のための囲碁棋譜情報は、メッセージルーティングサーバー440を通して第2ゲームサーバー420及び第3ゲームサーバー430のミラーリングゲームルームに伝送され、第2ゲームサーバー420及び第3ゲームサーバー430のミラーリングゲームルームに参加した使用者たちは、第1ゲームサーバー410のゲームルームでのプレイヤー及び解説者の棋譜情報を受けることができる。
【0090】
図6は、パブリッシャーゲームサーバーとミラーリングゲームサーバーとの間のゲーム進行及び中継の状態を示した図である。
【0091】
図6を参照すると、パブリッシャーゲームサーバーのゲームルーム610はプレイヤーまたは中継者によって生成され、パブリッシャーゲームサーバーに接続した使用者のみがパブリッシャーゲームサーバーのゲームルーム610に参加する。パブリッシャーゲームサーバーのゲームルーム610に参加した使用者のうちプレイヤーは、パブリッシャーゲームサーバーを通してゲームパケットを交換しながらゲームを進行する。ゲームは、囲碁ゲーム、戦略シミュレーションゲーム及びボードゲームなどを含むことができ、パブリッシャーゲームサーバーに接続したプレイヤークライアントには、ゲームプレイのためのアプリケーションが設置されている。
【0092】
パブリッシャーゲームサーバーは、ゲームルーム生成情報、ゲーム進行中に交換されるゲームコマンド情報及びゲームルーム終了情報などのゲームルームのゲーム進行状況と関連した情報がメッセージルーティングサーバー440のサブスクライバーグループに伝送されるようにプログラミングされる。
【0093】
パブリッシャーゲームサーバーでゲームルーム610が生成される場合、ゲームルーム生成情報は、メッセージルーティングサーバー440を通してミラーリングゲームサーバーに伝送され、ミラーリングゲームサーバーには、パブリッシャーゲームサーバーで生成されたゲームルーム610と同一の条件のゲームルーム620が生成される。
【0094】
パブリッシャーゲームサーバーなどのゲームルーム620の生成のために、ミラーリングゲームサーバーは、ゲームルームの生成主体として認識される仮想のダミープレイヤーを生成する。ダミープレイヤーは、ゲームルーム620が生成されるときにゲームルーム620に対する制御権限を有するプレイヤーが必要であることから、仮想的に生成されるプレイヤーであり、一般的なプレイヤーと同一の構造を有しているが、クライアントとの連結を有していないので、ダミープレイヤーへのデータ送受信は不可能であることが好ましい。
【0095】
ミラーリングゲームサーバーに生成されたゲームルーム620には、ミラーリングゲームサーバーに接続した使用者たちが参加する。ゲームルーム生成メッセージがパブリッシャーゲームサーバーからメッセージルーティングサーバー440を通してサブスクライバーグループに参加した各ミラーリングゲームサーバーに伝送される場合、ミラーリングゲームサーバーは、ゲームルーム生成メッセージに含まれたゲームルーム情報と同一の条件のミラーリングゲームルーム620を生成する。ミラーリングゲームサーバーは、一般的なゲームルームと一緒に、ミラーリングされたゲームルーム620もゲームルームリストに含ませて使用者に提供し、ミラーリングゲームサーバーに接続した使用者たちは、ミラーリングされたゲームルーム620に参加することができる。
【0096】
パブリッシャーゲームサーバーのゲームルーム610でゲームが進行される場合、パブリッシャーゲームサーバーのゲームルーム610は、ゲーム進行と関連した情報をメッセージルーティングサーバー440に伝送し、メッセージルーティングサーバー440は、ゲーム進行情報をサブスクライバーグループに参加したミラーリングゲームサーバーに伝送し、ミラーリングゲームサーバーは、ゲーム進行情報を関連したゲームルーム620に伝達する。したがって、ミラーリングゲームルーム620に参加した使用者たちは、パブリッシャーゲームサーバーで進行されるゲーム状況を観戦することができる。
【0097】
例えば、パブリッシャーゲームサーバーのゲームルーム610で囲碁ゲームが進行される場合、パブリッシャーゲームサーバーのゲームルーム610のプレイヤーたちによって生成される棋譜情報は、実時間(リアルタイム)でメッセージルーティングサーバー440を通してミラーリングゲームサーバーのゲームルーム620に伝送され、ミラーリングゲームサーバーのゲームルーム620は、伝送された棋譜情報を参加した観戦者たちに提供し、囲碁観戦を可能にする。
【0098】
図7は、本発明の好適な一実施例に係る放送サーバーシステムの構成を示した図である。
【0099】
図7を参照すると、本発明の一実施例に係る放送サーバーシステムは、接続制御サーバー710及び複数の放送サーバー720,730,740を含むことができる。
【0100】
接続制御サーバー710は、中継者クライアント701から放送ID要請情報を受信し、中継者クライアント701に放送ID及び中継者クライアント701が動映像ストリーミングデータを伝送する放送サーバー720,730の住所情報を提供する。
【0101】
従来では、接続制御サーバーは、中継者クライアントが放送IDを要請する場合、中継者クライアントが動映像ストリーミングデータを伝送する一つの放送サーバーの住所を提供していた。通常、接続制御サーバーは、複数の放送サーバーのうちロードの最も少ない放送サーバーの住所情報を提供していた。
【0102】
しかしながら、本発明の好適な実施例によると、接続制御サーバー710は、中継者クライアント701に動映像ストリーミングデータを伝送する少なくとも二つの放送サーバー720,730の住所を提供し、中継者クライアント701は、二つの放送サーバー720,730に動映像ストリーミングデータをそれぞれ伝送する。図7に示すように、接続制御サーバー710が放送サーバー1(720)及び放送サーバー2(730)に接続するように住所情報を提供した場合、中継者クライアント701は、放送サーバー1(720)及び放送サーバー2(730)に動映像ストリーミングデータをそれぞれ伝送する。
【0103】
ここで、住所情報は、放送サーバーのIPアドレス及びポート番号であるが、その他の住所情報も使用可能であることは当業者にとって自明である。
【0104】
通常、放送サーバーには約2500人が同時に接続可能であり、最大の接続人員を超える場合、ストリーミングデータの中断現象が発生する。したがって、本発明の好適な実施例によると、このようなストリーミングデータの中断現象を防止するために、中継者クライアント701が複数の放送サーバーに動映像ストリーミングデータを伝送している。
【0105】
接続制御サーバー710は、放送IDに相応する放送サーバーのIPアドレス及びポート番号を管理し、観戦者クライアント702が放送IDに相応する住所情報を要請する場合、観戦者クライアント702に放送IDに相応する放送サーバーのIPアドレス及びポート番号を提供する。二つの放送サーバー720,730に中継者の動映像ストリーミングデータが伝送されるが、観戦者クライアントには、二つの放送サーバー720,730のうち一つの放送サーバー730のIPアドレス及びポート番号のみを提供する。接続制御サーバー710は、二つの放送サーバー720,730のうちロードの少ない放送サーバー730の住所情報を提供することができる。
【0106】
図7において、放送サーバー2(730)のロードが放送サーバー1(720)のロードより少ないと判断される場合、接続制御サーバー710は、観戦者クライアント702に放送サーバー2(730)の住所情報を提供し、観戦者クライアント702は、放送サーバー2(730)から中継者の動映像ストリーミングデータを受信する。
【0107】
図8及び図9は、パブリッシャーゲームサーバー及びミラーリングゲームサーバーにミラーリングされるゲームルーム及びミラーリングゲームルームがそれぞれ生成される過程を示したフローチャートである。図8は、ゲームプレイヤーがミラーリングされるゲームルームの生成をパブリッシャーゲームサーバーに要請する場合を示したフローチャートで、図9は、ゲーム中継者がゲームルームの生成を要請する場合を示したフローチャートである。
【0108】
図8を参照すると、ゲームプレイヤーは、クライアントを通してパブリッシャーゲームサーバーにゲームルームの生成を要請する(段階810)。プレイヤーは、他のサーバーにミラーリングされるゲームルームを予め指定して要請することができる。パブリッシャーゲームサーバーは、ゲームルームの生成時に他のサーバーにミラーリングするかどうかを選択するインターフェースを提供し、ゲームプレイヤーは、インターフェースを通して他のサーバーにミラーリングされるゲームルームの生成を要請することができる。
【0109】
パブリッシャーゲームサーバーは、プレイヤークライアントのゲームルーム生成要請に応答してゲームルームを生成する(段階820)。パブリッシャーゲームサーバーは、ゲームルーム生成を完了した後、プレイヤークライアントにゲームルーム生成情報を伝送し(段階830)、プレイヤークライアントは、パブリッシャーゲームサーバーに生成されたゲームルームに参加する(段階840)。
【0110】
パブリッシャーゲームサーバーは、メッセージルーティングサーバーのパブリッシャーグループに参加した状態であり、他のサーバーにミラーリングゲームルームが生成される場合、ゲームルーム生成情報をメッセージルーティングサーバーのサブスクライバーグループに伝送するように設定されている。
【0111】
パブリッシャーゲームサーバーは、ゲームルーム生成メッセージをメッセージルーティングサーバーに伝送する(段階850)。ゲームルーム生成メッセージは、ゲームルームタイトル、ゲームルームのゲームID、ゲームルーム設定情報などを含むことができ、ゲームルーム生成メッセージの目的地住所は、メッセージルーティングサーバーのサブスクライバーグループに設定される。
【0112】
ゲームルーム生成メッセージを受信したメッセージルーティングサーバーは、ゲームルーム生成メッセージを、サブスクライバーグループに参加してソケットを通してメッセージルーティングサーバーに連結されているミラーリングゲームサーバーにそれぞれ伝送する(段階860)。
【0113】
メッセージルーティングサーバーのサブスクライバーグループに参加したミラーリングゲームサーバーは、ゲームルーム生成メッセージをそれぞれ受信すると、ミラーリングゲームルーム生成のために仮想のダミープレイヤーを生成する(段階870)。上述したように、ダミープレイヤーは、一般的なプレイヤーと同一の構造を有しているが、クライアントとの連結を有していないので、ダミープレイヤーへのデータ送受信は不可能である。
【0114】
ダミープレイヤーが生成されると、ミラーリングゲームサーバーは、受信したゲームルーム生成情報に含まれた情報と同一の条件を有し、かつダミープレイヤーがゲームルーム生成者として設定されるゲームルームを生成する(段階880)。ミラーリングゲームサーバーにミラーリングゲームルームが生成される際、ミラーリングゲームルームの番号は、各ミラーリングゲームサーバーによって独立的に与えられたり、ミラーリングゲームルームのために予め用意された番号が与えられたり、また、一般的なゲームルームのように順次的に番号が与えられる。なお、ミラーリングゲームサーバーは、パブリッシャーゲームサーバーで生成されたゲームルームとミラーリングゲームルームとを互いにマッチングできるように、パブリッシャーゲームサーバーのゲームルーム番号とミラーリングゲームルーム番号とをマッチングさせるマッチングテーブルまたはマッチングコードを管理する。
【0115】
図9は、ゲーム中継者がミラーリングされるゲームルームの生成をパブリッシャーゲームサーバーに要請する場合のミラーリングゲームルーム生成過程を示したフローチャートである。
【0116】
図9を参照すると、中継者クライアントは、パブリッシャーゲームサーバーにゲームルームの生成を要請する(段階911)。中継者は、他のサーバーにミラーリングされるゲームルームを予め指定して要請することができる。パブリッシャーゲームサーバーは、ゲームルームの生成時に他のサーバーにミラーリングするかどうかを選択するインターフェースを提供し、中継者は、インターフェースを通して他のサーバーにミラーリングされるゲームルームの生成を要請することができる。
【0117】
パブリッシャーゲームサーバーは、中継者クライアントのゲームルーム生成要請に応答してゲームルームを生成する(段階912)。パブリッシャーゲームサーバーは、ゲームルームの生成を完了した後、中継者クライアントにゲームルーム生成情報を伝送し(段階913)、中継者クライアントは、パブリッシャーゲームサーバーに生成されたゲームルームに参加する(段階914)。ゲームルームの生成後、ゲームプレイヤー及び観戦者は、生成されたゲームルームに参加することができる。
【0118】
中継者がゲームルームに参加した後、中継者クライアントは、放送サーバーシステムに放送IDを要請する(段階921)。放送サーバーシステムは、中継者クライアントの放送ID要請に応答して、放送ID及び放送IDに相応して中継者クライアントが動映像ストリーミングデータを伝送する放送サーバーの住所情報を提供する(段階922)。中継者クライアントは、該当の放送サーバーに動映像ストリーミングデータを伝送する(段階923)。
【0119】
また、パブリッシャーゲームサーバーは、メッセージルーティングサーバーのパブリッシャーグループに参加した状態であり、他のサーバーにミラーリングゲームルームが生成される場合、ゲームルーム生成情報をメッセージルーティングサーバーのサブスクライバーグループに伝送するように設定されている。
【0120】
パブリッシャーゲームサーバーは、ゲームルーム生成情報を含むメッセージをメッセージルーティングサーバーに伝送する(段階915)。ゲームルーム生成情報は、ゲームルーム番号、ゲームルームタイトル、ゲームルームのゲームID、ゲームルーム設定情報及び放送ID(放送サーバーシステムから中継者クライアントに割り当てられる)などを含むことができ、ゲームルーム生成メッセージの目的地住所は、メッセージルーティングサーバーのサブスクライバーグループに設定される。
【0121】
ゲームルーム生成メッセージを受信したメッセージルーティングサーバーは、ゲームルーム生成メッセージを、サブスクライバーグループに参加してソケットを通してメッセージルーティングサーバーと連結されているミラーリングゲームサーバーにそれぞれ伝送する(段階916)。
【0122】
メッセージルーティングサーバーのサブスクライバーグループに参加したミラーリングゲームサーバーは、ゲームルーム生成メッセージをそれぞれ受信し、ミラーリングゲームルーム生成のために仮想のダミープレイヤーを生成する(段階917)。上述したように、ダミープレイヤーは、一般的なプレイヤーと同一の構造を有しているが、クライアントとの連結を有していないので、ダミープレイヤーへのデータを送受信は不可能である。
【0123】
ダミープレイヤーが生成されると、ミラーリングゲームサーバーは、受信したゲームルーム生成情報に含まれた情報と同一の条件を有し、前記ダミープレイヤーがゲームルーム生成者として設定されるゲームルームを生成する(段階918)。ミラーリングゲームサーバーに生成されるミラーリングゲームルームの番号は、各ミラーリングゲームサーバーによって独立的に与えられたり、ミラーリングゲームルームのために予め用意された番号が与えられたり、また、一般的なゲームルームのように順次的に番号が与えられる。ミラーリングゲームサーバーは、パブリッシャーゲームサーバーで生成されたゲームルームとミラーリングゲームルームとを互いにマッチングできるように、パブリッシャーゲームサーバーのゲームルーム番号とミラーリングゲームルームの番号とをマッチングさせるマッチングテーブルまたはマッチングコードを管理する。
【0124】
図10は、中継者の解説に対する音声及び映像データがパブリッシャーゲームサーバーまたはミラーリングゲームサーバーの観戦者クライアントに伝送される過程を示したフローチャートである。
【0125】
図10を参照すると、中継者クライアントが他のサーバーにミラーリングされる中継ゲームルームに参加した場合、中継者クライアントは、放送サーバーシステムの接続制御サーバーに放送IDを要請する(段階1010)。
【0126】
接続制御サーバーは、放送ID及び複数の放送サーバーのうち放送IDを要請した中継者クライアントが解説に対する動映像ストリーミングデータを伝送する放送サーバーの住所情報を中継者クライアントに伝送する(段階1020)。上述したように、接続制御サーバーは、少なくとも二つの放送サーバー住所情報を提供する。
【0127】
中継者クライアントは、接続制御サーバーから二つの放送サーバー住所情報を受けた場合、放送サーバー1及び放送サーバー2に中継者の動映像ストリーミングデータをそれぞれ伝送する(段階1030、1040)。図10には、放送サーバー1及び放送サーバー2に動映像ストリーミングデータが順次的に伝送されるように示されているが、中継者クライアントは、放送サーバー1及び放送サーバー2に同時に動映像ストリーミングデータを伝送する。
【0128】
一方、パブリッシャーゲームサーバーのゲームルームの観戦者またはミラーリングゲームサーバーに生成されたミラーリングゲームルームに参加した観戦者は、ゲームルームの参加時に中継者の放送ID情報を受ける(段階1050)。
【0129】
放送ID情報を受けた観戦者クライアントは、接続制御サーバーに放送IDに相応する放送サーバーの住所情報を要請する(段階1060)。
【0130】
接続制御サーバーは、放送IDに相応する二つの放送サーバー住所のうち一つの放送サーバー住所情報を観戦者クライアントに伝送する(段階1070)。上述したように、二つの放送サーバーのうちロードの少ない放送サーバーの住所情報を伝送することが好ましい。
【0131】
接続制御サーバーが放送サーバー2の住所情報を提供した場合、観戦者クライアントは、放送サーバー2に動映像ストリーミングデータの伝送を要請し(段階1080)、放送サーバー2は、中継者から伝送される解説に対する動映像ストリーミングデータを受信し、これを観戦者クライアントに伝送する(段階1090)。
【0132】
図10の過程によって、パブリッシャーゲームサーバーのゲームルームまたはミラーリングゲームサーバーのミラーリングゲームルームに参加した観戦者たちは、中継者の解説動映像を受けることができる。
【0133】
図11及び図12は、パブリッシャーゲームサーバーでゲームルームを削除するとき、ミラーリングゲームサーバーでミラーリングゲームルームが削除される過程を示したフローチャートである。図11は、ゲーム中継者が関与していない場合を示し、図12は、ミラーリングされるゲームルームにゲーム中継者が関与した場合を示している。
【0134】
図11を参照すると、パブリッシャーゲームサーバーに生成されたゲームルームに参加しているプレイヤークライアントがゲームルーム退場を要請し(段階1110)、パブリッシャーゲームサーバーに生成されたゲームルームに参加したプレイヤーが全てゲームルームから退場する場合、パブリッシャーゲームサーバーは、該当のゲームルームを削除する(段階1120)。
【0135】
パブリッシャーゲームサーバーは、ミラーリングゲームサーバーにミラーリングされるゲームルームから特定のプレイヤーが退場する場合、そのプレイヤーがゲームルームから退場したというメッセージをメッセージルーティングサーバーに伝送し、該当のゲームルームを削除する場合には削除メッセージを伝送する(段階1130)。
【0136】
特定のプレイヤーのゲームルーム退場に対する情報及び/またはゲームルーム削除情報を含むメッセージは、メッセージルーティングサーバーのサブスクライバーグループに伝送され、メッセージルーティングサーバーは、サブスクライバーグループに参加してメッセージルーティングサーバーとソケットを通して連結されているミラーリングゲームサーバーに該当のメッセージをそれぞれ伝送する(段階1140)。
【0137】
ミラーリングゲームサーバーは、該当のメッセージに含まれたゲームルーム番号に相応するミラーリングゲームルームの番号を決定する。上述したマッチングテーブルまたはマッチングコードを用いてパブリッシャーゲームサーバーのゲームルーム番号に相応するミラーリングゲームルーム番号を決定することができる。ミラーリングゲームサーバーは、このように決定されたミラーリングゲームルーム番号を用いて、それに相応するミラーリングゲームルームを探し出す。受信したメッセージにパブリッシャーゲームサーバーの生成主体であるプレイヤーのゲームルーム退場情報が含まれている場合、ミラーリングゲームサーバーは、ミラーリングゲームルーム番号に相応するダミープレイヤーを削除する(段階1150)。
【0138】
ダミープレイヤーを含む全ての使用者がミラーリングゲームサーバーに生成されたミラーリングゲームルームから退場すると、ミラーリングゲームサーバーは、そのミラーリングゲームルームを削除する(段階1160)。
【0139】
図12は、ゲーム中継者が関与した場合、パブリッシャーゲームサーバーでゲームルームを削除するとき、ミラーリングゲームサーバーでミラーリングゲームルームが削除される過程を示したフローチャートである。
【0140】
図12を参照すると、パブリッシャーゲームサーバーに生成されたゲームルームに参加している中継者クライアントがゲームルーム退場を要請し(段階1210)、パブリッシャーゲームサーバーに生成されたゲームルームに参加したゲームプレイヤーを含む全ての使用者がゲームルームから退場する場合、パブリッシャーゲームサーバーは、該当のゲームルームを削除する(段階1220)。
【0141】
ゲームルームが削除されると、中継者の解説に対する動映像ストリーミングデータを放送サーバーに伝送する過程が中断される(段階1230)。
【0142】
また、パブリッシャーゲームサーバーは、ゲームルームに参加した特定の使用者がゲームルームから退場する場合、該当の使用者のルーム退場情報をメッセージルーティングサーバーに伝送し、該当のゲームルームを削除する場合には削除メッセージを伝送する(段階1240)。特定の使用者のルーム退場情報は、削除されたゲームルームの番号情報を含むことができる。
【0143】
パブリッシャーゲームサーバーは、特定の使用者のルーム退場情報及び/またはゲームルーム削除情報を含むメッセージをメッセージルーティングサーバーのサブスクライバーグループに伝送し、メッセージルーティングサーバーは、サブスクライバーグループに参加してメッセージルーティングサーバーとソケットを通して連結されているミラーリングゲームサーバーにそれぞれメッセージを伝送する(段階1250)。
【0144】
ミラーリングゲームサーバーは、メッセージに含まれたゲームルーム番号に相応するミラーリングゲームサーバーでのゲームルーム番号を判断する。上述したマッチングテーブルまたはマッチングコードを用いてパブリッシャーゲームサーバーのゲームルーム番号に相応するミラーリングゲームルーム番号を判断することができる。パブリッシャーゲームサーバーのゲームルームから退場した使用者がそのゲームルームの生成主体である中継者である場合、ミラーリングゲームサーバーは、ミラーリングゲームルーム番号に相応するダミープレイヤーを削除する(段階1260)。また、ミラーリングゲームサーバーのミラーリングゲームルームにおいて、ダミープレイヤーを含む全ての使用者がゲームルームから退場すると、ミラーリングゲームサーバーは、該当のミラーリングゲームルームを削除する(段階1270)。
【0145】
図13は、パブリッシャーゲームサーバーのゲームルームでのゲーム進行状況がミラーリングゲームサーバーのミラーリングゲームルームで再現されるように、パブリッシャーゲームサーバーのゲームルーム内で交換されるゲームコマンドがミラーリングゲームサーバーに伝達される過程に対するフローチャートである。
【0146】
図13を参照すると、パブリッシャーゲームサーバーのゲームルームに参加したプレイヤークライアントは、ゲームコマンドメッセージをパブリッシャーゲームサーバーに伝送する(段階1310)。前記ゲームコマンドは、多様なゲームでのゲームコマンドを全て含むことができる。例えば、ゲームコマンドは、囲碁における特定のプレイヤーの棋譜情報であるか、戦略シミュレーションゲームでの特定のユニットに対する移動コマンドである。
【0147】
パブリッシャーゲームサーバーのゲームルームで進行されるゲームが囲碁及びボードゲームなどのターン方式のゲームである場合、前記ゲームコマンドは、コマンドの手順情報を含むことができる。パブリッシャーゲームサーバーのゲームルームで進行されるゲームがリアルタイム戦略シミュレーションゲームである場合、ゲームコマンドは時間情報を含むことができる。
【0148】
また、ゲームコマンドメッセージは、ゲームコマンドメッセージをプレイヤークライアントから受信したパブリッシャーゲームサーバーのゲームルームの番号情報を含む。
【0149】
プレイヤークライアントからゲームコマンドメッセージを受信したパブリッシャーゲームサーバーは、受信したゲームコマンドメッセージをメッセージルーティングサーバーに伝送する(段階1320)。
【0150】
メッセージルーティングサーバーは、メッセージルーティングサーバーのサブスクライバーグループに参加してメッセージルーティングサーバーとソケットを通してコネクションを維持しているミラーリングゲームサーバーにそれぞれゲームコマンドメッセージを伝送する(段階1330)。
【0151】
メッセージルーティングサーバーからゲームコマンドメッセージを受信したミラーリングゲームサーバーは、ゲームコマンドメッセージを分析し、受信されたゲームコマンドと関連したミラーリングゲームルームの番号を判断する(段階1340)。
【0152】
ミラーリングゲームサーバーは、判断されたミラーリングゲームルームの番号に相応するミラーリングゲームルームにメッセージルーティングサーバーから受信したゲームコマンドメッセージを伝達する(段階1350)。ミラーリングゲームサーバーは、該当のミラーリングゲームルームに参加した観戦者を含む使用者クライアントにゲームコマンドを伝達し、ゲームコマンドを受信した使用者クライアントに設置されたゲームアプリケーションは、受信したコマンドに相応するゲームプロセスを行う。図13の手順によって、ミラーリングゲームサーバーのミラーリングゲームルームに参加した使用者たちは、パブリッシャーゲームサーバーのゲームルームで進行されるゲームと同一のゲーム進行を観戦することができる。
【0153】
図13に示していないが、パブリッシャーゲームサーバーのゲームルームで各プレイヤーの間に送受信されるチャットメッセージも図13のような方式によってミラーリングゲームサーバーのミラーリングゲームルームに提供可能であることは、当業者にとって自明である。
【0154】
図14は、特定のミラーリングサーバーで障害が発生する場合、障害を復旧する過程に対するフローチャートである。
【0155】
図14を参照すると、メッセージルーティングサーバーのサブスクライバーグループに参加したミラーリングサーバーのうち特定のミラーリングサーバーで障害が発生する場合、該当のミラーリングサーバーはパブリッシャーサーバーに生成されており、メッセージルーティングサーバーを通して各ミラーリングサーバーに情報を提供しているチャネルまたは各ルームに対するリストをメッセージルーティングサーバーに要請する(段階1410)。
【0156】
ルームリスト要請メッセージはパブリッシャーグループを目的地住所とし、メッセージルーティングサーバーは、パブリッシャーグループに参加したパブリッシャーサーバーにルームリスト要請メッセージを伝達する(段階1420)。
【0157】
メッセージルーティングサーバーからルームリスト要請メッセージを受信したパブリッシャーサーバーは、現在ミラーリングサーバーに情報を提供している各ルームに対する情報を検索する(段階1430)。
【0158】
また、パブリッシャーサーバーは、検索された各ルームの生成及び状態変更を表すヒストリーデータを生成する(段階1440)。検索されたルームがゲームルームである場合、そのゲームルームで進行されているゲームに対するゲームヒストリーデータが生成される。ここで、ゲームヒストリーデータは、ミラーリングサーバーが現在のゲーム進行状況を観戦者に正確に提供できるようにするもので、障害発生前に進行されたゲーム進行ヒストリーが記録されたデータを意味する。例えば、ゲームヒストリーデータは、囲碁ゲームの場合には囲碁の棋譜データであり、戦略シミュレーションゲームの場合には各プレイヤーの間に交換されたゲームコマンドデータである。もちろん、ゲームの種類によっては、このようなゲームヒストリーデータの生成が不可能であるか、ゲームヒストリーデータの生成が要求されないこともある。
【0159】
パブリッシャーサーバーは、メッセージルーティングサーバーにルームリスト情報及び各ルームのヒストリーデータを含むメッセージをメッセージルーティングサーバーに伝送する(段階1450)。
【0160】
メッセージルーティングサーバーは、パブリッシャーサーバーからのメッセージをサブスクライバーグループに参加している全てのミラーリングサーバーに伝送する(段階1460)。サブスクライバーグループに参加している各ミラーリングサーバーのうち一つのミラーリングサーバーのみに障害が発生するとしても、メッセージルーティングサーバーの伝送原則によってサブスクライバーグループに参加している全てのミラーリングサーバーにメッセージを伝送する。
【0161】
メッセージルーティングサーバーからルームリスト及び各ルームのヒストリーデータを含むメッセージを受信した各ミラーリングサーバーのうちルームリストを要請していないミラーリングサーバーは、受信されたメッセージを無視する。ルームリストを要請したミラーリングサーバーは、受信したルームリスト及び各ルームのヒストリーデータに基づいてミラーリングルームを再び生成する(段階1470)。
【0162】
以上、本発明を好適な実施例を参照して説明してきたが、該当の技術分野で通常の知識を有する者であれば、特許請求の範囲に記載された本発明の思想及び領域から逸脱しない範囲内で本発明を多様に修正及び変更可能であることを理解できるだろう。
【図面の簡単な説明】
【0163】
【図1】通常的な複数個のサーバーによるサービス提供システムの一例を示した図である。
【図2】通常的なゲーム中継システムの一例を示した図である。
【図3】本発明の好適な一実施例に係るサーバーミラーリングシステムの構成を示した図である。
【図4】本発明の好適な一実施例に係るサーバーミラーリングを用いたゲーム中継システムの構成を示した図である。
【図5】本発明の好適な一実施例に係るメッセージルーティングサーバーに生成されるグループを示した図である。
【図6】パブリッシャーゲームサーバーとミラーリングゲームサーバーとの間のゲーム進行状態及び中継状態を示した図である。
【図7】本発明の好適な一実施例に係る放送サーバーシステムの構成を示した図である。
【図8】パブリッシャーゲームサーバー及びミラーリングゲームサーバーにミラーリングされるゲームルーム及びミラーリングゲームルームがそれぞれ生成される過程を示したフローチャートである。
【図9】パブリッシャーゲームサーバー及びミラーリングゲームサーバーにミラーリングされるゲームルーム及びミラーリングゲームルームがそれぞれ生成される過程を示したフローチャートである。
【図10】中継者の解説に対する音声及び映像データがパブリッシャーゲームサーバーまたはミラーリングゲームサーバーの観戦者クライアントに伝送される過程を示したフローチャートである。
【図11】パブリッシャーゲームサーバーでゲームルームが削除されるとき、ミラーリングゲームサーバーでミラーリングゲームルームが削除される過程を示したフローチャートである。
【図12】パブリッシャーゲームサーバーでゲームルームが削除されるとき、ミラーリングゲームサーバーでミラーリングゲームルームが削除される過程を示したフローチャートである。
【図13】パブリッシャーゲームサーバーのゲームルーム内で交換されるゲームコマンドがミラーリングゲームサーバーに伝達される過程に対するフローチャートである。
【図14】特定のミラーリングサーバーで障害が発生する場合、障害を復旧する過程に対するフローチャートである。
【図15】パブリッシャーサーバーのメッセージがメッセージルーティングサーバーを通してサブスクライバーグループに属するミラーリングサーバーに伝達されることを示した概念図である。
【特許請求の範囲】
【請求項1】
チャネル生成要請を受信する段階と;
前記チャネル生成要請に基づいてパブリッシャーサーバーに第1チャネルを生成する段階と;
前記第1チャネルのチャネル生成情報に基づいて少なくとも一つのミラーリングサーバーに第2チャネルを生成する段階と;
前記第1チャネルのチャネル状態変更情報に基づいて前記第2チャネルの状態を変更する段階と;
を含むことを特徴とするサーバーミラーリング方法。
【請求項2】
前記少なくとも1つのミラーリングサーバーは、メッセージルーティングサーバーにサブスクライバーグループとして登録されていることを特徴とする請求項1に記載のサーバーミラーリング方法。
【請求項3】
前記第1チャネルのチャネル生成情報は第1チャネル番号を含み、
前記第2チャネルを生成する段階は、前記第2チャネルに該当する第2チャネル番号を生成する段階と、前記第1及び第2チャネル番号をマッチングさせるマッチングテーブルまたはマッチングコードを生成する段階と、を含むことを特徴とする請求項1に記載のサーバーミラーリング方法。
【請求項4】
前記第2チャネルの状態を変更する段階は、
メッセージルーティングサーバーにサブスクライバーグループとして連結されている少なくとも一つのミラーリングサーバーに前記第1チャネルのチャネル状態変更情報を伝送することで、前記第2チャネルの状態を変更することを特徴とする請求項1に記載のサーバーミラーリング方法。
【請求項5】
前記ミラーリングサーバーに障害が発生する場合に、前記第1チャネルのヒストリーデータを生成する段階と;
前記第1チャネルのヒストリーデータに基づいて前記障害の発生したミラーリングサーバーに第3チャネルを生成する段階と;
をさらに含むことを特徴とする請求項1に記載のサーバーミラーリング方法。
【請求項6】
前記第1及び第2チャネルは、ゲームルームまたはチャットルームであることを特徴とする請求項1に記載のサーバーミラーリング方法。
【請求項7】
少なくとも一つのミラーリングサーバーをサブスクライバーグループとして登録させる段階と;
パブリッシャーサーバーに生成されたチャネルに対する情報を受信する段階と;
前記チャネルに対する情報を前記サブスクライバーグループに伝送する段階と;
を含むことを特徴とするサーバーミラーリング方法。
【請求項8】
前記チャネルに対する情報を前記サブスクライバーグループに伝送する段階は、前記サブスクライバーグループとして登録された全てのミラーリングサーバーに前記チャネルに対する情報を伝送することを特徴とする請求項7に記載のサーバーミラーリング方法。
【請求項9】
前記チャネルに対する情報は、チャネル生成情報及びチャネル状態変更情報を含むことを特徴とする請求項7に記載のサーバーミラーリング方法。
【請求項10】
前記チャネルは、ゲームルームまたはチャットルームであることを特徴とする請求項7に記載のサーバーミラーリング方法。
【請求項11】
ゲームルーム生成要請を受信する段階と;
前記ゲームルーム生成要請に基づいてパブリッシャーサーバーに第1ゲームルームを生成する段階と;
メッセージルーティングサーバーにサブスクライバーグループとして登録されているミラーリングサーバーに、前記第1ゲームルームのゲームルーム生成情報に基づいて第2ゲームルームを生成する段階と;
前記第1ゲームルームのゲーム進行情報を、前記メッセージルーティングサーバーを通して前記ミラーリングサーバーに伝送する段階と;
を含むことを特徴とするサーバーミラーリング方法。
【請求項12】
前記ゲーム進行情報は、ゲームコマンド情報またはチャットメッセージを含むことを特徴とする請求項11に記載のサーバーミラーリング方法。
【請求項13】
前記メッセージルーティングサーバーは、ソケットを通して前記ミラーリングサーバーに連結されており、前記第1ゲームルームのゲームルーム生成情報及びゲーム進行情報は、前記ソケットを通して前記メッセージルーティングサーバーから前記ミラーリングサーバーに伝送されることを特徴とする請求項11に記載のサーバーミラーリング方法。
【請求項14】
前記ゲーム進行情報から前記第1ゲームルームの番号を抽出する段階と;
抽出された前記第1ゲームルームの番号を用いて前記第2ゲームルームの番号を把握する段階と;
把握された前記第2ゲームルームの番号を用いて前記第2ゲームルームに前記ゲーム進行情報を提供する段階と;
をさらに含むことを特徴をする請求項11に記載のサーバーミラーリング方法。
【請求項15】
ゲーム中継者から動映像ストリーミングデータを受信する段階と;
前記動映像ストリーミングデータをゲーム観戦者に提供する段階と;
をさらに含むことを特徴とする請求項11に記載のサーバーミラーリング方法。
【請求項16】
前記動映像ストリーミングデータは、2以上の放送サーバーを通して前記ゲーム中継者から受信され、前記2以上の放送サーバーのうち最もロードの少ない放送サーバーを通して前記ゲーム観戦者に提供されることを特徴とする請求項15に記載のサーバーミラーリング方法。
【請求項17】
前記第2ゲームルーム生成段階は、前記第2ゲームルームの生成主体として認識される仮想のダミープレイヤーを生成する段階を含むことを特徴とする請求項11に記載のサーバーミラーリング方法。
【請求項18】
前記第1ゲームルームの全ての使用者が前記第1ゲームルームから退場する場合、前記第1ゲームルームを削除する段階と;
前記第1ゲームルームを削除した後、前記第2ゲームルームの前記ダミープレイヤーを削除する段階と;
前記ダミープレイヤーを含む前記第2ゲームルームの全ての使用者が前記第2ゲームルームから退場する場合、前記第2ゲームルームを削除する段階と;
をさらに含むことを特徴とする請求項17に記載のサーバーミラーリング方法。
【請求項19】
チャネル生成要請を受信し、前記チャネル生成要請に基づいて第1チャネルを生成し、前記第1チャネルのチャネル生成情報及びチャネル状態変更情報を発生させるパブリッシャーサーバーと;
前記パブリッシャーサーバーから前記第1チャネルのチャネル生成情報及びチャネル状態変更情報を受信するメッセージルーティングサーバーと;
前記メッセージルーティングサーバーにサブスクライバーグループとして登録されており、前記メッセージルーティングサーバーから前記第1チャネルのチャネル生成情報及びチャネル状態変更情報を受信し、前記第1チャネルのチャネル生成情報に基づいて第2チャネルを生成し、前記第1チャネルのチャネル状態変更情報に基づいて前記第2チャネルの状態を変更させるミラーリングサーバーと;
を含むことを特徴とするサーバーミラーリングシステム。
【請求項20】
前記メッセージルーティングサーバーは、前記サブスクライバーグループとして登録された全てのミラーリングサーバーに前記第1チャネルのチャネル生成情報及びチャネル状態変更情報を伝送することを特徴とする請求項19に記載のサーバーミラーリングシステム。
【請求項21】
前記第1及び第2チャネルは、ゲームルームであることを特徴とする請求項19に記載のサーバーミラーリングシステム。
【請求項22】
ゲーム中継者クライアントから動映像ストリーミングデータを受信し、前記動映像ストリーミングデータを前記第1及び第2チャネルにそれぞれ接続したゲーム観戦者クライアントに伝送する放送サーバーシステムをさらに含むことを特徴とする請求項21に記載のサーバーミラーリングシステム。
【請求項23】
前記放送サーバーシステムは接続制御サーバーを含み、
前記接続制御サーバーは、前記ゲーム中継者クライアントから前記動映像ストリーミングデータを受信する2以上の放送サーバーを指定し、前記指定された2以上の放送サーバーのうち一つの放送サーバーのみを、前記ゲーム観戦者クライアントに前記動映像ストリーミングデータを伝送するためのサーバーとして指定することを特徴とする請求項22に記載のサーバーミラーリングシステム。
【請求項24】
少なくとも一つのパブリッシャーゲームサーバーと、少なくとも一つのミラーリングゲームサーバーと、放送サーバーシステムと、前記少なくとも一つのパブリッシャーゲームサーバー及びミラーリングゲームサーバーとの間のコネクションを維持するメッセージルーティングサーバーと、を含むシステムにおけるサーバーミラーリングを用いたゲーム中継方法であって、
前記パブリッシャーゲームサーバーで少なくとも中継者及びゲームプレイヤーが参加するゲームルームが生成される場合、ゲームルーム生成メッセージ及び前記ゲームルームでのゲーム進行と関連したゲーム進行メッセージを前記メッセージルーティングサーバーに伝送する段階と;
前記ゲームルームに参加した前記中継者のクライアントが、中継者の音声及び映像を含む動映像データを前記放送サーバーシステムに伝送する段階と;
前記メッセージルーティングサーバーで、前記パブリッシャーゲームサーバーから伝送された前記ゲームルーム生成メッセージ及び前記ゲーム進行情報メッセージを前記メッセージルーティングサーバーとコネクションを維持する少なくとも一つのミラーリングゲームサーバーに伝送する段階と;
前記少なくとも一つのミラーリングゲームサーバーが前記メッセージルーティングサーバーからゲームルーム生成メッセージを受信する場合、前記ミラーリングゲームサーバーで前記ゲームルーム生成メッセージに含まれたゲームルーム情報と同一のゲームルームをミラーリングする段階と;
前記ミラーリングゲームサーバーのミラーリングされたゲームルームまたは前記パブリッシャーゲームサーバーのゲームルームにクライアントが参加する場合、前記放送サーバーシステムから前記中継者の前記動映像データを受信可能な放送IDを提供する段階と;
を含むことを特徴とするサーバーミラーリングを用いたゲーム中継方法。
【請求項25】
少なくとも一つのパブリッシャーサーバーと、少なくとも一つのミラーリングサーバーと、前記少なくとも一つのパブリッシャーサーバー及びミラーリングサーバーの間のコネクションを維持するメッセージルーティングサーバーとを含むシステムにおける、前記パブリッシャーサーバーに生成されたチャネルを前記ミラーリングサーバーにミラーリングする方法であって、
前記パブリッシャーサーバーでチャネルが生成される場合、チャネル生成メッセージ及び前記パブリッシャーサーバーに生成されたチャネルに伝送されるメッセージを前記メッセージルーティングサーバーに伝送する段階と;
前記メッセージルーティングサーバーで、前記パブリッシャーサーバーから伝送された前記チャネル生成メッセージ及び前記パブリッシャーサーバーに生成されたチャネルに伝送されるメッセージを前記メッセージルーティングサーバーとコネクションを維持する少なくとも一つのミラーリングサーバーに伝送する段階と;
前記ミラーリングサーバーで、前記メッセージルーティングサーバーからチャネル生成メッセージまたは前記パブリッシャーサーバーに生成されたチャネルに伝送されるメッセージを受信する場合、前記ミラーリングサーバーで受信されたメッセージの種類に相応する予め設定されたミラーリングプロセスを行う段階と;
を含むことを特徴とするサーバーミラーリング方法。
【請求項26】
前記メッセージルーティングサーバーから前記少なくとも一つのミラーリングサーバーに伝送されるメッセージがチャネル生成メッセージである場合、前記予め設定されたプロセスは、前記チャネル生成メッセージに含まれたチャネル情報と同一のチャネルを前記ミラーリングサーバーが生成するプロセスであることを特徴とする請求項25に記載のサーバーミラーリング方法。
【請求項27】
前記メッセージルーティングサーバーから前記少なくとも一つのミラーリングサーバーに伝送されるメッセージが、前記パブリッシャーサーバーのチャネルに伝送されたメッセージである場合、前記予め設定されたプロセスは、前記受信されたメッセージを前記ミラーリングサーバーのチャネルに参加した各クライアントに伝送するプロセスであることを特徴とする請求項25に記載のサーバーミラーリング方法。
【請求項1】
チャネル生成要請を受信する段階と;
前記チャネル生成要請に基づいてパブリッシャーサーバーに第1チャネルを生成する段階と;
前記第1チャネルのチャネル生成情報に基づいて少なくとも一つのミラーリングサーバーに第2チャネルを生成する段階と;
前記第1チャネルのチャネル状態変更情報に基づいて前記第2チャネルの状態を変更する段階と;
を含むことを特徴とするサーバーミラーリング方法。
【請求項2】
前記少なくとも1つのミラーリングサーバーは、メッセージルーティングサーバーにサブスクライバーグループとして登録されていることを特徴とする請求項1に記載のサーバーミラーリング方法。
【請求項3】
前記第1チャネルのチャネル生成情報は第1チャネル番号を含み、
前記第2チャネルを生成する段階は、前記第2チャネルに該当する第2チャネル番号を生成する段階と、前記第1及び第2チャネル番号をマッチングさせるマッチングテーブルまたはマッチングコードを生成する段階と、を含むことを特徴とする請求項1に記載のサーバーミラーリング方法。
【請求項4】
前記第2チャネルの状態を変更する段階は、
メッセージルーティングサーバーにサブスクライバーグループとして連結されている少なくとも一つのミラーリングサーバーに前記第1チャネルのチャネル状態変更情報を伝送することで、前記第2チャネルの状態を変更することを特徴とする請求項1に記載のサーバーミラーリング方法。
【請求項5】
前記ミラーリングサーバーに障害が発生する場合に、前記第1チャネルのヒストリーデータを生成する段階と;
前記第1チャネルのヒストリーデータに基づいて前記障害の発生したミラーリングサーバーに第3チャネルを生成する段階と;
をさらに含むことを特徴とする請求項1に記載のサーバーミラーリング方法。
【請求項6】
前記第1及び第2チャネルは、ゲームルームまたはチャットルームであることを特徴とする請求項1に記載のサーバーミラーリング方法。
【請求項7】
少なくとも一つのミラーリングサーバーをサブスクライバーグループとして登録させる段階と;
パブリッシャーサーバーに生成されたチャネルに対する情報を受信する段階と;
前記チャネルに対する情報を前記サブスクライバーグループに伝送する段階と;
を含むことを特徴とするサーバーミラーリング方法。
【請求項8】
前記チャネルに対する情報を前記サブスクライバーグループに伝送する段階は、前記サブスクライバーグループとして登録された全てのミラーリングサーバーに前記チャネルに対する情報を伝送することを特徴とする請求項7に記載のサーバーミラーリング方法。
【請求項9】
前記チャネルに対する情報は、チャネル生成情報及びチャネル状態変更情報を含むことを特徴とする請求項7に記載のサーバーミラーリング方法。
【請求項10】
前記チャネルは、ゲームルームまたはチャットルームであることを特徴とする請求項7に記載のサーバーミラーリング方法。
【請求項11】
ゲームルーム生成要請を受信する段階と;
前記ゲームルーム生成要請に基づいてパブリッシャーサーバーに第1ゲームルームを生成する段階と;
メッセージルーティングサーバーにサブスクライバーグループとして登録されているミラーリングサーバーに、前記第1ゲームルームのゲームルーム生成情報に基づいて第2ゲームルームを生成する段階と;
前記第1ゲームルームのゲーム進行情報を、前記メッセージルーティングサーバーを通して前記ミラーリングサーバーに伝送する段階と;
を含むことを特徴とするサーバーミラーリング方法。
【請求項12】
前記ゲーム進行情報は、ゲームコマンド情報またはチャットメッセージを含むことを特徴とする請求項11に記載のサーバーミラーリング方法。
【請求項13】
前記メッセージルーティングサーバーは、ソケットを通して前記ミラーリングサーバーに連結されており、前記第1ゲームルームのゲームルーム生成情報及びゲーム進行情報は、前記ソケットを通して前記メッセージルーティングサーバーから前記ミラーリングサーバーに伝送されることを特徴とする請求項11に記載のサーバーミラーリング方法。
【請求項14】
前記ゲーム進行情報から前記第1ゲームルームの番号を抽出する段階と;
抽出された前記第1ゲームルームの番号を用いて前記第2ゲームルームの番号を把握する段階と;
把握された前記第2ゲームルームの番号を用いて前記第2ゲームルームに前記ゲーム進行情報を提供する段階と;
をさらに含むことを特徴をする請求項11に記載のサーバーミラーリング方法。
【請求項15】
ゲーム中継者から動映像ストリーミングデータを受信する段階と;
前記動映像ストリーミングデータをゲーム観戦者に提供する段階と;
をさらに含むことを特徴とする請求項11に記載のサーバーミラーリング方法。
【請求項16】
前記動映像ストリーミングデータは、2以上の放送サーバーを通して前記ゲーム中継者から受信され、前記2以上の放送サーバーのうち最もロードの少ない放送サーバーを通して前記ゲーム観戦者に提供されることを特徴とする請求項15に記載のサーバーミラーリング方法。
【請求項17】
前記第2ゲームルーム生成段階は、前記第2ゲームルームの生成主体として認識される仮想のダミープレイヤーを生成する段階を含むことを特徴とする請求項11に記載のサーバーミラーリング方法。
【請求項18】
前記第1ゲームルームの全ての使用者が前記第1ゲームルームから退場する場合、前記第1ゲームルームを削除する段階と;
前記第1ゲームルームを削除した後、前記第2ゲームルームの前記ダミープレイヤーを削除する段階と;
前記ダミープレイヤーを含む前記第2ゲームルームの全ての使用者が前記第2ゲームルームから退場する場合、前記第2ゲームルームを削除する段階と;
をさらに含むことを特徴とする請求項17に記載のサーバーミラーリング方法。
【請求項19】
チャネル生成要請を受信し、前記チャネル生成要請に基づいて第1チャネルを生成し、前記第1チャネルのチャネル生成情報及びチャネル状態変更情報を発生させるパブリッシャーサーバーと;
前記パブリッシャーサーバーから前記第1チャネルのチャネル生成情報及びチャネル状態変更情報を受信するメッセージルーティングサーバーと;
前記メッセージルーティングサーバーにサブスクライバーグループとして登録されており、前記メッセージルーティングサーバーから前記第1チャネルのチャネル生成情報及びチャネル状態変更情報を受信し、前記第1チャネルのチャネル生成情報に基づいて第2チャネルを生成し、前記第1チャネルのチャネル状態変更情報に基づいて前記第2チャネルの状態を変更させるミラーリングサーバーと;
を含むことを特徴とするサーバーミラーリングシステム。
【請求項20】
前記メッセージルーティングサーバーは、前記サブスクライバーグループとして登録された全てのミラーリングサーバーに前記第1チャネルのチャネル生成情報及びチャネル状態変更情報を伝送することを特徴とする請求項19に記載のサーバーミラーリングシステム。
【請求項21】
前記第1及び第2チャネルは、ゲームルームであることを特徴とする請求項19に記載のサーバーミラーリングシステム。
【請求項22】
ゲーム中継者クライアントから動映像ストリーミングデータを受信し、前記動映像ストリーミングデータを前記第1及び第2チャネルにそれぞれ接続したゲーム観戦者クライアントに伝送する放送サーバーシステムをさらに含むことを特徴とする請求項21に記載のサーバーミラーリングシステム。
【請求項23】
前記放送サーバーシステムは接続制御サーバーを含み、
前記接続制御サーバーは、前記ゲーム中継者クライアントから前記動映像ストリーミングデータを受信する2以上の放送サーバーを指定し、前記指定された2以上の放送サーバーのうち一つの放送サーバーのみを、前記ゲーム観戦者クライアントに前記動映像ストリーミングデータを伝送するためのサーバーとして指定することを特徴とする請求項22に記載のサーバーミラーリングシステム。
【請求項24】
少なくとも一つのパブリッシャーゲームサーバーと、少なくとも一つのミラーリングゲームサーバーと、放送サーバーシステムと、前記少なくとも一つのパブリッシャーゲームサーバー及びミラーリングゲームサーバーとの間のコネクションを維持するメッセージルーティングサーバーと、を含むシステムにおけるサーバーミラーリングを用いたゲーム中継方法であって、
前記パブリッシャーゲームサーバーで少なくとも中継者及びゲームプレイヤーが参加するゲームルームが生成される場合、ゲームルーム生成メッセージ及び前記ゲームルームでのゲーム進行と関連したゲーム進行メッセージを前記メッセージルーティングサーバーに伝送する段階と;
前記ゲームルームに参加した前記中継者のクライアントが、中継者の音声及び映像を含む動映像データを前記放送サーバーシステムに伝送する段階と;
前記メッセージルーティングサーバーで、前記パブリッシャーゲームサーバーから伝送された前記ゲームルーム生成メッセージ及び前記ゲーム進行情報メッセージを前記メッセージルーティングサーバーとコネクションを維持する少なくとも一つのミラーリングゲームサーバーに伝送する段階と;
前記少なくとも一つのミラーリングゲームサーバーが前記メッセージルーティングサーバーからゲームルーム生成メッセージを受信する場合、前記ミラーリングゲームサーバーで前記ゲームルーム生成メッセージに含まれたゲームルーム情報と同一のゲームルームをミラーリングする段階と;
前記ミラーリングゲームサーバーのミラーリングされたゲームルームまたは前記パブリッシャーゲームサーバーのゲームルームにクライアントが参加する場合、前記放送サーバーシステムから前記中継者の前記動映像データを受信可能な放送IDを提供する段階と;
を含むことを特徴とするサーバーミラーリングを用いたゲーム中継方法。
【請求項25】
少なくとも一つのパブリッシャーサーバーと、少なくとも一つのミラーリングサーバーと、前記少なくとも一つのパブリッシャーサーバー及びミラーリングサーバーの間のコネクションを維持するメッセージルーティングサーバーとを含むシステムにおける、前記パブリッシャーサーバーに生成されたチャネルを前記ミラーリングサーバーにミラーリングする方法であって、
前記パブリッシャーサーバーでチャネルが生成される場合、チャネル生成メッセージ及び前記パブリッシャーサーバーに生成されたチャネルに伝送されるメッセージを前記メッセージルーティングサーバーに伝送する段階と;
前記メッセージルーティングサーバーで、前記パブリッシャーサーバーから伝送された前記チャネル生成メッセージ及び前記パブリッシャーサーバーに生成されたチャネルに伝送されるメッセージを前記メッセージルーティングサーバーとコネクションを維持する少なくとも一つのミラーリングサーバーに伝送する段階と;
前記ミラーリングサーバーで、前記メッセージルーティングサーバーからチャネル生成メッセージまたは前記パブリッシャーサーバーに生成されたチャネルに伝送されるメッセージを受信する場合、前記ミラーリングサーバーで受信されたメッセージの種類に相応する予め設定されたミラーリングプロセスを行う段階と;
を含むことを特徴とするサーバーミラーリング方法。
【請求項26】
前記メッセージルーティングサーバーから前記少なくとも一つのミラーリングサーバーに伝送されるメッセージがチャネル生成メッセージである場合、前記予め設定されたプロセスは、前記チャネル生成メッセージに含まれたチャネル情報と同一のチャネルを前記ミラーリングサーバーが生成するプロセスであることを特徴とする請求項25に記載のサーバーミラーリング方法。
【請求項27】
前記メッセージルーティングサーバーから前記少なくとも一つのミラーリングサーバーに伝送されるメッセージが、前記パブリッシャーサーバーのチャネルに伝送されたメッセージである場合、前記予め設定されたプロセスは、前記受信されたメッセージを前記ミラーリングサーバーのチャネルに参加した各クライアントに伝送するプロセスであることを特徴とする請求項25に記載のサーバーミラーリング方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公表番号】特表2009−531770(P2009−531770A)
【公表日】平成21年9月3日(2009.9.3)
【国際特許分類】
【出願番号】特願2009−502686(P2009−502686)
【出願日】平成19年3月30日(2007.3.30)
【国際出願番号】PCT/KR2007/001574
【国際公開番号】WO2007/114606
【国際公開日】平成19年10月11日(2007.10.11)
【出願人】(505205812)エヌエイチエヌ コーポレーション (408)
【Fターム(参考)】
【公表日】平成21年9月3日(2009.9.3)
【国際特許分類】
【出願日】平成19年3月30日(2007.3.30)
【国際出願番号】PCT/KR2007/001574
【国際公開番号】WO2007/114606
【国際公開日】平成19年10月11日(2007.10.11)
【出願人】(505205812)エヌエイチエヌ コーポレーション (408)
【Fターム(参考)】
[ Back to top ]