(57)【要約】本明細書では、スケーラブルなおよび移植性のある、コミュニティを対象とした通信を実現するインスタント・メッセージング・ソフトウェア・アーキテクチャおよび方法を開示する。本発明の各局面を使用して、様々な異なる対話型環境に多数のユーザを関与させる能力によってユーザのインスタント・メッセージング体験を向上させ、一方、ユーザ間の応答性を維持することができる。本発明のスケーラビリティ局面は、スケーラブルなメッセージング・インタフェースおよびオブジェクト指向プログラミングを使用してユーザ制限を現在の境界よりも拡張する。この実現態様およびプログラミング言語の移植性もまた、PDA、パーソナル・コンピュータおよび携帯電話のような異なる装置のユーザが同じソフトウエアおよびアーキテクチャを使用し、他のユーザと通信することを可能にする。本発明の各局面はさらに、コンテント・プロバイダが宣伝し、投票し、かつ他の場合は、リアルタイム・インスタント・メッセージング環境で多数の視聴者と対話するのを可能にする。2007504529.tif 000003
2007504529.tif 000002
【特許請求の範囲】
【請求項１】
以下を含む、スケーラブルなインスタント・メッセージング・システム：
イベント・トリガが所定のイベント時間に作動したときに、データベース・オブジェクトからイベント・データを取り込むスケジューラ・オブジェクト；
イベント・データによって定義されるイベント・タスクを管理するプログラム・オブジェクト；
イベント・タスクに基づいてイベントの複数の参加者との通信を管理する自動化イベント・ボット；
各々が自動化イベント・ボットによって管理される、イベントの各固有の参加者用のバディ・オブジェクト。
【請求項２】
プログラム・オブジェクトが、イベント・データに基づいてスケジューラ・オブジェクトによってインスタンス化される、請求項1記載のシステム。
【請求項３】
自動化イベント・ボットが、イベント・データに基づいてプログラム・オブジェクトによってインスタンス化される、請求項1記載のシステム。
【請求項４】
プログラム・オブジェクトが、、インスタント・メッセンジャー・サービス以外の通信チャネルを通じて所定の1組の考えられる参加者にイベント用の勧誘を構築し、かつ送信する、請求項1記載のシステム。
【請求項５】
自動化イベント・ボットが、バディ・オブジェクトにコマンドを供給するコントローラ・キュー・インタフェースと、バディ・オブジェクトにメッセージ・データを供給するメッセージ・キュー・インタフェースとを含む、請求項1記載のシステム。
【請求項６】
受信側参加者のインスタント・メッセージング・プロトコルに従ってメッセージを修正するインスタント・メッセージング・プロトコル・インタフェース・フィルタ・モジュールをさらに含む、請求項1記載のシステム。
【請求項７】
インスタント・メッセージング・プロトコル・インタフェース・フィルタ・モジュールが、各々が特定のインスタント・メッセージング・プロトコルに固有の1つまたは複数のプロトコル・フィルタをさらに含む、請求項6記載のシステム。
【請求項８】
以下の段階を含む、ユーザのコミュニティーの間の通信を調和させかつ維持する方法：
イベント・トリガが作動したときに、データベースからイベント・データを取り込み、イベント・データに基づいてプログラム・オブジェクトをインスタンス化する段階；
イベント・データに対応するイベントの参加者とのインスタント・メッセージング通信を管理する自動化イベント・ボットを作成する段階；
イベントの考えられる参加者を表す所定の第1のユーザ・リストを受信する段階；および
勧誘メッセージをインスタント・メッセージング・サービス以外の通信チャネルを介して第1のユーザ・リスト内の各ユーザに送信する段階。
【請求項９】
第1のユーザ・リストから選択されたユーザを含む第2のユーザ・リスト内の各ユーザごとにバディ・オブジェクトをインスタンス化する自動化イベント・ボットをさらに含む、請求項8記載の方法。
【請求項１０】
第2のユーザ・リストが、第1のユーザ・リスト由来の、挨拶メッセージに対する肯定応答が受信されるユーザを含む、請求項9記載の方法。
【請求項１１】
第2のユーザ・リストが、第1のユーザ・リスト由来のすべてのユーザを含む、請求項9記載の方法。
【請求項１２】
ユーザのそれぞれのバディ・オブジェクトに格納された情報がイベント・メッセージの基準に一致するときに、バディ・オブジェクトが存在する1人または複数のユーザに所定の時間にイベント・メッセージを送信する段階をさらに含む、請求項8記載の方法。
【請求項１３】
バディ・オブジェクトが、イベント・ボットから受信されたデータに基づいて参加者から応答メッセージを受信し処理する、請求項9記載の方法。
【請求項１４】
バディ・オブジェクトが、自動化イベント・ボットから受信された命令に基づいて、メッセージを構成し1人または複数の参加者に送信する、請求項9記載の方法。
【請求項１５】
イベントの考えられる参加者を表す所定の第1のユーザ・リストを受信する段階が、定義済みのユーザ識別子に対応するインスタント・メッセージング・プロトコルからユーザのリストを取り込む段階を含む、請求項8記載の方法。
【請求項１６】
対応するバディ・オブジェクトが存在する各ユーザに挨拶メッセージを送信する段階をさらに含み、該挨拶メッセージが、各ユーザのイベントに参加する要望を識別する応答を要求する、請求項9記載の方法。
【請求項１７】
特定のユーザから応答がないかまたは否定応答が受信されるとき、自動化イベント・ボットが、特定のユーザに対応するバディ・オブジェクトを削除する、請求項16記載の方法。
【請求項１８】
ユーザのそれぞれのバディ・オブジェクトに格納された情報がイベント・メッセージの基準に一致するときに、バディ・オブジェクトが存在する1人または複数のユーザに所定の時間にイベント・メッセージを送信する段階が、
参加者から受信された通信に応答してイベント・メッセージを送信することを含む、請求項12記載の方法。
【請求項１９】
ユーザのそれぞれのバディ・オブジェクトに格納された情報がイベント・メッセージの基準に一致するときに、バディ・オブジェクトが存在する1人または複数のユーザに所定の時間にイベント・メッセージを送信する段階が、
特定のユーザに関連するイベント・データを特定のユーザの代表的なバディ・オブジェクトに格納することを含む、請求項12記載の方法。
【請求項２０】
実行時に以下を含む、ソフトウェア・アーキテクチャを作成するコンピュータ実行可能命令を格納するコンピュータ可読媒体：
イベント・トリガが作動したときにスケジューラ・オブジェクトによってインスタンス化され、イベントIDを受信し、受信されたイベントIDに基づいてイベント・データベースからイベント情報を取り込むプログラム・オブジェクト；
イベント・データに基づいてプログラム・オブジェクトによってインスタンス化され、イベントに参加する複数のクライアントのイベント活動を管理する、自動化イベント・ボット；および
イベントに参加する複数のクライアントのそれぞれに対して自動化イベント・ボットによってインスタンス化され、各バディ・オブジェクトがそれに対応するクライアントとのインスタント・メッセージング・ソケットを維持する、バディ・オブジェクト。
【請求項２１】
ソフトウェア・アーキテクチャが、バディ・オブジェクトがインスタント・メッセージング・ソケットを維持するインスタント・メッセージング・システム以外の通信チャネル上のプログラム・オブジェクトによって生成され、かつ送信される、勧誘メッセージをさらに含む、請求項20記載のコンピュータ可読媒体。
【請求項２２】
ソフトウェア・アーキテクチャが、自動化イベント・ボットによって生成され、複数のクライアントに送信される挨拶メッセージをさらに含み、該挨拶メッセージが、各クライアントの、イベントに参加する要望に関する応答を要求する、請求項20記載のコンピュータ可読媒体。
【請求項２３】
自動化イベント・ボットが、挨拶メッセージに応答した特定のクライアントから応答をまったく受信しないかまたは否定応答を受信したときに、特定のクライアントに対応するバディ・オブジェクトを削除する、請求項22記載のコンピュータ可読媒体。
【請求項２４】
自動化イベント・ボットが、メッセージ・データを有するメッセージ・オブジェクトをメッセージ・キューを介して1つまたは複数のバディ・オブジェクトに転送する、請求項20記載のコンピュータ可読媒体。
【請求項２５】
メッセージ・オブジェクトを受信する1つまたは複数のバディ・オブジェクトがそれぞれ、メッセージ・データに基づいてバディ・オブジェクトに対応するクライアントにメッセージを生成し、かつ送信する、請求項24記載のコンピュータ可読媒体。
【請求項２６】
メッセージ・データが質問データおよび回答データを含む、請求項25記載のコンピュータ可読媒体。
【請求項２７】
各バディ・オブジェクトが、メッセージに基づくバディ・オブジェクトに対応するクライアントから応答を受信したときに、応答を回答データと比較することによって、受信された応答を評価する、請求項26記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は、概してインスタント・メッセージング技術による通信に関する。具体的には、本発明は、即座にユーザのコミュニティと同時に通信し、ユーザのコミュニティに基づく適応的な行動を示す方法およびネットワーク・アーキテクチャを提供する。
【背景技術】
【０００２】
インスタント・メッセージング技術は、遠く離れているかまたは場合によっては通りを隔てた友人および親類と通信し連絡をとるために広く使用できる方法として急速に成長している。インスタント・メッセージング技術は、友人または連絡先のリスト（一般に「バディ・リスト」と呼ばれる）およびチャット・ウィンドウから成るグラフィカル・インタフェースによって実現されることが多い。バディ・リストおよびチャット・ウィンドウによって、ユーザは、他のユーザと1対1の対話を開始するかまたは数人とチャットルームを作成することができる。インスタント・メッセージングでは、ユーザは、インタフェースを通じてデータ、オーディオ・ファイル、および画像ファイルを送受信することもできる。
【０００３】
インスタント・メッセージング技術は、使用開始以来著しく進歩しており、単なる個人的な用途の範疇を超えている。たとえば、インスタント・メッセージングはマーケティングおよび研究用途にまで拡張されている。その結果、インスタント・メッセージングの開発者は、「ボット」とも呼ばれ、人間のそれほどの介入や制御なしに他のユーザと通信し対話することのできる、自動化されたインスタント・メッセージング・バディを開発した。ユーザは、ボットと関り合う場合、自分の連絡先リストにボットを追加し、ボットとのチャット・ウィンドウを開く。すると、ユーザは、自動化バディとチャットまたは対話することができる。現在、自動化バディは、一般的なチャットから天気予報やゲームまでいくつかのタスクに使用されている。
【０００４】
現在のインスタント・メッセージング・アーキテクチャは1対1機能用のボットの実現においては優れているが、既知のインスタント・メッセージング・アーキテクチャは、ボットがマルチユーザ体験をするための実現可能な手段を提供していない。現在のボットは数人の異なるユーザと一度に通信しかつそれらのユーザと関り合うことができるが、インスタント・メッセージング・アーキテクチャは、ボットの応答または実行を、あるユーザに対して、他のユーザとのボットの対話に基づいて適応させることはできない。たとえば、トリビア・クエスチョン（trivia question）ボットと対話しているユーザは、すでに他のユーザが質問に正しく答えており、第1のユーザが質問に答えるのを妨げることによって適応しているかどうかをトリビア・ボットが検出しないため、そのゲームが競争の激しいものであるとは感じない。その結果、自動化インスタント・メッセージング・ボットは対話コミュニティを構築することができない。
【０００５】
他のインスタント・メッセージング・アーキテクチャはインターネット・リレー・チャット（Internet Relay Chat（"IRC"））などのサービスによって実現されている。IRCは、ユーザが、「チャネル」とも呼ばれるチャットルームに入り、他のユーザと対話するのを可能にする。IRCによって、ボットをチャネルに統合してファイル・シェアリングおよび対話をさらに推進する能力も開発された。IRCボットは、トリビア・クエスチョンを通じてユーザと関わり合い、質問に正しく答えた順番に基づいてポイントを与える。ボットは、各参加ユーザのポイント合計を示すスコア・シートを維持することもできる。このように、IRCボットはIRC界内にコミュニティおよび競争の感覚を構築する。しかし、IRCは移植性およびオーバヘッドの分野では不十分である。IRCはパーソナル・コンピュータ・プラットフォームでは優れているが、移植可能媒体上で動作するように変換すると、IRCの機能が大幅に低下する。IRCクライアントはプラットフォームへの依存度が高いため、移植性の問題もある。さらに、IRCは、ユーザがトリビアのようなゲームをする誘いを検出できるようにフォアグランドで動作しなければならず、したがって、ユーザは画面とプログラムを分け隔てなく注意する必要がある。IRCアーキテクチャはインターネット・コミュニティの感覚を作成することができるが、体験を阻害する移植性、スケーラビリティ、オーバヘッド面での固有の制限がある。
【０００６】
IMコミュニティを構築する際の障害は、メッセージング・アーキテクチャの機能にある。現在のIMアーキテクチャは、多数のユーザをサポートすることはできない。したがって、ボットがすべてのユーザから情報を受信し、次いでさらにその応答を個々の各ユーザに適応させることは実質的に不可能である。
【０００７】
このようにコミュニティがないということは、インスタント・メッセージングのユーザが、他の数10万人のユーザを含むメッセージング界における非常に個別化された体験に制限されていることを意味する。さらに、企業およびその他の組織がこの技術を利用して宣伝およびマーケティング戦略をより効果的に適応させることはできない。たとえば、音楽の無料サンプルを送信するようにプログラムされたボットが、特定の年齢層や他の人口統計学的条件に従ってその音楽の選択肢を自動的に適応させることはできない。ユーザや企業および組織は、このようなコミュニティがないために影響を受ける。というのは、ユーザや企業および組織の好みおよび考えがインスタント・メッセージング界全体にわたって共有されず、より重要な点として、ユーザや企業および組織は、それらが関心を抱いている情報を受信しない。したがって、インスタント・メッセージングの機能および範囲を拡張して上述の制限を解消する、スケーラブルで移植性のあるプラットフォームに依存しないインスタント・メッセージング・ネットワーク・アーキテクチャを提供すれば当技術分野の進歩となる。
【発明の開示】
【０００８】
発明の概要
以下に、本発明のいくつかの局面を基本的に理解できるように簡単な本発明の概要を示す。この概要は本発明について広範囲に説明するものではない。この概要は、本発明の主要または重大な要素を識別したり、本発明の範囲を示したりするものではない。以下の概要は、本発明のいくつかの概念を、以下のより詳細な説明の序文として簡単に示すものに過ぎない。
【０００９】
上述の従来技術の制限を解消し、本明細書を読み理解したあときに明らかになる他の制限を解消するために、本発明は、従来のシステムの制限を超えてユーザのコミュニティに対処しユーザのコミュニティと対話することのできるインスタント・メッセージング・システムの作成に関する。
【００１０】
本発明の第1の局面は、スケジューラ・オブジェクトと、プログラム・オブジェクトと、自動化インスタント・メッセージング・ボット・エンティティと、複数のバディ・オブジェクトとを含む移植性のあるおよびスケーラブルなインスタント・メッセージング・ネットワーク・アーキテクチャを提供する。スケジューラ・オブジェクトの1つの責任は、イベント時間を記録することである。イベント時間に達すると、トリガを作動させ、コンテント・プロバイダから受信されたイベント情報をイベント・データベースから取り込み、このイベントを処理するプログラム・オブジェクトを作成し、イベント情報をプログラム・オブジェクトに伝えるようスケジューラ・オブジェクトに指示することができる。プログラム・オブジェクトは、イベント・データを受信すると、イベント・データの指示に応じて潜在的なユーザ参加者に対する勧誘または招待メッセージを作成することができる。プログラム・オブジェクトは、自動化インスタント・メッセージング・ボット・エンティティをインスタンス化して参加者とイベントとの通信を管理することもできる。自動化インスタント・メッセージング・ボット・エンティティは、通信を処理するために、イベントの各参加者ごとのバディ・オブジェクトをさらにインスタンス化することができる。オブジェクトの使用は多くのプラットフォーム依存言語で普及しているため、本発明のこの局面は顕著な移植性を実現する。PDAや携帯電話のような他のプラットフォームは、高性能なパーソナル・コンピュータと同じネットワーク・アーキテクチャと通信し、このネットワーク・アーキテクチャを使用することができる。自動化インスタント・メッセージング・エンティティは、さらに各通信を調和させるために、スケーラブルなアウトバウンドおよびインバウンド・メッセージング・サービス・インタフェース・キューを含んでもよい。メッセージング・システムのスケーラビリティによって、多数のユーザが一度に通信することができる。アーキテクチャがオブジェクト指向であり、かつインタフェース・キューのスケーラビリティのため、本発明は従来の構成の制限を解消する。
【００１１】
本発明の第2の局面は、ユーザの互いに離散したコミュニティ間の各通信を調和させかつ維持する方法を提供する。この方法は、データベースからデータを取り込みイベント・データに基づいてプログラム・オブジェクトをインスタンス化する段階と、自動化インスタント・メッセージング・ボット・エンティティを作成する段階と、考えられる参加者のリストを受信する段階と、考えられる参加者のリストに勧誘メッセージを送信する段階とを含む。インスタント・メッセージング識別子またはユーザ人口統計学的条件を含む、考えられる参加者のリストを取り込むためのいくつかの方法が存在する。この方法では、考えられる参加者のリストを受信することによって、イベントがコミュニティの存在および雰囲気を維持するのを可能にする。勧誘メッセージは、招待メッセージであっても、次のイベントをユーザに知らせる一般的なブロードキャストであってもよく、インスタント・メッセージングを介して送信する以外に通信チャネル上で送信することができる。ユーザには、勧誘メッセージを通じて参加するか、それとも異なる挨拶メッセージを通じて参加する選択肢を与えることができる。自動化インスタント・メッセージング・ボット・エンティティはさらに、イベントの参加者との通信をいくつかの方法で管理する。任意の通信が自動化ボット・エンティティを通過する際、ボット・エンティティは着信または発信メッセージを評価し、それに応じてその応答またはその後の動作を適応させることができる。
【００１２】
本発明のこれらおよび他の局面、特徴、および利点は、請求された発明に関する制限としてではなく一例として含められている以下の図面に関連して示される本発明についての以下の詳細な説明を検討したときに明らかになろう。図面において、同じ参照符号は図面全体にわたって対応する要素を識別する。
【００１３】
発明の詳細な説明
本明細書で説明する発明およびその態様は、適応的なオンライン・コミュニティの構築における現在のメッセージング技術を著しく向上させる。各図は、複数の態様における本発明の一局面を示している。本発明の様々な態様は、高度の融通性および固有の移植性を実現し、したがって、プログラミング言語やプラットフォームや電子デバイスによって制限されない。本発明の各局面はさらに、スケーラブルなインタフェースを使用して現在のスケーラビリティの限界を超え、コミュニティを対象とするより豊かなインスタント・メッセージング体験を実現する。
【００１４】
本発明の1つまたは複数の局面は、図1に示されているような1つまたは複数のコンピュータおよびコンピュータ・システムで実現することができる。図1において、コンピュータ100は、中央演算処理装置110と、システム・メモリ112と、システム・メモリ112を含む様々なシステム構成要素を中央演算処理装置ユニット110に結合するシステム・バス114とを含んでいる。システム・バス114は、様々なバス・アーキテクチャのうちのいずれかを使用したメモリ・バスまたはメモリ・コントローラ、周辺バス、およびローカル・バスを含むいくつかの種類のバス構造のうちのいずれかであってよい。システム・メモリ112の構造は、当業者に公知であり、読取り専用メモリ（ROM）に格納された基本入／出力システム（BIOS）と、ランダム・アクセス・メモリ（RAM）に格納されたオペレーティング・システム、アプリケーション・プログラム、およびプログラム・データなどの1つまたは複数のプログラム・モジュールを含んでよい。
【００１５】
コンピュータ100は、データを読み取り書き込むための様々なインタフェース・ユニットおよびドライブを含んでもよい。特に、コンピュータ100は、それぞれ、ハード・ディスク・ドライブ118および取外し可能なメモリ・ドライブ122をシステム・バス114に結合するハード・ディスク・インタフェース116および取外し可能なメモリ・インタフェース120を含んでいる。取外し可能なメモリ・ドライブの例には磁気ディスク・ドライブおよび光学ディスク・ドライブが含まれる。ドライブと、フロッピィ・ディスク124のようなドライブに関連するコンピュータ可読媒体とは、コンピュータ100用のコンピュータ可読命令、データ構造、プログラム・モジュール、およびその他のデータの非揮発性記憶装置を提供する。例示のために単一のハード・ディスク・ドライブ118および単一の取外し可能なメモリ・ドライブ122が示されているが、コンピュータ100がいくつかのこのようなドライブを含んでよいことが理解されよう。さらに、コンピュータ100は、他の種類のコンピュータ可読媒体とインタフェースするドライブを含んでよい。
【００１６】
ユーザは、様々な入力装置を使用してコンピュータ100と対話する。図1は、キーボード128およびポインティング・デバイス130をシステム・バス114に結合するシリアル・ポート・インタフェース126を示している。ポインティング・デバイス130は、マウス、トラック・ボール、ペン・デバイス、または同様の装置によって実現することができる。もちろん、ジョイ・スティック、ゲーム・パッド、サテライト・ディッシュ、スキャナ、タッチ・センシティブ・スクリーンのような1つまたは複数の他の入力装置（図示せず）をコンピュータ100に接続することができる。
【００１７】
コンピュータ100は、装置をシステム・バス114に接続する他のインタフェースを含んでよい。図1は、ビデオまたはデジタル・カメラ134をシステム・バス114に結合する汎用シリアル・バス（USB）インタフェース132を示している。IEEE 1394インタフェース136を使用して他の装置をコンピュータ100に結合することができる。さらに、インタフェース136は、Apple Computerによって開発されたFireWireやSonyによって開発されたi.Linkのような特定の製造業者のインタフェースと一緒に動作するように構成することができる。入力装置は、パラレル・ポート、ゲーム・ポート、PCIボード、または入力装置をコンピュータに結合するのに用いられる他の任意のインタフェースを通じてシステム・バス114に結合することもできる。
【００１８】
コンピュータ100は、表示装置142をシステム・バス114に結合するビデオ・アダプタ140も含んでいる。表示装置142は、陰極線管（CRT）、液晶ディスプレイ（LCD）、電界放出ディスプレイ（FED）、プラズマ・ディスプレイ、またはユーザが見ることのできる画像を生成する他の任意の装置を含んでよい。印刷装置（図示せず）のような他の出力装置をコンピュータ100に接続することができる。
【００１９】
音声は、マイクロフォン144およびスピーカ146によって記録し再生することができる。マイクロフォン144およびスピーカ146をシステム・バス114に結合するために音声カード148を使用することができる。当業者には、図1に示されている装置接続が例示のためのみのものであり、かついくつかの周辺装置を他のインタフェースを介してシステム・バス114に結合できることが認識されよう。たとえば、ビデオ・カメラ134をIEEE 1394インタフェース136に接続することができ、ポインティング・デバイス130をUSBインタフェース132に接続することができる。
【００２０】
コンピュータ100は、1つまたは複数のコンピュータ、またはサーバ、ルータ、ネットワーク・パーソナル・コンピュータ、ピア・デバイスもしくは他の共通のネットワーク・ノード、無線電話もしくは無線パーソナル・デジタル・アシスタントのような他の装置との論理接続を使用するネットワーク化環境で動作することができる。コンピュータ100は、システム・バス114をローカル・エリア・ネットワーク（LAN）152に結合するネットワーク・インタフェース150を含んでいる。ネットワーク環境は、企業、エンタープライズ・ワイド・コンピュータ・ネットワーク、家庭コンピュータ・システムにおいて広く使用されている。
【００２１】
インターネットなどのワイド・エリア・ネットワーク（WAN）154をコンピュータ100によってアクセスすることもできる。図1は、シリアル・ポート・インタフェース126およびWAN 154に接続されたモデム・ユニット156を示している。モデム・ユニット156は、コンピュータ100の内部または外部に配置することができ、ケーブル・モデムや衛星モデムのような任意の種類の従来のモデムであってよい。LAN 152を使用してWAN 154に接続することもできる。図1は、従来の方法でLAN 152をWAN 154に接続することのできるルータ158を示している。
【００２２】
図示のネットワーク接続は例示的なものであり、コンピュータ同士の間に通信リンクを確立する他の方法を使用できることが理解されよう。TCP/IP、フレーム・リレー、イーサネット、FTP、HTTPのような様々な公知のプロトコルのうちのどれかが存在することが仮定されており、コンピュータ100は、クライアント−サーバ構成で動作することができ、ユーザがウェブ・ベースのサーバからウェブ・ページを取り込むのを可能にする。さらに、様々な従来のウェブ・ブラウザのうちのいずれかを使用してウェブ・ページ上にデータを表示しこのデータを操作することができる。
【００２３】
コンピュータ100の動作は、ハード・ディスク118、取外し可能な記憶装置124、システム・メモリ112などのコンピュータ可読媒体上に記憶された様々な異なるプログラム・モジュールによって制御することができる。プログラム・モジュールの例には、特定のタスクを実行するかまたは特定の抽象データ・タイプを実現するルーチン、プログラム、オブジェクト、構成要素、データ構造、ライブラリなどがある。本発明は、ハンドヘルド・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのまたはプログラム可能なコンシューマ・エレクトロニクス、ネットワークPCS、ミニコンピュータ、メインフレーム・コンピュータ、パーソナル・デジタル・アシスタント、携帯電話などを含む、他のコンピュータ・システム構成によって実施することもできる。さらに、本発明は、タスクが、無線または有線通信網によってリンクされたリモート処理装置によって実行される、分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラム・モジュールをローカル・メモリ記憶装置とリモート・メモリ記憶装置の両方に配置することができる。
【００２４】
ネットワーク・アーキテクチャ
図2は、本発明の例示的な態様によるネットワーク・アーキテクチャを示している。ネットワーク・アーキテクチャは、自動化インスタント・メッセージング・エンティティ用の、コンピュータ100（図1）などの中央サーバに収納することができ、特にプログラミングおよびネットワーク関連タスクを制御することができる。このアーキテクチャによって、コンテント・プロバイダ201は、インターネット205などのネットワークおよびインタフェースのウェブ・ティア215を通じて自動化インスタント・メッセージング・システム200に接続することができる。したがって、コンテント・プロバイダ201は、シンプル・オブジェクト・アクセス・プロトコル（SOAP）206などのプロトコルを介しネットワーク205を通じて自動化システム200のウェブ・ティア215にイベントを送信することができる。イベントは通常、ある時間にまたはある環境の下で動作するようにプログラムすることができ、かつユーザと対話することもできる1組の命令である。イベントのいくつかの例には宣伝、ゲームおよびマーケティング、または選挙投票を含めることができる。一般に、コミュニティの存在または応答を必要とする実体および組織は、本明細書で説明するインスタント・メッセージング・システムなどの自動化システムを使用する可能性が高い。
【００２５】
自動化インスタント・メッセージング・システム200は、ウェブ・ティア215、アプリケーション・ティア225、インスタント・メッセージング・フィルタ・モジュール260、およびデータベース・ティア265を含むいくつかの構成要素を含んでよい。ウェブ・ティア215は、コンテント・プロバイダ201がイベントをスケジューリングしかつ／または送信する入力方法を提供する。1つの入力方法は、ウェブ・サービス210、関数、プログラム、またはアプリケーションを含んでよい。たとえば、レコード会社はその最新のヒット・シングルのサンプルを参加ユーザに送信する自動化インスタント・メッセージング・エンティティを作成することを望むことがある。この場合、レコード会社は、ウェブ・サービス210のウェブ・サイトインタフェースにアクセスすることができ、必要な指定を入力し、ミュージック・サンプルをアップロードし、そのようなエンティティを作成することができる。図6は、コンテント・プロバイダがIMスケジューラ（後述）にイベントを送信するためのサンプル・ウェブ・ページを示している。関連情報は、宣伝または分配の日付610、サンプリングの継続期間620、およびイベントの勧誘メッセージ630であってよい。他の関連情報は、自動化エンティティの識別子605、イベントの種類615、および勧誘の種類625であってよい。たとえば、イベント・プロバイダは、ボット名"Music4You"を有するミュージック・サンプリング・イベントを開始することを望むことがある。このような例では、このボット名をウェブ・ページ入力フォーム605に入力することができる。勧誘の種類には、様々なデータ形式（たとえば、画像、音声）や、応答が必要か否かが含まれる。当業者には、図6が例示的なものであり、イベント送信情報に含まれるデータの種類がこれより多くても少なくてもよく、また、これとは異なる種類であってもよいことが理解されよう。ウェブ・ティア215は、イベント送信を受信すると、このイベントを処理するためにアプリケーション・ティア225に転送することができる。
【００２６】
アプリケーション・ティア225は一般に、イベントに関与するすべての機能およびタスクを維持し実行する。たとえば、アプリケーション・ティア225は、メッセージ・オブジェクトの作成および処理だけでなくイベントのタイミングにも責任を負うことができる。イベントがメッセージを送信する必要がある場合、アプリケーション・ティア225は、メッセージ・オブジェクトにおける通信を準備し、特定のインスタント・メッセージング・プロトコル275に従って再フォーマットするためにインスタント・メッセージング・フィルタ・モジュール260に転送する。一方、メッセージが受信された場合、アプリケーション・ティア225は、このデータを内部評価に適したメッセージ・オブジェクトとしてフォーマットする。メッセージは、単なるテキスト・メッセージに限らず、オーディオおよびビデオのような他の形態のデータを含んでよい。
【００２７】
アプリケーション・ティアは、スケジューラ・デーモン220、プログラム・モジュール230、勧誘メッセージ235、およびボット・オブジェクト245を含むいくつかの構成要素を含んでいる。イベント・オブジェクトは、アプリケーション・ティア225に転送されると、スケジューラ・デーモン220に送られ、スケジューラ・デーモン220は、イベント・オブジェクトをデータベース270に格納し、イベントの時間に対応するトリガを作成する。トリガがファイアする（すなわち、作動させられる）と、スケジューラ220は、格納データベース270からデータを取り込み、この情報をプログラム・モジュール230に送信することができる。コンテント・プロバイダが定義済みのスケジュールに続いて再帰イベントを入力する状況もある。このような場合、スケジューラ・デーモン220は各再帰またはトリガ作動のイベントのインスタンスを作成することができる。イベント情報をプログラム・モジュール230に送信した後、特定のイベントまたはイベントのインスタンスに対するスケジューラ・デーモンの責任は終了することができる。
【００２８】
プログラム・モジュール230は、トリガ作動時にイベント・オブジェクトおよび命令を受信し、その後勧誘メッセージ235（イベントが必要とするとき）およびボット・オブジェクト245をインスタンス化する。イベント・オブジェクトが、収集されたすべての統計データの記録を必要とする場合、これらの命令はイベント・データと一緒にボット・オブジェクト245に転送される。プログラム・モジュール230の1つの役目は、イベント・オブジェクトの必要に応じて勧誘メッセージ235を作成し送信することであってよい。勧誘メッセージ235は、トリガが作動させられたときかまたはそのすぐ後に参加ユーザ280に一度ブロードキャストされる招待または発表であってよい。たとえば、テレビ・アンケートが午後3時に予定されている場合、イベント・オブジェクトは、勧誘メッセージを午後2:50に潜在的な参加者に送信すべきであることを示すことができる。プログラム・モジュール230は、インスタント・メッセージング以外の通信チャネルを通じて勧誘メッセージを送信することができる。たとえば、プログラム・オブジェクトは潜在的な参加者にSMSメッセージを送信し、次のイベントについて通知することができる。勧誘メッセージを受信したユーザのうちで参加を希望するユーザは次に、通信装置上のインスタント・メッセージング・プログラムをオンにしてイベントに参加することができる。
【００２９】
ボット・オブジェクト245の責任には、加入しているユーザ（たとえば、勧誘メッセージに肯定応答したユーザ）と直接またはバディ・オブジェクト（後述）を通じて対話すること、プログラム・モジュール230から命令を受信すること、着信を評価すること、応答または他の発信データを生成することを含めてよい。たとえば、ボット・オブジェクト245は、質問のタイミングを制御し、一連の回答を受信し、それに応じて、イベント指定に従って割合または統計を算出することができる。ボット・オブジェクト245はさらに、コントローラ・キュー・インタフェース240、メッセージング・キュー・インタフェース255、および複数のバディ・オブジェクト250で構成されている。コントローラ・キュー・インタフェース240とメッセージング・キュー・インタフェース255は、Java Messaging Service (JMS)のような固有のスケーラビリティを利用してメッセージまたはコマンドを送受信する。互いに離散したエンティティおよび／またはオブジェクトに通信タスクを割り当てるだけでなく、上記のように、JMSのようなスケーラブルなメッセージング・サービスを利用し、このサービスと対話することによって、アーキテクチャは従来のインスタント・メッセージング・ネットワーク・アーキテクチャの限界を超えて拡張することができる。ボット・オブジェクト245は、作動時に、そのバディ・リスト上の個人のリストに対応する1つまたは複数のバディ・オブジェクト250をインスタンス化することができる。各バディ・オブジェクト250は、イベントまたはサービスに加入しており、ボット・オブジェクトまたはその所有者がボット・オブジェクトのバディ・リストに追加している1人の参加者280に対応する。ボット・プロファイルおよびバディ・リストは、ボット・オブジェクトに対応する特定のユーザ識別子を指定することによってインスタント・メッセージング・プロトコル275から取り込むことができる。ボット・オブジェクトは、インスタント・メッセージング・サービスのインテリジェント自動化ユーザとして働く。バディ・リストを作成するかまたはバディ・リストを得る他の方法には、コンテント・プロバイダによって管理される定義済みのリストを取り込むか、ユーザを1組のイベント基準と突き合わせるか、またはプログラム・アルゴリズムもしくは他の発見的方法を使用してリストを自動的に生成する方法がある。バディ・オブジェクト250は次に、ボット・オブジェクト245から勧誘メッセージ235およびその他のメッセージを受信し、それらを参加者280に転送することができる。たとえば、ボット・オブジェクトは、トリビア・コンテストに参加している各バディに「質問」オブジェクトを送信することができる。質問オブジェクトは質問と関連する正しい応答とを含んでよい。各バディ・オブジェクトは次に、対応する参加者280に質問を送信する。
【００３０】
しかし、メッセージが参加者280に送信される前に、メッセージを適切なプロトコルを通じてフォーマットし、フィルタリングし、送信することができる。バディ・オブジェクト250はさらに、特定の個人に関するデータを格納するキャッチング・オブジェクト（たとえば、ポイント合計、音楽の好み）として使用することができる。バディ・オブジェクト250の責任はさらに他のタスクを含んでよい。これらのタスクには、ポイント合計を記録すること、回答の精度を評価すること、またはフィードバックもしくは他の情報を提供することを含めてよい。たとえば、イベントが適応的な市場調査を含む場合、バディ・オブジェクト250は、質問に対するそれぞれの参加者の回答を記録することが必要になる場合がある。バディ・オブジェクト250はさらに、この情報を、将来イベントの所有者によって使用できるようにデータベースに格納するために送信することができる。ボット・オブジェクト245は、ユーザからの応答を分析した後、バディ・オブジェクト250に、参加者の前の回答が与えられていると仮定すれば、参加者により適した特定の質問をするよう指示する。
【００３１】
イベントがプログラム・モジュール230に転送されボット245がインスタンス化された後の任意の時点で、着信メッセージまたは発信メッセージがプロトコル・フィルタ260を通過し、メッセージの適合度を検査することができる。フィルタ・モジュール260は、発信メッセージを、特定の参加者280に対応する特定のインスタント・メッセージング・プロトコル275に適切なフォーマットにすることができる。フィルタ・モジュール260は拡張可能な構造であり、各参加者ごとに複数のフィルタから選択された適切なプロトコル・フィルタを判定し適用することができる。さらに、このアーキテクチャは、フィルタ・モジュール260に他のフィルタを追加することによって、他のインスタント・メッセージング・プロトコルに適応させることができる。たとえば、ある会社が、その自動化市場調査メッセンジャーを、新たに開発されたインスタント・メッセンジャー・プロトコルと協働するように適応させたい場合、その会社は、新しいインスタント・メッセンジャー・プロトコルに基づいて新しいフィルタを作成することができる。メッセージは、フィルタ動作を実行しインスタント・メッセージング・プロトコル275を通過した後、携帯電話、PDA、コンピュータ・システムなどの通信装置280に到達することができ、あるいはボット・オブジェクト245の特定のインスタンスを、特定のインスタント・メッセージング・プロトコル275向けにハード・コード化することができ、したがって、フィルタ260が不要になり、参加者280がその特定のインスタント・メッセージング・プロトコル275内のユーザに制限される。
【００３２】
図3は、本発明の例示的な態様による参加者およびユーザ用のユーザ・インタフェース301を示している。ユーザ・インタフェース301は、2つの構成要素、すなわち、友人の名前（「バディ」）305〜307のリストを含む連絡先ウィンドウ（「バディ・リスト」）300と1つまたは複数のチャット・ウィンドウ310とを含んでよい。ユーザは、バディ・リスト300から名前305を選択することによってチャット・ウィンドウ310を作動させることができる。ユーザは次いで、入力フィールド335にテキストまたはデータを入力し、送信オプション340を選択することによってメッセージを送信することができる。本発明の一態様では、参加者は、このようなユーザ・インタフェース301を通じて自動化メッセージング・バディ306と対話する。一般に、自動化バディは、イベントの挨拶メッセージ315を送信することによって参加者との対話312を開始する。挨拶メッセージ315は、各参加者からの応答を要求してもしなくてもよい。応答が要求され、ユーザが否定応答するかまたはまったく応答しない場合、ボット・オブジェクトはそのユーザに対応するバディ・オブジェクトを削除することができ、したがって、もはや開いている通信チャネル（たとえば、ソケット）はなくなり、イベントの継続期間にわたってユーザと通信することはできなくなる。所定の時間に、自動化バディ306はイベントを開始する。この例では、トリビア・バディ、すなわち自動化メッセージング・バディ306は、第1の質問320をすることによってトリビア・ゲームを開始する。第1の参加者305は次に、質問325に答えることによって応答するか、または単に質問を無視することができる。第1の参加者の応答および応答時間に応じて、自動化バディ306は、第1の参加者305と適切に通信することができる。たとえば、第2の参加者307が、第1の参加者305より前に質問に正しく答えた場合、トリビア・バディは、現在の質問320のステータスを示すメッセージ330を送信することができる。参加者は、ポイント合計、イベント現在状況、および投票結果の要求を含む、他の多くの点でも自動化バディと対話することができる。本発明のいくつかの態様では、正しく答えられた質問に対応するポイント合計は、あるユーザがある質問に正しく答えた後に別のユーザがその質問に答えるのを妨げることなく各ユーザごとに維持される。本発明のこの態様におけるユーザ・インタフェース301は、インスタント・メッセージャーに典型的なインタフェースであるが、自動化バディおよびメッセージ処理プロトコルの基礎となるネットワーク・アーキテクチャは著しく改善される。
【００３３】
図4Aは、本発明の例示的な態様による、図2のアーキテクチャを使用してイベントを入力し、スケジューリングし、トリガするプロセスのブロック図を示している。まず、段階401で、管理ユーザは、ウェブ・ティア215に配置されたインタフェースを通じてイベントを入力することができる。入力インタフェース210は、ウェブ・フォームまたはウェブ・アプリケーションを含んでよい。管理ユーザは、開始時間、終了時間、勧誘メッセージ、イベントの種類、参加者基準などのイベント関連情報を入力することができる。
【００３４】
管理者がイベント情報をウェブ・ティア215に入力した後、入力インタフェースは、段階405に示されているようにアプリケーション・ティア225内のスケジューラ・デーモン220にイベントを送信する。スケジューラ・デーモン220は、イベント・データを受信した後、段階410で、勧誘メッセージまたはイベントの開始時間を指定するトリガを作成する。スケジューラ・デーモン220は次いで、イベント・オブジェクトをデータベース・ティア265内のデータベース270に格納する。トリガは、データベース270内の適切なイベントのトリガに対応するある情報を含んでもよい。段階415および420で、スケジューラ・デーモン220は待機し、各トリガの作動ステータスを評価する。スケジューラ・デーモン220は、トリガ作動時に、段階425に示されているように、データベース270から対応するイベント・オブジェクトを取り込み、プログラム・モジュール230に送信する。プログラム・モジュール230は、スケジューラ・デーモン220によってインスタンス化された後でイベント・データを取り込んでもよい。すなわち、スケジューラ・デーモン220は、イベント・データを取り込んでプログラム・モジュール230自身に転送する代わりに、イベント・データ位置および識別情報を、プログラム・モジュール230が取り込めるようにプログラム・モジュール230に送信することができる。
【００３５】
段階430で、プログラム・モジュール230は、イベント・オブジェクトを受信した後、インスタント・メッセージング・プロトコル275を使用してバディ・リストを取り込むことができる。インスタント・メッセージング・プロトコル275は通常、特定のユーザがバディ・リストにそのユーザのインスタント・メッセージング識別子を関連付けることによって作成したバディ・リストを格納する。常に特定のコンテント・プロバイダまたはイベントによって使用されるユーザ識別子の場合、イベント・オブジェクトに格納され、取り込むべき特定の定義済みバディ・リストを示すことができる。本発明の他の構成では、ユーザ・プロファイルが1組のイベント基準に一致する1組のユーザに基づいてバディ・リストを作成することができる。バディ・リストを作成する際に他のアルゴリズムを使用してもよい。
【００３６】
段階435で、プログラム・モジュール230は、すべてのバディ通信を処理するボット・オブジェクト245をインスタンス化する。その後、参加者280へのまたは参加者280からのあらゆるメッセージはまずボット・オブジェクト245を通過する。段階440で、ボット・オブジェクトは、取り込んだバディ・リストから選択された参加者のリスト内の連絡先ごとに1つのバディ・オブジェクト250をインスタンス化する。一般に、参加者リストは、取り込んだバディ・リスト全体を含んでも、バディ・リストにおける、勧誘メッセージ235もしくは挨拶メッセージ315に肯定応答したユーザのみを含んでもよい。参加者リスト作成方法は、イベント・データが招待または勧誘メッセージ235に対する応答を必要とするものかそれとも挨拶315に対する応答を必要とするものかに依存してもよい。取り込んだバディ・リストから参加者のリストを選択するのに、人口統計学的指定を使用することなど、他の方法を使用してもよい。任意の所定のリストを代わりに使用してもよい。
【００３７】
事前にボットにバディ・オブジェクトを存在させた後、プログラム・モジュール230は、段階445でイベント・オブジェクトにおける命令に応じて勧誘メッセージ235を構築する。この勧誘メッセージ235は、別個の通信チャネル、たとえば上述のSMSを通じて送信することも、IMサービスを通じて送信することもできる。IMサービスを通じて送信する場合、勧誘メッセージは、参加者280に直接供給されるようにコントローラ・インタフェース240上に配置することも、それぞれのボット・オブジェクトによって参加者に供給されるようにメッセージ・インタフェース・キュー255上に配置することもできる。勧誘メッセージは、SMSのような別個の通信チャネルを通じて送信される場合、潜在的な参加者の通信装置がオンであるがインスタント・メッセージング・アプリケーションが動作していないときに潜在的な参加者にアクセスする可能性が高く、一方、勧誘メッセージをIMサービスを通じて送信すると、IMクライアントを実行していないユーザは勧誘メッセージを受信しない。しかし、いくつかの態様では、ボット・オブジェクトおよびバディ・オブジェクトは、イベントが開始される直前までインスタンス化されず、この場合、勧誘メッセージはSMSのような別個の通信チャネルを通じて送信される。
【００３８】
段階450で、ボット・オブジェクト245は、イベント（たとえば、トリビア・クエスチョンまたは調査質問を送信すること）によって指定された予定されたタスクに対応するトリガが作動されるのを待つ。予定されたタスクの例には、ユーザに問い合わせること、参加者に結果を報告すること、または参加者にイベントの終了を通知することを含めてよい。ボット・オブジェクト230は、段階460に示されているようにコントローラ・キュー・インタフェース240を通じてある種のジョブを実行することもできる。たとえば、ボット・オブジェクト245は、コントローラ・キュー240を通じて、次のイベントの宣伝を送信することができる。スケジューラ・デーモン220およびプログラム・モジュール230における初期トリガはイベントの開始時間を示すことしかできないので、ボット・オブジェクト245は、イベント内のサブイベントと、問合せ（たとえば、トリビア・クエスチョン、調査など）または宣伝間の時間間隔のような他の時間的な問題とを取り扱う独自のスケジューラを有してもよい。段階455および465で、ボットは、コントローラ・キュー240を監視して、着信コマンドまたはトリガ作動があるかどうかを検査する。段階470に示されているようにボット・オブジェクト・トリガ作動がある場合、ボット・オブジェクトは予定されたタスクを実行することができる。たとえば、ボット・オブジェクト230におけるトリガを作動させ、市場調査の次の質問を送信する時間であることを示すことができる。
【００３９】
図4Bを参照すると、プログラム・モジュール230がボット・オブジェクト245をインスタンス化した後、ボット・オブジェクト245は、プログラム・モジュール230とは無関係にインバウンド通信およびアウトバウンド通信を管理することができる。段階471で、インスタンス化後、ボット245はリスニング・モードに入り、メッセージまたは他の通信を待つ。メッセージがバディ・オブジェクト250を介して参加者280から発信された場合、ボット・オブジェクト245は、メッセージ・コンテントを評価する。段階472および474で、メッセージがサービスに契約する新しいバディを指定するメッセージである場合、ボット245は、新しい参加者280に関連する新しいバディ・オブジェクト250をインスタンス化することができる。段階473で、新しいバディの存在とは無関係な他のメッセージがボット・オブジェクト245によって評価される。メッセージ・キュー255にそのようなメッセージがない場合、ボット・オブジェクト245はイベント・オブジェクト命令を参照してメッセージを評価し、あらゆる必要な機能を実行する。たとえば、参加者280がトリビア・クエスチョンに答える場合、ボット・オブジェクト245は、イベント・オブジェクト命令に続いて、回答の精度を評価し、適切なメッセージで応答したりデータベース270内のポイント合計を調整したりすることのような関連する機能を実行することができる。アウトバウンド・メッセージもしくはインバウンド・メッセージまたはコマンドを処理した後、ボット・オブジェクト245はリスニング・モードに戻る。
【００４０】
図4Cを参照すると、段階440でバディ・オブジェクト250がインスタンス化された後、各バディ・オブジェクト250は、それが表す参加者280に責任を負うことができる。このために、段階480で、各バディ・オブジェクトは、それ自体とそれに対応する参加者280との間に別個の通信ソケットを作成することができる。通信ソケットは、メッセージの管理および送受信を容易にするインスタント・メッセージング・プロトコル275に特有のものであってよい。ソケットは通常、参加者280が自分の参加の終了を選択するかまたはインスタント・メッセージング・ネットワークからログオフするまでアクティブのままである。参加者280とのソケットを確立した後、バディ・オブジェクト250は、段階481に示されているように、メッセージ・キュー255およびコントローラ・キュー240をリスンし通信または命令を待つ。段階482でメッセージが受信された場合、バディ・オブジェクト250はメッセージの発信元を判定することができる。メッセージが着信メッセージであるかそれとも発信メッセージであるかに応じて、バディ・オブジェクト250はメッセージをメッセージ・キュー・インタフェース255上に配置するかまたはキュー255から取り出しソケットを通して参加者280に送信することに責任を負うことができる。メッセージが、段階483および486のようにコントローラ・キュー250上にある場合、バディ・オブジェクト250は、メッセージ内の命令ごとに必要な関数を実行することができる。しかし、メッセージがメッセージ・キュー255から発信された場合、バディ・オブジェクト250は、段階484および487に示されているように参加者280にメッセージを送信することができる。最後に、段階485および488で、メッセージが参加者280からのメッセージである場合、バディ・オブジェクト250は、メッセージを、ボット・オブジェクトが取り出すことができるようにメッセージ・キュー255上に配置することができる。
【００４１】
プログラム・モジュールから送信されるかまたはボット・オブジェクト245によって受信されたメッセージは、図5に示されているようにメッセージ・オブジェクト500内でインスタンス化される。これらのメッセージ・オブジェクト500は、ヘッダ部505およびデータ／メッセージ部510で構成されている。メッセージ・オブジェクト500はキュー240または255（図2）上に配置されるので、バディ250（図2）にはメッセージの適切性を評価する方法が必要である。したがって、メッセージ・オブジェクト500のヘッダ部505は、メッセージの対象バディ250を指定することのできる受信側フィールド515を含んでよい。メッセージ部520は、データ部525内に含めることができる。追加的なパラメータまたは制限を含む他の情報をデータ部525内に指定することもできる。たとえば、データ／メッセージ部510は、メッセージのテキストに加えて、メッセージを読むのに必要な暗号化インジケータをさらに含んでよい。メッセージ・オブジェクト500は、融通性の高い構造を有し、多数のパラメータと、ミュージック・ファイルおよびビデオ・ファイルを含む多数のメッセージ・タイプをサポートすることができる。
【００４２】
JMSのようなスケーラブルなメッセージング・サービスを、本発明の様々なオブジェクトおよびエンティティへのタスクの明確な割当ておよび配分と組み合わせると、本発明で提供されるインスタント・メッセージング・アーキテクチャの固有のスケーラビリティが得られる。このメッセージング・サービスを使用して多数の参加ユーザにトリビア・ゲーム、対話型調査などを提供するには、高度のデータ処理機能が必要である。JMSなどのメッセージング・サービスは、負荷の釣合いおよびプロセス安定性に関する問題を軽減することのできるネットワーク・データ配布パターンを適用する。JMSインタフェースはさらに、JAVAが一般にプラットフォームに依存せず、したがって、このようなネットワーク・アーキテクチャの移植性を拡張できるため有利である。このネットワーク・アーキテクチャはスケーラビリティと移植性の両方を備えているため、インスタント・メッセージングを新しい方法で使用することが可能である。このようなネットワークでは、イベントとプログラムの両方が、コミュニティおよび競争の感覚を参加者に与えることができる。テレビジョンのような従来の媒体以外の媒体は、このアーキテクチャを使用してそれ自体の目標を達成することができる。たとえば、音楽およびミュージック・ビデオ専用のテレビ局は、次にどのビデオをかけるかを決定するために参加者に投票させるか、または人口統計学データの集合に基づいて特定の視聴者にある製品を提供することができる。このアーキテクチャの移植性によって、パーソナル・デジタル・アシスタント（PDA）や携帯電話のようなそれほど高性能ではない装置が、インスタント・メッセージングの拡張機能を実現することができる。
【００４３】
本発明の方法は、フロッピィ・ディスク、CD-ROM、取外し可能な記憶装置、ハード・ディスク、システム・メモリ、埋め込みメモリ、その他のデータ記憶媒体などのコンピュータ可読媒体上に格納されたコンピュータ読取り可能命令として実現することができる。図7は、1つまたは複数の上述の態様によって使用できるコンピュータ可読媒体701のブロック図を示している。コンピュータ可読媒体701はコンピュータ実行可能構成要素またはソフトウェア・モジュール703〜713を格納する。使用するソフトウェア・モジュールはこれより多くても少なくてもよい。各構成要素は、実行可能なプログラム、データ・リンク・ライブラリ、構成ファイル、データベース、グラフィカル画像、バイナリ・データ・ファイル、テキスト・データ・ファイル、オブジェクト・ファイル、ソース・コード・ファイルなどであってよい。1つまたは複数のコンピュータ・プロセッサが1つまたは複数のソフトウェア・モジュールを実行すると、ソフトウェア・モジュール同士が対話して、1つまたは複数のコンピュータ・システムを本発明の教示に従って動作させる。
【００４４】
本発明を実施する現在好ましい態様を含む特定の例に関して本発明を説明したが、当業者には、上述のシステムおよび技術の多数の様々な変形態様があることが理解されよう。したがって、本発明の精神および範囲は、添付の特許請求の範囲に記載されたように広義に解釈すべきである。
【図面の簡単な説明】
【００４５】
本発明およびその利点のより完全な理解は、添付の図面を考慮して以下の説明を参照することにより得ることができる。図面において、参照符号は同じ要素を示す。
【図１】本発明の例示的な態様で使用されるコンピュータのブロック図である。
【図２】本発明の例示的な態様によるネットワーク・アーキテクチャを示す図である。
【図３】本発明の例示的な態様によるユーザ・インタフェースを示す図である。
【図４Ａ】本発明の例示的な態様による、イベントを入力し、スケジューリングし、トリガするプロセスのブロック図である。
【図４Ｂ】本発明の例示的な態様による、ユーザと通信し対話するプロセスのブロック図である。
【図４Ｃ】本発明の例示的な態様による、着信および発信メッセージおよびコマンドを処理するプロセスのブロック図である。
【図５】本発明の例示的な態様による、メッセージ・オブジェクトを示す図である。
【図６】本発明の例示的な態様による、イベント・データを入力するウェブ・インタフェースを示す図である。
【図７】本発明の例示的な態様によるコンピュータ可読媒体のブロック図である。
【図１】
2007504529.tif 000004
【図２】
2007504529.tif 000005
【図３】
2007504529.tif 000006
【図４Ａ】
2007504529.tif 000007
【図４Ｂ】
2007504529.tif 000008
【図４Ｃ】
2007504529.tif 000009
【図５】
2007504529.tif 000010
【図６】
2007504529.tif 000011
【図７】
2007504529.tif 000012
【国際調査報告】
2007504529.tif 000013
2007504529.tif 000014
2007504529.tif 000015