(57)【特許請求の範囲】
【請求項１】
ユーザの状態情報を格納するデータベースサーバと、
ユーザ端末からの要求に応じて、ユーザの状態情報を前記データベースサーバに登録し、または前記データベースサーバから前記ユーザの状態情報を取得する複数のプレゼンスサーバとを有し、
前記複数のプレゼンスサーバはそれぞれ前記ユーザ端末を管理し、
前記データベースサーバは、
ユーザの状態情報の更新を通知する前記プレゼンスサーバを管理する通知リストを有し、
第１のプレゼンスサーバにより第１のユーザの状態情報が更新された場合に、前記第１のユーザを示す第１のユーザ識別子を含む第１の更新通知を前記通知リストに基づき第２のプレゼンスサーバに通知し、
前記第２のプレゼンスサーバは、
前記第１のユーザを示す識別子、及び、前記第１のユーザの状態情報を参照する自管理下のユーザを示す識別子を管理するセッション管理テーブルを有し、
前記データベースサーバから前記第１の更新通知を通知された場合に、前記セッション管理テーブルを参照し、前記第１のユーザの状態情報を参照する他のユーザの有無を調べ、
前記第１のユーザの状態情報を参照する第２のユーザがいる場合には前記データベースサーバに更新情報を要求し、
前記更新情報を受信すると、前記第２のユーザのユーザ端末に対し第２の更新通知をすることを特徴とする状態通知システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ユーザの状態を通知するシステムに関し、特にユーザの情報に更新があったことを通知するシステムに関する。
【背景技術】
【０００２】
“プレゼンス”の概念はインスタントメッセージング（ＩＭ）の分野で議論されており、IETF（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）のｉｍｐｐ（Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｐｒｏｔｏｃｏｌ）ワーキンググループで標準化が進められている（ＲＦＣ２７７８、ＲＦＣ２７７９、ＲＦＣ３８６３）。この“プレゼンス”を送受信する通信プロトコルについても標準化が進められ、ＩＭ標準としてインターネット電話で使用されるセッション確立用プロトコルであるＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）をベースとしたＳＩＭＰＬＥ（ＳＩＰ  ｆｏｒ  Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｌｅｖｅｒａｇｉｎｇ  Ｅｘｔｅｎｓｉｏｎｓ）を使用する方式が検討されている（例えば、ＲＦＣ３２６５）。
【０００３】
一方、特許文献１や２に記載されているように“プレゼンス”を具体化したプレゼンス情報を管理するプレゼンスサーバの開発が進められている。また特許文献３に記載されているように、このプレゼンスサーバはＰＵＳＨ型プレゼンスサービスを実現するPUSH型情報配信システムなどへ適用されている。
【０００４】
プレゼンスサーバを利用したＰＵＳＨ型プレゼンスサービスの概要について図１で説明する。システムは、プレゼンス情報を管理・配布するプレゼンスサーバ（１００）とプレゼンス情報を参照するプレゼンスクライアント（１０１および１０２）、ネットワーク（１０３）で構築され、プレゼンスサーバは各プレゼンスクライアントをサービスＩＤと呼ばれるユーザ固有情報で識別する。
【０００５】
契約者Ａが契約者Ｂのプレゼンス情報を参照する場合のメッセージの流れを説明する。契約者Ａは自分のサービスＩＤを設定したプレゼンスクライアント（１０１）より、契約者ＢのサービスＩＤと参照期間を指定しプレゼンス情報参照メッセージを送信する（１０４）。ここで、参照期間とは、契約者Ａが契約者Ｂのプレゼンス情報参照を継続する期間のことであり、契約者Ａはこの期間内に契約者Ｂのプレゼンス情報が更新された場合に更新情報を受信する意思があることを示す。
【０００６】
プレゼンスサーバ（１００）は、契約者ＢのサービスＩＤと参照期間を含んだメッセージを受信すると、プレゼンスサーバが管理している契約者Ｂのプレゼンス情報を含んだメッセージを生成し、契約者Ａのプレゼンスクライアント（１０１）宛にプレゼンス情報通知メッセージを送信する（１０５）。プレゼンスクライアントがこの受信情報、つまり、契約者Ｂのプレゼンス情報を表示することにより、契約者Ａが契約者Ｂのプレゼンス情報を参照することとなる。
【０００７】
一方、契約者Ｂは自分のプレゼンス情報に変更が生じると、自分のサービスＩＤを設定したプレゼンスクライアント（１０２）より、自分のサービスＩＤと新しいプレゼンス情報を含んだプレゼンス情報更新メッセージを送信する（１０６）。契約者ＢのサービスＩＤと新プレゼンス情報を含んだプレゼンス情報更新メッセージを受信したプレゼンスサーバ（１００）は、自分が管理している契約者Ｂのプレゼンス情報を新しい情報に更新する。その後、契約者ＢのサービスＩＤを参照しているプレゼンスクライアント（１０１）宛に、プレゼンス情報変更メッセージをＰＵＳＨ配信する（１０７）。
【０００８】
このようにプレゼンスサーバは、契約者Ａが参照している契約者Ｂのプレゼンス情報および参照期間を自らが有する記憶装置により管理し、期間内に参照しているプレゼンス情報が更新された場合に、新しいプレゼンス情報をＰＵＳＨ配信することで、プレゼンスサービスを提供する。
【０００９】
【特許文献１】特開２００５−１０８７４
【特許文献２】特開２００４−２８０２２９
【特許文献３】特願２００１−３６４８２２
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述の従来例では一台のプレゼンスサーバがプレゼンス情報を保持し、プレゼンス情報の更新があった場合に新たなプレゼンス情報を送信すべきプレゼンスクライアントを把握していた。しかしプレゼンスサービスが拡大し契約者数が増加してくると、プレゼンスサーバの台数を増やしユーザからのアクセス負荷を分散させることが考えられる。このとき複数台のプレゼンスサーバにより、契約者のプレゼンス情報を保持した一台のDB（Data Base）サーバにアクセスを行う構成とすると、プレゼンス情報に更新があった場合に当該変更のあった旨が伝わらない契約者が出てくるという問題が生じる。
【００１１】
つまり、DBサーバのプレゼンス情報を更新したプレゼンスサーバ自身は、DBサーバの内容に変更があったことを認識しているため自プレゼンスサーバを利用するユーザに対し、変更のあった旨を通知することができる。しかし、その他のプレゼンスサーバはDBサーバに変更があったことを知ることができないため、その他のプレゼンスサーバを利用するユーザはプレゼンスサーバから当該変更を通知されない。
【課題を解決するための手段】
【００１２】
この問題を解決するため、複数のプレゼンスサーバで共有するＤＢサーバに、プレゼンスサーバの情報を管理するプレゼンスサーバ管理部を設置し、稼動している全プレゼンスサーバを登録、ＤＢ更新の度に登録済みプレゼンスサーバへＤＢ更新通知を実施する方式を提案する。
【００１３】
各プレゼンスサーバは起動時に自分のＩＰアドレス、ポートなどの情報をＤＢサーバに常駐しているプレゼンスサーバ管理部へ登録する。ＤＢサーバは自分が管理しているプレゼンス情報が変更されると、プレゼンスサーバ管理部へ変更があったことを知らせ、登録されている他のプレゼンスサーバに対してプレゼンス情報を更新したことを通知してもらう。
【発明の効果】
【００１４】
この方式を採用することにより、システム内全てのプレゼンスサーバがプレゼンス更新通知を受け、適切にプレゼンス配布情報を送付することが可能となる。
【実施例】
【００１５】
プレゼンス情報配布システムの一実施形態について，図面を用いて説明する。
【００１６】
図3に、本実施形態に係わるプレゼンス情報配布システムの機能ブロックを示す。システムは，プレゼンス情報を管理し，プレゼンス情報の内容が更新された際に更新通知を行うプレゼンスサーバ（４０５、４１５、４２４など）と、プレゼンス情報を格納するＤＢサーバ（４００）プレゼンス情報の参照を実施する、プレゼンスクライアント（４１０、４１９）そしてそれらを接続するネットワーク１（４０４）とネットワーク２（４０９）より構成される。プレゼンス情報としては、図7に示すような契約者のサービスログイン状態を示すオンライン項目や契約者の状態を示すステート項目、契約者が所有する端末の状態を示すフォンステータス項目などがある。なお、本実施例のプレゼンス情報テーブルはユーザ毎に作成する。
【００１７】
ＤＢサーバ（４００）はプレゼンス情報を格納するデータベースを構築するディスク（４０１）とＤＢにサービスオーダー（ＳＯ）情報を登録する運用・管理部（４０２）そしてシステム内で稼動しているプレゼンスサーバを管理するプレゼンスサーバ管理部（４０３）で構成される。
【００１８】
プレゼンスサーバ＃１（４０５）はネットワーク２（４０４）を介してＤＢサーバと通信し、プレゼンス情報の更新・参照を制御するプレゼンス情報管理部（４０６）、プレゼンス情報を参照するプレゼンスクライアント（４１０および４１９）のセッション情報を管理するセッション制御部（４０７）、そしてメッセージの送受信を行う送受信ＩＦ（４０８）で構成される。
【００１９】
プレゼンスクライアントＡ（４１０）は、契約者にプレゼンスを表示するユーザインタフェース（４１１）と、自端末のプレゼンス情報を管理するプレゼンス情報管理部（４１３）と、自端末のプレゼンス情報の配信およびユーザインタフェースで指定されたプレゼンス情報の参照を実施するメッセージ送信制御部（４１４）そしてメッセージの送受信を行う送受信インタフェース（４１２）で構成される。
【００２０】
図4にDBサーバの構成図を示す。DBサーバは磁気ディスク（５０４）、CPU（５０３）、主メモリ（５０２）およびディスプレイ/キーボード/マウス（５０１）等の入出力デバイスから構成される。磁気ディスク（５０４）には図6に示すような契約者とサービスIDを管理する契約者管理テーブル（５０８）と、図7に示すようなプレゼンス情報テーブル（５０７）を保持している。なお、プレゼンス情報テーブルはサービスＩＤ毎に構築される。
【００２１】
また、主メモリ（５０２）にはプレゼンスサーバに常駐するDBアクセスクライアントプログラムと通信するRDBMS（５０６）と、プレゼンスサーバ管理プログラム（５０５）が常駐しており、電源投入と同時にそれらプロセスが起動される。
【００２２】
図5にプレゼンスサーバの構成図を示す。プレゼンスサーバは磁気ディスク（６０４）、CPU（６０３）、主メモリ（６０２）で構成され、必要に応じてディスプレイ/キーボード/マウス（６０１）等の入出力デバイスを追加することができる。磁気ディスク（６０４）には、プレゼンスサーバの自IPアドレス、SIPサーバのIPアドレスなどを記載した構成定義情報（６０５）と、運用中に出力されるログ情報（６０６）が格納される。主メモリ（６０２）には、プレゼンス情報管理プログラム（６０７）、セッション制御プログラム（６０８）、メッセージ解析プログラム（６０９）、SIP/SIMPLEプロトコルスタック（６１０）、DBアクセスクライアントプログラム（６１１）が常駐し、セッション制御プログラムが使用する図2に示すようなセッション管理テーブルが格納される。
【００２３】
プレゼンスサーバは、電源投入により自動的に起動し、構成定義（６０５）に示されたDBサーバに対して、自分のIPアドレス、ポート番号を含んだ情報を登録する。ＩＰアドレスおよびポート番号はプレゼンスサーバが図14に示すＤＢ更新通知を受信するＩＰアドレスとポート番号である。
【００２４】
DBサーバは各プレゼンスサーバが登録したIPアドレス、ポート番号の情報より図12に示すDB変更通知リストを生成する。ＤＢサーバはプレゼンス情報が更新された際、図13のフォーマットに従ったＤＢ更新通知をこのＤＢ変更通知リストへ送信し、システム中の全プレゼンスサーバにＤＢが変更したことを通知する。
【００２５】
図8にクライアント端末の構成図を示す。クライアント端末は、磁気ディスク（９００）、CPU（９０３）、主メモリ（９０２）、ディスプレイ/キーボード/マウス（９０１）より構成され、起動時に磁気ディスク（９０４）に格納されている設定情報（９０６）で初期化され、バディリストをメモリ上に展開する（９０５）。ここで、バディリストとは図9に示すようなサービスID一覧のことであり、親しいユーザのサービスIDを保存するリストのことである。クライアント端末の主メモリには、プレゼンス情報を管理するプレゼンス情報管理プログラム（９０８）と、メッセージ送信を制御するメッセージ送信制御プログラム（９０９）そしてＳＩＰ／ＳＩＭＰＬＥプロトコルスタック（９１０）が常駐する。
【００２６】
以下、図3に示すプレゼンス情報配布システムの処理概要を図10のシーケンスで説明する。一般的なプレゼンスクライアントはプログラム起動時に、図11に示すような設定情報を読み込み初期化を行う。この設定情報には、サービスID、接続するプレゼンスサーバのアドレス、メッセージの生存時間などが含まれている。本実施例では、プレゼンスクライアントの起動時に設定情報を読み込むことで、アクセスを行うプレゼンスサーバを固定的に決定するが、他の方法でプレゼンスサーバのアドレスを入手しても良いし、システム稼動中にアクセスするプレゼンスサーバを変更できるようにしてもよい。
【００２７】
契約者Aのクライアント端末は、契約者AのサービスID（sip:UserA@abc.com）を設定情報として読み込むことで、契約者A用のプレゼンスクライアント（１１００）として動作する。プレゼンスクライアントA（１１００）は起動後、まず自分のオンラインメッセージをSIPサーバ宛に送信する（１１０７）。ＳＩＰの世界では、このオンラインメッセージ（ＲＥＧＩＳＴＥＲ）により端末の使用するＩＰアドレス、ポート番号をロケーションサーバと呼ばれる宛先解決サーバに登録する。
【００２８】
プレゼンスクライアントＡ（１１００）は、オンラインメッセージに対する応答（１１０８）を受信すると、次にプレゼンスサーバに自分がサービスログオンしたことを通知するため、ＰＵＢＬＩＳＨメソッドで記載されたプレゼンス情報更新用のオンラインメッセージ（１１０９）をプレゼンスサーバ＃１（１１０２）宛に送信する。
【００２９】
プレゼンスサーバ＃１（１１０２および４０５）は送受信インタフェース（４０８）より受信したメッセージを解析し、プレゼンス情報更新メッセージ（１１０９）であることを知る。プレゼンスサーバ＃１はプレゼンス情報更新メッセージである場合、メッセージをプレゼンス情報管理部（４０６）を介して、DBサーバに通知する（１１１０）。ＤＢサーバでは、図7に示すユーザsip:UserA@abc.comのプレゼンス情報テーブルのオンライン項目に“online”が登録される。ＤＢサーバは管理しているプレゼンス情報を更新後、プレゼンスサーバに応答を送信する（１１１１）。
【００３０】
同様にして、プレゼンスクライアントＢ（１１０６および４１９）が起動後、オンラインＲＥＧＩＳＴＥＲメッセージをＳＩＰサーバ＃２（１１０５）に送信し（１１１７、１１１８）、ＳＩＰサーバ＃２にロケーションを登録する。
【００３１】
その後、プレゼンスクライアントBはプレゼンス情報更新用のオンラインメッセージ（１１１９）をプレゼンスサーバ＃２（１１０４）に送信する。これを受信したプレゼンスサーバ＃２では、受信したメッセージがプレゼンス情報更新用オンラインメッセージであることを解析すると、ＤＢサーバに対してプレゼンス情報更新メッセージ（１１２０）を送信し、プレゼンス情報を更新する。プレゼンス更新が成功すると、成功応答がプレゼンスサーバ（１１２１）を介してプレゼンスクライアント（１１２２）と返信される。
【００３２】
次に、プレゼンスクライアントB（１１０６）は、図9に示すバディリストのサービスID一覧（sip:UserA@abc.comなど）に対して、プレゼンス参照メッセージであるSUBSCRIBEを送信する（１１２３）。このとき、参照期間として図11のプレゼンスクライアント設定値であるSUB_EXPIRE=3600を指定する。
【００３３】
プレゼンスサーバ＃２（１１０４）は、送受信ＩＦ（４１８）よりメッセージを受信し、メッセージ解析を実施後、メッセージがプレゼンス参照メッセージであることを知る。プレゼンスサーバは、プレゼンス参照メッセージである場合、メッセージをセッション制御部（４１７）に渡す。このとき図2に示すようなセッション管理テーブルに新エントリを登録する（１１３５）。その後、セッション制御部（４１７）はプレゼンス情報管理部（４１６）にサービスIDがsip:UserA@abc.comであるプレゼンス情報取得を指示する。
【００３４】
プレゼンス情報管理部（４１６）は、DBサーバよりsip:UserA@abc.comのプレゼンス情報を取得する（１１２５、１１２６）。その後、セッション制御部（４１７）に取得したプレゼンス情報を通知し、セッション制御部（４１７）にて、プレゼンス配布メッセージを生成、プレゼンスクライアント宛に返信する（１１２７、１１２８）。
【００３５】
一方、契約者Aがプレゼンス情報を変更した場合、例えば、図7のステート項目を“会議中”から“自席”に変更した場合、プレゼンスクライアントＡ（１１００）はプレゼンス更新メッセージであるPUBLISHメッセージをプレゼンスサーバ＃１宛に送信する（１１１３）。プレゼンスサーバ＃１（１１００）がメッセージを受信し、メッセージがプレゼンス更新メッセージであることを知ると、プレゼンス情報管理部（４０６）を介し、DBサーバのsip:UserA@abc.comのプレゼンス情報のステート項目を更新し（１１１４）、成功応答を受信する（１１１５）。
【００３６】
このとき、DBサーバ（１１０３）の運用・管理部（４０２）はsip:UserA@abc.comのプレゼンス情報を更新したことをプレゼンスサーバ管理部（４０３）に通知する。なお、プレゼンスサーバ管理部に情報の更新を通知するのはサーバ上で実行される他の機能のプログラムでも良いし、プレゼンスサーバ管理部が自ら情報の更新を検知するようにしてもよい。プレゼンスサーバ管理部（４０３）では、図12に示すようなＤＢ変更通知リストを検索し（１１３４）、登録してある全てのプレゼンスサーバに対して、図14に示すＤＢ情報が変更されたことを通知するメッセージを送信する（１１２９）。ここで、ＤＢ変更を通知する方法として、図12のＤＢ変更通知リストの登録者全員にＤＢ更新通知を送信する方式のほか、プレゼンス更新を実施したプレゼンスサーバ（ここではプレゼンスサーバ＃１）を除くプレゼンスサーバにＤＢ更新通知を送信する方式がある。
【００３７】
図14の変更通知を受けたプレゼンスサーバ＃２（１１０４）は図2に示すセッション管理テーブルを検索し（１１３６）、変更があったサービスＩＤsip:UserA@abc.comを参照しているユーザが存在するか確認する。図2に示すように、sip:UserB@abc.comがsip:UserA@abc.comのプレゼンス情報を参照しているため、プレゼンスサーバ＃２（１１０４、４１５）は、プレゼンス情報管理部（４１６）を介してDBサーバ（４００）よりsip:UserA@abc.comのプレゼンス情報を取得する（１１３０、１１３１）。プレゼンス情報管理部（４１６）は取得したsip:UserA@abc.comのプレゼンス情報をセッション制御部（４１７）へ渡し、セッション制御部（４１７）にてプレゼンス配布メッセージ（１１３２）を送信し、成功応答を受信する（１１３３）。
【図面の簡単な説明】
【００３８】
【図１】プレゼンスサービスの概要を示す図である。
【図２】セッション管理テーブルの一実施例を示す図である。
【図３】プレゼンス情報配信システムの一実施例を示す図である。
【図４】DBサーバの構成の一実施例を示す図である。
【図５】プレゼンスサーバの構成の一実施例を示す図である。
【図６】契約者管理テーブルの一実施例を示す図である。
【図７】プレゼンス情報テーブルの一実施例を説明する図である。
【図８】クライアント端末の一実施例を説明する図である。
【図９】バディリストの一実施例を説明する図である。
【図１０】本実施例におけるメッセージシーケンスを説明する図である。
【図１１】プレゼンスクライアントの設定情報の一実施例を説明する図である。
【図１２】DB変更通知リストの一実施例を説明する図である。
【図１３】DB更新通知フォーマットの一実施例を説明する図である。
【図１４】DB更新通知内容の一実施例を説明する図である。
【符号の説明】
【００３９】
４００  DBサーバ
４０３  プレゼンスサーバ管理部
５０５  プレゼンスサーバ管理プログラム
４０５、４１５、４２４  プレゼンスサーバ
４１６  プレゼンス情報管理部
４１０、４１９  プレゼンスクライアント
【図１】
0004591117.tif 000002
【図２】
0004591117.tif 000003
【図３】
0004591117.tif 000004
【図４】
0004591117.tif 000005
【図５】
0004591117.tif 000006
【図６】
0004591117.tif 000007
【図７】
0004591117.tif 000008
【図８】
0004591117.tif 000009
【図９】
0004591117.tif 000010
【図１０】
0004591117.tif 000011
【図１１】
0004591117.tif 000012
【図１２】
0004591117.tif 000013
【図１３】
0004591117.tif 000014
【図１４】
0004591117.tif 000015