(57)【要約】【課題】安定して遅延の少ないチャット環境を実現する。【解決手段】クライアント端末１０ａはチャットルームの開設要求を発行する。ゲートウェイ１２はクライアント端末１０ａの地域を取得する。中継ポイント割り当てサーバ１４は、地域や通信速度の観点で適切なチャットサーバ１８ａまたはその地域を選択し、チャットルームを開設させる。チャットサーバ１８ａは、クライアント端末１０ａ、１０ｂ、１０ｃ間のチャットデータを中継する。【選択図】図２
2020129207.tif 000002
【特許請求の範囲】
【請求項１】
各チャット空間に参加している複数のメンバーが、クライアント端末を用いてネットワークを介した会話を実現するチャットシステムにおいて、
前記クライアント端末のいずれかから、前記チャット空間の開設要求を取得する通信部と、
前記開設要求に応じて、分散して配置され、前記クライアント端末間での発言データの伝送を中継する複数のチャットサーバのうち、所定の規則に基づき選択した一のチャットサーバに、前記開設要求に対応するチャット空間における発言データの中継を要求するチャットサーバ選択部と、
を備えることを特徴とする中継ポイント割り当てサーバ。
【請求項２】
前記チャットサーバ選択部は、前記クライアント端末と前記チャットサーバの存在する地域との位置関係および、前記クライアント端末と前記チャットサーバ間の通信速度、の少なくともいずれかに基づき、前記チャットサーバを選択することを特徴とする請求項１に記載の中継ポイント割り当てサーバ。
【請求項３】
前記チャットサーバ選択部は、前記チャットサーバを選択するための根拠となるパラメータを継続して収集し、前記開設要求が発行された時点における前記パラメータに応じて、前記チャットサーバを選択することを特徴とする請求項１または２に記載の中継ポイント割り当てサーバ。
【請求項４】
前記チャットサーバ選択部は、前記チャット空間の開設要求が発行された時点における、前記チャット空間に参加予定のメンバーが使用する前記クライアント端末と、各チャットサーバとの平均通信速度に基づき、前記チャットサーバを選択することを特徴とする請求項１から３のいずれかに記載の中継ポイント割り当てサーバ。
【請求項５】
前記チャットサーバ選択部は、前記チャット空間の開設要求を発行した前記クライアント端末の位置情報に対応する地域を取得し、当該地域に存在する前記チャットサーバを選択することを特徴とする請求項１に記載の中継ポイント割り当てサーバ。
【請求項６】
前記発言データの中継要求に応じて前記チャットサーバが生成したチャット空間の識別情報と、当該チャットサーバの識別情報とを対応づけて記憶するチャット情報記憶部と、
前記クライアント端末から前記チャットサーバへの通信確立に係る要求信号を取得し、前記チャット空間の識別情報に基づき、前記要求信号を当該チャットサーバへ転送するチャット管理部と、
をさらに備えたことを特徴とする請求項１から５のいずれかに記載の中継ポイント割り当てサーバ。
【請求項７】
各チャット空間に参加している複数のメンバーによるネットワークを介した会話を実現するチャットシステムであって、
メンバーの発言データをネットワークに出力するとともに、他のメンバーの発言データをネットワークから取得して出力装置に出力させる複数のクライアント端末と、
分散して配置され、前記クライアント端末間での前記発言データの伝送を中継する複数のチャットサーバと、
前記クライアント端末のいずれかからの前記チャット空間の開設要求に応じて、前記複数のチャットサーバのうち、所定の規則に基づき選択した一のチャットサーバに、前記開設要求に対応するチャット空間における発言データの中継を要求する中継ポイント割り当てサーバと、
を備えることを特徴とするチャットシステム。
【請求項８】
各チャット空間に参加している複数のメンバーが、ネットワークを介した会話を実現するチャットシステムにおいて用いるクライアント端末であって、
当該クライアント端末を用いているメンバーの発言を取得する入力情報取得部と、
分散して配置され、前記クライアント端末間での発言データの伝送を中継する複数のチャットサーバから所定の規則に基づき選択された一のチャットサーバと通信を確立することにより、発言データの送受信を行う通信部と、
各メンバーの発言データを所定のフォーマットで順次出力装置に出力する出力部と、
を備え、
前記通信部は、前記入力情報取得部が取得したチャット開始要求に応じて、前記チャットサーバを選択する中継ポイント割り当てサーバに対し、チャット空間の開設要求を発行し、その結果として前記中継ポイント割り当てサーバから送信された情報に基づき、選択された前記チャットサーバと通信を確立することを特徴とするクライアント端末。
【請求項９】
前記通信部は、前記複数のチャットサーバとの通信速度を継続して測定する速度計測部を備え、計測結果が得られる都度、前記中継ポイント割り当てサーバに送信することにより、前記チャットサーバの選択に利用させることを特徴とする請求項８に記載のクライアント端末。
【請求項１０】
各チャット空間に参加している複数のメンバーが、クライアント端末を用いてネットワークを介した会話を実現するチャットシステムにおいて、分散して配置され、前記クライアント端末間での発言データの伝送を中継するチャットサーバであって、
前記クライアント端末のいずれかが発行した前記チャット空間の開設要求に応じて所定の規則に基づき一のチャットサーバを選択する中継ポイント割り当てサーバからの要求に従い、チャット空間を開設するチャット空間開設部と、
前記クライアント端末ごとに発行される、前記チャット空間への参加要求を前記中継ポイント割り当てサーバから受け付け、所定の条件を満たした前記クライアント端末と直接通信を確立することにより、前記発言データを中継するチャット処理部と、
を備えたことを特徴とするチャットサーバ。
【請求項１１】
各チャット空間に参加している複数のメンバーが、クライアント端末を用いてネットワークを介した会話を実現するチャットシステムにおいて、
前記クライアント端末のいずれかが、前記チャット空間の開設要求を発行するステップと、
中継ポイント割り当てサーバが、前記開設要求に応じて、分散して配置され、前記クライアント端末間での発言データの伝送を中継する複数のチャットサーバのうち、所定の規則に基づき選択した一のチャットサーバに、前記開設要求に対応するチャット空間における発言データの中継を要求するステップと、
選択された前記チャットサーバがチャット空間を開設したうえ、前記クライアント端末と直接通信を確立することにより、前記発言データを中継するステップと、
を含むことを特徴とするチャット空間構築方法。
【請求項１２】
各チャット空間に参加している複数のメンバーが、クライアント端末を用いてネットワークを介した会話を実現するチャットシステムにおける中継ポイント割り当てサーバに、
前記クライアント端末のいずれかから、前記チャット空間の開設要求を取得する機能と、
前記開設要求に応じて、分散して配置され、前記クライアント端末間での発言データの伝送を中継する複数のチャットサーバのうち、所定の規則に基づき選択した一のチャットサーバに、前記開設要求に対応するチャット空間における発言データの中継を要求する機能と、
を実現させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して複数のユーザが会話をするチャットシステムと、それに含まれる中継ポイント割り当てサーバ、クライアント端末、チャットサーバ、およびそこでなされるチャット空間構築方法に関する。
【背景技術】
【０００２】
近年の情報処理技術の発展、ネットワークの充実化などにより、パーソナルコンピュータや携帯端末など、ユーザが操作する装置の性能や使用環境によらず、多様なコンテンツを容易に楽しむことができるようになってきた。例えばコンテンツ提供サーバから送信されるデータを個々人で受信して楽しむばかりでなく、離れているユーザ同士がコミュニケーションをとりつつ一緒に楽しむことのできるコンテンツも増えている。ユーザ同士がネットワークを介して文字、音声、映像により会話する手段としてチャットシステムが知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５５３４４６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
チャットシステムにおいて対面での会話と同様の自然な会話を実現するには、発した言葉が即時に相手側に伝わることが望ましい。ネットゲームや動画配信など、並行して実施しているコンテンツについての会話であれば特に、会話の到達遅延はユーザにとって多大なストレスとなり得る。しかしながら個々のユーザが用いる端末の種類やネットワーク環境、参加するユーザの人数など、様々な状況に対応させようとするほど、通信に要する時間が増加しやすいというジレンマがある。
【０００５】
本発明はこのような課題に鑑みてなされたものであり、その目的は、安定的して遅延の少ないチャット環境を実現することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は中継ポイント割り当てサーバに関する。この中継ポイント割り当てサーバは、各チャット空間に参加している複数のメンバーが、クライアント端末を用いてネットワークを介した会話を実現するチャットシステムにおいて、クライアント端末のいずれかから、チャット空間の開設要求を取得する通信部と、当該開設要求に応じて、分散して配置され、前記クライアント端末間での発言データの伝送を中継する複数のチャットサーバのうち、所定の規則に基づき選択した一のチャットサーバに、開設要求に対応するチャット空間における発言データの中継を要求するチャットサーバ選択部と、を備えることを特徴とする。
【０００７】
本発明の別の態様はチャットシステムに関する。このチャットシステムは、各チャット空間に参加している複数のメンバーによるネットワークを介した会話を実現するチャットシステムであって、メンバーの発言データをネットワークに出力するとともに、他のメンバーの発言データをネットワークから取得して出力装置に出力させる複数のクライアント端末と、分散して配置され、クライアント端末間での発言データの伝送を中継する複数のチャットサーバと、クライアント端末のいずれかからのチャット空間の開設要求に応じて、複数のチャットサーバのうち、所定の規則に基づき選択した一のチャットサーバに、開設要求に対応するチャット空間における発言データの中継を要求する中継ポイント割り当てサーバと、を備えることを特徴とする。
【０００８】
本発明のさらに別の態様はクライアント端末に関する。このクライアント端末は、各チャット空間に参加している複数のメンバーが、ネットワークを介した会話を実現するチャットシステムにおいて用いるクライアント端末であって、当該クライアント端末を用いているメンバーの発言を取得する入力情報取得部と、分散して配置され、クライアント端末間での発言データの伝送を中継する複数のチャットサーバから所定の規則に基づき選択された一のチャットサーバと通信を確立することにより、発言データの送受信を行う通信部と、各メンバーの発言データを所定のフォーマットで順次出力装置に出力する出力部と、を備え、通信部は、入力情報取得部が取得したチャット開始要求に応じて、チャットサーバを選択する中継ポイント割り当てサーバに対し、チャット空間の開設要求を発行し、その結果として中継ポイント割り当てサーバから送信された情報に基づき、選択された前記チャットサーバと通信を確立することを特徴とする。
【０００９】
本発明のさらに別の態様はチャットサーバに関する。このチャットサーバは、各チャット空間に参加している複数のメンバーが、クライアント端末を用いてネットワークを介した会話を実現するチャットシステムにおいて、分散して配置され、クライアント端末間での発言データの伝送を中継するチャットサーバであって、クライアント端末のいずれかが発行したチャット空間の開設要求に応じて所定の規則に基づき一のチャットサーバを選択する中継ポイント割り当てサーバからの要求に従い、チャット空間を開設するチャット空間開設部と、クライアント端末ごとに発行される、チャット空間への参加要求を中継ポイント割り当てサーバから受け付け、所定の条件を満たしたクライアント端末と直接通信を確立することにより、発言データを中継するチャット処理部と、を備えたことを特徴とする。
【００１０】
本発明のさらに別の態様はチャット空間構築方法に関する。このチャット空間構築方法は、各チャット空間に参加している複数のメンバーが、クライアント端末を用いてネットワークを介した会話を実現するチャットシステムにおいて、クライアント端末のいずれかが、チャット空間の開設要求を発行するステップと、中継ポイント割り当てサーバが、開設要求に応じて、分散して配置され、クライアント端末間での発言データの伝送を中継する複数のチャットサーバのうち、所定の規則に基づき選択した一のチャットサーバに、開設要求に対応するチャット空間における発言データの中継を要求するステップと、選択されたチャットサーバがチャット空間を開設したうえ、クライアント端末と直接通信を確立することにより、前記発言データを中継するステップと、を含むことを特徴とする。
【００１１】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１２】
本発明によると、状況変化に応じた好適な情報処理の形態を常時提供できる。
【図面の簡単な説明】
【００１３】
【図１】一般的なチャットシステムの構成を例示する図である。
【図２】本実施の形態におけるチャットシステムの構成を示す図である。
【図３】本実施の形態におけるクライアント端末の内部回路構成を示す図である。
【図４】本実施の形態におけるクライアント端末の機能ブロックの構成を示す図である。
【図５】本実施の形態におけるゲートウェイおよび中継ポイント割り当てサーバの機能ブロックの構成を示す図である。
【図６】本実施の形態におけるチャットサーバの機能ブロックの構成を示す図である。
【図７】本実施の形態においてチャットルームを開設する処理手順を示すタイムチャートである。
【図８】本実施の形態において、開設されたチャットルームに参加する際の処理手順を示すタイムチャートである。
【図９】本実施の形態において、開設されたチャットルームに参加する際の処理手順を示すタイムチャートである。
【図１０】本実施の形態における中継ポイント割り当てサーバの選択規則記憶部に格納されるデータの構造例を示す図である。
【図１１】本実施の形態における中継ポイント割り当てサーバのチャット情報記憶部に格納されるデータの構造例を示す図である。
【図１２】本実施の形態におけるチャットサーバのチャット情報記憶部に格納されるデータの構造例を示す図である。
【図１３】本実施の形態において中継ポイント割り当てサーバが、チャットルームを開設させるチャットサーバあるいはその地域を選択するポリシーを説明するための図である。
【図１４】本実施の形態において、通信速度の実測値に基づきチャットサーバを選択する態様における、クライアント端末の機能ブロックの構成を示す図である。
【図１５】本実施の形態において、複数のクライアント端末との通信速度の平均値に基づきチャットサーバを選択する処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１４】
まず本実施の形態の有意性を明らかにするため、従来の一般的なチャット技術について説明する。なお本実施の形態では、ネットワークを介して音声または音声を伴う映像によって会話することを想定するが、文字による会話でもよいし、文字、音声、映像の２つ以上を組み合わせてもよい。以後、データの種類によらず、チャットにおいて相手の端末に送信すべき会話の内容を示すデータを「発言データ」と呼ぶ。
【００１５】
図１は、一般的なチャットシステムの構成を例示している。チャット参加者はそれぞれのクライアント端末２００ａ、２００ｂ、２００ｃ、２００ｄを介して他の参加者と会話する。例えばクライアント端末２００ａを用いる参加者が発言した場合、クライアント端末２００ａはその発言データを適宜符号化し、インターネットなどのネットワークを介して他の参加者のクライアント端末２００ｂ、２００ｃ、２００ｄに送信する。
【００１６】
詳細には発言データは、クライアント端末２００ａが属するローカルなネットワークからインターネットを経由して、宛先のクライアント端末２００ｂ、２００ｃ、２００ｄがそれぞれ属するローカルなネットワークに伝送される。異なるネットワーク間のデータ伝送には、ＮＡＴ（Network Address Translation）によるＩＰアドレスの変換や、プロトコルの変換などを行う必要がある。図示するようにクライアント端末同士が通信を確立し、データのやりとりを直接行う方式はピアツーピア（Peer to Peer）と呼ばれる。
【００１７】
この方式によれば、発言データを相手に直接伝送できるため、一般的には発言が相手に伝わるまでの遅延時間が少ないという利点がある。一方で、各クライアント端末がチャット相手の数だけ通信経路を確保する必要があるため、チャットに参加する人数が増えるほど、各クライアント端末やそれが属するネットワークにおけるリソースの消費が増大する。これにより、例えばゲームや動画などのコンテンツを別途処理しつつ会話をするような形態においては、参加人数の変動がコンテンツ自体の応答性に影響を及ぼす場合もある。
【００１８】
また伝送経路上のネットワークインターフェースにおける、ＮＡＴなど変換機構の組み合わせによっては、通信の確立に時間を要したり、通信が困難であったりすることも考えられる。さらに直接的な通信によりセキュリティー上の問題も生じやすい。そこで本実施の形態では、発言データを中継するチャットサーバを設けることによりこれらの問題を克服する。このとき、チャットサーバを異なる地域に複数配置し、クライアント端末の位置情報などに応じて適切なサーバを選択することにより、安定的かつ遅延時間の少ないチャットシステムを実現する。
【００１９】
図２は、本実施の形態におけるチャットシステムの構成を示す。チャットシステム１はクライアント端末１０ａ、１０ｂ、１０ｃ、・・・（以下、それらを総称してクライアント端末１０とも呼ぶ）、チャットサーバ１８ａ、１８ｂ、１８ｃ、・・・（以下、それらを総称してチャットサーバ１８とも呼ぶ）、ゲートウェイ１２、中継ポイント割り当てサーバ１４、およびロードバランサ１６ａ、１６ｂ、・・・（以下、それらを総称してロードバランサ１６とも呼ぶ）を含む。
【００２０】
クライアント端末１０はそれぞれのユーザが操作する装置であり、少なくともチャットに係る入力および出力を行う。クライアント端末１０はそのほか、ゲームや動画など各種コンテンツを自身で処理したり、コンテンツ提供サーバからデータの配信を受けたりして、その結果である画像や音声を出力してもよい。クライアント端末１０はタブレット、携帯電話、携帯端末、パーソナルコンピュータなど、一般的な装置や端末のいずれでもよい。
【００２１】
チャットサーバ１８は、クライアント端末１０ａ、１０ｂ、１０ｃ、・・・を操作する複数のユーザからなるグループが会話を実現するチャット空間を生成する。チャット空間は実際には、個別に識別情報が与えられ、チャット参加者やそれぞれのクライアント端末１０が関連付けられたデータ、あるいはその記憶領域の単位である。以後、各チャットグループが会話をする個々の空間を「チャットルーム」と呼ぶ。チャットサーバ１８はチャットルームに参加している全てのユーザのクライアント端末１０と通信を確立し、各ユーザの発言データを他のユーザのクライアント端末１０に転送する。
【００２２】
本実施の形態では上述のとおり、チャットサーバ１８ａ、１８ｂ、１８ｃ、・・・を異なる地域に分散させて設ける。図示する例では、チャットサーバ１８ａ、１８ｂは地域「Ａ」に、チャットサーバ１８ｃは地域「Ｂ」に設けられていることを、破線で囲んで示している。ここで「地域」とは例えば大陸や国といった単位が考えられるが、州、市、町、施設など単位の大きさや分割の基準は特に限定されない。また、１つの地域に１つのチャットサーバ１８を設けてもよいし、複数のチャットサーバ１８を設けてもよい。
【００２３】
中継ポイント割り当てサーバ１４は、クライアント端末１０のいずれかからのチャットルーム開設要求に応じて、開設に適したチャットサーバ１８を選択する。ネットゲームのプレイヤなどと比較して、チャットの参加者は共通の言語で会話をするという特性上、母国語が同じである確率が高い。母国語が同じユーザは地理的にも近い位置にいる可能性が高いため、上述のとおり「地域」ごとにチャットサーバを配置すれば、一つのチャットルームに参加する全ユーザに共通して近いチャットサーバがおよそ定まることに本発明者は想到した。
【００２４】
これを踏まえゲートウェイ１２は、送信されたチャットルームの開設要求信号から、要求元のクライアント端末１０の位置情報を取り出す。そして中継ポイント割り当てサーバ１４は例えば、要求元のクライアント端末１０が存在する地域のチャットサーバ１８を選択する。上記知見によれば、そのようにチャットサーバ１８を選択すれば、後から参加するユーザにとっても、近いチャットサーバ１８である確率が高いということになる。結果として、当該チャットサーバ１８を介してなされる会話において、通信遅延を最小限に抑えることができる。
【００２５】
ロードバランサ１６は各地域に配置され、中継ポイント割り当てサーバ１４からの要求に従い、同じ地域に配置されている複数のチャットサーバ１８ａ、１８ｂのうち、処理負荷の低いサーバを選択してチャットルームを開設させることにより、チャット中継処理の負荷を適切に分散させる。なお本実施の形態では上述のとおり、並行してゲームなどのコンテンツを処理するシステムが存在してよいが、従来技術を適用できるためここでの説明は省略する。
【００２６】
図３は、クライアント端末１０の内部回路構成を示している。クライアント端末１０は、ＣＰＵ（Central Processing Unit）２３、ＧＰＵ（Graphics Processing Unit)２４、メインメモリ２６を含む。これらの各部は、バス３０を介して相互に接続されている。バス３０にはさらに入出力インターフェース２８が接続されている。入出力インターフェース２８には、ＵＳＢやＩＥＥＥ１３９４などの周辺機器インターフェースや、有線又は無線ＬＡＮのネットワークインターフェースからなる通信部３２、ハードディスクドライブや不揮発性メモリなどの記憶部３４、表示装置へデータを出力する出力部３６、入力装置からデータを入力する入力部３８、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部４０が接続される。
【００２７】
ＣＰＵ２３は、記憶部３４に記憶されているオペレーティングシステムを実行することによりクライアント端末１０の全体を制御する。ＣＰＵ２３はまた、リムーバブル記録媒体から読み出されてメインメモリ２６にロードされた、あるいは通信部３２を介してダウンロードされた各種プログラムを実行する。通信部３２はまた、ゲートウェイ１２およびチャットサーバ１８と通信を確立し、チャットに必要な各種データを送受信する。
【００２８】
ＧＰＵ２４は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、ＣＰＵ２３からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部３６に出力する。メインメモリ２６はＲＡＭ（Random Access Memory）により構成され、処理に必要なプログラムやデータを記憶する。なお中継ポイント割り当てサーバ１４およびチャットサーバ１８の内部回路構成も同様でよい。
【００２９】
図４は、本実施の形態におけるクライアント端末１０の機能ブロックの構成を示している。同図および後述する図５、６、１４においてさまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、図３に示したようにＣＰＵ、ＧＰＵ、メインメモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、記録媒体や記憶装置に格納されメモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００３０】
クライアント端末１０は、入力装置を介してユーザ操作を受け付ける入力情報取得部４２、受け付けた操作の内容に応じてチャットに係る処理を実施するチャット処理部４４、出力すべき画像や音声のデータを生成し表示装置やスピーカーなどの出力装置に出力する出力部４６、ゲートウェイ１２やチャットサーバ１８などの外部装置と通信を確立しデータの送受を行う通信部５０、チャットに係る各種情報を記憶するチャット情報記憶部４８含む。
【００３１】
入力情報取得部４２は、チャットの開始や終了、チャット相手の選択、発言や会話の様子を表すデータを入力装置から取得する。ここで入力装置はクライアント端末１０に接続されたコントローラ、タッチパネル、キーボード、カメラ、マイクなど、チャットを実施するために必要な一般的な装置でよい。チャット処理部４４は、入力情報取得部４２が取得したユーザ操作に従い、チャットの開始／終了、チャット相手の招待、チャットへの参加／離脱などの処理に従い、表示すべき画像や外部に送信すべき信号を生成する。チャット処理部４４はまた、自装置のユーザの発言やチャット相手の発言のデータを取得し、所定の形式で出力データを生成する。
【００３２】
すなわちボイスチャットであれば、マイクやカメラが取得した、自装置のユーザの音声データや映像データを圧縮符号化して送信可能な形式にするとともに、圧縮符号化されて送信された相手の音声データや映像データを復号伸張する。チャット相手が複数の場合は、それらの音声や映像を適宜合成したりつなげたりする。テキストチャットであれば、送信された相手の発言を表すテキストデータを、自装置のユーザが入力したテキストとともに、時系列順など所定のフォーマットで表した画像を生成する。これらの処理は一般的なチャットの処理と同様でよい。
【００３３】
出力部４６は、そのようにして生成された画像や音声のデータを順次、出力装置に出力する。出力装置はクライアント端末１０に接続された、液晶ディスプレイや有機ＥＬディスプレイなどの一般的な表示装置、およびスピーカーなどの一般的な音響装置のいずれかまたは組み合わせでよい。通信部５０は、チャットの開始やチャットへの参加を要求する信号をゲートウェイ１２に送信する。特にチャットの開始、すなわちチャットルームの開設にあたっては、クライアント端末１０の位置情報を当該要求信号に含めることにより、適切なチャットサーバ１８にチャットルームを開設できるようにする。
【００３４】
通信部５０はさらに、自装置のユーザによる発言データを、対応するチャットルームが開設されているチャットサーバ１８に送信するとともに、相手の発言データを当該チャットサーバ１８から受信する。通信部５０はまた、チャットの終了やチャットからの離脱を要求する信号をチャットサーバ１８に送信するとともに、チャットに招待したい相手のクライアント端末１０に対し、直接的あるいは間接的にその旨を示す信号を送信する。チャット情報記憶部４８は、開設されたチャットルームの識別情報や、そこにアクセスするためのキーとなる情報を格納する。チャット情報記憶部４８はまた、自装置のユーザが事前に登録した、チャット相手の候補者に係る情報も格納する。
【００３５】
図５は、本実施の形態におけるゲートウェイ１２および中継ポイント割り当てサーバ１４の機能ブロックの構成を示している。ゲートウェイ１２は、クライアント端末１０や中継ポイント割り当てサーバ１４と通信を確立しデータの送受信を行う通信部７２、および、クライアント端末１０から送信された信号から、当該クライアント端末１０の位置情報を読み出す位置情報取得部７４を含む。
【００３６】
通信部７２は、チャットルームの開設や既存のチャットルームへの参加などの要求信号をクライアント端末１０から取得し、中継ポイント割り当てサーバ１４へ送信する。このとき位置情報取得部７４は、チャットルームの開設要求信号を通信部７２から取得し、信号送信元のクライアント端末１０の位置情報を読み出して通信部７２へ通知する。通信部７２は当該位置情報も中継ポイント割り当てサーバ１４へ送信する。通信部７２はまた、開設されたチャットルームの識別情報や、そこにアクセスするためのキーとなる情報を中継ポイント割り当てサーバ１４から取得し、クライアント端末１０に送信する。通信部７２はさらに、クライアント端末１０とチャットサーバ１８が通信を確立するまでに必要な信号を中継する。
【００３７】
中継ポイント割り当てサーバ１４は、ゲートウェイ１２、ロードバランサ１６、およびチャットサーバ１８と通信を確立しデータの送受信を行う通信部７６、クライアント端末１０と、チャットサーバ１８あるいはその地域をマッチングするチャットサーバ選択部７８、マッチングの根拠となるデータを格納する選択規則記憶部８０、チャットサーバ１８とチャットルームの対応を管理するチャット管理部８２、およびその対応関係を記憶するチャット情報記憶部８４を含む。
【００３８】
通信部７６は、クライアント端末１０から送信された、チャットルームの開設や既存のチャットルームへの参加などの要求信号を、ゲートウェイ１２を介して取得するとともに、開設されたチャットルームに係る情報を、ゲートウェイ１２を介してクライアント端末１０に返す。通信部７６はまた、選択されたチャットサーバ１８、またはその地域にあるロードバランサに、チャットルームの開設要求信号を送信し、その結果を受信する。後者の場合は、適切なチャットサーバ１８を選択してチャットルームを開設させるように要求する。通信部７６はさらに、クライアント端末１０とチャットサーバ１８が通信を確立するまでに必要な信号を中継する。
【００３９】
チャットサーバ選択部７８は、チャットルームの開設を要求したクライアント端末１０と適合するチャットサーバ１８、あるいはそのようなチャットサーバ１８が存在する地域を選択する。地域を選択した場合はロードバランサ１６がさらに、処理の負荷に応じてチャットサーバ１８を選択してよいが、以後、このような場合も含め、「チャットサーバの選択」と表現する場合がある。選択の根拠となる情報はあらかじめ選択規則記憶部８０に格納しておく。
【００４０】
基本的には上述のとおり、クライアント端末１０の近傍にあるチャットサーバ１８が選択されるように、クライアント端末１０の位置情報とチャットサーバ１８の地域を対応づけておく。一方、近くにあるチャットサーバ１８であっても、通信環境によっては遠くのチャットサーバ１８より通信速度が遅くなることが考えられる。
【００４１】
またチャットサーバ１８の地域を選択する場合、クライアント端末１０が属する地域より、それに隣接する地域にあるチャットサーバ１８の方が、当該クライアント端末１０に近かったり通信速度が速かったりすることも考えられる。これらを踏まえ好適には、実際の距離や通信速度を踏まえてチャットサーバ１８を選択できるように選択規則を作成しておく。あるいはさらに、チャット相手のクライアント端末１０の位置情報や通信速度も考慮してよい。具体例は後に述べる。
【００４２】
チャット管理部８２は、クライアント端末１０からの要求に応じてチャットルームが開設されたチャットサーバ１８と当該チャットルームの識別情報とを紐付け、チャット情報記憶部８４に格納する。そしてチャット管理部８２は、各クライアント端末１０からチャットへの参加要求がなされた場合に、当該要求信号に含まれるチャットルームの識別情報に基づき、参加要求の送信先であるチャットサーバ１８を特定して要求を転送する。この手続きにより、複数あるチャットサーバ１８から選択されたチャットサーバ１８とクライアント端末１０がやがては直接、通信できるようにする。
【００４３】
図６は、本実施の形態におけるチャットサーバ１８の機能ブロックの構成を示している。チャットサーバ１８は、クライアント端末１０、中継ポイント割り当てサーバ１４、ロードバランサ１６と通信を確立しデータの送受信を行う通信部９０、チャットルームを開設するチャットルーム開設部９２、発言データを適切に転送するチャット処理部９４、およびチャットに係る情報を記憶するチャット情報記憶部９６を含む。
【００４４】
通信部９０は、中継ポイント割り当てサーバ１４から直接、あるいはロードバランサ１６を介してチャットルームの開設要求信号を取得するとともに、それに応じて開設されたチャットルームの識別情報と、そこにアクセスするためのキーとなる情報を中継ポイント割り当てサーバ１４に返す。以後、チャットルームごとに一意に決定され付与される、アクセスのためのキーを「トークン」と呼ぶ。
【００４５】
通信部９０はさらに、クライアント端末１０からの通信確立要求、すなわちチャットへの参加要求を中継ポイント割り当てサーバ１４から取得し、その結果を中継ポイント割り当てサーバ１４、ゲートウェイ１２を介してクライアント端末１０へ返す。通信部９０はまた、通信が確立されたクライアント端末１０から発言データを取得し、同じチャットに参加している他のユーザのクライアント端末１０に転送する。
【００４６】
チャットルーム開設部９２は、チャットルーム開設要求に従いチャットルームを開設する。具体的にはチャットルームの識別情報とトークンを生成し、それらを対応づけてチャット情報記憶部９６に格納する。そしてクライアント端末１０がチャットへの参加要求を発行した際、当該信号に含まれるチャットルームの識別情報とトークンを、チャット情報記憶部９６に格納しておいた情報と照合し、双方が合致した場合にチャットへの参加を許可する。参加を許可したクライアント端末１０の識別情報は、チャットルームの識別情報と対応づけてチャット情報記憶部９６に格納する。
【００４７】
参加を許可したクライアント端末１０へは、通信の確立に要する情報を生成し、通信部９０、中継ポイント割り当てサーバ１４、ゲートウェイ１２を介してクライアント端末１０に送信する。所定の手続きを経てクライアント端末１０と直接的な通信が確立されたら、チャット処理部９４は、各クライアント端末１０から発言データを随時取得する。そして当該データに付加されるチャットルームの識別情報に基づき、チャットに参加している他のユーザのクライアント端末１０を特定したうえ、それを宛先として発言データを転送する。
【００４８】
チャットから離脱する旨の要求信号がクライアント端末１０から送信されたら、チャット処理部９４は、チャット情報記憶部９６の該当チャットルームに対応づけられた、要求元のクライアント端末１０のエントリを抹消し通信を終了させる。チャット自体の終了要求信号が送信されたら、チャット処理部９４はチャット情報記憶部９６における当該チャットルームのエントリを抹消し通信を終了させる。
【００４９】
次に、これまで述べた構成によって実現できる、チャット空間の構築方法について説明する。図７は、本実施の形態においてチャットルームを開設する処理手順を示すタイムチャートである。まずクライアント端末１０ａは、チャットを開始する要求をユーザから受け付ける（Ｓ８）。するとクライアント端末１０ａは、図示しない認証サーバに対して所定の手順で認証を要求し、チャットシステムへのアクセス権を取得する（Ｓ１０）。このアクセス権には、認証処理において特定された、クライアント端末１０ａの位置情報が含まれる。クライアント端末１０ａがインターネットプロバイダに接続することにより取得したグローバルＩＰアドレスには位置情報が含まれるため、これを利用してもよい。
【００５０】
そしてクライアント端末１０ａは、当該アクセス権を含むチャットルームの開設要求を発行する（Ｓ１２）。当該要求はまず、ゲートウェイ１２により取得され、要求信号に含まれる位置情報が取り出されうえ、中継ポイント割り当てサーバ１４へ転送される（Ｓ１４）。すると中継ポイント割り当てサーバ１４のチャットサーバ選択部７８は、選択規則記憶部８０を参照して、クライアント端末１０ａに適合するチャットサーバ１８ａ、あるいはその地域を選択する（Ｓ１６）。なお同図では地域を選択する場合を示している。
【００５１】
中継ポイント割り当てサーバ１４は、選択した地域に設けられたロードバランサ１６ａのアドレスを選択規則記憶部８０からさらに取得し、当該ロードバランサ１６ａにチャットルームの開設要求を転送する（Ｓ１８）。図では複数のロードバランサ１６のうち、選択された地域のロードバランサ１６ａを実線、その他を破線で示している。ロードバランサ１６ａは、自らが管理するチャットサーバ１８のうち、処理の負荷が偏らないように選択したチャットサーバ１８ａに、チャットルームの開設要求を転送する（Ｓ２０）。図では複数のチャットサーバ１８のうち、選択されたチャットサーバ１８ａを実線、その他を破線で示している。
【００５２】
チャットルームの開設要求を受信したチャットサーバ１８ａは、チャットルームの開設処理を実施する。すなわちチャットルームの識別情報（ルームＩＤ）および、当該チャットルームに参加するためのトークンを生成する。そしてチャットサーバ１８ａは開設要求の結果としてそれらの情報を、チャットサーバ１８ａ自体のプライベートＩＰアドレス（サーバＩＰ）とともにロードバランサ１６ａに返す（Ｓ２２）。ロードバランサ１６ａは、取得した開設要求結果を中継ポイント割り当てサーバ１４へ転送する（Ｓ２４）。
【００５３】
なお中継ポイント割り当てサーバ１４が直接、チャットサーバ１８ａを選択する場合は当然、ロードバランサ１６ａの処理を省略できる。チャットルームの開設要求結果を受信した中継ポイント割り当てサーバ１４は、ルームＩＤとサーバＩＰを対応づけてチャット情報記憶部８４に格納する。これにより以降、ルームＩＤのみが指定された要求信号がクライアント端末１０から送信されても、中継ポイント割り当てサーバ１４は適切なチャットサーバ１８ａに当該要求信号を転送できる。そのうえで中継ポイント割り当てサーバ１４はチャットルーム開設要求の結果として、ルームＩＤとトークンを、ゲートウェイ１２を介してクライアント端末１０ａへ返す（Ｓ２６、Ｓ２８）。
【００５４】
図８、９は、図７の処理に続き、開設されたチャットルームに参加する際の処理手順を示すタイムチャートである。すなわちチャットルームの開設を要求したクライアント端末１０ａは、この時点でチャットルームのルームＩＤとトークンを取得済みである。クライアント端末１０ａはまず、開設されたチャットルームへの参加要求を発行する（Ｓ３０）。クライアント端末１０ａはこの際、送信する信号にチャットルームのルームＩＤとトークンを含める。
【００５５】
参加要求信号はゲートウェイ１２を介して中継ポイント割り当てサーバ１４に送信される（Ｓ３２）。すると中継ポイント割り当てサーバ１４は、チャット情報記憶部８４を参照し、送信されたルームＩＤに対応づけられたチャットサーバ１８ａのサーバＩＰを特定したうえ、当該チャットサーバ１８ａに参加要求信号を転送する（Ｓ３４）。チャットサーバ１８ａは当該要求信号に応じて、チャットの一ノードとしてクライアント端末１０ａに識別情報（ピアＩＤ）を付与し、ルームＩＤと対応づけてチャット情報記憶部９６に格納する（Ｓ３５）。この際、チャットサーバ１８ａは、要求信号に含まれるルームＩＤとトークンのペアを、チャット情報記憶部９６に格納されたものと比較し、両者が合致しているときに限り登録を行う。
【００５６】
そしてチャットサーバ１８ａは、付与したピアＩＤを中継ポイント割り当てサーバ１４、ゲートウェイ１２を介して要求元のクライアント端末１０ａに送信する（Ｓ３６、Ｓ３８、Ｓ４０）。次にクライアント端末１０ａは、自身のＳＰＤ（Session Description Protocol）を取得し、ゲートウェイ１２を介して中継ポイント割り当てサーバ１４に送信する（Ｓ４２、Ｓ４４）。ＳＰＤは送信するデータの種類や自身のＩＰアドレス、ポート番号など、通信の確立に必要な一般的な情報である。
【００５７】
クライアント端末１０ａはこの際、送信する信号にチャットルームのルームＩＤおよび自身に付与されたピアＩＤを含める。この場合も中継ポイント割り当てサーバ１４は、チャット情報記憶部８４を参照して対応するチャットサーバ１８ａを特定し、当該チャットサーバ１８ａにＳＰＤを転送する（Ｓ４６）。チャットサーバ１８ａは送信されたＳＰＤを、送信元のクライアント端末のピアＩＤと対応づけてチャット情報記憶部９６に格納したうえ、自身のＳＰＤを取得し、中継ポイント割り当てサーバ１４、ゲートウェイ１２を介してクライアント端末１０ａに送信する（Ｓ４８、Ｓ５０、Ｓ５２）。
【００５８】
続いてクライアント端末１０ａおよびチャットサーバ１８ａは、互いのＳＰＤを用いて通信経路を探索し通信を確立する（Ｓ５４）。この処理は実際には、クライアント端末１０ａとチャットサーバ１８ａ間でＩＣＥ（Interactive Connectivity Establishment）の候補を交換する処理を含む。ＩＣＥは接続可能な通信経路を表す情報である。この処理においてもクライアント端末１０ａが、送信信号にルームＩＤを含めることにより、中継ポイント割り当てサーバ１４はそれに対応づけられたチャットサーバ１８ａへ信号を転送する。これらの手続きにより、クライアント端末１０ａとチャットサーバ１８ａとの間で直接的なデータの送受が可能になる。
【００５９】
図９に移り、クライアント端末１０ａは、チャット相手を選択する操作入力をユーザより受け付ける（Ｓ５６）。例えばチャット情報記憶部４８に登録済みの友達のリストを表示装置に表示させ、ユーザによる選択操作を受け付ける。するとクライアント端末１０ａは、選択されたユーザ、または当該ユーザが操作するクライアント端末１０ｂの識別情報をチャット情報記憶部４８から読み出し、それを宛先としてチャットへの招待通知を発行する（Ｓ５８）。図示する例では、当該通知を一旦、「セッションマネージャ」が受け取り、相手ユーザに転送している（Ｓ６０）。
【００６０】
ここでセッションマネージャは、本実施の形態のチャットシステムとは別に準備され、メッセージの送受信を実現する一般的な構成としており、具体的な通知手順は特に限定されない。ただしセッションマネージャの機能を本実施の形態のチャットシステムに含めてもよい。いずれにしろクライアント端末１０ａは、招待通知にチャットルームのルームＩＤとトークンを含める。通知を見た相手ユーザがクライアント端末１０ｂに対しチャットへの参加操作を行うと、クライアント端末１０ｂはそれを受け付け（Ｓ６２）、チャットルームへの参加要求を発行する（Ｓ６４）。クライアント端末１０ｂはこの際、送信する信号にチャットルームのルームＩＤとトークンを含める。
【００６１】
以降、クライアント端末１０ａの参加処理と同様、中継ポイント割り当てサーバ１４を介してチャットサーバ１８ａに参加要求が送信され（Ｓ６６、Ｓ６８）、チャットサーバ１８ａからはクライアント端末１０ｂのピアＩＤが返される（Ｓ７０、Ｓ７２、Ｓ７４）。クライアント端末１０ｂについても当然、ルームＩＤとトークンのペアが正当な場合にのみ参加登録がなされピアＩＤが送信される。その後、図８を参照して上述したのと同様の手続きを経て（図示せず）、クライアント端末１０ｂとチャットサーバ１８ａとの通信が確立される（Ｓ７６）。
【００６２】
図９に示したクライアント端末１０ｂに係る手続きは、チャット参加者候補として指定された全てのユーザのクライアント端末１０についても同様に実施する。そしてチャットサーバ１８ａが、各クライアント端末１０におけるユーザの発言データを他のクライアント端末１０に転送することにより、チャットサーバ１８ａを中継ポイントとして会話が成立することになる。この構成によれば、各クライアント端末１０がチャットのために接続すべき相手が、１つのチャットサーバ１８に限定されるため、チャットの参加人数によらず安定した通信が可能になる。
【００６３】
図１０は、中継ポイント割り当てサーバ１４の選択規則記憶部８０に格納されるデータの構造例を示している。この例で選択規則１００は、クライアント端末１０が存在する地域の識別情報を示す端末地域フィールド１０２と、チャットサーバ１８が存在する地域の識別情報を示すサーバ地域フィールド１０４とを対応づけた構造を有する。例えばクライアント端末１０のコード「０００１」の地域に対し、識別情報「Ａ」なるチャットサーバの地域が対応づけられている。
【００６４】
クライアント端末１０の位置情報から判明する地域の単位と、チャットサーバ１８に与えられる地域の単位は同じでも異なっていてもよい。また両者の地域の単位は一方が他方に包含される関係にあってもよいし、一部が重複していても、全く重複していなくてもよい。いずれにしろクライアント端末１０の単位地域ごとに、なるべく高速に通信を行えるチャットサーバ１８の地域をあらかじめ求めておき、選択規則１００として準備しておく。
【００６５】
中継ポイント割り当てサーバ１４のチャットサーバ選択部７８は選択規則１００を参照し、チャットルーム開設要求の信号に含まれるクライアント端末１０の位置情報に対応するチャットサーバ１８の地域を取得することで、最適なチャットサーバ１８を選択できる。なお図１０および後述する図１１、１２において示される各種パラメータや、その表示形式は一例に過ぎず、図示するものに限定されない。例えば選択規則１００において、サーバ地域フィールド１０４の代わりにチャットサーバ１８の識別情報を示すフィールドを設け、チャットサーバ１８を直接選択できるようにしてもよい。またサーバ地域フィールド１０４に格納する地域はそれぞれ、当該地域に配置されたロードバランサ１６あるいはチャットサーバ１８と別途対応づけておく。
【００６６】
図１１は、中継ポイント割り当てサーバ１４のチャット情報記憶部８４に格納されるデータの構造例を示している。この例でチャット情報１１０は、チャットサーバ１８のＩＰアドレスを示すサーバＩＰフィールド１１２と、それぞれで開設されたチャットルームの識別情報を示すルームＩＤフィールド１１４を対応づけた構造を有する。例えばサーバＩＰが「１００．１００．１００．１１１」のチャットサーバ１８において、ルームＩＤ「０１」、「０３」、「０８」なる３つのチャットルームが開設されている。
【００６７】
中継ポイント割り当てサーバ１４は、チャットルームを開設したチャットサーバ１８からの返答に基づき、チャット情報１１０のエントリを更新していく。これによりルームＩＤからサーバＩＰを導出でき、クライアント端末１０からの以後の要求信号を適切なチャットサーバ１８へ転送できる。なおユーザ操作によりチャットが終了した際は、中継ポイント割り当てサーバ１４はチャットサーバ１８からその旨の通知を取得することで、ルームＩＤフィールド１１４から該当エントリを抹消する。
【００６８】
図１２は、チャットサーバ１８のチャット情報記憶部９６に格納されるデータの構造例を示している。この例でチャット情報１２０は、自装置で開設されているチャットルームの識別情報を示すルームＩＤフィールド１２２、各チャットへの参加に必要なキー情報を示すトークンフィールド１２４、および、各チャットに参加しているクライアント端末１０の識別情報を示すピアＩＤフィールド１２６を対応づけた構造を有する。例えばルームＩＤ「０１」のチャットルームのトークンは「２Ａ」であり、それに参加しているのはピアＩＤ「０１ａａ」、「０２ａｃ」、「００ｃｖ」、「０４ｋａ」、「０２ｐｐ」なる５つのクライアント端末１０である。
【００６９】
チャットサーバ１８はチャットルームの開設にあたりルームＩＤとトークンを発行し、それらを対応づけてルームＩＤフィールド１２２およびトークンフィールド１２４に格納する。そしてクライアント端末１０からのチャット参加要求に含まれる、ルームＩＤとトークンのペアが合致する場合に限り参加を許可し、要求元のクライアント端末１０にピアＩＤを発行したうえピアＩＤフィールド１２６に登録する。各ピアＩＤは、その後に実際に通信を確立した際に決定したＳＰＤやＩＣＥなど、データの送受信に必要な情報と別途対応づけておく。チャット中、クライアント端末１０はルームＩＤとピアＩＤをユーザの発言データに付加したうえでチャットサーバ１８に送信する。
【００７０】
これを受けてチャットサーバ１８は、チャット情報１２０を参照してルームＩＤに対応するピアＩＤを取得することにより、チャットに参加しているその他のクライアント端末１０に発言データを転送する。ピアＩＤがエントリされているクライアント端末１０のいずれかにおいて、ユーザがチャットから離脱する操作を行ったら、チャットサーバ１８はピアＩＤフィールド１２６から該当エントリを抹消する。またチャットを終了させる操作がなされたら、チャットサーバ１８は該当ルームＩＤとそれに対応づけられた各フィールドのエントリを抹消する。
【００７１】
図１３は、本実施の形態において中継ポイント割り当てサーバ１４が、チャットルームを開設させるチャットサーバ１８あるいはその地域を選択するポリシーを説明するための図である。同図はクライアント端末１０ａ、１０ｂ、１０ｃとチャットサーバ１８ａ、１８ｂ、１８ｃの位置関係を示している。例えば図の領域を世界全体としてもよいし、それより狭い範囲としてもよい。チャットサーバの選択基準として最もシンプルには、距離のみを考慮することが考えられる。例えばクライアント端末１０ａに最も近いチャットサーバはチャットサーバ１８ｂであるので、チャットサーバ１８ｂを選択してチャットルームを開設させる。
【００７２】
一方、クライアント端末１０ａ、あるいはそれが属する地域ａの多くの部分あるいは全てが、チャットサーバ１８ａが属する地域Ａに含まれている場合、地域Ａのチャットサーバ１８ａを選択することも考えられる。このポリシーは、上述したチャットの特性との親和性が高い。例えば地域Ａを国とした場合、同じ言語で会話する参加者は同じ国にいる確率が高いため、後から参加したり離脱したりして参加者に変動があったとしても、参加者から見て総じて距離が近いのはチャットサーバ１８ａである可能性が高い。
【００７３】
そのような距離または面積的な観点に加え、通信帯域を考慮に入れてもよい。例えばクライアント端末１０ａに最も近いチャットサーバがチャットサーバ１８ｂであっても、十分な通信環境が整備されているのはチャットサーバ１８ａとの間のネットワークであることが考えられる。この場合も、チャットサーバ１８ａを選択することにより低遅延でのチャットを実現できる。
【００７４】
このようにチャットシステムの構築においては、距離、地域の包含関係、通信帯域のいずれかまたは組み合わせを考慮して選択規則１００を準備する。上述のとおりチャットにより同一言語で会話をするユーザのクライアント端末１０ａ、１０ｂ、１０ｃは、世界の中でも同じ国などある程度近い距離に存在する確率が高いため、クライアント端末１０ａによるチャットルーム開設要求に従い、チャットサーバ１８ａあるいはチャットサーバ１８ｂを選択すれば、その他の参加者のクライアント端末１０ｂ、１０ｃに対しても、高速通信を実現できる可能性が高くなる。
【００７５】
すなわちクライアント端末１０ａ、１０ｂ、１０ｃのいずれからも遠いチャットサーバ１８ｃが選択されるのを回避でき、無駄な経路による通信遅延を抑えることができる。ただし同じ通信経路であっても使用状況によって通信速度が変化するため、選択規則は固定としなくてもよい。例えば各クライアント端末１０ａ、１０ｂ、１０ｃは、全てのチャットサーバ１８ａ、１８ｂ、１８ｃと定期的に通信して通信速度を測定し、その結果を、ゲートウェイ１２を介して中継ポイント割り当てサーバ１４に通知する。中継ポイント割り当てサーバ１４は当該結果に基づき選択条件における対応づけを更新する。
【００７６】
例えばクライアント端末１０ａが計測した結果、通信速度が最高となるチャットサーバがチャットサーバ１８ｂからチャットサーバ１８ａに変化したら、中継ポイント割り当てサーバ１４は選択規則１００において端末地域ａに対応づけられたサーバ地域をチャットサーバ１８ｂの地域からチャットサーバ１８ａの地域Ａに更新する。このようにすることで、チャットルームの開設時点で最も高速に通信を行えるチャットサーバ１８を利用することができる。
【００７７】
これを応用すると、チャットルームの開設を要求したクライアント端末１０ａばかりでなく、チャット相手のクライアント端末１０ｂ、１０ｃとチャットサーバ１８との通信速度も考慮してチャットサーバ１８を選択することもできる。すなわちあらかじめチャットに参加するユーザまたは参加しそうなユーザがおよそ判明している場合、チャットサーバ１８ごとに、各クライアント端末１０との通信速度の平均値を算出する。そして平均速度が最も速いチャットサーバ１８を選択すれば、全体として最も遅延の少ないチャットを実現できる。
【００７８】
図１４は、通信速度の実測値に基づきチャットサーバ１８を選択する態様における、クライアント端末１０の機能ブロックの構成を示している。なお図４に示したクライアント端末１０と同じ機能を有するブロックには同じ符号を付し、説明を省略する。図示するクライアント端末１０ａは、図４に示したクライアント端末１０と同様に、入力情報取得部４２、チャット処理部４４、出力部４６、およびチャット情報記憶部４８を備える。この態様ではさらに、チャットサーバ１８との通信速度を定期的に計測する速度計測部５１を備えた通信部５０ａを含む。
【００７９】
速度計測部５１は、全てのチャットサーバ１８、あるいは距離や通信帯域などに基づき絞り込まれた、候補となるチャットサーバ１８と定期的に通信を確立し、所定のデータの送受信を行うことにより通信速度を測定する。この測定処理自体には一般的な技術を適用できる。通信部５０ａは基本的には、図４で示したクライアント端末１０の通信部５０と同様に機能するが、速度計測部５１が通信速度を計測した際は、そのデータもゲートウェイ１２を介して中継ポイント割り当てサーバ１４に送信する。
【００８０】
中継ポイント割り当てサーバ１４の機能ブロックは、図５で示したものと同様でよいが、選択規則記憶部８０には、各クライアント端末１０から送信された通信速度の実測値を、クライアント端末１０とチャットサーバ１８の組み合わせごとに格納する。そしてチャットサーバ選択部７８は上述のとおり、図１０で示した選択規則１００の対応づけを更新する必要があれば、すなわち最速のチャットサーバに変更があれば、情報を更新する。
【００８１】
あるいは選択規則１００を準備せずに、チャットルームの開設要求がなされた時点で、開設要求を発行したクライアント端末１０ａにとって最速のチャットサーバ１８を選択するようにしてもよい。または上述のとおり、チャットに参加する予定のクライアント端末１０全てで平均した通信速度が最速のチャットサーバ１８を選択するようにしてもよい。ここで参加予定のユーザは、チャットルームの開設を要求したユーザが指定してもよいし、過去の履歴などから推定してもよい。
【００８２】
図１５は、複数のクライアント端末との通信速度の平均値に基づきチャットサーバ１８を選択する処理手順を示すフローチャートである。このチャートは、図７のＳ１２〜Ｓ１６の処理に対応する。まず各クライアント端末１０ａ、１０ｂの速度計測部５１は、チャットサーバごとに通信を確立し、それぞれの通信速度を計測したうえ（Ｓ８０ａ、Ｓ８０ｂ）、計測結果を中継ポイント割り当てサーバ１４に送信する（Ｓ８２ａ、Ｓ８２ｂ）。ここで計測、送信する対象は、通信の速さを直接的または間接的に表すパラメータであればその種類は特に限定されない。
【００８３】
また、図では２つのクライアント端末１０ａ、１０ｂのみを代表させて示しているが、この処理は、全てのクライアント端末１０が定期的に実施する。中継ポイント割り当てサーバ１４では、クライアント端末１０とチャットサーバ１８の組み合わせごとに、直近に計測された通信速度を格納していく。ユーザからチャットの開始を要求する操作がなされたクライアント端末１０ａは、中継ポイント割り当てサーバ１４にチャットルームの開設要求を送信する（Ｓ８４）。この際、チャットに参加予定の相手ユーザまたはそれぞれのクライアント端末１０ｂ、１０ｃ、・・・の識別情報も同時に送信する。
【００８４】
中継ポイント割り当てサーバ１４は当該要求を受信したら、チャットサーバ１８ごとに、参加予定のユーザのクライアント端末１０と当該チャットサーバ１８との通信速度の平均値を算出する（Ｓ８６）。ここで参加予定のユーザのクライアント端末１０のうちｎ番目のクライアント端末とＮ番目のチャットサーバとの通信速度をＳ（ｎ，Ｎ）と表記すると、Ｎ番目のチャットサーバに対して算出される平均通信速度Ｓａｖｅ（Ｎ）は次の式で得られる。
Ｓａｖｅ（Ｎ）＝ΣｎＳ（ｎ，Ｎ）
そして中継ポイント割り当てサーバ１４は、最速の平均速度Ｓａｖｅ（Ｎ）が得られるチャットサーバ１８を、チャットルームを開設するサーバとして選択する（Ｓ８８）。
【００８５】
なお図示する例では、通信速度の実測値に基づきチャットサーバの有意性を比較したが、チャットに参加予定のユーザのクライアント端末１０と各チャットサーバ１８との距離に基づきチャットサーバを選択してもよい。この場合、クライアント端末１０がモバイル端末であれば、中継ポイント割り当てサーバ１４は通信速度と同様に、各クライアント端末１０と各チャットサーバ１８との距離を収集していく。クライアント端末１０が据え置き型の端末であれば、距離は固定となるため事前に取得が可能である。
【００８６】
いずれにしろ中継ポイント割り当てサーバ１４は、参加予定者のクライアント端末からの距離の平均値が最も小さいチャットサーバ１８を選択すればよい。なお発言が伝わるまでの遅延時間に影響を与えるものであれば、チャットサーバ選択の根拠となるパラメータは通信速度や距離に限定されない。いずれの場合も、同様にクライアント端末全体での平均値を比較することにより、チャットサーバを一意に決定できる。あるいは複数のパラメータの平均値の重みづけ和をスコアとして比較することで、多角的な観点からチャットサーバを選択してもよい。
【００８７】
以上述べた本実施の形態によれば、複数のユーザがネットワークを介して会話するチャットシステムにおいて、クライアント端末が発信した発言データを中継するチャットサーバを異なる地域に複数設けるとともに、好適なチャットサーバを選択する中継ポイント割り当てサーバを設ける。チャットサーバが中継することにより、クライアント端末が確保すべき通信経路が単純化されるため、ピアツーピア接続のケースと比較し参加人数によらず安定したチャット環境を提供できる。またチャットに必要な通信経路が限定されるため、並行して他のコンテンツを楽しむ場合にチャットの影響を受けにくい。さらに、クライアント端末から見て相手の端末の実体は抽象化されるため、悪意のあるユーザからの攻撃やなりすましなどセキュリティー上の問題を回避しやすい。
【００８８】
ここで中継ポイント割り当てサーバが、距離、通信帯域、通信速度などに基づき適切なチャットサーバを選択することにより、チャットサーバを経由しても発言が相手に伝わるまでの遅延を最低限に抑えることができる。チャットが一つの言語で交わされる会話であるという特性上、チャット参加者は地理的に近い位置に存在する確率が高いため、クライアント端末から見たチャットサーバの優劣は、人数によらずチャット参加者でおよそ共通となる。それを利用し最適なチャットサーバを一つ選択することにより、安定的かつ遅延の少ないチャットシステムを実現できる。
【００８９】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【００９０】
１  チャットシステム、  １０  クライアント端末、  １２  ゲートウェイ、  １４  中継ポイント割り当てサーバ、  １６  ロードバランサ、  １８  チャットサーバ、  ４２  入力情報取得部、  ４４  チャット処理部、  ４６  出力部、  ４８  チャット情報記憶部、  ５０  通信部、  ７２  通信部、  ７４  位置情報取得部、  ７６  通信部、  ７８  チャットサーバ選択部、  ８０  選択規則記憶部、  ８２  チャット管理部、  ８４  チャット情報記憶部、  ９０  通信部、  ９２  チャットルーム開設部、  ９４  チャット処理部、  ９６  チャット情報記憶部。
【図１】
2020129207.tif 000003
【図２】
2020129207.tif 000004
【図３】
2020129207.tif 000005
【図４】
2020129207.tif 000006
【図５】
2020129207.tif 000007
【図６】
2020129207.tif 000008
【図７】
2020129207.tif 000009
【図８】
2020129207.tif 000010
【図９】
2020129207.tif 000011
【図１０】
2020129207.tif 000012
【図１１】
2020129207.tif 000013
【図１２】
2020129207.tif 000014
【図１３】
2020129207.tif 000015
【図１４】
2020129207.tif 000016
【図１５】
2020129207.tif 000017