(57)【要約】【課題】  移動体通信端末を用いたＩＭシステムで、アプリケーション共有を容易に実現する。【解決手段】  各ユーザ端末２００およびＢＯＴ３００（ＩＭクライアント）は、サーバ１００を介してインスタントメッセージ（ＩＭ）のメッセージ交換を行う。ＩＭクライアントでセッションが確立すると、サーバ１００はセッションＩＤを割り当て、該当するＩＭクライアントに通知する。ＩＭクライアントは、メッセージ送信の際に、メッセージの送信先を示す情報や通知されたセッションＩＤを「プレゼンス情報」として送信する。サーバ１００は、ＩＭクライアントからメッセージを受信すると、メッセージとともに受信したプレゼンス情報に基づいて、セッション参加メンバやメッセージ送信先を判別し、判別結果に基づいてメッセージの中継先を制御することで、複数のユーザにＢＯＴ３００が提供するアプリケーションを共有させたり、複数のＢＯＴ３００を連携させる。【選択図】  図１
2005107893.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークを介して相互接続される、メッセージ交換をおこなう複数のＩＭ（Instant Message：インスタントメッセージ）クライアントと、前記各移動体通信端末の状態情報に基づいて端末間のメッセージ交換を中継するサーバと、から構成されるインスタントメッセージシステムにおいて、
前記ＩＭクライアントは、移動体通信端末と所定のアプリケーションを提供する複数のアプリケーション提供装置とを含み、
前記ＩＭクライアントは、メッセージ送信時に、少なくともメッセージ送信先を示す情報を含んだプレゼンス情報を送信し、
前記サーバは、
前記ＩＭクライアントが送信したプレゼンス情報に基づいて、メッセージ中継を制御する、
ことを特徴とするインスタントメッセージシステム。
【請求項２】
インスタントメッセージのメッセージ交換を中継するサーバであって、
メッセージ交換をおこなうユーザ端末で確立しているセッションおよび当該セッションにおけるメッセージ送信先を識別する情報を、各ユーザ端末のプレゼンス情報として随時取得するプレゼンス取得手段と、
前記プレゼンス取得手段が取得したプレゼンス情報に示されるメッセージ送信先が、当該ユーザ端末で確立しているセッションのメンバであるか否かを判別する送信先判別手段と、
メッセージ送信先が当該セッションのメンバ以外の場合、当該送信先を含んだ多者間通信を中継するセッション制御手段と、
を備えることを特徴とするサーバ。
【請求項３】
前記送信先判別手段は、メッセージ送信先が所定のアプリケーション提供手段であるか否かを判別し、
前記セッション制御手段は、メッセージ送信先がアプリケーション提供手段である場合、前記セッションのメンバと当該アプリケーション提供手段との多者間通信を中継することで、前記セッションメンバに当該アプリケーション提供手段が提供するアプリケーションを共有させる、
ことを特徴とする請求項２に記載のサーバ。
【請求項４】
前記セッション制御手段は、前記アプリケーション提供手段のアプリケーション実行結果を前記セッションメンバの各ユーザ端末に中継する、
ことを特徴とする請求項３に記載のサーバ。
【請求項５】
前記セッション制御手段は、多者間通信のメンバに複数のアプリケーション提供手段が含まれる場合、一のアプリケーション提供手段の実行結果を他のアプリケーション提供手段に中継することで、複数のアプリケーション提供手段を連携させる、
ことを特徴とする請求項２乃至４のいずれか１項に記載のサーバ。
【請求項６】
コンピュータを用いて、インスタントメッセージシステムで多者間通信をおこなうための通信制御方法であって、
確立したセッションを示す情報と、当該セッションでのメッセージ送信先を示す情報とを、インスタントメッセージのプレゼンス情報として各ユーザ端末から随時取得するプレゼンス取得ステップと、
取得したプレゼンス情報に示されるメッセージ送信先に基づいてセッションを制御するセッション制御ステップと、を備え、
前記セッション制御ステップは、ユーザ端末間のセッションに、アプリケーション提供手段とのセッションを取り込むことで、当該ユーザ端末間で該アプリケーション提供手段が提供するアプリケーションを共有させる、
ことを特徴とする通信制御方法。
【請求項７】
前記セッション制御ステップは、ユーザ端末とアプリケーション提供手段とのセッションに、他のユーザ端末とのセッションを取り込むことで、当該ユーザ端末間で該アプリケーション提供手段が提供するアプリケーションを共有させる、
ことを特徴とする請求項６に記載の通信制御方法。
【請求項８】
前記セッション制御ステップは、ユーザ端末とアプリケーション提供手段とのセッションに、他のアプリケーション提供手段とのセッションを取り込むことで、当該アプリケーション提供手段を連携させ、該アプリケーション提供手段の実行結果を前記ユーザ端末に中継する、
ことを特徴とする請求項６または７に記載の通信制御方法。
【請求項９】
コンピュータを、請求項２乃至５のいずれか１項に記載のサーバとして機能させることを特徴とするプログラム。
【請求項１０】
コンピュータに、請求項６乃至８のいずれか１項に記載の通信制御方法の各ステップを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インスタントメッセージシステム、サーバ、通信制御方法、および、プログラムに関し、特に、容易にアプリケーションの共有を可能にするインスタントメッセージシステム、サーバ、通信制御方法、および、プログラムに関する。
【背景技術】
【０００２】
従来より、特定の相手とのリアルタイムなメッセージ交換を容易に行うことができる「インスタントメッセージ」（ＩＭ：Instant Message）が普及している。このようなＩＭでは、ユーザ端末からユーザの状態を示すプレゼンス情報（状態情報）が発信されており、これによって、所望する相手が現在通信可能か知ることができる。そして、現在通信可能な相手に対してメッセージを送信することにより、リアルタイムなメッセージ交換を実現している。
【０００３】
ＩＭは、通常、人同士のコミュニケーション手段として用いるが、近時では、アプリケーションを提供する装置などが、擬似的なユーザとしてＩＭに参加する場合もある。このような装置は、人同士のメッセージ交換と同様に、会話文形式でアプリケーション実行結果などを提供するので、あたかも人であるユーザのようにＩＭに参加する。このため、このような装置のことを「ロボット（robot）」と呼び、略称である「ＢＯＴ」が呼称として用いられている。
【０００４】
ＩＭを利用するためのユーザ端末として、パーソナルコンピュータ（ＰＣ）や携帯電話などの移動体通信端末が多く用いられている。ＰＣによる二者間以上の通信においては、各参加者の間でアプリケーションを共有し、コミュニケーションの幅を持たせることがなされている。例えば、ビデオデータ、音声データ、テキストデータなどを用いて会議を行いながら、プレゼンテーション資料を共有し、共同で編集するなどといったことが実現されている。この場合、プレゼンテーション資料の表示や編集をおこなうためのアプリケーションが共有されている。このような動作は、各ＰＣにインストールされているアプリケーションを必要に応じて同時に実行する、いわゆる「Fat-Client方式」により実現するものである。
【０００５】
一方で、携帯電話などの移動体通信端末によっても、上記のようなアプリケーション共有の実現が望まれている。しかしながら、記憶容量やアプリケーション連携上の制約、および、ユーザインタフェースの制約などにより、上述のようなFat-Client方式によってアプリケーションを共有することは困難であった。これに対し、サーバ側で共有アプリケーションを起動し、その画面イメージを端末側に転送する方式（いわゆる、Thin-Client方式）も考えられるが、イメージ転送の際にパケット料金がかかってしまうため、ユーザにとって実用的な方法ではない。
【０００６】
このような問題を解消するため、アプリケーションを実行するＢＯＴと複数のユーザとをＩＭの多者通話機能で結ぶことでアプリケーション共有をおこなう仕組みが提案されている（例えば、特許文献１）。しかしながら、このような方式では、アプリケーションを共有する際に、ＢＯＴをセッションに取り込む（インバイトする）ためのアプリケーションを起動させる特殊キーを押下する必要がある。すなわち、アプリケーション共有を実行するための特別な構成をユーザ端末上に備える必要があるため、そのような構成の端末を用意しなければならず、汎用性が低く実用的なものではなかった。また、物理的な特殊キーを用いるため、拡張性にも乏しく、例えば、複数のアプリケーションを同時に共有するなどといった柔軟なアプリケーション共有環境を実現することができなかった。
【特許文献１】特開２００３−９９３８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は上記実状に鑑みてなされたもので、大幅な構成変更をすることなく、複雑なアプリケーション共有を実現することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の第１の観点にかかるインスタントメッセージシステムは、
通信ネットワークを介して相互接続される、メッセージ交換をおこなう複数のＩＭ（Instant Message：インスタントメッセージ）クライアントと、前記各移動体通信端末の状態情報に基づいて端末間のメッセージ交換を中継するサーバと、から構成されるインスタントメッセージシステムにおいて、
前記ＩＭクライアントは、移動体通信端末と所定のアプリケーションを提供する複数のアプリケーション提供装置とを含み、
前記ＩＭクライアントは、メッセージ送信時に、少なくともメッセージ送信先を示す情報を含んだプレゼンス情報を送信し、
前記サーバは、
前記ＩＭクライアントが送信したプレゼンス情報に基づいて、メッセージ中継を制御する、
ことを特徴とする。
【０００９】
上記目的を達成するため、本発明の第２の観点にかかるサーバは、
インスタントメッセージのメッセージ交換を中継するサーバであって、
メッセージ交換をおこなうユーザ端末で確立しているセッションおよび当該セッションにおけるメッセージ送信先を識別する情報を、各ユーザ端末のプレゼンス情報として随時取得するプレゼンス取得手段と、
前記プレゼンス取得手段が取得したプレゼンス情報に示されるメッセージ送信先が、当該ユーザ端末で確立しているセッションのメンバであるか否かを判別する送信先判別手段と、
メッセージ送信先が当該セッションのメンバ以外の場合、当該送信先を含んだ多者間通信を中継するセッション制御手段と、
を備えることを特徴とする。
【００１０】
上記サーバにおいて、
前記送信先判別手段は、メッセージ送信先が所定のアプリケーション提供手段であるか否かを判別し、
前記セッション制御手段は、メッセージ送信先がアプリケーション提供手段である場合、前記セッションのメンバと当該アプリケーション提供手段との多者間通信を中継することで、前記セッションメンバに当該アプリケーション提供手段が提供するアプリケーションを共有させる、ことが望ましい。
【００１１】
上記サーバにおいて、
前記セッション制御手段は、前記アプリケーション提供手段のアプリケーション実行結果を前記セッションメンバの各ユーザ端末に中継することが望ましい。
【００１２】
上記サーバにおいて、
前記セッション制御手段は、多者間通信のメンバに複数のアプリケーション提供手段が含まれる場合、一のアプリケーション提供手段の実行結果を他のアプリケーション提供手段に中継することで、複数のアプリケーション提供手段を連携させることが望ましい。
【００１３】
上記目的を達成するため、本発明の第３の観点にかかる通信制御方法は、
コンピュータを用いて、インスタントメッセージシステムで多者間通信をおこなうための通信制御方法であって、
確立したセッションを示す情報と、当該セッションでのメッセージ送信先を示す情報とを、インスタントメッセージのプレゼンス情報として各ユーザ端末から随時取得するプレゼンス取得ステップと、
取得したプレゼンス情報に示されるメッセージ送信先に基づいてセッションを制御するセッション制御ステップと、を備え、
前記セッション制御ステップは、ユーザ端末間のセッションに、アプリケーション提供手段とのセッションを取り込むことで、当該ユーザ端末間で該アプリケーション提供手段が提供するアプリケーションを共有させる、
ことを特徴とする。
【００１４】
上記通信制御方法において、
前記セッション制御ステップは、ユーザ端末とアプリケーション提供手段とのセッションに、他のユーザ端末とのセッションを取り込むことで、当該ユーザ端末間で該アプリケーション提供手段が提供するアプリケーションを共有させることが望ましい。
【００１５】
上記通信制御方法において、
前記セッション制御ステップは、ユーザ端末とアプリケーション提供手段とのセッションに、他のアプリケーション提供手段とのセッションを取り込むことで、当該アプリケーション提供手段を連携させ、該アプリケーション提供手段の実行結果を前記ユーザ端末に中継することが望ましい。
【００１６】
上記目的を達成するため、本発明の第４の観点にかかるプログラムは、
コンピュータを、上記サーバとして機能させることを特徴とする。
【００１７】
上記目的を達成するため、本発明の第４の観点にかかるプログラムは、
コンピュータに、上記通信制御方法の各ステップを実行させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、携帯電話などの移動体通信端末によるインスタントメッセージ利用時に、複数の端末間での複雑なアプリケーション共有を容易に実現することができる。
【発明を実施するための最良の形態】
【００１９】
本発明にかかる実施の形態を、以下図面を参照して説明する。
【００２０】
（第１の実施の形態）
図１は、本発明の実施の形態にかかる「インスタントメッセージシステム」（以下、「ＩＭ（Instant Message）システム」とする）の構成を示す図である。図示するように、ＩＭシステム１は、サーバ１００と、複数のユーザ端末２００と、複数のＢＯＴ３００と、から構成され、通信ネットワーク１０を介して相互に接続されている。この構成において、サーバ１００がインスタントメッセージ（ＩＭ）サービスを提供し、ユーザ端末２００間あるいはユーザ端末２００−ＢＯＴ３００間でリアルタイムなメッセージ交換をおこなう。すなわち、ユーザ端末２００とＢＯＴ３００は、サーバ１００が提供するＩＭサービスを利用する「ＩＭクライアント」であり、サーバ１００の仲介により任意のＩＭクライアント間のセッションが確立され、メッセージ交換がおこなわれる。
【００２１】
通信ネットワーク１０は、所定の通信プロトコル（例えば、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）など）を用いて情報伝達を行う通信ネットワーク（例えば、インターネット）である。
【００２２】
サーバ１００は、例えば、メインフレームやワークステーションなどといったコンピュータ装置から構成され、主にユーザ端末２００にＩＭサービスを提供するＩＭサーバである。より詳細には、ユーザ端末２００からプレゼンス情報（状態情報）を随時取得し、取得したプレゼンス情報に基づいてセッションを確立させてメッセージを中継することで、ユーザ端末２００間のメッセージ交換を仲介する。さらに、所定のＢＯＴ３００とユーザ端末２００とを中継し、ＢＯＴ３００が提供するアプリケーションをユーザ端末２００で利用可能とする。このようなサーバ１００の構成を図２を参照して説明する。
【００２３】
図２は、サーバ１００の構成を示すブロック図である。図示するように、サーバ１００は、制御部１１０と、通信制御部１２０と、入力制御部１３０と、出力制御部１４０と、プログラム格納部１５０と、記憶部１６０と、から構成される。
【００２４】
制御部１１０は、例えば、ＣＰＵ（Central Processing Unit：中央演算処理装置）やワークエリアとなる所定の記憶装置（ＲＡＭ（Random Access Memory）など）から構成され、サーバ１００の各部を制御するとともに、プログラム格納部１５０に格納されている所定の動作プログラムに基づいて後述する各処理を実行する。
【００２５】
通信制御部１２０は、例えば、ルータなどの所定の通信装置から構成され、サーバ１００と通信ネットワーク１０とを接続し、ユーザ端末２００やＢＯＴ３００との通信を行う。
【００２６】
入力制御部１３０は、例えば、キーボードやポインティング・デバイスなどの所定の入力装置１３を接続し、入力装置１３から入力された、制御部１１０への指示などを受け付けて制御部１１０に伝達する。
【００２７】
出力制御部１４０は、例えば、ディスプレイ装置やプリンタなどの所定の出力装置１４を接続し、制御部１１０の処理結果などを必要に応じて出力装置１４に出力する。
【００２８】
プログラム格納部１５０は、例えば、ハードディスク装置やＲＯＭ（Read Only Memory）などの所定の記憶装置から構成され、制御部１１０が実行する種々の動作プログラムが格納されている。プログラム格納部１５０に格納される動作プログラムは、サーバ１００の基本動作を司る任意のＯＳ（Operating System：基本ソフトウェア）の他に、ＯＳと協働して後述する各処理を実現するための、以下に示すような動作プログラムが格納されているものとする。後述するサーバ１００による各処理は、制御部１１０がこれらの動作プログラムを実行することで実現される。
（１）「セッション制御プログラム」：ユーザ端末２００間やユーザ端末２００とＢＯＴ３００とのセッションを制御してメッセージ中継等を行うためのプログラム。
（２）「プレゼンス管理プログラム」：各ユーザ端末２００のプレゼンス情報を通信ネットワーク１０を介して随時取得し、プレゼンスに応じたサービスを提供するためのプログラム。
（３）「ＩＭクライアント制御プログラム」：セッションの参加メンバやそれらのプレゼンスに応じて、各参加メンバのＩＭクライアントでの表示画面等を制御するプログラム。
【００２９】
記憶部１６０は、例えば、ＲＡＭやハードディスク装置などの記憶装置などから構成され、サーバ１００が提供するＩＭサービスを提供するユーザ情報や各ユーザ端末２００から取得したプレゼンス情報などを格納する。記憶部１６０には、図３に示すように、ユーザ情報ＤＢ１６１、ＢＯＴ情報ＤＢ１６２、セッション情報ＤＢ１６３、プレゼンス情報ＤＢ１６４、などのデータベース（リレーショナル・データベース）が構成され、各データベースに所定の情報が随時蓄積される。各データベースの詳細を以下説明する。
【００３０】
ユーザ情報ＤＢ１６１は、サーバ１００が提供するＩＭサービスを利用するユーザに関する情報を蓄積する。ユーザ情報ＤＢ１６１には、図４（ａ）に示すような「ユーザ情報テーブル」が作成される。図示するように、ユーザ情報テーブルには、サーバ１００が提供するＩＭサービスを利用するユーザに一意に割り当てられる識別子である「ユーザＩＤ」を主キーとしたレコードが作成され、各レコードは、例えば、「端末ＩＤ」、「端末アドレス」、「登録メンバ」、などの項目から構成される。
【００３１】
「端末ＩＤ」には、当該ユーザがＩＭサービスを利用する際に用いるユーザ端末２００の識別情報が記録される。「端末アドレス」には、当該ユーザ端末２００に通信ネットワーク１０を介して接続するために必要な、例えば、電話番号やＩＰアドレスなどといったアドレス情報が記録される。
【００３２】
また、「登録メンバ」には、当該ユーザ端末２００のユーザがメッセージ交換の相手として所望する他のユーザを示す情報、および、アプリケーションの提供元として所望するＢＯＴ３００を示す情報が登録される。ここで、他のユーザを示す情報として、当該ユーザの「ユーザＩＤ」が記録され、ＢＯＴ３００を示す情報として、当該ＢＯＴ３００の「ＢＯＴ ＩＤ」（後述）が記録される。「登録メンバ」に他のユーザおよびＢＯＴ３００（以下、「相手ユーザ」とする）を登録することで、当該ユーザのユーザ端末２００に登録した相手ユーザのプレゼンス情報がサーバ１００から随時提供される。また、「登録メンバ」には、当該ユーザが所望する、相手ユーザの表示名（ニックネーム、愛称、など）が、ユーザＩＤやＢＯＴ ＩＤに対応付けられて記録される。
【００３３】
なお、本実施の形態では、アプリケーション提供装置であるＢＯＴ３００も、ＩＭサービスを利用するユーザとしてＩＭサービスに参加するものとする。すなわち、ＢＯＴ３００を擬似的にユーザとし、メッセージ交換の相手（会話相手）としてＩＭセッションに参加させるものである。
【００３４】
ＢＯＴ情報ＤＢ１６２は、サーバ１００が提供するＩＭサービスに参加するＢＯＴ３００に関する情報を蓄積する。ＢＯＴ情報ＤＢ１６２には、図４（ｂ）に示すような「ＢＯＴ情報テーブル」が作成される。図示するように、ＢＯＴ情報テーブルには、各ＢＯＴ３００に一意に割り当てられた「ＢＯＴ ＩＤ」を主キーとしたレコードが作成され、各レコードは、例えば、「アプリケーション」、「ＢＯＴアドレス」、などの項目から構成される。「アプリケーション」には、当該ＢＯＴ３００が提供するアプリケーション種別を示す情報が記録され、「ＢＯＴアドレス」には、当該ＢＯＴ３００に通信ネットワーク１０を介して接続するための、例えば、ＩＰアドレスなどのアドレス情報が記録される。
【００３５】
セッション情報ＤＢ１６３は、サーバ１００が提供するＩＭサービスにより確立しているセッションに関する情報を随時格納する。セッション情報ＤＢ１６３には、図５（ａ）に示すような「セッション情報テーブル」が作成される。図示するように、セッション情報テーブルには、セッションの確立毎に一意に割り当てられる「セッションＩＤ」を主キーとしたレコードが作成され、各レコードは、例えば、「セッション参加メンバ」、「開始日時」、「終了日時」、などの項目から構成される。「セッション参加メンバ」には、当該セッションに参加しているＩＭクライアントを示す識別情報（ユーザＩＤおよびＢＯＴ ＩＤ）が記録される。「開始日時」には当該セッションの開始日時を示す情報が、「終了日時」には当該セッションの終了日時を示す情報がそれぞれ記録される。
【００３６】
プレゼンス情報ＤＢ１６４は、各ユーザ端末２００から取得したプレゼンス情報を随時格納する。プレゼンス情報ＤＢ１６４には、図５（ｂ）に示すような「プレゼンス情報テーブル」が作成される。図示するように、プレゼンス情報テーブルには、ＩＭクライアントＩＤ（ユーザ情報テーブルに登録されている各ユーザ「ユーザＩＤ」、および、ＢＯＴ情報テーブルに登録されているＢＯＴ３００のＢＯＴ ＩＤ）を主キーとしたレコードが作成され、各レコードは、例えば、「プレゼンス」などの項目から構成される。「プレゼンス」には、当該ユーザ端末２００またはＢＯＴ３００から取得したプレゼンス情報がリアルタイムに記録・更新される。ここで、プレゼンス情報テーブルには、図示するように、各ＩＭクライアント端末毎に現在いずれのプレゼンスに該当しているかが記録される。
【００３７】
ここで「プレゼンス情報」は、サーバ１００が提供するＩＭサービスを利用する各ＩＭクライアント（ユーザ端末２００およびＢＯＴ３００）の現在の状態を示す情報であり、少なくとも、当該ＩＭクライアントが現在メッセージ受信可能な状態であるか否かを示す情報（「受信可」、「受信不可」）が含まれる。「プレゼンス情報」は、ＩＭクライアントからサーバ１００に随時送信されるものであり、サーバ１００は、プレゼンス情報をＩＭクライアントから随時受信して、リアルタイムにプレゼンス情報テーブルを更新する。
【００３８】
一般的なＩＭシステムでは、このようなプレゼンス情報に基づいて、現在通信可能なＩＭクライアントを検出し、通信可能なＩＭクライアント同士のセッションを確立させてメッセージ交換をおこなう。本実施の形態では、このような一般的なプレゼンス情報に加え、当該ＩＭクライアントでセッションが確立していることを示す「セッション中」がプレゼンス情報として含まれるものとする。図示するように、「セッション中」を示すプレゼンス情報には、例えば、当該セッションを示す「セッションＩＤ」、セッション相手のＩＭクライアントを示す「セッション相手」、などの項目が含まれる。「セッション相手」には、セッション相手のユーザを示す「ユーザＩＤ」、もしくは、セッション相手のＢＯＴ３００を示す「ＢＯＴ ＩＤ」が記録される。
【００３９】
図１に戻り、ＩＭシステム１の他の構成について説明する。
ユーザ端末２００は、サーバ１００が提供するＩＭサービス利用するための端末装置であり、例えば、携帯電話やＰＨＳ（Personal Handyphone System）などの移動体通信端末から構成される。ユーザ端末２００は、通信ネットワーク１０を介してサーバ１００にアクセスし、サーバ１００が提供するＩＭサービスを利用可能な構成を有する。すなわち、当該ＩＭサービスを利用する「ＩＭクライアント」として機能するものであり、少なくとも、サーバ１００との通信機能、当該ＩＭサービスに対応するメッセージ送受信機能、プレゼンス情報送信機能、を有する。
【００４０】
「通信機能」は、所定の通信プロトコル（例えば、ＴＣＰ／ＩＰなど）に基づいて、通信ネットワーク１０を介してサーバ１００と通信する機能である。
【００４１】
「メッセージ送受信機能」は、他のユーザ端末２００やＢＯＴ３００とのメッセージ送受信をおこなう機能であり、送信するメッセージをユーザに作成させる機能や、受信したメッセージを表示する機能、などを含む。
【００４２】
「プレゼンス情報送信機能」は、当該ユーザ端末２００における、ＩＭサービス利用に関しての状態を示すプレゼンス情報を随時サーバ１００に送信する機能である。ここで「プレゼンス情報」として、少なくとも、現在ＩＭサービスでメッセージ受信可能な状態であるか否かを示す情報（以下、「受信可否情報」とする）、メッセージ送信時の送信先を示す情報（以下、「送信先情報」とする）、および、サーバ１００から付与された「セッションＩＤ」を含む。ユーザ端末２００は、プレゼンス情報を所定時間毎にサーバ１００に送信する他、所定のアクションの際にも送信する。例えば、ＩＭ用プログラムの起動および終了、サーバ１００に対する利用要求、セッションの確立および終了、などのアクション時にプレゼンス情報を送信する。本実施の形態では、これらの他に、メッセージ送受信時にもプレゼンス情報をサーバ１００に送信するものとする。
【００４３】
ここで、「受信可否情報」は、ユーザの現在の状態（例えば、「仕事中」、「外出中」など）に応じて、ユーザが任意に設定できる他、ユーザ端末２００の状態（例えば、ＩＭ用アプリケーションの実行停止、ユーザ端末２００の電源断、など）に応じてユーザ端末２００が自動的に設定する。また「送信先情報」は、メッセージ送信先として指定したＩＭクライアント（ユーザ端末２００あるいはＢＯＴ３００）の識別情報（端末ＩＤもしくはＢＯＴ ＩＤ）が設定される。
【００４４】
なお、ユーザ端末２００は、通信ネットワーク１０を介して提供されるアプリケーションを利用可能な構成を有し、後述するＢＯＴ３００などが提供するアプリケーションやアプリケーションの実行結果などを利用する。上記各機能は、それぞれを実現するためのプログラム（アプリケーションプログラム）をユーザ端末２００の制御部（ＣＰＵ（Central Processing Unit：中央演算処理装置）など）が実行することで得られるものであり、このようなプログラムは、例えば、サーバ１００から通信ネットワーク１０を介してユーザ端末２００に提供される。
【００４５】
ＢＯＴ３００は、例えば、所定のサーバ装置などから構成され、通信ネットワーク１０を介して所定のアプリケーションを提供するアプリケーション提供装置である。ここでＢＯＴ３００は、例えば、検索ロボットなどといった、アプリケーションを自動的に提供するロボット（roBOT）であり、通信ネットワーク１０を介して入力されるユーザからの要求に応じて、アプリケーションサービスやアプリケーション実行結果などを通信ネットワーク１０を介してユーザに提供する。本実施の形態では、ＢＯＴ３００は、サーバ１００が提供するＩＭサービスに参加できるアプリケーション提供装置であり、「擬似的なユーザ」としてＩＭサービスに参加してアプリケーションを提供するものである。このように、ＩＭサービスのユーザとしてＩＭサービスに参加するため、他のユーザ端末２００と同様のプレゼンス情報を随時サーバ１００に送信する。すなわち、少なくとも、「受信可否情報」および「送信先情報」がＢＯＴ３００のプレゼンス情報に含まれる。なお、本実施の形態では、ＢＯＴ３００が検索ロボットである場合を例に以下説明する。この場合の検索ロボットは、例えば、会話文形式の入力に基づいて検索を実行し、検索結果を会話文形式でユーザに提供するものとする。これにより、ＢＯＴ３００があたかもユーザであるかのようにＩＭサービスに参加するものである。
【００４６】
上記のように構成されたＩＭシステム１における動作および処理を以下説明する。
【００４７】
まず、本実施の形態にかかるＩＭシステム１によるＩＭサービスの概要を説明するため、サーバ１００による通常のメッセージ交換処理を図６に示すフローチャートを参照して説明する。ここでは、二者のユーザ端末２００同士（以下、一方を「端末Ａ」、他方を「端末Ｂ」とし、端末Ａのユーザを「ユーザＡ」、端末Ｂのユーザを「ユーザＢ」とする）でメッセージ交換をおこなう場合を例に説明する。また、「メッセージ交換処理」はいずれかのユーザ端末２００からサーバ１００へのＩＭサービス利用要求を契機に開始されるものであり、ここでは、端末Ａから利用要求があったものとして以下説明する。なお、ユーザ端末２００からのＩＭサービス利用要求は、ユーザ端末２００でＩＭ用プログラムを起動させることを契機におこなわれるものとし、このとき、当該ユーザ端末２００のユーザを示すユーザＩＤおよび当該ユーザ端末２００でメッセージ受信可能であることを示すプレゼンス情報がサーバ１００に送信されるものとする。
【００４８】
このようにして端末ＡからＩＭサービス利用要求があると、サーバ１００の制御部１１０は、ユーザ情報ＤＢ１６１にアクセスし、端末Ａから送信されたユーザＩＤをキーとするレコードから、「登録メンバ」として登録されているユーザＩＤおよびＢＯＴ ＩＤを抽出する。制御部１１０はさらに、プレゼンス情報ＤＢ１６４にアクセスし、抽出した登録メンバの識別情報（ユーザＩＤまたはＢＯＴ ＩＤ）をキーとするレコードの「プレゼンス」を参照し、登録メンバのうち現在メッセージ受信可能なメンバ（通信可能なメンバ）を特定する（ステップＳ１）。
【００４９】
制御部１１０は、ステップＳ１で特定したメンバのプレゼンス情報と各メンバのユーザＩＤを、要求元の端末Ａに送信する（ステップＳ２）。端末Ａでは、サーバ１００から通信可能なメンバのプレゼンス情報を受信すると、当該通信可能メンバを一覧表示する（図７（ａ））。ここでは、端末Ａのユーザがサーバ１００に登録した表示名でメンバが表示される。端末Ａのユーザは、メッセージ交換（会話）の相手として所望するメンバを一覧の中から選択する。この操作に応じて、端末Ａは選択されたメンバを示す情報（以下、「選択メンバ情報」とする）をサーバ１００に送信する。ここでは、当該メンバのユーザＩＤが選択メンバ情報として送信される。ここで選択されたメンバが使用するユーザ端末２００を「端末Ｂ」として以下説明する。また、サーバ１００から受信した通信可能メンバのプレゼンス情報とユーザＩＤは、端末Ａの所定のメモリなどに保持される。
【００５０】
サーバ１００では、端末Ａから選択メンバ情報を受信すると（ステップＳ３）、制御部１１０がユーザ情報ＤＢ１６１にアクセスし、選択メンバ情報に示されるユーザＩＤをキーとするレコードから、当該ユーザが使用するユーザ端末２００（端末Ｂ）を特定する。さらに、特定された端末Ｂのアドレス情報に基づいて、端末Ａと端末Ｂとのセッションを確立する（ステップＳ４）。
【００５１】
セッションが確立すると、制御部１１０は、当該セッションにセッションＩＤを割り当てるとともに、セッション情報ＤＢ１６３にアクセスし、割り当てたセッションＩＤを主キーとする新規レコードをセッション情報テーブルに作成し、端末Ａおよび端末Ｂの端末ＩＤを「セッション参加メンバ」に記録するとともに、セッション開始日時情報を「開始日時」に記録する。
【００５２】
また、制御部１１０は、プレゼンス情報ＤＢ１６４にアクセスし、端末Ａと端末Ｂの端末ＩＤをキーとする各レコードの「プレゼンス」を「セッション中」とし、互いの端末ＩＤを記録する。
【００５３】
セッションが確立すると、サーバ１００の制御部１１０は、割り当てたセッションＩＤを端末Ａおよび端末Ｂに送信することでセッションが確立したことを通知する（ステップＳ５）。端末Ａおよび端末Ｂでは、サーバ１００からセッションＩＤを受信すると、図７（ｂ）に示すように、セッションが確立した旨のメッセージなどを表示して各ユーザ（図７（ｂ）の例では、ユーザＡの表示名を「Ａさん」、ユーザＢの表示名を「Ｂくん」としている）にセッション確立を通知する。また、受信したセッションＩＤを所定のメモリなどに保持する。また、図８に示すようなメッセージ入力画面ＭＣを表示して、ユーザによるメッセージ入力および送信を可能にする。
【００５４】
ここで、ユーザ端末２００に表示されるメッセージ入力画面ＭＣには、図８に示すように、メッセージを入力するためのメッセージ領域ＩＡの他、入力したメッセージの送信を指示するための送信ボタンＳＢが用意される。送信ボタンＳＢはさらに、現在確立しているセッションの通信相手への送信を指示するための送信ボタンＳＢ１と、他の登録メンバへの送信を指示するための送信ボタンＳＢ２とを含む。図８では、端末Ａでの表示例を示すが、端末Ａは端末Ｂとのセッションが確立しているため、「Ｂくんに送信」と表記された送信ボタンＳＢ１が用意されている。また、送信ボタンＳＢ２には「他のメンバに送信」と表記されている。
【００５５】
ここで、ユーザ端末２００に表示される送信ボタンＳＢは、そのときのセッションに応じて、サーバ１００によって選択的に表示される。より詳細には、サーバ１００の制御部１１０が「ＩＭクライアント制御プログラム」を実行することで、ユーザ端末２００上での表示画面を制御するものであり、例えば、当該ユーザ端末２００が現在参加しているセッションの他のＩＭクライアントの種類に応じて、ＩＭクライアント上の表示画面（送信ボタンＳＢの表記）を制御する。上記「端末Ａ」の例では、現在セッション中の他のＩＭクライアントは、ユーザ端末２００である「端末Ｂ」である。このようなセッション相手を、サーバ１００は、セッション情報ＤＢ１６３に記録されている情報に基づいて判別すると、それに応じたボタン等の表示を各ＩＭクライアントに指示する。上記「端末Ａ」の例では、セッション相手もユーザ端末２００であるため、ユーザ間のメッセージ交換が想定され、「Ｂくんに送信」や「他のメンバに送信」といった表記の送信ボタンＳＢを表示するようサーバ１００が端末Ａを制御する。一方、例えば、端末Ａのセッション相手が検索ロボットのＢＯＴ３００である場合、例えば、「この内容を検索する」などといった表記のボタンを表示するよう制御されることになる。
【００５６】
なお、上記のようにサーバ１００がＩＭクライアントでの表示画面を全面的に制御する場合の他、ＩＭクライアント上で実行されているＩＭ用プログラムとの協働によって、表示ボタン等の制御をおこなってもよい。すなわち、サーバ１００は、当該ＩＭクライアントのセッション相手を示す情報を各ＩＭクライアントに提供し、提供されたセッション相手を示す情報に基づいて、各ＩＭクライアントでボタン等の表示制御をおこなってもよい。
【００５７】
端末Ａにおいて、メッセージ領域ＩＡにメッセージが入力され、送信ボタンＳＢが選択操作されると、端末Ａは、入力されたメッセージとともにプレゼンス情報をサーバ１００に送信する。送信されるプレゼンス情報には、少なくとも、端末Ａのユーザを示すユーザＩＤ、現在のセッションに割り当てられているセッションＩＤ、および、メッセージの送信先を示す送信先情報が含まれる。ここで、送信ボタンＳＢ１が選択された場合は、ユーザＢのユーザＩＤを送信先情報とする。一方、送信ボタンＳＢ２が選択された場合は、メモリに保持されている通信可能メンバを示す情報を再度一覧表示して他のメンバを選択させ、選択されたメンバのユーザＩＤを送信先情報とする。
【００５８】
サーバ１００は、当該セッションの参加メンバ間（すなわち、ユーザＡおよびユーザＢ）で交換されるメッセージを、端末Ａあるいは端末Ｂから受信する。上述のように、メッセージ送信時にプレゼンス情報も送信されているため、サーバ１００は、メッセージとともにプレゼンス情報を受信する（ステップＳ６）。メッセージが到着すると、制御部１１０は、メッセージとともに受信したプレゼンス情報を参照して、当該メッセージの送信先が、現在確立しているセッションでの通信相手宛であるか否かを判別する（ステップＳ７）。より詳細には、プレゼンス情報に含まれているユーザＩＤとセッションＩＤとに基づいて、現在のセッションにおける通信相手を特定し、プレゼンス情報に含まれている送信先情報が特定した通信相手のユーザＩＤと一致するか否かを判別する。端末Ａがメッセージ送信した場合であれば、そのメッセージの送信先が端末Ｂであるか否かを判別する。
【００５９】
ここで、メッセージの送信先が現在確立しているセッションの通信相手である場合（ステップＳ７：Ｙｅｓ）、サーバ１００は、受信したメッセージを当該通信相手に中継する（ステップＳ８）。すなわち、端末Ａにおいて送信ボタンＳＢ１選択された場合は、入力されたメッセージが端末Ｂに中継される。
【００６０】
このように、メッセージの送信先を現在のセッションにおける通信相手としている場合、サーバ１００の仲介によって、端末Ａ−端末Ｂ間でのメッセージ交換が、セッション終了まで順次おこなわれる（ステップＳ９：Ｎｏ）。
【００６１】
上記のような、セッションが確立しているユーザ同士でのメッセージ交換が一般的なＩＭサービスである。本実施の形態では、現在のセッションにおける通信相手以外をメッセージの送信先とした場合（ステップＳ７：Ｎｏ）、当該送信先のユーザをセッションに取り込む（インバイトする）「多者間通信処理」（ステップＳ１００）がサーバ１００によって実行される。この「多者間通信処理」を図９に示すフローチャートを参照して説明する。なお、本実施の形態では、メッセージ送信先として、端末Ａの登録メンバとして登録されているＢＯＴ３００が指定されている場合を例に以下説明する。また、本例においては、メッセージ送信先に指定されているＢＯＴ ３００を以下「ＢＯＴ Ｘ」（表示名は「検索くん」）と表記する。
【００６２】
まず、サーバ１００の制御部１１０は、プレゼンス情報ＤＢ１６４にアクセスし、ステップＳ６で受信した「プレゼンス情報」に含まれている「送信先情報」に基づいて、当該送信先のユーザ（以下、「取込対象ユーザ」とする）が現在通信可能であるか否かを判別する（ステップＳ１０１）。
【００６３】
取込対象ユーザが通信可能である場合（ステップＳ１０１：Ｙｅｓ）、制御部１１０は、当該取込対象ユーザに、セッションへの参加要請（取込要請）がある旨を通知する（ステップＳ１０２）。ここでは、当該セッションの現在の参加メンバ（本例では「端末Ａ」と「端末Ｂ」）を示す情報やセッションへの参加要請を示すメッセージ、および、当該セッションに割り当てられているセッションＩＤ、などの情報（以下、「セッション参加要請通知」とする）が取込対象ユーザに送信される。
【００６４】
一方、取込対象ユーザが通信可能でない場合（ステップＳ１０１：Ｎｏ）、その旨を示すメッセージ（以下、「参加不可通知」とする）を端末Ａと端末Ｂに送信し、ＢＯＴ Ｘがセッションに参加できない旨をユーザＡとユーザＢに通知する（ステップＳ１１１）。
【００６５】
取込対象ユーザ（本例では「ＢＯＴ Ｘ」）は、セッション参加要請通知を受信すると、当該セッションへの参加が可能である場合は、参加可能である旨を示す情報（以下、「参加受諾通知」とする）をサーバ１００に送信する。また、参加受諾通知を送信した場合、受信した「セッション参加要請通知」を所定のメモリなどに保持し、サーバ１００にプレゼンス情報を送信する際に必要な情報を含ませる。
【００６６】
サーバ１００では、取込対象ユーザから参加受諾通知を受信すると（ステップＳ１０３：Ｙｅｓ）、制御部１１０が、当該参加受諾通知をセッション参加メンバ（本実施の形態では、「端末Ａ」と「端末Ｂ」）に転送し、取込対象ユーザがセッション参加を受諾した旨を通知する。
【００６７】
サーバ１００はまた、取込対象ユーザからの参加受諾通知の受信を契機に、当該セッションに取込対象ユーザを取り込む（ステップＳ１０４）。本例では、「端末Ａ」、「端末Ｂ」、および、「ＢＯＴ Ｘ」の三者間のセッション（多者間通信）を確立する。
【００６８】
多者間通信が確立されると、サーバ１００の制御部１１０は、セッション情報ＤＢ１６３にアクセスし、当該セッションのセッションＩＤをキーとするレコードの「セッション参加メンバ」項目に、ＢＯＴ ＸのＢＯＴ ＩＤを追加する（ステップＳ１０５）。また、プレゼンス情報ＤＢ１６４にアクセスして、当該ＢＯＴ ＸのＢＯＴ ＩＤをキーとするレコードの「プレゼンス」を「セッション中」にし、端末Ａと端末Ｂの端末ＩＤを記録する（ステップＳ１０６）。
【００６９】
制御部１１０は、ステップＳ６で受信したメッセージを、ＢＯＴ Ｘに中継する（ステップＳ１０７）。すなわち、端末Ａが「ＢＯＴ Ｘ」を送信先として送信したメッセージがＢＯＴ Ｘに中継される。ここでは、ユーザＡ（端末Ａ）とユーザＢ（端末Ｂ）の間での二者間セッションにおける会話中に、例えば、何か検索したい事項が発生し、ユーザＡ（端末Ａ）が、その検索対象を含んだメッセージを検索ロボットであるＢＯＴ Ｘに送信したものとする。
【００７０】
ＢＯＴ Ｘでは、サーバ１００の中継により、端末Ａが送信したメッセージを受信すると、メッセージに含まれている検索対象の検索を実行し、検索結果を含んだメッセージを作成して、サーバ１００に送信する。このとき、作成したメッセージとともに、プレゼンス情報を送信する。ここでは、当該ＢＯＴ Ｘの「ＢＯＴ ＩＤ」、および、セッション参加通知に含まれている「セッションＩＤ」をプレゼンス情報としてサーバ１００に送信する。
【００７１】
サーバ１００では、ＢＯＴ Ｘからメッセージとプレゼンス情報を受信すると（ステップＳ１０８）、受信したメッセージを他のセッション参加メンバ（すなわち、「端末Ａ」と「端末Ｂ」）に中継する（ステップＳ１０９）。より詳細には、受信したプレゼンス情報に含まれているセッションＩＤに基づいて、サーバ１００の制御部１１０は、セッション情報ＤＢ１６３を参照して他の参加メンバを特定する。このように、アプリケーション提供装置であるＢＯＴ Ｘからのメッセージを他のセッションメンバに中継することで、ＢＯＴ Ｘによる検索結果をユーザＡ（端末Ａ）とユーザＢ（端末Ｂ）が共有することとなる。サーバ１００は、上記のような多者間（三者間）でのメッセージ中継をセッションが終了するまで順次行うことで（ステップＳ１１０：Ｎｏ）、多者間でのメッセージ交換がおこなわれる。
【００７２】
なお、取込対象ユーザがセッション参加要請を受諾しない場合は、その旨をサーバ１００に通知することができる（以下、「参加不可通知」とする）。すなわち、サーバ１００が、取込対象ユーザから「参加不可通知」を受信した場合（ステップＳ１０３：Ｎｏ）は、当該「参加不可通知」を端末Ａと端末Ｂに送信し、ＢＯＴ Ｘがセッションに参加しない旨をユーザＡとユーザＢに通知する（ステップＳ１１１）。この場合、メッセージ送信元のユーザ端末２００（本例では「端末Ａ」）では、他の通信可能な登録メンバを表示するなどして、メッセージ送信先の変更やメッセージ送信の中止などをおこなう。
【００７３】
以上説明したように、上記実施の形態によれば、確立しているセッションに割り当てられているセッションＩＤ、および、メッセージの送信先を示す送信先情報をＩＭクライアント（ユーザ端末２００およびＢＯＴ３００）のプレゼンス情報に含ませ、サーバ１００が、各ＩＭクライアントから取得するプレゼンス情報に基づいて、セッションメンバの取り込みや、アプリケーション実行結果の中継をおこなう。また、プレゼンス情報に基づいて、ユーザ端末２００上の表示をセッションやメッセージの送信先に応じて制御する。これにより、既存のＩＭシステムにおけるインタフェースや物理的構成を大幅に改変させることなくアプリケーション共有を実現することができる。
【００７４】
すなわち、サイズやメモリ容量などに制限のある携帯電話などのユーザ端末２００に、アプリケーション共有を利用するための特別な構成（端末上に配置される物理的なボタンやキーなど）を備える必要がないため、ユーザは通常のメッセージ送受信と同様の操作でアプリケーション共有を利用することができる。また、ユーザ端末２００においては、ＩＭ用のプログラムを更新することで、セッションＩＤやメッセージ送信先情報をプレゼンス情報に含ませることができるため、既存のＩＭシステムの構成を大幅に変更させることなく、上記のようなアプリケーション共有を実現することができる。さらに、ＩＭクライアントが送信するプレゼンス情報に基づいて、サーバ１００がアプリケーション共有できるようセッション管理をおこなっているので、ユーザ端末２００は、単にセッションＩＤや送信先情報をプレゼンス情報に付加するだけでよく、携帯電話などの処理能力が比較的高くないユーザ端末２００であっても、過負荷をかけることなくアプリケーション共有を実現することができる。
【００７５】
上記実施の形態では、ユーザ端末２００同士（上記の例では「端末Ａ」と「端末Ｂ」）で確立しているセッションにＢＯＴ３００を取り込む場合を説明したが、上記と同様の処理により、ユーザ端末２００とＢＯＴ３００とのセッションに他のユーザ端末２００を取り込むこともできる。上記の例でいえば、例えば、端末ＡとＢＯＴ３００との間でセッションが確立しており、このセッションに端末Ｂを取り込むことができる。この場合、例えば、ユーザＡが検索をおこなうためにＢＯＴ３００と会話をおこなっており、得られた検索結果をユーザＢに教えたい（共有したい）場合に、ユーザＢをセッションに取り込むことで、ユーザＡ（端末Ａ）とユーザＢ（端末Ｂ）でＢＯＴ３００の検索結果を共有することができる。
【００７６】
すなわち、既に確立しているセッションの参加メンバは、ユーザ端末２００同士に限られず、ユーザ端末２００とＢＯＴ３００のうちのいずれであってもよい。また、セッションに他のユーザを取り込んだ後に、さらに他のユーザを取り込んでもよい。すなわち、既に確立しているセッションの参加メンバ数は「２」に限られず任意である。このような場合、例えば、ユーザ端末２００とＢＯＴ３００の二者間で確立されたセッションに、他のＢＯＴ３００を取り込むこともできる。このように、複数のＢＯＴ３００が参加するセッションにおいて、ＢＯＴ３００同士の連携によりアプリケーションを提供してもよい。このような形態を第２の実施の形態として以下説明する。
【００７７】
（第２の実施の形態）
本実施の形態における各構成は、上記第１の実施の形態と同一である。したがって、同一の構成には同一の参照符号を付すが、本実施の形態では、２つのＢＯＴ３００を連携させる場合を例示し、一方を「ＢＯＴ Ｘ」、他方を「ＢＯＴ Ｙ」と表記する。
【００７８】
本実施の形態にかかる「ＢＯＴ連携処理」を図１０に示すフローチャートを参照して説明する。この「ＢＯＴ連携処理」は、サーバ１００が実行するものであり、「端末Ａ」と「ＢＯＴ Ｘ」との間で確立しているセッションに「ＢＯＴ Ｙ」を取り込む場合を例に以下説明する。この「ＢＯＴ連携処理」は、第１の実施の形態における「メッセージ交換処理」と同様、ＩＭクライアントのいずれかからのＩＭサービス利用要求を契機に開始されるものであり、ここでは、端末Ａから利用要求があったものとして以下説明する。
【００７９】
サーバ１００は、図６に示すステップＳ１〜Ｓ５と同様の処理により、端末ＡとＢＯＴ Ｘとのセッションを確立し、割り当てられたセッションＩＤが端末ＡとＢＯＴ Ｘに通知される（ステップＳ２０１）。すなわち、端末Ａには図７（ａ）に示すように現在通信可能なメンバが一覧表示されるが、ここでは、検索ロボットであるＢＯＴ Ｘ（図７（ａ）の例では、ＢＯＴ Ｘの表示名を「検索くん」、ＢＯＴ Ｙの表示名を「検索さん」としている）を会話相手として指定する。会話相手が指定されると、第１の実施の形態と同様に、端末Ａにメッセージ入力画面ＭＣが表示される（図１２（ａ））。
【００８０】
ここで、送信ボタンＳＢも表示されるが、サーバ１００による表示制御により、第１の実施の形態とはボタンの表記内容が異なる。すなわち、本実施の形態ではセッション相手がＢＯＴ Ｘであり、また、ＢＯＴ Ｘは検索ロボットであるから、図１２（ａ）に示すように、現在のセッション相手への送信を指定する送信ボタンＳＢ１には「検索くんで検索」と表記され、他のメンバへの送信を指定する送信ボタンＳＢ２には「他のメンバに送信」と表記される。より詳細には、サーバ１００は、プレゼンス情報に含まれる送信先情報に基づいて、送信先がユーザ端末２００であるかＢＯＴ３００であるかを判別し、ＢＯＴ３００である場合には、ＢＯＴ情報ＤＢ１６２を参照することで、当該ＢＯＴ３００が提供するアプリケーションを特定する。本例では指定されたＢＯＴ Ｘが検索ロボットなので、送信ボタンＳＢ１の表記が「検索くんで検索」となるように表示制御している。なお、第１の実施の形態と同様に、このような表示制御を端末Ａで実行されているＩＭ用プログラムでおこなってもよい。
【００８１】
ユーザＡは、検索したい事項を示す会話文（メッセージ）を入力し、送信ボタンＳＢを選択すると、入力されたメッセージとともに端末Ａのプレゼンス情報がサーバ１００に送信される。ここで、送信ボタンＳＢ１が選択された場合は、ＢＯＴ ＸのＢＯＴ ＩＤを送信先情報としてプレゼンス情報に含ませる。一方、送信ボタンＳＢ２が選択された場合は、メモリに保持されている通信可能メンバを示す情報を再度一覧表示して他のメンバを選択させ、選択されたメンバのユーザＩＤもしくはＢＯＴ ＩＤを送信先情報としてプレゼンス情報に含ませる。また、割り当てられているセッションＩＤもプレゼンス情報に含まれる。
【００８２】
サーバ１００は、上記第１の実施の形態のステップＳ６〜Ｓ８と同様の処理により、確立したセッションの参加メンバ間でのメッセージ交換をおこなう（ステップＳ２０２）。ここで、サーバ１００の制御部１１０は、プレゼンス情報に基づいてセッション情報ＤＢ１６３やプレゼンス情報ＤＢ１６４を参照することで、当該セッションの参加メンバ、および、当該メッセージの送信元を特定し（ステップＳ２０３）、メッセージの流れが「セッションに参加しているＢＯＴ３００からユーザ端末２００」であるか否かを判別する（ステップＳ２０４）。本例でいえば、「ＢＯＴ Ｘ」から「端末Ａ」へのメッセージであるか否かが判別される。
【００８３】
ここで、ＢＯＴ３００はアプリケーション提供装置であるので、ＢＯＴ３００からユーザ端末２００に流れるメッセージには、アプリケーション実行結果が含まれているものとすることができる。したがって、メッセージの流れがＢＯＴ３００（ＢＯＴ Ｘ）からユーザ端末２００（端末Ａ）である場合（ステップＳ２０４：Ｙｅｓ）、サーバ１００の制御部１１０は、当該メッセージに検索結果が含まれているものとして、端末Ａの表示制御をおこなう（ステップＳ２０５）。
【００８４】
ここでは、図１２（ｂ）に示すような、ＢＯＴ Ｘからのメッセージ（検索結果）を示すメッセージ表示画面ＭＤが表示される。なお、メッセージ表示画面ＭＤでは、メッセージ表示領域ＤＡにメッセージが表示されるが、このメッセージは端末Ａ上で編集可能な状態となっており、メッセージを編集して（あるいは未編集のまま）送信元に返信したり、他のＩＭクライアントに転送することができる。すなわち、メッセージ表示画面ＭＤには、メッセージの他に、当該メッセージの転送を指示するための転送ボタンＦＢが用意される。転送ボタンＦＢはさらに、送信元への返信を指定するための転送ボタンＦＢ１、他のＩＭクライアントへの転送を指定するための転送ボタンＦＢ２、当該メッセージ（検索結果）を用いて他のＢＯＴ３００でのアプリケーション実行を指定するための転送ボタンＦＢ３、などを含む。
【００８５】
図１２（ｂ）の例では、転送ボタンＦＢ１には「検索くんに返信」と、転送ボタンＦＢ２には「他のメンバに転送」と、転送ボタンＦＢ３には「ＢＯＴ連携」と表記されている。これらのボタン表記は、ステップＳ２０３で特定されたセッション参加メンバおよびメッセージ送信元に応じてサーバ１００が実行する表示制御によって決定されるものである。なお、上記第１の実施の形態と同様に、このような表示制御はユーザ端末２００のＩＭ用プログラムによって実行されてもよい。
【００８６】
本例においては、例えば、ＢＯＴ Ｘの検索結果に基づいて、検索条件を変更して再度ＢＯＴ Ｘに検索させる場合などに転送ボタンＦＢ１を指定する。また、ＢＯＴ Ｘの検索結果を他のユーザに通知したい場合などには転送ボタンＦＢ２を指定する。さらに、ＢＯＴ Ｘの検索結果を用いて、他のＢＯＴ３００（本例では「ＢＯＴ Ｙ（検索さん）」とする）に検索させたい場合には転送ボタンＦＢ３を指定する。
【００８７】
ここで、転送ボタンＦＢ１が指定された場合、端末Ａは、返信対象メッセージとともに、「ＢＯＴ Ｘ」を送信先とした送信先情報を含んだプレゼンス情報をサーバ１００に送信する。また、転送ボタンＦＢ２が指定された場合、端末Ａは、ユーザＡが登録した「登録メンバ」であって、現在通信可能な他のユーザをリスト表示し（図７（ａ）参照）、ユーザに転送先を指定させる。転送先のユーザが指定されると、当該ユーザを送信先とした送信先情報を含んだプレゼンス情報を、メッセージとともにサーバ１００に送信する。また、転送ボタンＦＢ３が指定された場合、端末Ａは、ユーザＡが登録した「登録メンバ」であって、ＢＯＴ Ｘ（検索くん）以外の現在通信可能なＢＯＴ３００をリスト表示し、連携させるＢＯＴ３００をユーザに指定させる。連携させるＢＯＴ３００が指定されると、当該ＢＯＴ３００を送信先とした送信先情報を含んだプレゼンス情報を、メッセージとともにサーバ１００に送信する。サーバ１００に送信されるプレゼンス情報には、当該セッションに割り当てられているセッションＩＤ、および、送信元を示す識別情報（端末ＩＤ）も含まれる。
【００８８】
一方、メッセージの流れがＢＯＴ Ｘから端末Ａでない場合（ステップＳ２０４：Ｎｏ）は、ステップＳ２０６に進み、メッセージとプレゼンス情報を受信する。
【００８９】
サーバ１００は、端末Ａからメッセージを受信すると（ステップＳ２０６）、制御部１１０は、メッセージとともに受信したプレゼンス情報を分析する（ステップＳ２０７）。すなわち、プレゼンス情報に含まれる送信先情報、セッションＩＤ、送信元端末ＩＤに基づいて、メッセージの送信先がセッション参加メンバであるか否かや、メッセージ送信先がＢＯＴ３００であるか否か、などを判別する。
【００９０】
まず、メッセージ送信先がセッション参加メンバである場合（ステップＳ２０８：Ｙｅｓ）は、当該メッセージを指定された送信先に中継する（ステップＳ２０９）。本例では、端末Ａで転送ボタンＦＢ１が指定された場合が該当し、端末ＡからＢＯＴ Ｘにメッセージが中継される。メッセージ送信先にセッション参加メンバを指定している場合は、セッションが終了するまで、上記のようなメッセージ交換が順次おこなわれる（ステップＳ２１６：Ｎｏ）。
【００９１】
一方、メッセージ送信先が参加メンバでない場合（ステップＳ２０８：Ｎｏ）、上記第１の実施の形態における「多者間通信処理」（図９）と同様の処理により、指定された送信先（取込対象ユーザ）を現在のセッションに取り込む（ステップＳ２１０（図１１））。
【００９２】
この場合、サーバ１００の制御部１１０はさらに、プレゼンス情報に基づいて、メッセージの送信先がユーザ端末２００（本例では、ユーザＢの端末Ｂとする）であるかＢＯＴ３００であるかを判別する（ステップＳ２１１）。ここで、送信先が端末Ｂである場合（ステップＳ２１１：Ｙｅｓ）、当該メッセージを端末Ｂに中継する（ステップＳ２１２）。これは、端末Ａで転送ボタンＦＢ２が指定された場合に該当するものであり、ＢＯＴ Ｘの検索結果を２ユーザ（本例では、ユーザＡとユーザＢ）で共有することになる。
【００９３】
一方、メッセージ送信先がＢＯＴ３００（ＢＯＴ Ｙ）である場合（ステップＳ２１１：Ｎｏ）は、当該メッセージをＢＯＴ Ｙ（連携対象ＢＯＴ）に中継し（ステップＳ２１３）、ＢＯＴ Ｙに当該メッセージを用いた検索を実行させる。これは、端末Ａで転送ボタンＦＢ３を指定した場合に該当し、ＢＯＴ Ｘの検索結果を使って、ＢＯＴ Ｙでさらに検索をおこなうものである。すなわち、端末Ａで指定された送信先に基づいて、アプリケーション提供装置であるＢＯＴ ＸとＢＯＴ Ｙとを擬似的に連携させて、アプリケーションを実行させたものである。
【００９４】
サーバ１００は、ステップＳ２１２またはＳ２１３でメッセージを中継した端末ＢまたはＢＯＴ Ｙからメッセージを受信すると（ステップＳ２１４）、メッセージとともに受信したプレゼンス情報に基づいて、当該メッセージを端末Ａに中継する（ステップＳ２１５）。すなわち、端末Ａでは、ユーザＢからの返信やＢＯＴ Ｙによる検索結果を受信する。ここで、ＢＯＴ Ｙからの検索結果を受信した場合は、ＢＯＴ ＸとＢＯＴ Ｙの連携によって得られた検索結果を得ることになる。
【００９５】
上記のようなメッセージ中継を、セッションが終了するまで継続する（ステップＳ２１６：Ｎｏ（図１０））。
【００９６】
以上説明したように、本発明の第２の実施の形態によれば、ＢＯＴ３００との会話で得られたメッセージを他のＢＯＴ３００に送信することで、複数のＢＯＴ３００を連携させることができる。この場合、ユーザ端末２００では、通常のメッセージ送信と同様の操作によってメッセージをＢＯＴ３００に送信すればよい。すなわち、メッセージ送信の際に付加されるプレゼンス情報に基づいて、サーバ１００が通信制御をおこなうので、ユーザ端末２００に特別なボタン等の構成を備える必要がなく、従来のＩＭシステムのハードウェア構成を大幅に変更することなく、ＢＯＴ連携などの複雑な動作を実現することができる。
【００９７】
上記実施の形態のように、検索ロボットであるＢＯＴ３００を連携させることにより、例えば、一般的な事項を検索対象とするＢＯＴ３００による検索結果を用いて、専門分野に特化した他のＢＯＴ３００に検索させることで、的確な検索結果を得ることができる。上記実施の形態では、ＢＯＴ３００が検索ロボットである場合を例示したが、ＢＯＴ３００は検索ロボットに限られず、種々のアプリケーション提供装置とすることができる。例えば、各種ファイルの表示・編集をおこなうアプリケーションを共有して、複数のユーザが共同でファイルを編集する一方、作業中に生じた疑問点などを検索ロボットで調べ、その結果を各ユーザが共有することができる。このような、異なるアプリケーションを共有するといった複雑な動作であっても、通常のメッセージ送受信と同様の簡単な操作で複数のＢＯＴを連携させ、容易に実現することができる。
【００９８】
上記実施の形態では、ユーザ端末２００として移動体通信端末の場合を例示したが、ユーザ端末２００はこれに限られず任意の端末装置（例えば、パーソナルコンピュータやＰＤＡ（Personal Data Assistance：携帯情報端末）など）とすることができる。すなわち、これらの端末装置に所定のプログラムをインストールすることで、上記実施の形態にかかるユーザ端末２００を構成することができる。この場合、種々の方法によりプログラムを配布することができ、例えば、ＣＤ−ＲＯＭなどの記憶媒体に格納して配布可能であることはもとより、プログラムを搬送波に重畳することで、所定の通信媒体（例えば、インターネットなど）を介して配布することもできる。なお、ユーザ端末２００が移動体通信端末である場合には、ＩＭサービスを提供するサーバ１００からプログラムをダウンロードしてインストールしてもよい。
【００９９】
また、サーバ１００は専用装置から構成可能であることはもとより、例えば、パーソナルコンピュータなどの汎用コンピュータ装置などで構成することができる。この場合、上述したサーバ１００の動作を実現するためのプログラムをコンピュータ装置にインストールし、ＯＳ（Operating System）などとの協働により実行することで、上記のようなサーバ１００を構成することができる。このようなプログラムの配布方法は上記と同様に任意であり、記録媒体に格納して配布したり、通信媒体を介して配布することができる。
【０１００】
本発明によれば、移動体通信端末などを用いたインスタントメッセージシステムにおいて、アプリケーション提供装置が提供するアプリケーションの共有や、アプリケーション提供装置の連携動作などを容易に実現することができる。
【図面の簡単な説明】
【０１０１】
【図１】本発明の実施の形態にかかるＩＭシステムの構成を模式的に示す図である。
【図２】図１に示すサーバの構成を示すブロック図である。
【図３】図２に示す記憶部に構成されるデータベースを説明するための図である。
【図４】図３に示すデータベースに蓄積される情報の例を示す図であり、（ａ）は「ユーザ情報ＤＢ」に記録される情報の例を示し、（ｂ）は「ＢＯＴ情報ＤＢ」に記録される情報の例を示す。
【図５】図３に示すデータベースに蓄積される情報の例を示す図であり、（ａ）は「セッション情報ＤＢ」に記録される情報の例を示し、（ｂ）は「プレゼンス情報ＤＢ」に記録される情報の例を示す。
【図６】本発明の実施の形態にかかる「メッセージ交換処理」を説明するためのフローチャートである。
【図７】図６に示す処理によりユーザ端末に表示される画面の例を示す図であり、（ａ）は通信可能メンバの一覧画面の表示例であり、（ｂ）はセッション確立通知画面の表示例である。
【図８】図６に示す処理によりユーザ端末に表示される「メッセージ入力画面」の表示例を示す図である。
【図９】本発明の第１の実施の形態にかかる「多者間通信処理」を説明するためのフローチャートである。
【図１０】本発明の第２の実施の形態にかかる「ＢＯＴ連携処理」を説明するためのフローチャートである。
【図１１】本発明の第２の実施の形態にかかる「ＢＯＴ連携処理」を説明するためのフローチャートである。
【図１２】図１０、１１に示す処理によってユーザ端末に表示される画面の表示例を示す図であり、（ａ）は「メッセージ入力画面」の表示例を示し、（ｂ）は「メッセージ表示画面」の表示例を示す。
【符号の説明】
【０１０２】
１  ＩＭ（インスタントメッセージ）システム
１０  通信ネットワーク
１００  サーバ
２００  ユーザ端末
３００  ＢＯＴ
【図１】
2005107893.tif 000003
【図２】
2005107893.tif 000004
【図３】
2005107893.tif 000005
【図４】
2005107893.tif 000006
【図５】
2005107893.tif 000007
【図６】
2005107893.tif 000008
【図７】
2005107893.tif 000009
【図８】
2005107893.tif 000010
【図９】
2005107893.tif 000011
【図１０】
2005107893.tif 000012
【図１１】
2005107893.tif 000013
【図１２】
2005107893.tif 000014