(57)【要約】  チャット・セッションの付加的な参加者としてサードパーティ・プログラムを呼び出すためのシステムおよび方法が、メッセージング・プラットフォームのチャット・セッションのイベントをモニタするステップを含む。チャット・セッションのイベントのうちの少なくとも１つが、サードパーティ・プログラムに関連付けられているトリガリング条件を満たしていると判定される。チャット・セッションのイベントのうちの少なくとも１つが、サードパーティ・プログラムに関連付けられているトリガリング条件を満たしていると判定したことに応答して、チャット・セッションの付加的な参加者としてサードパーティ・プログラムが呼び出される。
2019527423.tif 000002
【特許請求の範囲】
【請求項１】
チャット・セッションの付加的な参加者としてサードパーティ・プログラムを呼び出すための方法であって、
メッセージング・プラットフォームのチャット・セッションのイベントを監視するステップと、
前記チャット・セッションの前記イベントのうちの少なくとも１つが、サードパーティ・プログラムに関連付けられているトリガリング条件を満たしていると判定するステップと、
前記チャット・セッションの前記イベントのうちの前記少なくとも１つが、前記サードパーティ・プログラムに関連付けられている前記トリガリング条件を満たしていると判定したことに応答して、前記チャット・セッションの付加的な参加者として前記サードパーティ・プログラムを呼び出すステップとを含む方法。
【請求項２】
前記サードパーティ・プログラムを前記トリガリング条件と共に登録するステップ
をさらに含む、請求項１に記載の方法。
【請求項３】
前記サードパーティ・プログラムを前記トリガリング条件と共に登録するステップが、
前記サードパーティ・プログラムに関連付けられているエンティティから前記トリガリング条件を受信するステップと、
前記トリガリング条件と前記サードパーティ・プログラムとの間における前記関連付けをレジストリ内に格納するステップとを含み、
前記チャット・セッションの前記イベントのうちの少なくとも１つが、サードパーティ・プログラムに関連付けられている前記トリガリング条件を満たしていると判定するステップが、
前記トリガリング条件と前記サードパーティ・プログラムとの間における前記関連付けを前記レジストリから取り出すステップと、
前記イベントのうちの前記少なくとも１つを前記トリガリング条件と比較して、前記チャット・セッションの前記イベントのうちの前記少なくとも１つが、前記サードパーティ・プログラムに関連付けられている前記トリガリング条件を満たしていると判定するステップとを含む、
請求項２に記載の方法。
【請求項４】
前記チャット・セッションの付加的な参加者として前記サードパーティ・プログラムを呼び出すステップが、
前記サードパーティ・プログラムへ通知を送信するステップと、
前記サードパーティ・プログラムから、呼び出されることに対する前記サードパーティ・プログラムの関心を示す応答を受信するステップと、
前記応答に基づいて前記サードパーティ・プログラムを前記チャット・セッションの既存の参加者に提示するステップと、
前記チャット・セッションの付加的な参加者として前記サードパーティ・プログラムを呼び出すための入力を前記既存の参加者から受信するステップとを含む、請求項１に記載の方法。
【請求項５】
前記サードパーティ・プログラムからの前記応答が、前記サードパーティ・プログラムによって提供されるサービスを含む、請求項４に記載の方法。
【請求項６】
前記応答に基づいて前記サードパーティ・プログラムを前記チャット・セッションの既存の参加者に提示するステップが、
前記サードパーティ・プログラムによって提供される前記サービスを前記既存の参加者に提示するステップを含む、請求項５に記載の方法。
【請求項７】
前記サードパーティ・プログラムへ通知を送信するステップが、
前記サードパーティ・プログラムが選択基準を満たしている場合に前記サードパーティ・プログラムへ前記通知を送信するステップを含む、請求項４に記載の方法。
【請求項８】
前記トリガリング条件が、前記チャット・セッションに関連しているイベント、基準、または状態のうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項９】
前記トリガリング条件が、前記チャット・セッションにおいて言及されるキーワードを含む、請求項１に記載の方法。
【請求項１０】
チャット・セッションの付加的な参加者としてサードパーティ・プログラムを呼び出すための装置であって、
プロセッサと、
コンピュータ・プログラム命令を格納するためのメモリと、
前記メモリ内に格納されているレジストリと、
前記プロセッサにオペレーションを実行させるために前記プロセッサ上で前記コンピュータ・プログラム命令を実行するように構成されているイベント・プロセッサとを含み、前記オペレーションが、
メッセージング・プラットフォームのチャット・セッションのイベントをモニタするステップと、
前記チャット・セッションの前記イベントのうちの少なくとも１つが、前記レジストリ内のサードパーティ・プログラムに関連付けられているトリガリング条件を満たしていると判定するステップと、
前記チャット・セッションの前記イベントのうちの前記少なくとも１つが、前記サードパーティ・プログラムに関連付けられている前記トリガリング条件を満たしていると判定したことに応答して、前記チャット・セッションの付加的な参加者として前記サードパーティ・プログラムを呼び出すステップとを含む、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的にはメッセージング・システムに関し、より詳細には、サードパーティ・プログラムをメッセージング・システムと統合することに関する。
【背景技術】
【０００２】
メッセージング・システムは、ユーザまたは参加者がチャット・セッションにおいてメッセージを交換することによって互いに通信することを可能にする。しかしながら、チャット・セッションの参加者は人間である必要はない。たとえば、多くのメッセージング・システムは、サードパーティ・プログラムがチャット・セッションにおいて参加者として行動することを可能にする。サードパーティ・プログラムは、チャット・セッションにおいて他の参加者と対話する自動化されたプログラムである。サードパーティ・プログラムは、メッセージング・システムのアカウントを操作することが可能である。サードパーティ・プログラムは、参加者からのメッセージを受信すること、およびそれらの受信されたメッセージに基づいて機能を実行することが可能である。サードパーティ・プログラムは、ボット、オフィシャル・アカウント、およびソフトウェア・チャット・バディと呼ばれる場合もある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ユーザは、たとえば、関連のあるニュース記事を提供すること、補足的なコンテンツを提供すること、ゲームをプレイすることなどのようなカスタマイズされた機能を提供するサードパーティ・プログラムを、チャット・セッションにおける参加者として呼び出すことを希望する場合がある。従来では、チャット・セッションにおける参加者としてサードパーティ・プログラムを呼び出そうとするユーザは、そのサードパーティ・プログラムをメッセージング・システムのアプリ・ストアにおいて探し出さなければならない。サードパーティ・プログラムをアプリ・ストアにおいて探し出すためのそのような発見プロセスは、典型的には探索メカニズムまたはカテゴリー・ツリーの横断を含む。サードパーティ・プログラムを探し出すためのこれらの従来のアプローチは、しばしば不便であり、困難であり、不正確な結果をもたらす。
【課題を解決するための手段】
【０００４】
ある実施形態によれば、チャット・セッションの付加的な参加者としてサードパーティ・プログラムを呼び出すためのシステムおよび方法が、サードパーティ・プログラムをトリガリング条件と共に登録するステップを含む。トリガリング条件は、たとえば、チャット・セッションにおいて言及されるキーワードなどのような、チャット・セッションに関係しているイベント、基準、または状態のうちの少なくとも１つを含む。サードパーティ・プログラムに関連付けられているエンティティからトリガリング条件を受信すること、およびトリガリング条件とサードパーティ・プログラムとの間における関連付けをレジストリ内に格納することによって、サードパーティ・プログラムがトリガリング条件と共に登録される。
【０００５】
メッセージング・プラットフォームのチャット・セッションのイベントがモニタされる。チャット・セッションのイベントのうちの少なくとも１つが、サードパーティ・プログラムに関連付けられているトリガリング条件を満たしていると判定される。たとえば、トリガリング条件とサードパーティ・プログラムとの間における関連付けがレジストリから取り出されることが可能であり、イベントのうちの少なくとも１つが、トリガリング条件と比較されて、チャット・セッションのイベントのうちの少なくとも１つが、サードパーティ・プログラムに関連付けられているトリガリング条件を満たしていると判定される。チャット・セッションのイベントのうちの少なくとも１つが、サードパーティ・プログラムに関連付けられているトリガリング条件を満たしていると判定したことに応答して、チャット・セッションの付加的な参加者としてサードパーティ・プログラムが呼び出される。
【０００６】
ある実施形態によれば、チャット・セッションの付加的な参加者としてサードパーティ・プログラムを呼び出すステップは、サードパーティ・プログラムへ通知を送信するステップと、サードパーティ・プログラムから、呼び出されることに対するそのサードパーティ・プログラムの関心を示す応答を受信するステップと、その応答に基づいてサードパーティ・プログラムをチャット・セッションの既存の参加者に提示するステップと、チャット・セッションの付加的な参加者としてサードパーティ・プログラムを招待するための入力を既存の参加者から受信するステップとを含む。サードパーティ・プログラムからの応答は、サードパーティ・プログラムによって提供されるサービスを含むことが可能である。サードパーティ・プログラムによって提供されるサービスは、既存の参加者に提示されることが可能である。サードパーティ・プログラムが選択基準を満たしている場合にサードパーティ・プログラムへ通知が送信される。
【０００７】
ある実施形態によれば、チャット・セッションの付加的な参加者としてサードパーティ・プログラムを呼び出すステップは、サードパーティ・プログラムをチャット・セッションの既存の参加者に提示するステップと、チャット・セッションの付加的な参加者としてサードパーティ・プログラムを呼び出すための入力を既存の参加者から受信するステップとを含む。
【０００８】
本発明のこれらの利点およびその他の利点は、当業者にとっては、以降の詳細な説明および添付の図面への参照によって明らかになるであろう。
【図面の簡単な説明】
【０００９】
【図１】１つまたは複数の実施形態による通信システムのハイレベルな概観を示す図である。
【図２Ａ】１つまたは複数の実施形態による、チャット・セッションにおけるサードパーティ・プログラムの発見および呼び出しのためのアーキテクチャの詳細な図である。
【図２Ｂ】１つまたは複数の実施形態によるレジストリの詳細な図である。
【図３】１つまたは複数の実施形態による、チャット・セッションにおけるサードパーティ・プログラムの発見および呼び出しのための方法の流れ図である。
【図４】１つまたは複数の実施形態による、チャット・セッションにおけるサードパーティ・プログラムの発見および呼び出しのためのコンピュータのハイレベル・ブロック図である。
【発明を実施するための形態】
【００１０】
図１は、１つまたは複数の実施形態による通信システム１００のハイレベルな概観を示している。通信システム１００は、１人または複数のユーザまたは参加者１０２−１、．．．、１０２−ｎ（参加者１０２と総称される）を含む。参加者１０２は、ネットワーク１１２に通信可能に結合されているコンピューティング・デバイス（図示せず）を介して、メッセージング・プラットフォーム１０６上で実行しているチャット・セッション１０８において互いにメッセージを交換することが可能である。ネットワーク１１２は、任意のタイプのネットワークまたは様々なタイプのネットワークの組合せを含むことが可能である。たとえば、ネットワーク１１２は、インターネット、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、有線および／またはワイヤレス・ネットワーク、ファイバ・チャネル・ストレージ・エリア・ネットワーク（ＳＡＮ）、セルラー通信ネットワークなどを含むことが可能である。その他のタイプのネットワークも考えられる。
【００１１】
チャット・セッション１０８中に、参加者１０２は、１つまたは複数のサードパーティ・プログラム１０４−１、．．．、１０４−ｉ（サードパーティ・プログラム１０４と総称される）を、サードパーティ・プログラム１０４が提供する機能性に起因してチャット・セッション１０８の付加的な参加者として呼び出すことが望ましいと見出す可能性がある。サードパーティ・プログラム１０４は、チャット・セッション１０８において参加者１０２と対話する自動化されたプログラムである。サードパーティ・プログラム１０４は、メッセージング・プラットフォーム１０６のアカウントを操作することが可能である。サードパーティ・プログラム１０４は、様々な機能をチャット・セッション１０８に提供することが可能である。サードパーティ・プログラム１０４の例示的な機能は、天気予報を表示すること、メッセージを翻訳すること、ゲームをプレイするのを容易にすること、および補足的なコンテンツを提供することを含むことが可能である。サードパーティ・プログラム１０４は、様々なメッセージング・プラットフォームによって様々な名前で呼ばれる場合がある。たとえば、サードパーティ・プログラム１０４は、ボット、オフィシャル・アカウント、およびソフトウェア・チャット・バディと呼ばれる場合もある。
【００１２】
従来では、参加者は、サードパーティ・プログラムをアプリ・ストア（たとえば、メッセージング・プラットフォームのアプリ・ストア）において探し出す。これは、典型的には探索メカニズムまたはカテゴリー・ツリーを横断することを含み、それは、不便であることがあり、困難であることがあり、不正確な結果をもたらすことがある。
【００１３】
有利なことに、呼び出しシステム１１０が、サードパーティ・プログラム１０４を識別するための自動的なプロセスを提供する。呼び出しシステム１１０は、既存のチャット・セッション１０８における付加的な参加者としてサードパーティ・プログラム１０４を呼び出す。呼び出しシステム１１０は、図２Ａおよび２Ｂに関連してさらに詳細に論じられている。
【００１４】
図２Ａは、１つまたは複数の実施形態による、メッセージング・プラットフォームを実施するためのアーキテクチャ２００の詳細な図を示している。アーキテクチャ２００は、サードパーティ・プログラム１０４の識別を容易にするための、および既存のチャット・セッション１０８における付加的な参加者としてのサードパーティ・プログラム１０４の呼び出しを容易にするための呼び出しシステム１１０を含む。
【００１５】
呼び出しシステム１１０は、１つまたは複数のサードパーティ・プログラム１０４を登録するためのレジストリ２０６を含む。たとえば、サードパーティ・プログラム１０４は、サードパーティ・プログラム１０４の開発者によってレジストリ２０６に登録されることが可能である。レジストリ２０６は、サードパーティ・プログラム１０４のそれぞれを、１つまたは複数の関連付けられているトリガリング条件と共に登録する。トリガリング条件は、関連付けられているサードパーティ・プログラム１０４をチャット・セッション１０８における付加的な参加者として呼び出すことをトリガする、チャット・セッション１０８に関連したイベント、基準、または状態を表す。たとえば、トリガリング条件は、参加者１０２の位置で雨が降っていること、または参加者１０２がチャット・セッション１０８内であるキーワードを参照することであることが可能である。一実施形態においては、トリガリング条件は、サードパーティ・プログラム１０４に関連付けられているタグ（たとえば、言葉）としてレジストリ２０６内に登録される。トリガリング条件は、チャット・セッション１０８内で生じるまたはその他の形でチャット・セッション１０８に関連している、したがって参加者１０２に関連がある可能性があるイベント、条件、または状態に対するサードパーティ・プログラム１０４の「関心」を反映する。
【００１６】
図２Ｂは、１つまたは複数の実施形態によるレジストリ２０６の詳細な図を示している。レジストリ２０６は、１つまたは複数の関連付けられているトリガリング条件を伴う登録されているサードパーティ・プログラム１０４のデータベースまたはテーブルを含む。図２Ｂのレジストリ２０６において示されている例においては、「Ｗｅａｔｈｅｒ」と呼ばれるサードパーティ・プログラム１０４が、天気というキーワードがチャット・セッション１０８において参照されることを含むトリガリング条件を含んでいる。また図２Ｂのレジストリ２０６において示されているように、「Ｔｒａｎｓｌａｔｏｒ」と呼ばれるサードパーティ・プログラム１０４が、チャット・セッション１０８における外国語（すなわち、チャット・セッション１０８において主に使用されているものとは異なる言語）の検知を含むトリガリング条件を含んでいる。
【００１７】
参加者１０２が図２Ａにおけるチャット・セッション１０８に参加すると、チャット・セッション１０８のイベント２０２−１、．．．、２０２−ｊ（まとめてイベント２０２）が生成される。たとえば、一実施形態においては、イベント２０２は、知られている技術を使用してメッセージング・プラットフォーム１０６によって生成されることが可能である。イベント２０２は、チャット・セッション１０８に関連している任意のイベントを含むことが可能である。イベント２０２の例は、参加者１０２によるキーワードへの参照、参加者１０２によってリンクされたウェブサイトから抽出された情報、チャット・セッション１０８の参加者１０２の位置情報、チャット・セッション１０８における参加者１０２によって送信された外国語メッセージの検知などを含むことが可能である。イベント・プロセッサ２０４が、イベント２０２を受信し、イベント２０２を分析して、レジストリ２０６内のサードパーティ・プログラム１０４に関連付けられているトリガリング条件を１つまたは複数のイベント２０２が満たしているかどうか判定する。
【００１８】
サードパーティ・プログラム１０４に関連付けられているトリガリング条件をイベント２０２が満たしているとイベント・プロセッサ２０４が判定した場合には、そのサードパーティ・プログラム１０４は、チャット・セッション１０８の付加的な参加者として呼び出される。チャット・セッション１０８の付加的な参加者としてサードパーティ・プログラム１０４を呼び出すことは、サードパーティ・プログラム１０４を実行させること（既に実行しているのではない場合）、および実行しているサードパーティ・プログラム１０４をチャット・セッション１０８の付加的な参加者として加入させることを含むことが可能である。
【００１９】
イベント・プロセッサ２０４は、１つまたは複数のメカニズムを通じてチャット・セッション１０８の付加的な参加者としてサードパーティ・プログラム１０４を呼び出すことが可能である。これらのメカニズムは、既に実行しているサードパーティ・プログラム１０４（すなわち、アクティブなまたは一時停止されている状態のいずれかにあるサードパーティ・プログラム１０４）へメッセージを送信すること、サードパーティ・プログラム１０４の実行を開始するためのメッセージをオペレーティング・システムへ送信すること、仮想マシン上でのサードパーティ・プログラム１０４の実行を開始するためのメッセージをコンピューティング・クラウドへ送信することを含むが、それらには限定されない。サードパーティ・プログラム１０４が呼び出しシステム１１０のために（すなわち、呼び出しメカニズムに応答して）実行している状態になった後、サードパーティ・プログラム１０４は、様々な加入手順を通じて付加的な参加者としてチャット・セッション１０８に加入することが可能である。いくつかの実施形態においては、サードパーティ・プログラム１０４を実行するために送信されるメッセージは、サードパーティ・プログラム１０４がチャット・セッション１０８に加入する上で、およびセッション中に適切なアクションを実行する上で必要とされる情報（たとえば、トリガリング・イベントに関連付けられているデータ）を含む。
【００２０】
チャット・セッション１０８の付加的な参加者としてサードパーティ・プログラム１０４を呼び出すための第１の実施形態においては、サードパーティ・プログラム１０４に関連付けられているトリガリング条件をイベント２０２が満たしているとイベント・プロセッサ２０４が判定した場合には、イベント・プロセッサ２０４は、サードパーティ・プログラム１０４へ通知を送信する。その通知は、イベント２０２によって満たされているトリガリング条件にサードパーティ・プログラム１０４が関連付けられているという表示を含むことが可能である。いくつかの実施形態においては、その通知は、サードパーティ・プログラム１０４が１つまたは複数の選択基準を満たしている場合にのみサードパーティ・プログラム１０４へ送信される。したがって、選択基準を満たしているサードパーティ・プログラム１０４のみが、付加的な参加者としてチャット・セッション１０８に加入することが可能である。例示的な選択基準は、特定の格付けを有する、特定の数のレビューを有する、特定の数のユーザを有する、特定の数の呼び出しを有する上位のサードパーティ・プログラムの間にランクされていること、またはその他の任意の適切な選択基準を含む。
【００２１】
通知に応答して、満たされているトリガリング条件に関連付けられているサードパーティ・プログラム１０４は、チャット・セッション１０８の付加的な参加者として呼び出されることに対するサードパーティ・プログラム１０４の関心を示す応答をイベント・プロセッサ２０４へ送信する。一例においては、その応答は、チャット・セッション１０８の付加的な参加者として呼び出されることに対するサードパーティ・プログラム１０４の関心を示す肯定的なものまたは否定的なもの（たとえば、「はい」または「いいえ」）である。別の例においては、肯定的な応答（すなわち、サードパーティ・プログラム１０４が、付加的な参加者として呼び出されることに関心を有していることを示す）のみが送信される。その応答は、サードパーティ・プログラム１０４が提供することができるサービスに関連している情報を含むことも可能である。
【００２２】
チャット・セッション１０８の付加的な参加者として呼び出されることに自分が関心を有している旨の肯定的な表示を用いて応答するサードパーティ・プログラム１０４は、イベント・プロセッサ２０４によって様々な付加的な基準に従って分類、ランク付け、および／またはフィルタリングされる（すなわち、呼び出されることに自分が関心を有している旨の表示を用いて応答する、満たされているトリガリング条件に関連付けられているその他のサードパーティ・プログラム１０４と共に分類、ランク付け、および／またはフィルタリングされる）。たとえば、様々な付加的な基準は、たとえば、サードパーティ・プログラム１０４のランク、サードパーティ・プログラム１０４の特定の格付け、サードパーティ・プログラム１０４のいくつかのレビュー、サードパーティ・プログラム１０４の特定の数のユーザ、およびサードパーティ・プログラム１０４の特定の数の呼び出しに基づくことが可能である。
【００２３】
イベント・プロセッサ２０４は、提示ポリシーに従ってチャット・セッション１０８の参加者１０２にサードパーティ・プログラム１０４を提示する。提示ポリシーは、どのようにしてサードパーティ・プログラム１０４が分類、ランキング、および／またはフィルタリングに基づいて参加者１０２に提示されることになるかを定義する。たとえば、提示ポリシーは、サードパーティ・プログラム１０４が（本明細書において記述されている要件を満たしているその他のサードパーティ・プログラム１０４と共に）順序付けられた配列で提示されることになることを示すことが可能である。その配列は、分類、ランキング、および／またはフィルタリングに基づいて（たとえば、ランク、格付け、レビューの数、ユーザの数、呼び出しの数などに基づいて）順序付けられることが可能である。
【００２４】
サードパーティ・プログラム１０４を参加者１０２に提示するための提示ポリシーは、スポンサー付きのサードパーティ・プログラムをサポートするビジネス・フレームワークを作成するために実施されることが可能である。チャット・セッション１０８の付加的な参加者として呼び出されることに自分が関心を有している旨の表示を用いて応答するサードパーティ・プログラム１０４は、イベント・プロセッサ２０４によって様々な付加的なビジネスセンシティブな基準に従って分類、ランク付け、および／またはフィルタリングされる。たとえば、様々な付加的な基準は、たとえば、優先的な提示の対価としてサードパーティ・プログラム１０４のプロバイダからイベント・プロセッサ２０４のプロバイダへ行われる支払いに基づくことが可能である。サードパーティ・プログラムの優先的な取り扱いの対価として支払いを行うことは、様々なビジネス目的のために使用されることが可能である。たとえば、広告キャンペーンが、プログラムまたは関連付けられているサービスの視認性および認知性を高めるための方法として、人目を引くプログラム提示を使用することが可能である。そのようなスポンサー付きのサードパーティ・プログラムは、たとえば、スポーツ・チーム、テレビジョン番組、映画、小売業者などを、それらのスポンサーに関連付けられている広告、アプリケーション、またはサービスを提示することによって表すことが可能である。
【００２５】
いくつかの実施形態においては、サードパーティ・プログラム１０４のサブセットのみが参加者１０２に配列で提示される。そのサブセットは、分類、ランキング、および／またはフィルタリングに基づいて決定されることが可能である（たとえば、上位３つにランク付けされているサードパーティ・プログラム１０４のみ）。サードパーティ・プログラム１０４は、サードパーティ・プログラム１０４の説明と共に提示されることが可能である。それらの説明は、応答において受信されたサードパーティ・プログラム１０４によって提供されるサービスを含むことが可能である。
【００２６】
参加者１０２は次いで、チャット・セッション１０８の付加的な参加者として呼び出すまたは招待するためのサードパーティ・プログラム１０４を選択することが可能である。それに応答して、イベント・プロセッサ２０４は、選択されたサードパーティ・プログラム１０４が実行されるようにする（既に実行しているのではない場合）。イベント・プロセッサ２０４はまた、選択されたサードパーティ・プログラム１０４に対して、そのサードパーティ・プログラム１０４がチャット・セッション１０８に加入する必要がある旨の情報を送信する。この情報は、サードパーティ・プログラム１０４がチャット・セッション１０８中に適切なアクションを実行する上で必要とされるデータ（たとえば、パラメータ）を含むことも可能である。たとえば、この情報は、トリガリング・イベントに関連付けられているデータを含むことが可能である。
【００２７】
一実施形態においては、イベント・プロセッサ２０４が、選択されたサードパーティ・プログラム１０４に対して、そのサードパーティ・プログラム１０４がチャット・セッション１０８に加入する必要がある旨の情報を送信する代わりに、イベント・プロセッサ２０４が、オペレーティング・システムに対して、選択されたサードパーティ・プログラム１０４の実行をそのオペレーティング・システムが開始することを要求するメッセージを送信する場合には、選択されたサードパーティ・プログラム１０４の実行のためにオペレーティング・システムへ送信されるメッセージはまた、現在実行しているサードパーティ・プログラム１０４がチャット・セッション１０８に加入することを可能にする情報と、サードパーティ・プログラム１０４がチャット・セッション１０８中に適切なアクションを実行する上で必要とされるデータとを含む。
【００２８】
サードパーティ・プログラム１０４が付加的な参加者としてチャット・セッション１０８に加入した後、サードパーティ・プログラム１０４は、その他の参加者１０２および／またはサードパーティ・プログラム１０４との間で情報を提供／交換することが可能である。
【００２９】
チャット・セッション１０８の付加的な参加者としてサードパーティ・プログラム１０４を呼び出すための第２の実施形態においては、サードパーティ・プログラム１０４に関連付けられているトリガリング条件をイベント２０２が満たしているとイベント・プロセッサ２０４が判定したことに応答して、イベント・プロセッサ２０４は、満たされているトリガリング条件に関連付けられているサードパーティ・プログラム１０４をチャット・セッション１０８の参加者１０２に（すなわち、最初にサードパーティ・プログラム１０４へ通知を送信することなく）提示する。イベント・プロセッサ２０４は、サードパーティ・プログラム１０４の説明と共に提示ポリシーに従ってサードパーティ・プログラム１０４を提示することが可能である。参加者１０２は次いで、チャット・セッション１０８における付加的な参加者として呼び出されるサードパーティ・プログラム１０４を選択することまたはその他の形で承認もしくは否認することが可能である。それに応答して、イベント・プロセッサ２０４は、選択されたサードパーティ・プログラム１０４が実行されるようにし（既に実行しているのではない場合）、選択されたサードパーティ・プログラム１０４に対して、そのサードパーティ・プログラム１０４をチャット・セッション１０８における付加的な参加者として招待するための通知を送信する。その通知は、サードパーティ・プログラム１０４がチャット・セッション１０８に加入する必要がある旨の情報を含むことが可能である。この情報は、サードパーティ・プログラム１０４がチャット・セッション１０８中に適切なアクションを実行する上で必要とされるデータ（たとえば、トリガリング・イベントに関連付けられているデータ）を含むことも可能である。サードパーティ・プログラム１０４が付加的な参加者としてチャット・セッション１０８に加入した後、サードパーティ・プログラム１０４は、その他の参加者１０２および／またはサードパーティ・プログラム１０４との間で情報を提供／交換することが可能である。
【００３０】
チャット・セッション１０８の付加的な参加者としてサードパーティ・プログラム１０４を呼び出すための第３の実施形態においては、満たされているトリガリング条件に関連付けられているサードパーティ・プログラム１０４は、参加者１０２からのいかなる入力も伴わずに、チャット・セッション１０８の付加的な参加者として自動的に呼び出される。たとえば、イベント・プロセッサ２０４は、自動的にサードパーティ・プログラム１０４が実行されるようにし（既に実行しているのではない場合）、チャット・セッション１０８における付加的な参加者としてサードパーティ・プログラム１０４を加入させるための通知をサードパーティ・プログラム１０４へ送信することが可能である。その通知は、サードパーティ・プログラム１０４がチャット・セッション１０８に加入する必要がある旨の情報と、サードパーティ・プログラム１０４がチャット・セッション１０８中に適切なアクションを実行する上で必要とされるデータとを含むことが可能である。さらに他の実施形態においては、イベント２０２が、新たなチャット・セッションにおけるサードパーティ・プログラム１０４の実行を自動的に開始するために使用される。有利なことに、呼び出しシステム１１０は、既存のチャット・セッション１０８における付加的な参加者としてサードパーティ・プログラム１０４を呼び出すためのさらにシンプルでさらに便利なアプローチを可能にする。呼び出しシステム１１０はまた、サードパーティ・プログラム１０４が発見されて呼び出されることが可能であるフレームワークを確立し、それによってサードパーティ・プログラム１０４のコーディングを簡略化することにより、サードパーティ・プログラム１０４を開発するためのコストを低減する。呼び出しシステム１１０はさらに、所与のサードパーティ・プログラム１０４がその他のアプリケーションによってさらに容易に探し出されて使用されることを可能にすることによって、サードパーティ・プログラム１０４の価値を高める。
【００３１】
呼び出しシステム１１０はまた、サードパーティ・プログラム１０４が、自分が実行する機能と、自分の呼び出しをトリガするトリガ条件との点から自分のアイデンティティを公開することを可能にする。したがって、サードパーティ・プログラム１０４は、自分の公開されている特徴を探索することによって発見されることが可能である。その他のアプリケーションは、サードパーティ・プログラム１０４を、名前によってのみならず、サードパーティ・プログラム１０４の呼び出しをトリガするためにそれらのアプリケーションが実行する機能によっても探索することが可能である。
【００３２】
図３は、１つまたは複数の実施形態による、チャット・セッションの付加的な参加者としてサードパーティ・プログラムを呼び出すための方法３００の流れ図を示している。方法３００は、たとえば、図１および図２Ａにおいて例示されている呼び出しシステム１１０によって実行されることが可能である。
【００３３】
ステップ３０２において、メッセージング・プラットフォームのチャット・セッションのイベントがモニタされる。一実施形態においては、それらのイベントは、知られている方法を使用してメッセージング・プラットフォームによって生成されることが可能である。それらのイベントは、チャット・セッションにおいて生じる状態またはアクションを含むことが可能である。
【００３４】
ステップ３０４において、チャット・セッションのイベントのうちの少なくとも１つが、サードパーティ・プログラムに関連付けられているトリガリング条件を満たしていると判定される。トリガリング条件は、メッセージング・プラットフォームのチャット・セッションに関連したイベント、基準、または状態を表すことが可能である。たとえば、トリガリング条件は、チャット・セッションの参加者によって言及されるキーワードであることが可能である。サードパーティ・プログラムは、方法３００への最初のステップとしてトリガリング条件と共に登録されていることが可能である。サードパーティ・プログラムをトリガリング条件と共に登録することは、サードパーティ・プログラムに関連付けられているエンティティからトリガリング条件を受信すること、およびトリガリング条件とサードパーティ・プログラムとの間における関連付けをレジストリ内に格納することを含むことが可能である。サードパーティ・プログラムに関連付けられているエンティティは、たとえば、サードパーティ・プログラムの開発者、サードパーティ・プログラムそのもの、またはその他の任意のエンティティを含むことが可能である。トリガリング条件とサードパーティ・プログラムとの間における関連付けをレジストリから取り出し、イベントのうちの少なくとも１つをトリガリング条件と比較して、チャット・セッションのイベントのうちの少なくとも１つが、サードパーティ・プログラムに関連付けられているトリガリング条件を満たしていると判定することによって、チャット・セッションのイベントのうちの少なくとも１つが、サードパーティ・プログラムに関連付けられているトリガリング条件を満たしていると判定される。
【００３５】
ステップ３０６において、イベントのうちの少なくとも１つが、サードパーティ・プログラムに関連付けられているトリガリング条件を満たしていると判定したことに応答して、サードパーティ・プログラムは、チャット・セッションの付加的な参加者として呼び出される。付加的な参加者としてサードパーティ・プログラムを呼び出すことは、サードパーティ・プログラムが実行されるようにすること（既に実行されているのではない場合）、および実行されているサードパーティ・プログラムをチャット・セッションの付加的な参加者として加入させることを含むことが可能である。
【００３６】
一実施形態においては、トリガリング条件が満たされていることを示す通知をサードパーティ・プログラムへ送信することによって、付加的な参加者としてサードパーティ・プログラムが呼び出される。サードパーティ・プログラムから、呼び出されることに対するそのサードパーティ・プログラムの関心を示す応答が受信される。その応答は、サードパーティ・プログラムが提供することができるサービスに関連している情報を含むことが可能である。サードパーティ・プログラムは、チャット・セッションの既存の参加者に提示されることが可能である。たとえば、サードパーティ・プログラムの説明が既存の参加者に表示されることが可能である。その説明は、応答において受信された、サードパーティ・プログラムが提供することができるサービスを含むことが可能である。チャット・セッションの付加的な参加者としてサードパーティ・プログラムを呼び出すための入力が、既存の参加者から受信される。
【００３７】
別の実施形態においては、サードパーティ・プログラム（たとえば、サードパーティ・プログラムの説明）をチャット・セッションの既存の参加者に提示することによって、付加的な参加者としてサードパーティ・プログラムが呼び出される。次いで、チャット・セッションにおける付加的な参加者としてサードパーティ・プログラムを呼び出すための入力が、既存の参加者から受信される。
【００３８】
本明細書において記述されているシステム、装置、および方法は、デジタル回路を使用して、またはよく知られているコンピュータ・プロセッサ、メモリ・ユニット、ストレージ・デバイス、コンピュータ・ソフトウェア、およびその他のコンポーネントを使用する１つまたは複数のコンピュータを使用して実施されることが可能である。典型的には、コンピュータは、命令を実行するためのプロセッサと、命令およびデータを格納するための１つまたは複数のメモリとを含む。コンピュータは、１つまたは複数のマス・ストレージ・デバイス、たとえば、１つまたは複数の磁気ディスク、内蔵ハード・ディスクおよび取り外し可能なディスク、光磁気ディスク、光ディスクなどを含むことまたはそれらに結合されることも可能である。
【００３９】
本明細書において記述されているシステム、装置、および方法は、クライアント／サーバ関係において動作するコンピュータを使用して実施されることが可能である。典型的には、そのようなシステムにおいては、クライアント・コンピュータは、サーバ・コンピュータから離れて配置されており、ネットワークを介して対話する。クライアント／サーバ関係は、それぞれのクライアントおよびサーバ・コンピュータ上で稼働するコンピュータ・プログラムによって定義および制御されることが可能である。
【００４０】
本明細書において記述されているシステム、装置、および方法は、ネットワークベースのクラウド・コンピューティング・システム内で実施されることが可能である。そのようなネットワークベースのクラウド・コンピューティング・システムにおいては、ネットワークに接続されているサーバまたは別のプロセッサが、ネットワークを介して１つまたは複数のクライアント・コンピュータと通信する。クライアント・コンピュータは、たとえば、クライアント・コンピュータ上に常駐して動作するネットワーク・ブラウザ・アプリケーションを介してサーバと通信することが可能である。クライアント・コンピュータは、サーバ上にデータを格納し、ネットワークを介してそれらのデータにアクセスすることが可能である。クライアント・コンピュータは、データを求める要求、またはオンライン・サービスを求める要求を、ネットワークを介してサーバへ送信することが可能である。サーバは、要求されているサービスを実行し、データをクライアント・コンピュータに提供することが可能である。サーバは、指定された機能、たとえば、計算を実行すること、指定されたデータをスクリーン上に表示することなどをクライアント・コンピュータに実行させるように適合されているデータを送信することも可能である。たとえば、サーバは、図３のステップのうちの１つまたは複数を含む、本明細書において記述されている方法ステップのうちの１つまたは複数をクライアント・コンピュータに実行させるように適合されている要求を送信することが可能である。図３のステップのうちの１つまたは複数を含む、本明細書において記述されている方法の特定のステップは、サーバによって、またはネットワークベースのクラウド・コンピューティング・システム内の別のプロセッサによって実行されることが可能である。図３のステップのうちの１つまたは複数を含む、本明細書において記述されている方法の特定のステップは、ネットワークベースのクラウド・コンピューティング・システム内のクライアント・コンピュータによって実行されることが可能である。図３のステップのうちの１つまたは複数を含む、本明細書において記述されている方法のステップは、サーバによって、および／またはネットワークベースのクラウド・コンピューティング・システム内のクライアント・コンピュータによって、任意の組合せで実行されることが可能である。
【００４１】
本明細書において記述されているシステム、装置、および方法は、プログラマブル・プロセッサによって実行するための、情報媒体において、たとえば、非一時的マシン可読ストレージ・デバイスにおいて有形に具体化されるコンピュータ・プログラム製品を使用して実施されることが可能であり、図３のステップのうちの１つまたは複数を含む、本明細書において記述されている方法ステップは、そのようなプロセッサによって実行可能である１つまたは複数のコンピュータ・プログラムを使用して実施されることが可能である。コンピュータ・プログラムは、特定のアクティビティを実行するために、または特定の結果をもたらすためにコンピュータにおいて直接または間接的に使用されることが可能であるコンピュータ・プログラム命令のセットである。コンピュータ・プログラムは、コンパイル型言語またはインタープリタ型言語を含む任意の形態のプログラミング言語で書かれることが可能であり、コンピュータ・プログラムは、スタンドアロンのプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくは、コンピューティング環境において使用するのに適しているその他のユニットとしてなど、任意の形態で展開されることが可能である。
【００４２】
本明細書において記述されているシステム、装置、および方法を実施するために使用されることが可能である例示的なコンピュータのハイレベル・ブロック図４００が、図３において示されている。コンピュータ４０２は、データ・ストレージ・デバイス４１２およびメモリ４１０に動作可能に結合されているプロセッサ４０４を含む。プロセッサ４０４は、コンピュータ４０２の全体的なオペレーションを、そのようなオペレーションを定義するコンピュータ・プログラム命令を実行することによって制御する。コンピュータ・プログラム命令は、データ・ストレージ・デバイス４１２またはその他のコンピュータ可読メディア内に格納されること、およびコンピュータ・プログラム命令の実行が望まれている場合にメモリ４１０内にロードされることが可能である。したがって、図３の方法ステップは、メモリ４１０および／またはデータ・ストレージ・デバイス４１２内に格納されているコンピュータ・プログラム命令によって定義されること、ならびにコンピュータ・プログラム命令を実行するプロセッサ４０４によって制御されることが可能である。たとえば、コンピュータ・プログラム命令は、図３の方法ステップを実行するために当業者によってプログラムされているコンピュータ実行可能コードとして実装されることが可能である。したがって、コンピュータ・プログラム命令を実行することによって、プロセッサ４０４は、図３の方法ステップを実行する。コンピュータ４０２は、ネットワークを介してその他のデバイスと通信するための１つまたは複数のネットワーク・インターフェース４０６を含むことも可能である。コンピュータ４０２は、コンピュータ４０２とのユーザ・インタラクションを可能にする１つまたは複数の入力／出力デバイス９０８（たとえば、ディスプレイ、キーボード、マウス、スピーカー、ボタンなど）を含むことも可能である。
【００４３】
プロセッサ４０４は、汎用および専用の両方のマイクロプロセッサを含むことが可能であり、コンピュータ４０２の唯一のプロセッサまたは複数のプロセッサのうちの１つであることが可能である。プロセッサ４０４は、たとえば、１つまたは複数の中央処理装置（ＣＰＵ）を含むことが可能である。プロセッサ４０４、データ・ストレージ・デバイス４１２、および／またはメモリ４１０は、１つもしくは複数の特定用途向け集積回路（ＡＳＩＣ）および／または１つもしくは複数のフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）を含むこと、それらによって補強されること、またはそれらに組み込まれることが可能である。
【００４４】
データ・ストレージ・デバイス４１２およびメモリ４１０はそれぞれ、有形の非一時的コンピュータ可読ストレージ・メディアを含む。データ・ストレージ・デバイス４１２、およびメモリ４１０はそれぞれ、高速ランダム・アクセス・メモリ、たとえば、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ダブル・データ・レート・シンクロナス・ダイナミック・ランダム・アクセス・メモリ（ＤＤＲ  ＲＡＭ）、またはその他のランダム・アクセス・ソリッド・ステート・メモリ・デバイスを含むことが可能であり、不揮発性メモリ、たとえば、１つまたは複数の磁気ディスク・ストレージ・デバイス、たとえば、内蔵ハード・ディスクおよび取り外し可能なディスク、光磁気ディスク・ストレージ・デバイス、光ディスク・ストレージ・デバイス、フラッシュ・メモリ・デバイス、半導体メモリ・デバイス、たとえば、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラム可能読み取り専用メモリ（ＥＥＰＲＯＭ）、コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク読み取り専用メモリ（ＤＶＤ−ＲＯＭ）ディスク、またはその他の不揮発性ソリッド・ステート・ストレージ・デバイスを含むことが可能である。
【００４５】
入力／出力デバイス４０８は、周辺機器、たとえば、プリンタ、スキャナ、ディスプレイ・スクリーンなどを含むことが可能である。たとえば、入力／出力デバイス４０８は、情報をユーザに表示するためのブラウン管（ＣＲＴ）または液晶ディスプレイ（ＬＣＤ）モニタなどのディスプレイ・デバイス、キーボード、および、ユーザがコンピュータ４０２に入力を提供することができるマウスまたはトラックボールなどのポインティング・デバイスを含むことが可能である。
【００４６】
図１および図２Ａの呼び出しシステム１１０の要素を含む、本明細書において論じられているシステムおよび装置のありとあらゆるものは、コンピュータ４０２などの１つまたは複数のコンピュータを使用して実施されることが可能である。
【００４７】
実際のコンピュータまたはコンピュータ・システムの実施態様は、その他の構造を有することが可能であり、その他のコンポーネントを含むことも可能であること、および図４は、例示的な目的でのそのようなコンピュータのコンポーネントのうちのいくつかのハイレベルな表示であることを当業者なら認識するであろう。
前述の「発明を実施するための形態」は、すべての点において例示的で例示的なものであり、限定的なものではないと理解されるべきであり、本明細書において開示されている本発明の範囲は、「発明を実施するための形態」から決定されるべきではなく、むしろ、特許法によって許可されている最大限の広さに従って解釈される特許請求の範囲から決定されるべきである。本明細書において示され記述されている実施形態は、本発明の原理を例示しているにすぎないこと、ならびに本発明の範囲および趣旨から逸脱せずに当業者によって様々な修正が実施されることが可能であることを理解されたい。当業者なら、本発明の範囲および趣旨から逸脱せずに様々なその他の特徴の組合せを実施することが可能である。
【図１】
2019527423.tif 000003
【図２Ａ】
2019527423.tif 000004
【図２Ｂ】
2019527423.tif 000005
【図３】
2019527423.tif 000006
【図４】
2019527423.tif 000007
【国際調査報告】
2019527423.tif 000008
2019527423.tif 000009