(57)【要約】【課題】  ピアツーピア・インスタントメッセージングおよびチャットルームシステムのための方法およびシステムを提供すること。【解決手段】  開示するのは、ピアツーピア（「Ｐ２Ｐ」）ネットワークを用いてチャットルームへのアクセスを制御する方法である。この方法は、検索を要求するノードに隣接し、かつ、少なくとも１つのノードを有するＰ２Ｐネットワークの第１組のノードに検索要求を送信するステップと、第１組内の少なくとも１つのノードに隣接し、かつ、少なくとも１つのノードを有する第２組のノードに要求を転送するステップと、検索要求を、第１組および第２組の各ノードのローカルプロファイルにあるトピックリストと比較するステップと、第１組および第２組のノードからゼロまたはそれ以上の応答を受信するステップと、検索を要求するノードと要求に応答するノードの少なくとも１つとの間にネットワーク接続を確立し、コミュニティを形成するステップとを含む。【選択図】      図３
2006236344.tif 000002
【特許請求の範囲】
【請求項１】
ピアツーピア（“Ｐ２Ｐ”）ネットワークを用いてチャットルームへのアクセスを制御する方法であって、
検索を要求するノードに隣接し、かつ、少なくとも１つのノードを有するＰ２Ｐネットワーク内の第１組のノードに検索要求を送信するステップと、
前記第１組内の前記少なくとも１つのノードに隣接し、かつ、少なくとも１つのノードを有する第２組のノードに要求を転送するステップと、
前記検索要求を、前記第１組および第２組の各ノードにおいてローカルプロファイルにあるトピックリストと比較するステップと、
前記第１組および第２組のノードからゼロまたはそれ以上の応答を受信するステップと、
前記検索を要求するノードと前記要求に応答するノードの少なくとも１つとの間にネットワーク接続を確立し、コミュニティを形成するステップと、
を含む方法。
【請求項２】
前記コミュニティ内のノード間でメッセージを送信するステップをさらに含む、請求項１に記載の方法。
【請求項３】
少なくとも１つの追加ノードが検索要求を送信し、前記コミュニティに参加する、請求項１に記載の方法。
【請求項４】
要求側ノードが、応答側ノードへの前記ネットワーク接続を確立する際に、認証トークンを提示する、請求項１に記載の方法。
【請求項５】
前記認証トークンが、前記要求側ノードによって受信される応答の少なくとも一部である、請求項４に記載の方法。
【請求項６】
コミュニティ内のどのノードによって送信されるメッセージも、次にコミュニティ内の全てのノードに転送される、請求項２に記載の方法。
【請求項７】
ネットワーク・トラフィックの均衡を図るため、ノード間のネットワーク接続が再構成される、請求項１に記載の方法。
【請求項８】
前記ローカルプロファイルにあるトピックリストが、各ノードが要求側ノードからの検索要求との合致をみるためのキーワードを含む、請求項１に記載の方法。
【請求項９】
前記検索要求が前記検索プロファイル内の１つまたはそれ以上のエントリと合致するか否かをノードが判断する、請求項８に記載の方法。
【請求項１０】
前記検索要求が合致するか否かを判断するプロセスが、人為操作プロセスまたは自動プロセスである、請求項９に記載の方法。
【請求項１１】
前記検索要求に合致するプロファイル・ストリングと、ネットワーク接続ポイントとを送信することによって、応答側ノードが検索要求に応答する、請求項９に記載の方法。
【請求項１２】
コミュニティに存在するノードの中にアクティブなノードが現在幾つあるかに基づいて、応答側ノードが新しいノードからの接続を受諾するか否かを判断する、請求項１に記載の方法。
【請求項１３】
前記コミュニティに対し、最大参加可能ユーザ数が事前に決められる、請求項１に記載の方法。
【請求項１４】
コミュニティ内の全てのノードが、全てのメッセージの少なくとも１つのコピーを受信する、請求項６に記載の方法。
【請求項１５】
ネットワーク接続を切断することによって、ノードがコミュニティを離れる、請求項１に記載の方法。
【請求項１６】
新しいノードがグループに参加しまたは離れる際に、コミュニティ内の全てのノードが通知を受ける、請求項１５に記載の方法。
【請求項１７】
各メッセージが、固有のノード識別子およびメッセージ番号を有する、請求項１４に記載の方法。
【請求項１８】
検索を要求する装置における、コミュニティを形成するための方法であって、
前記検索を要求する装置に隣接する、Ｐ２Ｐネットワーク内の第１組の装置に対して、関心のあるトピックを示す検索要求を送信するステップと、
前記第１組および前記第１組の装置に隣接する前記Ｐ２Ｐネットワーク内の第２組の装置のうち、前記トピックに合致するエントリを含むトピックリストを有する装置から、前記検索要求に対する応答を受信するステップと、
前記要求に応答する装置との間にＰ２Ｐ接続を確立することによって、コミュニティを形成するステップと、
を含む方法。
【請求項１９】
ローカルプロファイルを有する応答側装置における、コミュニティを形成するための方法であって、
検索を要求する装置から、関心のあるトピックを示す検索要求を受信するステップと、
前記ローカルプロファイルにあるトピックリストと、前記検索要求が示す関心のあるトピックとを比較するステップと、
前記トピックリストに前記検索要求が示す関心のあるトピックと合致するエントリが存在することを条件として、前記検索を要求する装置が前記応答側装置との間にＰ２Ｐ接続を確立してコミュニティを形成できるように応答側装置のネットワーク上の位置を含む前記検索要求に対する応答を作成するステップと、
前記検索を要求する装置へ前記検索要求に対する応答を送信するステップと、
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータ・ネットワークに関するものである。より具体的には、ピアツーピア（「Ｐ２Ｐ」）ネットワーク、および、動的にチャットルームを作成してコミュニティを形成することに関する。
【背景技術】
【０００２】
従来のインターネット・チャットシステムは、中央サーバを用いるものである。これらのシステム内においては、チャットルームは静的または動的に作成されるが、そのチャットルームは公にリスティングされ、中央サーバによって管理される。例示的システムには、ＡＯＬ、ＭＳＮ、および、Ｙａｈｏｏ！によって管理されるチャットルームが含まれる。これらのチャットルームにおいては、個別のユーザはチャットルームを管理することが許されない。具体的には、個別のユーザは、チャットルームへの入室を管理することに関して制限され、すなわち、どのユーザが、そして何名のユーザがチャットルームに参加できるかを決定することはできない。
【０００３】
集中管理方式の性質のため、インターネット・チャットルームは頻繁に、広告などの無関係なまたはトピックから外れたメッセージを送る悪質なユーザ、すなわち「スパマー」のターゲットとなっている。これらのトピックから外れたメッセージは、スパムメッセージに対する有用なメッセージの比率を極めて低くすることによって、チャットルーム内で効果的に一種のサービス妨害攻撃を引き起こす。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従って、この技術分野においては、ピアツーピア・インスタントメッセージングおよびチャットルームシステムのための方法およびシステムが必要とされている。
【課題を解決するための手段】
【０００５】
本発明の１つの実施形態は、チャット・メッセージングを作成し、発見し、突き止め、および参加することを目的とした、ピアツーピアネットワーク内の複数のノード（コンピュータ、以下では単に「ノード」とする）を含む。要求側ノードは、Ｐ２Ｐネットワーク内に、関心あるトピックの検索要求を送信することができる。応答側ノードは、検索要求を受信し、オリジナルの検索要求が応答側のトピックプロファイル内にある１つまたはそれ以上のエントリと合致した場合に、要求側ノードに返信する。合致プロセスは、正確な合致である必要はないが、ユーザ、すなわちこれから応答すると見込まれる側のノードによって定義される合致基準における幾つかの閾値と適合しなければならない。これは、人為操作プロセスまたは自動プロセスにより行うことが可能である。応答側ノードはオリジナルの検索要求に合致する該当のトピックを返信することができ、次に、要求側ノードは応答側ノードに接続するか否かを決定し、こうして、２つのノード間、および、恐らくは既にそのコミュニティに参加している他のノードとの間でコミュニティ、すなわちチャットルームを形成する。なお、要求側ノードが応答側ノードとの間にＰ２Ｐ接続を確立してコミュニティを形成できるように、応答側ノードが返信する応答には応答側ノードのネットワーク上の位置を示す情報を含めることができる。要求側ノードが無事にコミュニティに参加すると、コミュニティ内のノード間でメッセージが交わされる。コミュニティへのネットワーク接続を切断することによって、ノードはそのコミュニティを離れることができる。
【０００６】
メッセージはテキストメッセージとすることができるが、それに限定されるものではない。メッセージはまた、音声、ビデオ、写真、または他のデータを含んでもよい。
【発明を実施するための最良の形態】
【０００７】
本発明の態様は、Ｐ２Ｐシステムを用いるチャットルームの動的な作成、個別のユーザによる自身のチャットルームの管理、どのおよび何名のユーザがチャットルームに参加できるかの選択を含む。それら全ての態様は、チャットルームに送られるスパムの量を制限する一助となる。
【０００８】
動的にチャットルームを作成するという態様は、特定のトピックに関するチャットルームを作成することによって、悪質なユーザのアクセスを大幅に制限するものである。チャットルームのトピックが特定的であればあるほど、悪質なユーザがそのトピックを見つけることは困難になる。例えば、「音楽」というチャットルームのトピックは容易に見つけられるであろう。対照的に、「１９１２年のデルタブルース音楽」というチャットルームのトピックを見つけることは、はるかに困難である。
【０００９】
トピックが特定的であればあるほど、トピックが無数にあるという性質のため、発見は困難になる。無数のトピックの使用が悪質なユーザの影響を制限するのは、それにより悪質なユーザがトピックに含まれる特定的な語句を知る必要が生じるからである。悪質なユーザがチャットルームにアクセスできた場合でも、非集中管理のために容易にその接続を切断してさらなるアクセスを防ぐことができる。
【００１０】
１つの実施形態において、本発明は、Ｐ２Ｐネットワークを用いて、ネットワークをベースとしたチャット／メッセージルームを動的に作成するための方法および装置である。本発明の実施形態は、関心あるトピックを検索し、それに応答することによって、Ｐ２Ｐネットワーク内のノードが動的にチャットルームを作成することを可能にする。そのようなチャットルームを作成する目的は、メッセージを交換し、会話することである。同様の関心をもつ他のノードを見つけたＰ２Ｐネットワーク内のノードは、互いに接続し、２つまたはそれ以上のノードのコミュニティを形成することができる。どの任意のノードも、同時に幾つのコミュニティにも参加することができる。ノードは、それ自身と既にコミュニティにいるノードの少なくとも１つとの間にネットワーク接続を確立することによって、コミュニティに参加することができる。ノードは、検索要求に応答したノードと接続することによってコミュニティに参加することができるが、コミュニティ内の他のノードにリダイレクトされるなどの他の方法も可能である。
【００１１】
図１は、Ｐ２Ｐネットワーク１０１を示す。図において、ノード１０３は、ネットワーク１０１中に転送される検索要求メッセージ１０９を発するノードである。図１の矢印１０９を見ると分かるように、検索要求メッセージ１０９はブロードキャストによりメッセージ到達可能範囲内の任意のノードに送信され、当該ノードから更に他のノードへ転送され得る。ネットワーク１０１内のノードの少なくとも一部は、検索要求１０９を自身のローカルプロファイル１１１と比較する。
【００１２】
プロファイルは、１つまたはそれ以上の関心あるトピックを有することができる。そのプロファイルは、検索要求と少なくとも一部合致する検索語を含む。さらに、各プロファイルのエントリは、要求側に返信されるトピックを示す応答メッセージを含むことができる。例えば、プロファイルは、以下の検索語“Ｙｏｋｏ  Ｏｎｏ，Ｓｔｕａｒｔ  Ｓｕｔｃｌｉｆｆｅ”を含むエントリと、“Ｂｅａｔｌｅｓ  Ｆｉｆｔｈ  Ｍｅｍｂｅｒｓ”という応答ストリングとを有することができる。検索要求が“Ｙｏｋｏ  Ｏｎｏ，Ｓｔｕａｒｔ  Ｓｕｔｃｌｉｆｆｅ”のどれかまたは全てを含む場合、ノードは次に“Ｂｅａｔｌｅｓ  Ｆｉｆｔｈ  Ｍｅｍｂｅｒｓ”という検索応答を返信する。
【００１３】
ノードは、新しいチャットルームを作成するために他のノードが該ノードにコンタクトをとることを望む場合、または、該ノードが作成した既存のチャットルームに他のノードが参加することを望む場合、検索要求１０９を該ノードのローカルプロファイル１１１と比較することができる。ノードがビジーである場合、該ノードは全ての要求を無視することを選択しながらも、それらの要求をネットワーク内に転送することができる。ゼロまたはそれ以上の応答側ノード１０５は、要求側ノード１０３に応答メッセージ１１３を送信する。応答側ノード１０５は、応答メッセージ１１３に、それ自身のネットワークアドレスやポートナンバーといったネットワーク接続ポイントを含めて応答することで、要求側ノード１０３が希望する場合に応答側ノード１０５との間にネットワーク接続を確立するようにできる。更に、応答側ノード１０５は、応答メッセージ１１３に、正当なユーザーであることを示すためのＣｏｏｋｉｅや特殊なデータなどの認証トークンを含め、認証トークンを応答メッセージ１１３の一部とすることができる。この場合、要求側ノード１０３は応答側ノード１０５へのネットワーク接続を確立する際に、上記認証トークンを提示することができる。要求側ノード１０３は、応答側ノード１０５からの応答メッセージが十分に興味深いものか判断し、そうである場合、次に、要求側ノード１０３は、１つまたはそれ以上の応答側ノード１０５と接続して、コミュニティを作成するかまたは既存のコミュニティに参加することになる。
【００１４】
図２は、ノードコミュニティ２０１を示す。新しく参加するノード２０３は、コミュニティ２０１内の既存のノードの１つとネットワーク接続２０７を確立することによって、コミュニティ２０１に参加することができる。コミュニティ２０１内のどのノードも、コミュニティ２０１にメッセージ２０５を送信することができる。また、コミュニティ内のどのノードによって送信されるメッセージも、次にコミュニティ内の全てのノードに転送されることができる。そして、コミュニティ内の全てのノードが、全てのメッセージの少なくとも１つのコピーを受信することができる。メッセージ２０５は、メッセージのインスタンス番号のみならず、メッセージ発信者を示すため、メッセージ内にビットパターンとして表される固有の識別子を含むことができる。コンピュータ名、ネットワークＩＤ、またはユーザ名を用いてメッセージ発信者を示し、固有の数字でメッセージのインスタンス番号を示すことができる。これら２つの識別子を用いることによって、コミュニティ内の各ノードは、誰が特定のメッセージを送信したのか、そして、メッセージのインスタンス番号に基づいてそのメッセージが既に受信されたものかを判断することができる。メッセージのインスタンス番号は、グループ内の特定のノードによってメッセージが送信されるたびに１増加する、全体にわたって固有の任意の番号と定義することができる。メッセージのインスタンス番号は、その属するコミュニティに固有の番号とすることができる。ノード２０３が新しくコミュニティに参加する際に、メッセージが他の全てのノードに送信され、新しいノードがコミュニティに参加したことを示すことができる。ノードがコミュニティを離れるときも、同様のプロセスが生じる。
【００１５】
コミュニティは、該コミュニティ２０１のノード間の接続を再構成することを必要とする場合がある。すなわち、ネットワーク・トラフィックの均衡を図るため、ノード間のネットワーク接続が再構成される。標準的方法として、他のノードの親、すなわちリーダーとなるノードを選出し、それによって、コミュニティ内のいずれの任意のノードに対する負担も減らすという方法がある。リーダーとなるノードが、コミュニティの中心として、例えばコミュニティ２０１全体の管理などの機能を果たすように、ノード間の接続を再構成することができる。また、コミュニティ２０１に対し、最大参加可能ユーザ数を決めることが可能である。最大参加可能ユーザ数に関する情報は、コミュニティ２０１の各ノード間で共有され、またはリーダとなるノードにおいて保持され得る。同様に、コミュニティ２０１に存在するノードの中の現在アクティブなノードの数は、コミュニティ２０１の各ノード間で共有され、またはリーダとなるノードにおいて保持され得る。これらの情報は、応答側ノードが新しいノードからの接続を受諾するか否かを判断するために使用され得る。
【００１６】
図３は、本発明の１つの実施形態において、動的に作成されたコミュニティの確立および参加のためにとられるステップを略述するフローチャートである。この方法は３０１でスタートし、３０３で要求者（要求側ノード）から検索要求メッセージが送信される。３０５で、要求メッセージが１人またはそれ以上の受信者（受信側ノード）によって受信され、各受信者（受信側ノード）は、要求メッセージを自身のトピックプロファイルと比較する。３０７で、要求メッセージの内容が受信者（受信側ノード）のトピックの１つまたはそれ以上と合致した場合には、次に３１１で、受信者（受信側ノード）は、受信者（受信側ノード）の合致するトピック、および、現在コミュニティにいるユーザの人数や最大参加可能ユーザ数のような他のデータと共に、検索要求に応答する。要求者（要求側ノード）は受信した応答を比較し、他のノードとの接続を確立してそのコミュニティに参加するか否かを決定する。要求メッセージの内容が合致しない場合には、プロセスは３１３へ進み、当該受信者（受信側ノード）が最後に要求メッセージを受信するノードであればプロセスは３１７で終了する。当該受信者（受信側ノード）が最後に要求メッセージを受信するノードでない場合は、プロセスは３１５へ進み、要求メッセージを次のノードに送信する。そして、３０５へ戻り処理が繰り返される。
【００１７】
本発明は、全面的にハードウェアである実施形態、全面的にソフトウェアである実施形態あるいはハードウェアおよびソフトウェアの両方の構成要素を含んだ実施形態の形式をとることが可能である。好ましい実施形態においては、本発明は、ファームウェア、常駐ソフトウェア、マイクロコード等を含むがこれらに限定されないソフトウェアで実施される。
【００１８】
さらに、本発明は、コンピュータ、データ処理システム、コンピュータ・プログラム、コンピュータにより読み取り可能な媒体として実現することができる。コンピュータで読み取り可能な媒体とは、命令実行システム、装置または機器に使用されあるいはこれらに関連するプログラムを含み、記憶し、通信し、伝搬し、あるいは搬送することができる任意の装置であることができる。
【００１９】
媒体は、電子的、磁気的、光学的、電磁的、赤外線または半導体システム（または、装置または機器）あるいは伝搬媒体であることができる。コンピュータ可読の媒体の例には、半導体またはソリッド・ステート記憶装置、磁気テープ、取り外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、リードオンリー・メモリ（ＲＯＭ）、リジッド磁気ディスクおよび光ディスクが含まれる。現時点における光ディスクの例には、コンパクト・ディスク−リードオンリー・メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク−リード／ライト（ＣＤ−Ｒ／Ｗ）およびＤＶＤが含まれる。
【００２０】
プログラム・コードの記憶および／または実行に適したコンピュータは、すなわち、上記で説明したノードとしてのコンピュータの構成の概略を図４に示す。コンピュータは、中央演算慮視装置１（ＣＰＵ）、主記憶装置２（メインメモリ：ＲＡＭ）、不揮発性記憶装置３（ＲＯＭ）等を有し、バス４で相互に接続される。バス４には、その他コプロセッサ、画像アクセサレータ、キャッシュ・メモリ、入出力制御装置（Ｉ／Ｏ）等が接続されてもよい。また、バス４には、適当なインターフェースを介して外部記憶装置５、キーボード、ポインティング・デバイス等の入力装置６、ディスプレイ、スピーカー等の出力装置７、通信制御装置８等が接続される。その他、一般的にコンピュータに備えられるハードウェア資源を備えることが可能なことは言うまでもない。
【００２１】
コンピュータは、通信制御装置８により、専用ネットワークまたは公共ネットワークを介して別のコンピュータに接続できる。モデム、ケーブル・モデムおよびイーサネット・カードは現時点で利用可能な各通信制御装置８のうちのほんの数例に過ぎない。
【００２２】
本発明の記載は、説明と解説を目的として提示されたものであって、本発明のここに開示する形式に尽きるまたは限定されるものではない。当業者にとっては、多くの修正やバリエーションが明白であろう。この実施形態は、本発明の原理および実施可能な用途を最も良く説明するため、そして、意図する特定の用途に適するように様々な修正を加えた様々な実施形態について、他の当業者が本発明を理解することを可能にするために、選択され、説明されている。
【図面の簡単な説明】
【００２３】
【図１】本発明の１つの実施形態に係る、ピアツーピア方式で対話するノードネットワークの概略図である。
【図２】本発明の１つの実施形態に係る、コミュニティに参加している１組のノード、および、その既存のコミュニティへの参加過程にある追加ノードを示す。
【図３】本発明の１つの実施形態に係る、コミュニティを発見し、作成し、参加するために用いられるステップの流れ図を示す。
【図４】本発明の１つの実施形態に係る、ノードとしてのコンピュータの構成の概略図である。
【符号の説明】
【００２４】
１０１：Ｐ２Ｐネットワーク
１０３：要求側ノード
１０５：応答側ノード
１０７：Ｐ２Ｐネットワーク内のノード
１０９：検索要求メッセージ
１１１：ローカルプロファイル
１１３：応答メッセージ
２０１：ノードコミュニティ
２０３：新参加ノード
２０５：メッセージ
２０７：ネットワーク接続
２０９：コミュニティ２０１に既存のノード
３０１：スタート
３０３：要求者による隣接者への検索要求メッセージの送信
３０５：受信側ノードによる要求メッセージの受信
３０７：検索要求が受信側のプロファイルのエントリのどれかと合致するか比較
３１１：要求者に応答メッセージを送信
３１３：プロセス終了
３１５：要求者による応答メッセージ内容の比較
３１７：終了
【図１】
2006236344.tif 000003
【図２】
2006236344.tif 000004
【図３】
2006236344.tif 000005
【図４】
2006236344.tif 000006