(57)【要約】【課題】端末に他の端末の状態を通知する通信システムにおいて、データベースサーバにかかる負荷を減少させることができる状態通知方法、および通信システムを提供する。【解決手段】複数の端末３の１つである端末３Ａは、接続している中継サーバ２Ａを介して、端末３Ａの状態を示すプレゼンス情報をデータベースサーバ１に送信する（Ｓ１６〜Ｓ１８）。端末３Ａのプレゼンス情報を受信したデータベースサーバ１は、状態の通知先の端末である通知先端末３Ｂを特定するための通知先情報と、通知先端末３Ｂが接続している中継サーバ２Ｂを特定するための中継情報とを１つのメッセージに含めて、複数の中継サーバの１つである中継サーバ２Ａに送信する（Ｓ２０）。メッセージを受信した中継サーバ２Ａは、中継情報によって特定される中継サーバ２Ｂに、端末３Ａのプレゼンス情報と通知先情報とを出力する（Ｓ２２）。【選択図】図５
2011205291.tif 000002
【特許請求の範囲】
【請求項１】
複数の端末と、前記複数の端末の各々の状態を示すプレゼンス情報を管理することが可能なデータベースサーバと、前記複数の端末の少なくともいずれかと前記データベースサーバとの間でメッセージを中継する複数の中継サーバとを備えた通信システムにおいて行われる状態通知方法であって、
前記データベースサーバが、前記複数の端末の各々の状態の通知先である１以上の通知先端末を特定する情報を記憶手段に登録する登録ステップと、
前記複数の端末のうちの一の端末である通知元端末が、接続している中継サーバを介して、前記通知元端末のプレゼンス情報を前記データベースサーバへ送信する状態通知ステップと、
前記状態通知ステップで送信された前記通知元端末のプレゼンス情報を受信した前記データベースサーバが、前記登録ステップで登録された情報に基づいて、前記通知先端末を特定するための第一通知先情報と、前記通知先端末に接続している中継サーバを特定するための中継情報とを含む一の情報を、前記複数の中継サーバのいずれかに送信する第一送信ステップと、
前記第一送信ステップで送信された前記一の情報を受信した中継サーバが、前記中継情報によって特定される中継サーバに、前記第一通知先情報によって特定される通知先端末を特定する第二通知先情報、および前記通知元端末のプレゼンス情報を出力する出力ステップと、
前記出力ステップで出力された情報を入力した中継サーバが、自身に接続している端末のうち、前記第二通知先情報によって特定される端末に、入力したプレゼンス情報を送信する第二送信ステップと
を備えたことを特徴とする状態通知方法。
【請求項２】
前記出力ステップにおいて、前記中継サーバは、前記第一通知先情報によって複数の通知先端末が特定され、且つ前記複数の通知先端末のうちの２以上が１つの中継サーバに接続されている場合、前記中継サーバに対し、２以上の通知先端末を特定する一の第二通知先情報を出力することを特徴とする請求項１に記載の状態通知方法。
【請求項３】
前記第一送信ステップにおいて、前記データベースサーバは、前記第一通知先情報および前記中継情報を含む前記一の情報を、前記プレゼンス情報を受信したことに対する応答と共に、前記プレゼンス情報を中継した中継サーバに送信することを特徴とする請求項１または２に記載の状態通知方法。
【請求項４】
前記状態通知ステップで前記通知元端末のプレゼンス情報を中継する中継サーバが、前記プレゼンス情報を中継する際に、中継する前記プレゼンス情報を取得する第一取得ステップをさらに備え、
前記出力ステップにおいて、前記中継サーバは、前記第一取得ステップで取得した前記プレゼンス情報を出力することを特徴とする請求項３に記載の状態通知方法。
【請求項５】
前記状態通知ステップで送信された前記通知元端末のプレゼンス情報を受信した前記データベースサーバが、前記複数の中継サーバの各々が実行している処理に関する情報である処理情報を取得する第二取得ステップと、
前記第二取得ステップで処理情報を取得した前記データベースサーバが、取得した前記処理情報に基づいて、前記通知先情報および前記中継情報を含む前記一の情報を送信する送信先の中継サーバを前記複数の中継サーバの中から選択する選択ステップとをさらに備え、
前記第一送信ステップにおいて、前記データベースサーバは、前記一の情報を、前記選択ステップで選択された中継サーバに送信することを特徴とする請求項１または２に記載の状態通知方法。
【請求項６】
前記第一送信ステップにおいて、前記データベースサーバは、前記通知元端末のプレゼンス情報を前記一の情報に含めて送信し、
前記出力ステップにおいて、前記中継サーバは、受信した前記一の情報に含まれる前記プレゼンス情報を出力することを特徴とする請求項１から３、および５のいずれかに記載の状態通知方法。
【請求項７】
前記中継サーバの各々と前記データベースサーバとが、前記中継サーバの各々と前記データベースサーバとの間で共通の識別子を記憶手段に記憶させる記憶制御ステップをさらに備え、
前記第一送信ステップにおいて、前記データベースサーバは、前記中継情報によって特定される中継サーバとの間で共通する識別子に関する識別子情報を、前記一の情報に含めて送信し、
前記出力ステップにおいて、前記第一送信ステップで送信された前記一の情報を受信した中継サーバは、前記一の情報に含まれる前記識別子情報を、前記第二通知先情報および前記プレゼンス情報と共に出力し、
前記第二送信ステップにおいて、前記出力ステップで出力された情報を入力した中継サーバは、入力した前記識別子情報によって示される識別子が前記データベースサーバとの間で共通の識別子である場合、入力したプレゼンス情報を通知先端末に送信することを特徴とする請求項１から６のいずれかに記載の状態通知方法。
【請求項８】
前記複数の端末の各々は、他の端末との間でＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）に従って通信を行うＳＩＰクライアントとして動作し、
前記中継サーバは、前記複数の端末間におけるＳＩＰセッションを確立するＳＩＰプロキシサーバとして動作することを特徴とする請求項１から７のいずれかに記載の状態通知方法。
【請求項９】
複数の端末と、前記複数の端末の各々の状態を示すプレゼンス情報を管理することが可能なデータベースサーバと、前記複数の端末の少なくともいずれかと前記データベースサーバとの間でメッセージを中継する複数の中継サーバとを備えた通信システムであって、
前記データベースサーバにおいて、前記複数の端末の各々の状態の通知先である１以上の通知先端末を特定する情報を記憶手段に登録する登録手段と、
前記複数の端末のうちの一の端末である通知元端末において、前記通知元端末に接続している中継サーバを介して、前記通知元端末のプレゼンス情報を前記データベースサーバへ送信する状態通知手段と、
前記データベースサーバにおいて、前記状態通知手段によって送信された前記通知元端末のプレゼンス情報を受信した場合に、前記登録手段によって登録された情報に基づいて、前記通知先端末を特定するための第一通知先情報と、前記通知先端末に接続している中継サーバを特定するための中継情報とを含む一の情報を、前記複数の中継サーバのいずれかに送信する第一送信手段と、
前記複数の中継サーバの各々において、前記第一送信手段によって送信された前記一の情報を受信した場合に、前記中継情報によって特定される中継サーバに、前記第一通知先情報によって特定される通知先端末を特定する第二通知先情報、および前記通知元端末のプレゼンス情報を出力する出力手段と、
前記複数の中継サーバの各々において、前記出力手段によって出力された情報を入力した場合に、自身に接続している端末のうち、前記第二通知先情報によって特定される端末に、入力したプレゼンス情報を送信する第二送信手段と
を備えたことを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して接続された複数の端末を備える通信システムにおいて、端末に他の端末の状態を通知するための状態通知方法、および通信システムに関する。
【背景技術】
【０００２】
従来、ネットワークを介して接続された複数の端末を備える通信システムにおいて、端末に他の端末の状態を通知する機能（所謂「プレゼンス機能」）が利用されている。通信システムは、複数の端末とプレゼンスサーバとを少なくとも備える。プレゼンスサーバは、各端末の状態を示すプレゼンス情報を管理する。例えば、端末Ｂは、他の端末Ａの状態を監視する場合、端末Ａの状態を端末Ｂに通知する旨の登録を、プレゼンスサーバに対して要求する。プレゼンスサーバは、端末Ａの状態が端末Ａから通知されると、端末Ａの状態の通知先として登録している端末Ｂに、端末Ａの状態を通知するためのメッセージを送信する。
【０００３】
プレゼンスサーバは、ある端末の状態を複数の端末に通知する場合には、各端末に状態を通知するための複数の処理を並行して行わなければならなかった。プレゼンスサーバにかかる負荷の分散を図るため、例えば、特許文献１では、プレゼンス情報を格納するデータベースサーバと、プレゼンス情報が変更された旨を端末に通知する複数のプレゼンスサーバとによって端末に他の端末の状態を通知する通信システムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２４４１００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１が開示している通信システムでは、プレゼンス情報を格納するデータベースサーバは、プレゼンスサーバの各々にメッセージを送信しなければならない。従って、端末の増加に伴ってプレゼンスサーバが増加すると、データベースサーバにかかる負荷が増大する。すなわち、特許文献１が開示している通信システムは、端末数の増加に伴って増大するデータベースサーバの負荷を根本的に減少させることはできなかった。
【０００６】
本発明は、端末に他の端末の状態を通知する通信システムにおいて、データベースサーバにかかる負荷を減少させることができる状態通知方法、および通信システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第一の態様に係る状態通知方法は、複数の端末と、前記複数の端末の各々の状態を示すプレゼンス情報を管理することが可能なデータベースサーバと、前記複数の端末の少なくともいずれかと前記データベースサーバとの間でメッセージを中継する複数の中継サーバとを備えた通信システムにおいて行われる状態通知方法であって、前記データベースサーバが、前記複数の端末の各々の状態の通知先である１以上の通知先端末を特定する情報を記憶手段に登録する登録ステップと、前記複数の端末のうちの一の端末である通知元端末が、接続している中継サーバを介して、前記通知元端末のプレゼンス情報を前記データベースサーバへ送信する状態通知ステップと、前記状態通知ステップで送信された前記通知元端末のプレゼンス情報を受信した前記データベースサーバが、前記登録ステップで登録された情報に基づいて、前記通知先端末を特定するための第一通知先情報と、前記通知先端末に接続している中継サーバを特定するための中継情報とを含む一の情報を、前記複数の中継サーバのいずれかに送信する第一送信ステップと、前記第一送信ステップで送信された前記一の情報を受信した中継サーバが、前記中継情報によって特定される中継サーバに、前記第一通知先情報によって特定される通知先端末を特定する第二通知先情報、および前記通知元端末のプレゼンス情報を出力する出力ステップと、前記出力ステップで出力された情報を入力した中継サーバが、自身に接続している端末のうち、前記第二通知先情報によって特定される端末に、入力したプレゼンス情報を送信する第二送信ステップとを備えている。
【０００８】
第一の態様に係る状態通知方法によると、データベースサーバは、通知先端末を特定するための情報等を含む一の情報を、複数の中継サーバのうちのいずれかに送信するだけで、通知元端末の状態を通知先端末に通知することができる。通知先端末の数が多い場合でも、データベースサーバは、情報の送受信を複数の中継サーバとの間で繰り返す必要がない。従って、通信システムは、データベースサーバにかかる負荷を増加させることなく、通知元端末の状態を通知先端末に通知することができる。
【０００９】
前記出力ステップにおいて、前記中継サーバは、前記第一通知先情報によって複数の通知先端末が特定され、且つ前記複数の通知先端末のうちの２以上が１つの中継サーバに接続されている場合、前記中継サーバに対し、２以上の通知先端末を特定する一の第二通知先情報を出力してもよい。通信システムは、データベースサーバにかかる負荷を減少させることができることに加え、複数の中継サーバ間で情報が送受信される回数も減少させることができる。従って、通信システムは、システム全体にかかる負荷をさらに減少させることができる。
【００１０】
前記第一送信ステップにおいて、前記データベースサーバは、前記第一通知先情報および前記中継情報を含む前記一の情報を、前記プレゼンス情報を受信したことに対する応答と共に、前記プレゼンス情報を中継した中継サーバに送信してもよい。通信システムは、データベースサーバが情報を送信する回数をさらに減少させることができる。その結果、データベースサーバにかかる負荷が減少する。
【００１１】
前記状態通知方法は、前記状態通知ステップで前記通知元端末のプレゼンス情報を中継する中継サーバが、前記プレゼンス情報を中継する際に、中継する前記プレゼンス情報を取得する第一取得ステップをさらに備えてもよい。前記出力ステップにおいて、前記中継サーバは、前記第一取得ステップで取得した前記プレゼンス情報を出力してもよい。データベースサーバは、中継サーバに送信する一の情報に通知元端末のプレゼンス情報を含める必要がない。よって、通信システムは、送受信するデータのデータ量を低下させることができる。
【００１２】
前記状態通知方法は、前記状態通知ステップで送信された前記通知元端末のプレゼンス情報を受信した前記データベースサーバが、前記複数の中継サーバの各々が実行している処理に関する情報である処理情報を取得する第二取得ステップと、前記第二取得ステップで処理情報を取得した前記データベースサーバが、取得した前記処理情報に基づいて、前記通知先情報および前記中継情報を含む前記一の情報を送信する送信先の中継サーバを前記複数の中継サーバの中から選択する選択ステップとをさらに備えてもよい。前記第一送信ステップにおいて、前記データベースサーバは、前記一の情報を、前記選択ステップで選択された中継サーバに送信するとよい。データベースサーバは、各中継サーバが実行している処理の情報に応じて、情報を送信する中継サーバを選択することができる。従って、通信システムは、システムの一部に処理負担が偏ることを防止することができる。
【００１３】
前記第一送信ステップにおいて、前記データベースサーバは、前記通知元端末のプレゼンス情報を前記一の情報に含めて送信してもよい。前記出力ステップにおいて、前記中継サーバは、受信した前記一の情報に含まれる前記プレゼンス情報を出力してもよい。通信システムは、データベースサーバから中継サーバに送信される一の情報に通知元端末のプレゼンス情報を含めることで、通知元端末のプレゼンス情報を確実に通知先端末に通知することができる。
【００１４】
前記状態通知方法は、前記中継サーバの各々と前記データベースサーバとが、前記中継サーバの各々と前記データベースサーバとの間で共通の識別子を記憶手段に記憶させる記憶制御ステップをさらに備えてもよい。前記第一送信ステップにおいて、前記データベースサーバは、前記中継情報によって特定される中継サーバとの間で共通する識別子に関する識別子情報を、前記一の情報に含めて送信してもよい。前記出力ステップにおいて、前記第一送信ステップで送信された前記一の情報を受信した中継サーバは、前記一の情報に含まれる前記識別子情報を、前記第二通知先情報および前記プレゼンス情報と共に出力すればよい。前記第二送信ステップにおいて、前記出力ステップで出力された情報を入力した中継サーバは、入力した前記識別子情報によって示される識別子が前記データベースサーバとの間で共通の識別子である場合、入力したプレゼンス情報を通知先端末に送信するとよい。通知先端末にプレゼンス情報を送信する中継サーバは、入力した第二通知先情報およびプレゼンス情報が、データベースサーバから他の中継サーバを介して出力された信頼できる情報であることを、識別子を用いて判断することができる。よって、通信システムは、正確な情報を円滑に送受信することができる。
【００１５】
前記複数の端末の各々は、他の端末との間でＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）に従って通信を行うＳＩＰクライアントとして動作してもよい。前記中継サーバは、前記複数の端末間におけるＳＩＰセッションを確立するＳＩＰプロキシサーバとして動作してもよい。通信システムは、汎用的なＳＩＰに従って円滑に通信を行うことができる。通信システムは、汎用的なＳＩＰメッセージを利用して容易にプレゼンス機能を実現することができる。ＳＩＰに従って通信を行う既存の通信システムの構成を大幅に変更することなく、容易にプレゼンス機能を実現することができる。中継サーバは、複数の端末間の通信の確立とプレゼンス機能の制御とを共に実行することができる。よって、通信システムは、通信を確立するためのサーバとプレゼンス機能を制御するサーバとを別に備える必要がない。
【００１６】
本発明の第二の態様に係る通信システムは、複数の端末と、前記複数の端末の各々の状態を示すプレゼンス情報を管理することが可能なデータベースサーバと、前記複数の端末の少なくともいずれかと前記データベースサーバとの間でメッセージを中継する複数の中継サーバとを備えた通信システムであって、前記データベースサーバにおいて、前記複数の端末の各々の状態の通知先である１以上の通知先端末を特定する情報を記憶手段に登録する登録手段と、前記複数の端末のうちの一の端末である通知元端末において、前記通知元端末に接続している中継サーバを介して、前記通知元端末のプレゼンス情報を前記データベースサーバへ送信する状態通知手段と、前記データベースサーバにおいて、前記状態通知手段によって送信された前記通知元端末のプレゼンス情報を受信した場合に、前記登録手段によって登録された情報に基づいて、前記通知先端末を特定するための第一通知先情報と、前記通知先端末に接続している中継サーバを特定するための中継情報とを含む一の情報を、前記複数の中継サーバのいずれかに送信する第一送信手段と、前記複数の中継サーバの各々において、前記第一送信手段によって送信された前記一の情報を受信した場合に、前記中継情報によって特定される中継サーバに、前記第一通知先情報によって特定される通知先端末を特定する第二通知先情報、および前記通知元端末のプレゼンス情報を出力する出力手段と、前記複数の中継サーバの各々において、前記出力手段によって出力された情報を入力した場合に、自身に接続している端末のうち、前記第二通知先情報によって特定される端末に、入力したプレゼンス情報を送信する第二送信手段とを備えている。
【００１７】
第二の態様に係る通信システムによると、データベースサーバは、通知先端末を特定するための情報等を含む一の情報を、複数の中継サーバのうちのいずれかに送信するだけで、通知元端末の状態を通知先端末に通知することができる。通知先端末の数が多い場合でも、データベースサーバは、情報の送受信を複数の中継サーバとの間で繰り返す必要がない。従って、通信システムは、データベースサーバにかかる負荷を増加させることなく、通知元端末の状態を通知先端末に通知することができる。
【図面の簡単な説明】
【００１８】
【図１】通信システム１００のシステム構成を示す図である。
【図２】データベースサーバ１の電気的構成を示すブロック図である。
【図３】中継サーバ２の電気的構成を示すブロック図である。
【図４】端末３の電気的構成を示すブロック図である。
【図５】通信システム１００が実行する処理の一例を示すシーケンス図である。
【図６】通知先端末が複数登録されている場合に通信システム１００が実行する処理の一例を示すシーケンス図である。
【図７】データベースサーバ１が状態通知に対して返信する応答メッセージの一例を示す図である。
【図８】第二の実施形態に係るデータベースサーバ１が行う中継サーバ選択処理のフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明を具現化した第一の実施形態である通信システム１００について、図面を参照して説明する。参照する図面は、本発明が採用し得る技術的特徴を説明するために用いられるものである。図面に記載されている装置の構成、各種処理のフローチャート等は、それのみに限定する趣旨ではなく、単なる説明例である。
【００２０】
図１を参照して、通信システム１００の概要について説明する。通信システム１００は、データベースサーバ１と、複数の中継サーバ２と、複数の端末３とを備える。通信システム１００が備える端末３は、音声データおよび画像データ等のデータを、ネットワーク８（図２から図４参照）を介して他の端末３との間でＰ２Ｐ（ｐｅｅｒ  ｔｏ  ｐｅｅｒ）によって送受信することができる。各端末３を使用する複数のユーザは、同一拠点にいない場合でも、送受信されるデータによって遠隔会議を行うことができる。つまり、本実施形態の通信システム１００は、テレビ会議を行うために用いられるテレビ会議システムである。しかし、本発明はテレビ会議システム以外の通信システムにも適用できる。例えば、所謂「チャット」を行うために文字データを送受信する通信システム、電話を行うために音声データを送受信する通信システム等にも、本発明は適用できる。
【００２１】
通信システム１００では、複数の端末３がネットワーク８上で通信を開始するための双方向プロトコルとして、ＳＩＰ（ＲＦＣ３２６１）が用いられる。ＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）は、ネットワーク８上でエンド・トゥ・エンドのセッションを確立するためのプロトコルであり、リアルタイムコミュニケーションを容易に実現できる。端末３の各々は、他の端末３との間でＳＩＰに従って通信を行うＳＩＰクライアントとして動作する。中継サーバ２の各々は、複数の端末３の間にＳＩＰに従ってセッションを確立するＳＩＰプロキシサーバである。ＳＩＰによるセッションの確立方法については公知であるため、詳細な説明は省略する。
【００２２】
通信システム１００は、端末３に他の端末３の状態を通知する機能（所謂「プレゼンス機能」）を有する。ユーザは、プレゼンス機能を利用することで、自らが使用する端末３と他のユーザが使用する端末３との間の通信を確立しなくても、他のユーザの状態を知ることができる。
【００２３】
一般的に、サーバは、情報を受信して応答を送信する処理に比べ、情報を送信して応答を受信する処理には適していないという性質を有する。具体的には、サーバは、プレゼンス情報を含むメッセージを他の機器に送信した場合、メッセージの応答を待機する必要がある。サーバは、メッセージの応答がない場合には、メッセージの再送等の処理を行う必要もある。特に、ある端末の状態をサーバが多数の端末に通知する場合には、多数の端末に対する処理を同時に実行しなければならないため、サーバには瞬間的に過大な負荷がかかる。サーバで行われる処理が遅延すると、プレゼンス機能の実行が停滞する。
【００２４】
本実施形態の通信システム１００は、プレゼンス機能を実行するためのサーバとして、データベースサーバ１と複数の中継サーバ２とを備える。データベースサーバ１は、複数の中継サーバ２の各々に接続している。各中継サーバ２は、１または複数の端末３に接続し、且つ中継サーバ２間で互いにメッセージを送受信することもできる。通信システム１００は、プレゼンス機能を実行するための処理をデータベースサーバ１および中継サーバ２に分散させ、サーバ間におけるメッセージの送受信において特徴的な処理を行うことで、システム全体、特にデータベースサーバ１にかかる負荷を低下させることができる。通信システム１００が実行する処理の詳細については後述する。
【００２５】
図２を参照して、データベースサーバ１の電気的構成について説明する。データベースサーバ１は、各端末３のプレゼンス情報を記憶して管理するサーバである。データベースサーバ１は、データベースサーバ１の制御を司るＣＰＵ１０を備える。ＣＰＵ１０には、ＲＯＭ１１、ＲＡＭ１２、ハードディスクドライブ（以下、「ＨＤＤ」という。）１３、および外部通信Ｉ／Ｆ１４が接続されている。ＲＯＭ１１は、データベースサーバ１を動作させるためのプログラムおよび初期値等を記憶している。ＲＡＭ１２は、制御プログラムで使用される各種の情報を一時的に記憶する。ＨＤＤ１３は、各種の情報を記憶する不揮発性の記憶装置である。外部通信Ｉ／Ｆ１４は、データベースサーバ１をネットワーク８に接続する。
【００２６】
ＨＤＤ１３には、プレゼンス情報記憶エリア１３１、端末登録情報記憶エリア１３２、および識別子記憶エリア１３３等の各種記憶エリアが設けられている。プレゼンス情報記憶エリア１３１は、主にプレゼンス情報を記憶する。前述したように、プレゼンス情報は、各端末３の状態を示す情報であり、各端末３のそれぞれに対応付けられてプレゼンス情報が記憶されている。端末登録情報記憶エリア１３２には、端末３の各々の状態の通知先の端末３（以下、「通知先端末」という。）についての情報が記憶される。具体的には、端末登録情報記憶エリア１３２には、通知先端末を特定するための通知先情報と、通知先端末に接続している中継サーバ２（以下、「接続サーバ」という場合もある。）を特定するための中継情報とが、他の端末に自身の状態を通知される端末３（以下、「通知元端末」という。）の各々に対応付けて記憶される。識別子記憶エリア１３３には、中継サーバ２との間で共通して保持される識別子が記憶される。識別子は、中継サーバ２に送信されるメッセージに通知先情報等と共に含まれる。詳細は後述するが、中継サーバ２は、他の中継サーバ２から受信したメッセージが信頼できるメッセージであるか否かを、識別子を用いて判断する。
【００２７】
図３を参照して、中継サーバ２の電気的構成について説明する。中継サーバ２は、データベースサーバ１と端末３との間のプレゼンス情報の送受信を中継する。さらに、前述したように、中継サーバ２は、複数の端末３の間にＳＩＰに従ってセッションを確立するＳＩＰプロキシサーバとして動作する。中継サーバ２は、中継サーバ２の制御を司るＣＰＵ２０を備える。ＣＰＵ２０には、ＲＯＭ２１、ＲＡＭ２２、ＨＤＤ２３、および外部通信Ｉ／Ｆ２４が接続されている。ＨＤＤ２３には、プレゼンス情報記憶エリア２３１および識別子記憶エリア２３２が設けられている。中継サーバ２は、端末３とデータベースサーバ１との間で中継するプレゼンス情報をプレゼンス情報記憶エリア２３１に記憶することができる。識別子記憶エリア２３２には、データベースサーバ１との間で共通して保持される識別子が記憶される。本実施形態では、データベースサーバ１および中継サーバ２は、通知先端末の各々に対して識別子を付与する。従って、中継サーバ２は、識別子を用いたメッセージの信頼性の判断を確実に行うことができる。しかし、データベースサーバ１および中継サーバ２は、中継サーバ２の各々に対して識別子を付与してもよい。
【００２８】
図４を参照して、端末３の電気的構成について説明する。端末３は、各種の情報処理を行うことができるパーソナルコンピュータや、テレビ会議に用いられる専用端末等である。端末３は、端末３の制御を司るＣＰＵ３０を備える。ＣＰＵ３０には、ＲＯＭ３１、ＲＡＭ３２、ＨＤＤ３３、外部通信Ｉ／Ｆ３４、マイク３５、スピーカ３６、カメラ３７、表示装置３８、および操作部３９が接続されている。マイク３５は、端末３が配置された拠点の音声を入力する。スピーカ３２は音声を出力する。カメラ３７は、端末３が配置された拠点の映像を撮像する。表示装置３８は映像を表示する。操作部３９は、ユーザが端末３に各種指示を入力するために操作される。
【００２９】
図５を参照して、通信システム１００で行われる処理の流れについて説明する。以下説明する処理は、データベースサーバ１のＣＰＵ１０、中継サーバ２のＣＰＵ２０、および端末３のＣＰＵ３０によって行われる。
【００３０】
図５に示す例では、複数の端末３のうち、自身の状態が他の端末３に通知される通知元端末を、端末３Ａとする。端末３Ａの状態を監視する通知先端末を、端末３Ｂとする。複数の中継サーバ２のうち、端末３Ａに接続している中継サーバ２（端末３Ａの接続サーバ）を中継サーバ２Ａとし、端末３Ｂの接続サーバを中継サーバ２Ｂとする。図５では、処理の流れの理解を容易にするため、通知先端末が端末３Ｂの１つのみである場合を例示する。なお、通知先端末が複数登録されている場合については、図６を参照して後述する。端末３Ａおよび端末３Ｂは、以下の処理を行う前に、接続する中継サーバ２に登録要求「ＲＥＧＩＳＴＥＲ」のＳＩＰメッセージを送信して、通信システム１００内で通信を行う端末３の１つとして中継サーバ２に登録するための処理を行っている。
【００３１】
通知元端末である端末３Ａは、状態通知「ＰＵＢＬＩＳＨ」のＳＩＰメッセージを、接続している中継サーバ２Ａに送信する（Ｓ１）。端末３Ａは、端末３Ａの状態が変化した場合、および前回の「ＰＵＢＬＩＳＨ」送信時から所定時間が経過した場合に、「ＰＵＢＬＩＳＨ」を中継サーバ２Ａに送信する。端末３Ａは、「ＰＵＢＬＩＳＨ」のＳＩＰメッセージの中に、端末３Ａの状態を示すプレゼンス情報を含める。例えば、端末３Ａは、ユーザが在籍中である場合には「ｏｐｅｎ」、ユーザが離席中である場合には「ｃｌｏｓｅｄ」を、端末３Ａの状態を示すプレゼンス情報としてメッセージ中に含める。中継サーバ２Ａは、端末３Ａから「ＰＵＢＬＩＳＨ」を受信すると、受信したメッセージに含まれるプレゼンス情報を取得し、プレゼンス情報記憶エリア２３１（図３参照）に記憶する（Ｓ２）。中継サーバ２Ａは、受信した状態通知をデータベースサーバ１に転送する（Ｓ３）。データベースサーバ１は、受信した状態通知に含まれるプレゼンス情報を、端末３Ａに対応付けてプレゼンス情報記憶エリア１３１（図２参照）に記憶する（Ｓ４）。
【００３２】
データベースサーバ１がＳ４を実行する時点では、端末３Ａの状態を監視する通知先端末は未だ登録されていない。よって、データベースサーバ１は、端末３Ａのプレゼンス情報を送信することなく、状態通知に対する応答のみを中継サーバ２Ａに返信する（Ｓ５）。中継サーバ２Ａは、「ＰＵＢＬＩＳＨ」に対する応答を端末３Ａに返信する（Ｓ６）。以上の処理（Ｓ１〜Ｓ６）によって、データベースサーバ１は端末３Ａのプレゼンス情報を記憶する。
【００３３】
次いで、端末３Ｂは、状態取得登録要求「ＳＵＢＳＣＲＩＢＥ」のＳＩＰメッセージを、接続している中継サーバ２Ｂに送信する（Ｓ７）。「ＳＵＢＳＣＲＩＢＥ」は、端末３Ａの状態をデータベースサーバ１が自身へ通知する旨の登録をデータベースサーバ１に対して要求するために送信されるメッセージである。中継サーバ２Ｂは、受信した状態取得登録要求をデータベースサーバ１へ転送する（Ｓ８）。データベースサーバ１は、端末３Ａの状態の通知先が端末３Ｂであることを示す通知先情報を、端末登録情報記憶エリア１３２（図２参照）に登録する。データベースサーバ１は、端末３Ｂに接続している中継サーバ２（端末３Ｂの接続サーバ）が中継サーバ２Ｂであることを示す中継情報を、端末登録情報記憶エリア１３２に登録する（Ｓ９）。
【００３４】
データベースサーバ１は、端末３Ｂに対応する識別子ｂを生成し、識別子記憶エリア１３３に記憶する（Ｓ１０）。前述したように、本実施形態では端末３の各々に対応する識別子を別々に生成するが、識別子を中継サーバ２の各々に対応付けて生成してもよい。データベースサーバ１は、状態取得登録要求に対する応答メッセージに、端末３Ａのプレゼンス情報と、生成した識別子ｂとを含めて、中継サーバ２Ｂに送信する（Ｓ１１）。中継サーバ２Ｂは、受信したメッセージに含まれる識別子ｂを、端末３Ｂの識別子として識別子記憶エリア２３２に記憶する（Ｓ１２）。その結果、識別子ｂがデータベースサーバ１と中継サーバ２Ｂとの間で共有される。
【００３５】
中継サーバ２Ｂは、「ＳＵＢＳＣＲＩＢＥ」に対する応答を端末３Ｂに返信する（Ｓ１３）。中継サーバ２Ｂは、端末３Ａの状態を通知するためのＳＩＰメッセージ「ＮＯＴＩＦＹ」に、端末３Ａのプレゼンス情報を含めて、端末３Ｂに送信する（Ｓ１４）。端末３Ｂは、「ＮＯＴＩＦＹ」に対する応答を中継サーバ２Ｂに返信する（Ｓ１５）。以上の処理（Ｓ７〜Ｓ１５）によって、端末３Ｂが端末３Ａの状態の通知先としてデータベースサーバ１に登録され、且つその時点でデータベースサーバ１によって管理されている端末３Ａの状態が、端末３Ｂに通知される。
【００３６】
通知元端末である端末３Ａは、端末３Ａの状態が変化した場合、または前回の「ＰＵＢＬＩＳＨ」送信時から所定時間が経過した場合に、状態通知「ＰＵＢＬＩＳＨ」のＳＩＰメッセージを再び中継サーバ２Ａに送信する（Ｓ１６）。中継サーバ２Ａは、受信したメッセージに含まれるプレゼンス情報を取得し（Ｓ１７）、状態通知をデータベースサーバ１に転送する（Ｓ１８）。データベースサーバ１は、端末３Ａのプレゼンス情報を記憶する（Ｓ１９）。
【００３７】
データベースサーバ１がＳ１９を実行する時点では、端末３Ａの状態の通知先として端末３Ｂが登録されている。この場合、データベースサーバ１は、状態通知に対する１つの応答メッセージに、通知先情報、中継情報、および識別子を含めて中継サーバ２Ａに送信する（Ｓ２０）。Ｓ２０における通知先情報は、通知先端末が端末３Ｂであることを特定するための情報である。中継情報は、端末３Ｂに中継サーバ２Ｂが接続していることを特定するための情報である。識別子は、データベースサーバ１と中継サーバ２Ｂとが共有している、端末３Ｂに対応する識別子ｂである。本実施形態のデータベースサーバ１は、識別子を応答メッセージに直接含めている。しかし、通信システム１００は、公開鍵暗号方式、チャレンジレスポンス方式等を利用し、識別子を暗号化して応答メッセージに含めてもよい。前述したＳ１１、および後述のＳ２２で送信されるメッセージについても同様である。
【００３８】
中継サーバ２Ａは、「ＰＵＢＬＩＳＨ」に対する応答を端末３Ａに返信する（Ｓ２１）。中継サーバ２Ａは、受信したメッセージに含まれる情報から、通知先端末が端末３Ｂである旨、および端末３Ｂの接続サーバが中継サーバ２Ｂである旨を特定する。中継サーバ２Ａは、端末３Ａのプレゼンス情報を通知するための状態通知「ＮＯＴＩＦＹ」のＳＩＰメッセージに、Ｓ１７で取得した端末３Ａのプレゼンス情報と、通知先端末が端末３Ｂであることを示す通知先情報と、識別子ｂとを含めて、中継サーバ２Ｂに送信する（Ｓ２２）。中継サーバ２Ａは、端末３Ａからデータベースサーバ１に送信されるプレゼンス情報を中継する際に、端末３Ａのプレゼンス情報を取得し（Ｓ１７）、取得したプレゼンス情報を「ＮＯＴＩＦＹ」に含めることができる（Ｓ２２）。よって、データベースサーバ１は、Ｓ２０で送信するメッセージに端末３Ａのプレゼンス情報を含める必要がない。その結果、データベースサーバ１は、Ｓ２０で送信するメッセージのデータ量を低下させることができる。しかし、データベースサーバ１は、Ｓ２０で送信するメッセージに端末３Ａのプレゼンス情報を含めることも可能である。中継サーバ２Ａは、データベースサーバ１から受信したメッセージに含まれるプレゼンス情報を、「ＮＯＴＩＦＹ」に含めてもよい（Ｓ２２）。
【００３９】
中継サーバ２Ｂは、受信したメッセージに含まれる識別子が、端末３Ｂに対応付けて記憶している識別子ｂと一致するか否かを判断し、識別子を確認する（Ｓ２３）。図５に示す例では、中継サーバ２Ｂが受信した識別子と、あらかじめ中継サーバ２Ｂが記憶している識別子とが一致している。よって、中継サーバ２Ｂは、中継サーバ２Ａから受信したメッセージを、データベースサーバ１から送信された情報を含む信頼できるメッセージであると判断する。中継サーバ２Ｂは、「ＮＯＴＩＦＹ」に対する応答を中継サーバ２Ａに返信する（Ｓ２４）。中継サーバ２Ｂは、特定した通知先端末である端末３Ｂに、端末３Ａのプレゼンス情報を含む状態通知「ＮＯＴＩＦＹ」を送信する（Ｓ２５）。端末３Ｂは、「ＮＯＴＩＦＹ」に対する応答を中継サーバ２Ｂに返信する（Ｓ２６）。なお、図示しないが、識別子が一致しない場合、中継サーバ２Ｂは、「ＮＯＴＩＦＹ」を端末３Ｂに送信しない。以上の処理（Ｓ２０〜２６）によって、Ｓ１６〜Ｓ１８でデータベースサーバ１に通知された端末３Ａの状態が、データベースサーバ１から通知先端末（端末３Ｂ）に通知される。
【００４０】
次に、図６および図７を参照して、１つの端末３の状態を複数の端末３が監視している場合の処理の流れについて説明する。図６および図７に示す例は、図５に示す例の変形例である。図６および図７に示す例では、通知元端末である端末３Ａ（図５参照）の状態を監視する端末３（端末３Ａの通知先端末）として、端末Ｂ１、端末Ｂ２、端末Ｂ３、および端末Ｃ１がデータベースサーバ１に登録されている。端末Ｂ１〜Ｂ３は、中継サーバ２Ｂに接続している。端末Ｃ１は、中継サーバ２Ｃに接続している。以上の状態で、通知元端末である端末３Ａのプレゼンス情報が、中継サーバ２Ａを介してデータベースサーバ１に送信された以降の処理を、図６に示す。
【００４１】
データベースサーバ１は、端末３Ａのプレゼンス情報を受信して登録すると、応答メッセージを中継サーバ２Ａに返信する（Ｓ３１）。端末３Ａの状態の通知先が複数存在する場合、データベースサーバ１は、複数の通知先端末の各々についての通知先情報、中継情報、および識別子を、１つの応答メッセージに全て含める。
【００４２】
図７に、図６のＳ３１で送信される応答メッセージの一例を示す。データベースサーバ１と中継サーバ２との間で送受信されるメッセージは、ＳＩＰに準拠する必要はない。本実施形態の通信システム１００は、言語およびプラットフォームに依存しないプロトコルの１つであるＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）に準拠している。応答メッセージには、各種情報を含めることができる。例えば、図７に示す文字列５１は、端末３Ａのプレゼンス情報をデータベースサーバ１が保持する有効期限（秒）を示す。
【００４３】
図７に示す文字列５２は、通知先情報および中継情報を含む文字列である。詳細には、文字列５２の２行目は、文字列５２中で特定される通知先端末の接続サーバが中継サーバ２Ｂであることを示す。文字列５２の３〜５行目は、通知先端末が端末Ｂ１〜Ｂ３であることを示す。文字列５３の２行目は、文字列５３中で特定される通知先端末の接続サーバが中継サーバ２Ｃであることを示す。文字列５３の３行目は、通知先端末が端末Ｃ１であることを示す。以上のように、データベースサーバ１は、複数の通知先端末についての通知先情報および中継情報を、１つの応答メッセージに含める。なお、図７には示していないが、本実施形態に係るデータベースサーバ１は、複数の通知先端末の各々に対応する識別子を応答メッセージに含める（図６のＳ３１参照）。
【００４４】
図６の説明に戻る。中継サーバ２Ａは、データベースサーバ１から応答メッセージを受信すると、メッセージに含まれる中継情報が示す接続サーバ（中継サーバ２Ｂおよび中継サーバ２Ｃ）を特定する。中継サーバ２Ａは、特定した接続サーバに、端末３Ａのプレゼンス情報を通知するための状態通知「ＮＯＴＩＦＹ」を送信する（Ｓ３２，Ｓ３３）。中継サーバ２Ａは、接続サーバに接続している１または複数の通知先端末についての通知先情報および識別子を、「ＮＯＴＩＦＹ」のメッセージに含める。なお、中継サーバ２Ａは、データベースサーバ１から受信した中継情報が示す接続サーバに自装置が含まれている場合（自装置に接続している通知先端末が存在する場合）には、自装置の外部通信Ｉ／Ｆ２４（図３参照）に、通知先情報および端末３Ａのプレゼンス情報を出力する。中継サーバ２Ａの外部通信Ｉ／Ｆ２４は、自装置に接続している端末３のうち、通知先情報によって特定される端末３に、端末３Ａのプレゼンス情報を送信する。つまり、本発明の「出力ステップ」は、自装置以外の他の中継サーバ２に応答メッセージを送信（出力）する処理と、自装置の外部通信Ｉ／Ｆ２４に通知先情報およびプレゼンス情報を出力する処理とを含む。
【００４５】
中継サーバ２Ａから「ＮＯＴＩＦＹ」を受信した中継サーバ２Ｂは、メッセージに含まれる識別子（ｂ１〜ｂ３）と自身が記憶している識別子とが一致するか否かを確認する（Ｓ３４）。中継サーバ２Ｂは、中継サーバ２Ａに応答を返信する（Ｓ３５）。識別子が一致した場合にのみ、中継サーバ２Ｂは、通知先端末である端末Ｂ１、端末Ｂ２、および端末Ｂ３に、端末３Ａのプレゼンス情報を含む状態通知「ＮＯＴＩＦＹ」を送信する（Ｓ３６〜Ｓ３８）。なお、図示しないが、中継サーバ２Ｂは、端末Ｂ１〜Ｂ３から「ＮＯＴＩＦＹ」に対する応答を受信する。中継サーバ２Ｃも同様に、識別子（ｃ１）を確認し（Ｓ４１）、中継サーバ２Ａに応答を返信する（Ｓ４２）。中継サーバ２Ｃは、識別子が一致すれば、「ＮＯＴＩＦＹ」を端末Ｃ１へ送信する（Ｓ４３）。
【００４６】
以上説明したように、第一の実施形態に係る状態通知方法によると、データベースサーバ１は、通知先情報および中継情報を含む一のメッセージを、複数の中継サーバ２のうちのいずれかに送信するだけで（図６のＳ３１、および図７参照）、通知元端末の状態を通知先端末に通知することができる。具体的には、図６に示す例では接続サーバが中継サーバ２Ｂおよび中継サーバ２Ｃの２つ存在するが、データベースサーバ１は、中継サーバ２Ａにのみメッセージを送信すればよい。通知先端末の数が多い場合でも、データベースサーバ１は、メッセージの送受信を複数の中継サーバ２との間で繰り返す必要がない。従って、通信システム１００は、データベースサーバ１にかかる負荷を増加させることなく、通知元端末の状態を通知先端末に通知することができる。
【００４７】
中継サーバ２は、通知元端末の状態通知に対する応答メッセージ（Ｓ３１）をデータベースサーバ１から受信すると、複数の通知先端末を特定する通知先情報を、１つのメッセージに含めて他の中継サーバに送信することができる（Ｓ３２）。従って、通信システム１００は、データベースサーバ１にかかる負荷を減少させることができるだけでなく、複数の中継サーバ２間でメッセージが送受信される回数も減少させることができる。よって、通信システム１００は、システム全体にかかる負荷をさらに減少させることができる。
【００４８】
データベースサーバ１は、通知元端末の状態通知を受信したことに対する１つの応答メッセージに、通知先情報および中継情報を含めることができる（Ｓ３１）。換言すると、データベースサーバ１は、状態通知に対する応答メッセージと、通知先情報および中継情報を送信するためのメッセージとを別で送信する必要がない。よって、通信システム１００は、データベースサーバ１がメッセージを送受信する回数をさらに減少させることができる。その結果、データベースサーバ１にかかる負荷が減少する。
【００４９】
中継サーバ２は、通知元端末からデータベースサーバ１に送信されるプレゼンス情報を中継する際に、中継するプレゼンス情報を取得する。中継サーバ２は、他の中継サーバ２に「ＮＯＴＩＦＹ」を送信する場合には、情報を中継する際に取得したプレゼンス情報を、「ＮＯＴＩＦＹ」に含める。従って、データベースサーバ１は、中継サーバ２に送信する応答メッセージ（Ｓ３１）にプレゼンス情報を含める必要がない。よって、通信システム１００は、送受信するデータのデータ量を低下させることができる。
【００５０】
通知先端末にプレゼンス情報を送信する中継サーバ２は、他の中継サーバ２から受信した「ＮＯＴＩＦＹ」が、データベースサーバ１から他の中継サーバ２を介して送信された信頼できる情報であることを、識別子を用いて判断することができる。よって、通信システム１００は、正確な情報を円滑に送受信することができる。通信システム１００は、汎用的なＳＩＰに従って円滑に通信を行うことができる。通信システム１００は、汎用的なＳＩＰメッセージを利用して容易にプレゼンス機能を実現することができる。ＳＩＰに従って通信を行う既存の通信システムの構成を大幅に変更することなく、容易にプレゼンス機能を実現することができる。中継サーバ２は、複数の端末３間のセッションの確立とプレゼンス機能の制御とを共に実行することができる。よって、通信システム１００は、セッションを確立するためのサーバとプレゼンス機能を制御するサーバとを別に備える必要がない。
【００５１】
第一の実施形態において、データベースサーバ１が、図５のＳ９で通知先端末を特定する情報をＨＤＤ１３に記憶させる処理が、本発明の「登録ステップ」に相当する。端末３が、図５のＳ１，Ｓ１６で中継サーバ２を介して状態通知をデータベースサーバ１に送信する処理が、「状態通知ステップ」に相当する。データベースサーバ１が、図５のＳ２０および図６のＳ３１で応答メッセージを送信する処理が、「第一送信ステップ」に相当する。図５のＳ２０および図６のＳ３１で送信される応答メッセージが「一の情報」に相当し、応答メッセージに含まれる通知先情報が「第一通知先情報」に相当する。中継サーバ２が、図６のＳ３２，Ｓ３３で他の中継サーバ２に「ＮＯＴＩＦＹ」を送信する処理、および自装置の外部通信Ｉ／Ｆ２４にプレゼンス情報と通知先情報とを出力する処理が、本発明の「出力ステップ」に相当する。図６のＳ３２，Ｓ３３で送信される「ＮＯＴＩＦＹ」に含まれる通知先情報が、「第二通知先情報」に相当する。中継サーバ２が、図５のＳ２５および図６のＳ３６〜Ｓ３８，Ｓ４３で「ＮＯＴＩＦＹ」を送信する処理が、「第二送信ステップ」に相当する。
【００５２】
中継サーバ２が図５のＳ２，Ｓ１７でプレゼンス情報を取得する処理が、「第一取得ステップ」に相当する。データベースサーバ１および中継サーバ２が、図５のＳ１０，Ｓ１２で共通の識別子を記憶させる処理が、「記憶制御ステップ」に相当する。図５のＳ２０，Ｓ２２、および図６のＳ３１，Ｓ３２，Ｓ３３でメッセージに含まれる識別子が「識別子情報」に相当する。
【００５３】
図５のＳ９で通知先端末を特定する情報をＨＤＤ１３に記憶させるデータベースサーバ１のＣＰＵ１０が、本発明の「登録手段」として機能する。図５のＳ１，Ｓ１６で中継サーバ２を介して状態通知をデータベースサーバ１に送信する端末３のＣＰＵ３０が、「状態通知手段」として機能する。図５のＳ２０および図６のＳ３１で応答メッセージを送信するデータベースサーバ１のＣＰＵ１０が、「第一送信手段」として機能する。図６のＳ３２，Ｓ３３で他の中継サーバ２に「ＮＯＴＩＦＹ」を送信する処理、および自装置の外部通信Ｉ／Ｆにプレゼンス情報と通知先情報とを出力する処理を行う中継サーバ２のＣＰＵ２０が、本発明の「出力手段」として機能する。図５のＳ２５および図６のＳ３６〜Ｓ３８，Ｓ４３で「ＮＯＴＩＦＹ」を送信する中継サーバ２のＣＰＵ２０が「第二送信手段」として機能する。
【００５４】
本発明の第二の実施形態に係る通信システムが実行する状態通知方法について、図８を参照して説明する。第二の実施形態に係る通信システムでは、通知先情報および中継情報を含むメッセージ（本発明における「一の情報」）の送信先が、各中継サーバ２の処理情報に基づいて選択される点が、第一の実施形態と異なる。さらに、データベースサーバ１から中継サーバ２に送信されるメッセージに、通知元端末のプレゼンス情報が含まれる点が、第一の実施形態と異なる。上記以外の処理、および各装置の構成は、第一の実施形態における処理および構成と同じである。よって、各装置の構成には、第一の実施形態における構成と同一の番号を付し、構成の説明を省略する。
【００５５】
図８を参照して、第二の実施形態に係るデータベースサーバ１が行う中継サーバ選択処理について説明する。中継サーバ選択処理は、通知元端末から中継サーバ２を介して送信された状態通知（例えば、図５のＳ１８）をデータベースサーバ１が受信した場合に、データベースサーバ１のＣＰＵ１０によって実行される。中継サーバ選択処理では、まず、状態通知メッセージが受信される（Ｓ１０１）。受信されたメッセージに含まれる通知元端末のプレゼンス情報が、プレゼンス情報記憶エリア１３１（図２参照）に記憶される（Ｓ１０２）。通知先端末を特定するための通知先情報と、接続サーバを特定する中継情報と、各通知先端末に対応する識別子とが取得される（Ｓ１０３）。
【００５６】
通信システム内の各中継サーバ２の処理情報が、ＨＤＤ１３から取得される（Ｓ１０４，Ｓ１０５）。詳細には、通知先情報および中継情報を含むメッセージ（以下、「状態通知要求メッセージ」という。）が各中継サーバ２に前回送信された時刻が、処理情報として取得される（Ｓ１０４）。さらに、各中継サーバ２が状態通知要求メッセージを前回受信した際に、各中継サーバ２から他の中継サーバ２および端末３に送信されたメッセージ数Ｎが、処理情報として取得される（Ｓ１０５）。Ｓ１０４で取得される前回送信時刻、およびＳ１０５で取得される前回送信メッセージ数Ｎは、前回実行された中継サーバ選択処理のＳ１１３（後述する）において、ＨＤＤ１３に記憶されている。
【００５７】
今回送信メッセージ数ｎが、複数の中継サーバ２の各々について算出される（Ｓ１０６）。今回送信メッセージ数ｎとは、中継サーバ２に状態通知要求メッセージを送信したと仮定した場合に、中継サーバ２が送信することになるメッセージの数である。具体的には、複数の中継サーバ２のうちの１つである中継サーバ２Ａの今回送信メッセージ数ｎは、中継サーバ２Ａに接続している通知先端末の数と、中継サーバ２Ａ以外の中継サーバ２のうち通知先端末が少なくとも１つ接続している中継サーバ２の数（中継サーバ２Ａ以外の接続サーバの数）との和となる。ＣＰＵ１０は、Ｓ１０３で取得した通知先情報および中継情報を用いて、各中継サーバ２の今回送信メッセージ数ｎを算出する。次いで、Ｓ１０４で取得された前回送信時刻からの経過時間Ｔが、中継サーバ２毎に算出される（Ｓ１０７）。
【００５８】
メッセージを１回送信する処理に要する平均時間ｔを用いて、以下の式（１）の条件を満たす中継サーバ２が存在するか否かが探索される（Ｓ１０８）。平均時間ｔの情報は、あらかじめＨＤＤ１３に記憶されている。
（Ｔ−Ｎ・ｔ）≧０・・・・・（１）
式（１）の条件を満たす中継サーバ２は、メッセージを送信する処理を既に終了していると判断される。式（１）の条件を満たす中継サーバ２（図中、「該当サーバ」と記す）が探索されたか否かが判断される（Ｓ１０９）。条件を満たす中継サーバ２が探索された場合には（Ｓ１０９：ＹＥＳ）、探索された中継サーバ２のうち、今回送信メッセージ数ｎの値が最小の中継サーバ２が、状態通知要求メッセージの送信先の中継サーバ２として選択される（Ｓ１１０）。
【００５９】
式（１）の条件を満たす中継サーバ２が探索されなかった場合には（Ｓ１０９：ＮＯ）、以下の式（１）によって算出される時間が最小となる中継サーバ２が、状態通知要求メッセージの送信先の中継サーバ２として選択される（Ｓ１１１）。
（（Ｎ＋ｎ）・ｔ−Ｔ）・・・・・（２）
式（２）によって算出される時間は、前回のメッセージの送信処理と今回のメッセージの送信処理とを全て終了するまでに要する時間である。なお、Ｓ１１０またはＳ１１１の処理で複数の中継サーバ２が候補として存在する場合には、複数の候補のうちの１つを送信先の中継サーバ２として選択すればよい。具体的には、経過時間Ｔが最も長い中継サーバ２を選択してもよいし、乱数等を用いてランダムに１つの中継サーバ２を選択してもよい。
【００６０】
中継サーバ２が選択されると、選択された中継サーバ２に、Ｓ１０１で受信した状態通知メッセージに含まれるプレゼンス情報と、Ｓ１０３で取得された通知先情報、中継情報、および識別子とを含む状態通知要求メッセージが送信される（Ｓ１１２）。中継サーバ２の各々に対応付けて、Ｓ１０６で算出されたｎの値が、前回送信メッセージ数ＮとしてＨＤＤ１３に記憶される。現在時刻が、選択された中継サーバ２の前回送信時刻としてＨＤＤ１３に記憶される（Ｓ１１３）。処理は終了する。なお、第二の実施形態に係る中継サーバ２は、図５のＳ２２および図６のＳ３２，Ｓ３３で送信する「ＮＯＴＩＦＹ」に、状態通知要求メッセージに含まれていたプレゼンス情報を含める。
【００６１】
以上説明したように、第二の実施形態に係る状態通知方法によると、データベースサーバ１は、各中継サーバ２が実行している処理の情報に応じて、状態通知要求メッセージの送信先の中継サーバ２を選択することができる。従って、通信システムは、システム内の特定の中継サーバ２に処理負担が偏ることを防止することができる。詳細には、データベースサーバ１は、メッセージの送信処理を最も早く終了させることができると予想される中継サーバ２に、状態通知要求メッセージを送信することができる。よって、通信システムは、プレゼンス情報の通知の遅延を最小限に抑えることができる。第二の実施形態に係る通信システムは、データベースサーバ１から中継サーバ２に送信される状態通知要求メッセージにプレゼンス情報を含めることで、プレゼンス情報を確実に通知先端末に通知することができる。
【００６２】
第二の実施形態において、データベースサーバ１が図８のＳ１０４，Ｓ１０５で情報を取得する処理が、本発明の「第二取得ステップ」に相当する。Ｓ１０４で取得される前回送信時刻、およびＳ１０５で取得される前回送信メッセージ数Ｎが、本発明の「処理情報」に相当する。状態通知要求メッセージが本発明の「一の情報」に相当する。データベースサーバ１が図８のＳ１０６〜Ｓ１１１で中継サーバ２を選択する処理が「選択ステップ」に相当する。
【００６３】
本発明は上記実施形態に限定されることはなく、様々な変形が可能であることは言うまでもない。上記実施形態の通信システムは、一部の情報を送受信する際にＳＩＰメッセージを利用している。しかし、本発明は、ＳＩＰメッセージを利用せずに実現することも可能である。中継サーバ２はＳＩＰプロキシサーバとして動作しなくてもよい。
【００６４】
上記実施形態に係る中継サーバ２は、図６のＳ３２で他の中継サーバ２に送信する「ＮＯＴＩＦＹ」に、複数の通知先端末に関する通知先情報および識別子を全て含める。その結果、通信システムは、複数の中継サーバ２間で送受信されるメッセージの数を減少させることができる。しかし、中継サーバ２は、通知先端末の各々に関する通知先情報および識別子を、別々に他の中継サーバ２に送信してもよい。この場合でも、通信システムは、データベースサーバ１に係る負荷を低下させることができるため、プレゼンス機能を円滑に実行することができる。
【００６５】
上記実施形態に係る中継サーバ２は、図６のＳ３２およびＳ３３において、送信先の中継サーバ２に接続している通知先端末についての通知先情報および識別子のみを、「ＮＯＴＩＦＹ」に含めて送信する。しかし、中継サーバ２は、データベースサーバ１から受信したメッセージに含まれる通知先情報および識別子をそのまま「ＮＯＴＩＦＹ」に含めてもよい。つまり、本発明に係る「第一通知先情報」の内容と「第二通知先情報」の内容とは同一の内容であってもよい。この場合、「ＮＯＴＩＦＹ」を受信した中継サーバ２は、自装置に接続している通知先端末を、受信した「ＮＯＴＩＦＹ」に含まれる通知先情報から特定し、特定した通知先端末にプレゼンス情報を送信すればよい。
【００６６】
第一の実施形態に係る中継サーバ２は、通知元端末から送信されるプレゼンス情報を中継する際にプレゼンス情報を取得する。中継サーバ２は、あらかじめ取得していたプレゼンス情報を、他の中継サーバ２に送信する「ＮＯＴＩＦＹ」に含める。その結果、中継サーバ２は、送受信されるメッセージのデータ量を低下させることができる。しかし、第一の実施形態に係るデータベースサーバ１は、第二の実施形態と同様に、中継サーバ２に返信する応答メッセージに、通知元端末のプレゼンス情報を含めてもよい。中継サーバ２は、データベースサーバ１から受信した応答メッセージに含まれるプレゼンス情報を、他の中継サーバ２に送信する「ＮＯＴＩＦＹ」に含めてもよい。
【００６７】
第二の実施形態に係るデータベースサーバ１は、各中継サーバ２についての前回送信時刻および前回送信メッセージ数Ｎを処理情報として取得し、中継サーバ２の１つを選択する。しかし、データベースサーバ１が処理情報として取得する情報、および中継サーバ２の選択方法は、変更が可能である。例えば、データベースサーバ１は、各中継サーバ２に接続している通知先端末の数を、処理情報として取得する。接続している通知先端末の数が少ない程、中継サーバ２にかかる処理負担は低い。従って、データベースサーバ１は、接続している通知先端末の数が最も少ない中継サーバ２を、状態通知要求メッセージの送信先の中継サーバ２として選択してもよい。
【００６８】
上記実施形態に係るデータベースサーバ１および中継サーバ２は、識別子そのものをメッセージに含めて送信する。しかし、データベースサーバ１および中継サーバ２は、識別子そのものではなく、識別子を特定するための情報をメッセージに含めて送信してもよい。例えば、公開鍵暗号方式、チャレンジレスポンス方式等を用いて識別子を暗号化し、暗号化した符号をメッセージに含めてもよい。その結果、通信システムは、識別子がシステム外に漏れる可能性を低下させることができる。この場合、暗号化された符号が本発明の「識別子情報」に相当する。
【符号の説明】
【００６９】
１    データベースサーバ
２    中継サーバ
３    端末
１０    ＣＰＵ
１３    ＨＤＤ
２０    ＣＰＵ
２３    ＨＤＤ
３０    ＣＰＵ
１００    通信システム
【図１】
2011205291.tif 000003
【図２】
2011205291.tif 000004
【図３】
2011205291.tif 000005
【図４】
2011205291.tif 000006
【図５】
2011205291.tif 000007
【図６】
2011205291.tif 000008
【図７】
2011205291.tif 000009
【図８】
2011205291.tif 000010