以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(第1の実施の形態)
図1は、第1の実施の形態の通知装置および被通知装置を適用したネットワークシステムの構成を示すブロック図である。
図1においてネットワークシステムは、プレゼンスサーバ装置100と、外勤者端末101と、内勤者端末102と、管理者端末103とを備え、プレゼンスサーバ装置100と、外勤者端末101と、内勤者端末102と、管理者端末103とはネットワーク110を介して相互に接続されている。外勤者端末101はユーザ121が操作する、例えば携帯電話、Personal Digital Assistance(以後、「PDA」という)などの機器であり、内勤者端末102はユーザ122が操作する、例えばPCなどの機器であり、外勤者端末101はユーザ121の状態が変化するたびに、内勤者端末102はユーザ122の状態が変化するたびにプレゼンスサーバ装置100に状態情報を通知してそれぞれのユーザの状態の登録を行う。管理者端末103はユーザ130が操作するPCなどの機器であり、事前にプレゼンスサーバ装置100に対して状態通知要求をしており、プレゼンスサーバ装置100から外勤者端末101および内勤者端末102のユーザ121およびユーザ122の状態通知を受けるようになっている。プレゼンスサーバ装置100は外勤者端末101と内勤者端末102から受信した状態情報に基づいて外勤者端末101と内勤者端末102のユーザ121、122の状態を保持し、管理者端末103に対して外勤者端末101と内勤者端末102のユーザ121、122の状態を通知する。
本実施の形態では、プレゼンスサーバ装置100に対してユーザ130は状態通知要求を行う際に状態継続時間を指定する状態変化条件を入力し設定しているものとする。一例として、「1分以上同一の状態が継続した場合だけ通知」という状態変化条件が設定され、プレゼンスサーバ装置100は外勤者端末101または内勤者端末102のユーザの状態が1分以上同一の状態を継続したときだけ管理者端末103に対して状態通知を行う場合について説明する。
まず、図2を参照して、本実施の形態のメッセージフローを説明する。なお、本実施の形態では、一例としてSIPプロトコルを適用して通信を行っており、信号はすべてパケットにて送受信されるが、HTTP(Hyper Text Transfer Protocol)プロトコルやその他のプロトコルを適用して通信を行ってもよく、適用するプロトコルに応じて信号のフォーマットも異なってもよいことは明かである。これは第2の実施の形態以降の説明についても同様である。また、図2では簡略化のためPUBLISHメッセージやNOTIFYメッセージに対する200 OK応答の記述を省略しているが、実際は各メッセージに対して200 OK応答が返る。これは図2以降のメッセージフローを表す図についても同様であることは言うまでもない。外勤者端末101、内勤者端末102はプレゼンスサーバ装置100に対してPUBLISHメッセージを送信し、ユーザ121、122の状態をそれぞれ予め通知して登録しておく。
ユーザ130はプレゼンスサーバ装置100に対して、「1分以上同一の状態が継続した場合だけ通知」という状態変化条件を設定し、通知先URIとして管理者端末103のURIである「sip:103@example.com」を設定しておく。
外勤者端末101、内勤者端末102はそれぞれのユーザ121、122の状態が変化するたびにプレゼンスサーバ装置100に対してPUBLISHメッセージを送信する。プレゼンスサーバ装置100はPUBLISHメッセージを受信すると、状態変化条件に記述された状態継続時間に相当する時間分のタイマーを始動し、指定された状態継続時間に相当する時間分が経過してタイマー終了した後に状態が変化していない場合は状態変化条件で指定された状態継続時間を超えたと判定し、管理者端末103に対してNOTIFYメッセージを送信する。
ここで図1に戻り本実施の形態の詳細な説明をする。
外勤者端末101、内勤者端末102はユーザの状態を表す少なくとも一つの状態項目とその状態項目の状態値を通知するようになっている。
外勤者端末101は、ユーザ101の状態を、例えば、"place"という現在位置を意味する状態項目で表す。この状態項目"place"は、例えば、居室や1階会議室を表す"desk"や"1F_meeting"、移動中を表す"moving"といった状態値を有している。現在位置、すなわち状態項目"place"の検出方法としては外勤者端末101にRFID(Radio Frequency Identification)タグを搭載して、居室や会議室にRFID受信機を設置することにより、外勤者端末101の場所の状態を検出する方法、外勤者端末101の電源が切られたときには移動中とするなど、様々な方法が考えられる。
内勤者端末102は、ユーザ122の居室に設置されたPCなどの機器で、ユーザ122の状態を、例えば、現在内勤者端末102を使用しているかを表す"presence"というプレゼンス状態を意味する状態項目で表す。この状態項目"presence"は「在席/不在」を表す"open/closed"という二つの状態値を有している。プレゼンス状態、すなわち状態項目"presence"の検出には、内勤者端末102のスクリーンセーバが起動したら「不在」、それ以外は「在席」とするなど、様々な方法が想定できる。
なお、ここで記載した状態項目とその状態値は一例であり、この他にも電波強度状態やネットワーク接続状態など、その他の状態項目や状態値を持っていてもよい。
外勤者端末101、内勤者端末102はそれぞれのユーザの状態が変化すると、プレゼンスサーバ装置100にPUBLISHメッセージを送信して状態を登録する。なお、プレゼンスサーバ装置100のアドレスは各機器に予め設定されていてもよいし、その他の方法を使って取得してもよい。状態の登録方法としては、例えば内勤者端末102のプレゼンスが在席という状態を登録する場合は「 sip:102@example.com;presence="open"」というテキストをPUBLISHメッセージのボディ部に記述することが考えられる。なお、状態を表すテキストはXMLやその他のフォーマットでもよく、ボディ部ではなくヘッダ部に記述してもよい。また、状態の登録についてはPUBLISHメッセージを使わずに他のメッセージやSIP以外のプロトコルを使ってもよい。
管理者端末103はプレゼンスサーバ装置100からNOTIFYメッセージを受信するとその情報を画面に表示し、ユーザ121およびユーザ122の状態をユーザ130に対して知らせるようになっている。
プレゼンスサーバ装置100はユーザ130から入力された状態変化条件を保持し、外勤者端末101、内勤者端末102のユーザ121、122の状態が設定された状態変化条件を満たした場合にだけ管理者端末103に対してNOTIFYメッセージを送信する。プレゼンスサーバ装置100の装置構成と動作の詳細については後述する。
なお、ネットワーク110としては社内LANが考えられるが、社内LAN以外にも宅内ネットワークやインターネットなど、その他のネットワークであってもよい。
次にプレゼンスサーバ装置100の構成と動作について図3および図4を参照して詳細に説明する。プレゼンスサーバ装置100は通知装置を構成している。なお、簡略化のため以後各メッセージに対する200 OK応答の動作については説明を省略するが、全てのメッセージに対して200 OK応答の送受信動作があるものとする。
まず、プレゼンスサーバ装置100の構成について説明する。図3は本実施の形態におけるプレゼンスサーバ装置100の構成を示すブロック図である。プレゼンスサーバ装置100は、図3に示されるように、プレゼンスサーバ装置100を構成する全ての構成部品の動作を制御する制御部201と、プレゼンスサーバ装置100が管理する全ての機器のURIと状態を保存する状態管理データベース202と、状態変化条件と通知先URIを保存する状態変化条件保持部203と、通知先URIおよび状態情報を含む信号を生成するメッセージ生成部204と、外勤者端末101、内勤者端末102、管理者端末103など外部の機器と信号の送受信を行う通信部205と、プレゼンスサーバ装置100の図示されていない画面に情報を出力する画面出力部206と、画面から入力された情報を入力する入力受信部207とを備えている。画面出力部206と入力受信部207は、例えば、タッチパネルなどで構成されてもよい。
本実施の形態では、入力受信部207が状態変化条件と通知先URIを入力するようになっている。状態変化条件保持部203は、入力された状態変化条件を保存するようになっている。入力受信部207と状態変化条件保持部203は状態変化条件設定手段を構成する。
状態管理データベース202は、通信部205を介して受信する外勤者端末101と内勤者端末102からユーザ121とユーザ122の状態情報に基づいてユーザ121とユーザ122の状態変化情報を保存するようになっており、状態変化情報保存手段を構成する。
制御部201は、状態管理データベース202に保存された外勤者端末101のユーザ121と内勤者端末102のユーザ122の状態変化情報と状態変化条件保持部203に保存された状態変化条件を比較して、ユーザ121とユーザ122の状態が所定の程度を超えて変化したか否かを判定するようになっており、状態変化判定手段を構成している。
さらに通信部205は、ユーザの状態が所定の程度を超えて変化したと制御部201により判定された場合に、管理者端末103に状態情報を含むNOTIFYメッセージを送信するようになっており、状態変化通知情報送信手段を構成している。
次に、プレゼンスサーバ装置100が状態変化条件を設定する際に実行する動作について図3および図4を参照して説明する。図4は本実施の形態におけるプレゼンスサーバ装置100が状態変化条件を設定する際に実行する動作を示すフロー図である。
最初に、制御部201は状態変化条件と通知先URIを入力する画面を表示する命令を画面出力部206に送り入力画面を表示させ(S1)、ユーザ130からの入力を待つ(S2)。ユーザ130から入力受信部207を介して状態変化条件と通知先URIが入力されるとその情報が入力受信部207から制御部201へ送られる(S3)。ここでは状態変化条件として状態継続時間が設定されるものとする。具体的には「1分以上同一の状態が継続した場合だけ通知」という条件が入力され、通知先URIとして管理者端末103のURIが入力されたものとする。状態変化条件と通知先URIの入力方法としては、予め設定された複数の状態変化条件や通知先URIの中から適当な条件やURIを選択するなど、様々な方法が想定できる。
制御部201は入力された状態変化条件を所定のフォーマットに変換する(S4)。ここでは「Continuing_time>=1min」というフォーマットに変換する。なお、状態変化条件のフォーマットについてはXMLなど、その他のフォーマットでもよい。
制御部201は状態変化条件と通知先URIを状態変化条件保持部203に保存する(S5)。ここでは状態変化条件として「Continuing_time>=1min」を保存し、通知先URIとしては管理者端末103のURIである「sip:103@examle.com」を保存する。なお、状態変化条件保持部203は複数の状態変化条件と通知先URIを保存することが可能である。状態変化条件保持部203で保存されるデータ構造の詳細については後述する。また、本実施の形態では、状態変化条件は入力受信部207を介して設定されたが、ユーザ130は入力受信部207を介せずに、管理者端末103を操作して、プレゼンスサーバ装置100の通信部205に状態変化条件と通知先URIの情報を有した変化条件情報パケットを送信して設定してもよいことは言うまでもない。管理者端末103が通信部205を介してプレゼンスサーバ装置100と通信して状態変化条件と通知先URIを入力して設定する方法については第6の実施の形態で後述する。
プレゼンスサーバ装置100がPUBLISHメッセージを受信後に実行する動作について図3と図5を参照して説明する。図5は本実施の形態におけるプレゼンスサーバ装置100がPUBLISHメッセージ受信後に実行する動作を示すフロー図である。
最初に、通信部205が外勤者端末101または内勤者端末102からPUBLISHメッセージを受信し(S101)、受信したPUBLISHメッセージを制御部201に送る(S102)。制御部201はPUBLISHメッセージに記述されたユーザの状態情報を状態管理データベース202に保存する(S103)。例えばPUBLISHメッセージに内勤者端末102のユーザ122が在席していることを表す「sip:102@example.com:presence="open"」という状態が記述されていた場合は、内勤者端末102を指定する「sip:102@example.com」というURIの状態項目"presence"の状態値を"open"に変更する。なお、状態管理データベース202で保存されるデータの構造の詳細については後述する。
制御部201は状態変化条件保持部203に保存されている状態変化条件と通知先URIを取得する(S104)。状態変化条件は「1分以上同一の状態が継続した場合だけ通知」という条件を意味する「Continuing_time>=1min」を取得するので、制御部201は状態変化条件で指定された状態継続時間に相当する時間分、すなわち1分のタイマーを始動する(S105)。タイマーが終了すると(S106)、状態管理データベース202からPUBLISHメッセージで通知された機器の現在の状態を取得する(S107)。ここで、PUBLISHメッセージ受信時の状態と、取得した現在の状態を比較する(S108)。状態が変化した場合はNOTIFYメッセージを生成せずに終了し、状態が変化していない場合は、同一の状態が状態変化条件で指定された状態継続時間を超えて継続されたと判断し、状態管理データベース202から取得した内勤者端末102のユーザ122の状態情報と通知先URIをメッセージ生成部204に送り(S109)、メッセージ生成部204は通知先URIをRequest-URIに記述し、ユーザ122の状態をボディ部に記述したNOTIFYメッセージを生成する(S110)。メッセージ生成部204は生成したNOTIFYメッセージを通信部205に送り(S111)、通信部205はNOTIFYメッセージを管理者端末103へ送信する(S112)。
次に、管理者端末103の構成と動作について図6および図7を参照して説明する。管理者端末103は被通知装置を構成している。
管理者端末103の構成について説明する。図6は本実施の形態における管理者端末103の構成を示すブロック図である。管理者端末103は、図6に示されるように、管理者端末103を構成する全ての構成部品の動作を制御する制御部301と、管理者端末103の図示されていない画面に情報を出力する画面出力部302と、プレゼンスサーバ装置100、外勤者端末101、内勤者端末102など外部の機器と信号の送受信を行う通信部303とから構成されている。
本実施の形態では、通信部303がプレゼンスサーバ装置100から外勤者端末101のユーザ121、内勤者端末102のユーザ122の状態を示す信号を受信する状態情報受信手段を構成している。
管理者端末103により実行されるNOTIFYメッセージ受信動作について図6と図7を参照して説明する。図7は本実施の形態における管理者端末103がNOTIFYメッセージ受信後に実行する動作のフロー図である。
まず、通信部303がNOTIFYメッセージを受信し(S201)、受信したNOTIFYメッセージを制御部301に送る(S202)。制御部301はNOTIFYメッセージに記述された状態を画面出力部302に表示する命令を送り、画面に状態を表示する(S203)。例えばNOTIFYメッセージに記述された状態が「sip:101@example.com:place="1F_meeting"」である場合は、画面に「外勤者端末101:場所1階会議室」というテキストメッセージを画面に表示させる。なお、画面に情報を表示する形態はアイコン表示やその他の形態であってもよい。さらには、本実施の形態では画面に表示して状態を通知しているが、画面に表示せずに音やその他の方法を使って状態を通知してもよいことは言うまでもない。
次に本実施の形態におけるNOTIFYメッセージに含まれるメッセージについて説明する。図8は本実施の形態におけるプレゼンスサーバ装置100から管理者端末103に送信されるNOTIFYメッセージのデータの構造を示すブロック図である。なお、PUBLISHメッセージに含まれるメッセージについては通常のSIPにおいて使用されるメッセージと同様なので説明を省略する。また、図8に示すメッセージは説明に必要な部分以外については省略しており、実際のメッセージでは例えば他にヘッダが存在する。これは本明細書で図9以降に説明されるメッセージのデータの構造を示すブロック図についても同様である。
図8に示されるように、Request−URIとして状態変化条件保持部203の通知先URIに保持された管理者端末103のURIが記述される。Eventヘッダには、プレゼンスイベントを表す"presence"が記述される。ボディ部には状態管理データベース202から取得した例えば「外勤者端末101が1階会議室にいる」というユーザの状態が記述される。なお、ユーザの状態は拡張ヘッダを使ってヘッダ部に記述してもよい。
次に、状態管理データベース202および状態変化条件保持部203で保存されるデータの構造について説明する。
最初に、状態管理データベース202で保存されるデータの構造について図9を参照して説明する。図9は本実施の形態における状態管理データベース202で保存されるデータの構造を示すブロック図である。
状態管理データベース202はプレゼンスサーバ装置100が管理する全ての機器のURIと状態を保持するデータベースであり、機器のURIと、それぞれの機器について1つ以上の状態項目とその状態項目の状態値が保存されている。
図9に示された例では、「sip:101@example.com」というURIを持つ機器は、状態項目"place"に対して、エレベータを示す"elevator"という状態値を持つということを示す。これは外勤者端末101が現在位置、エレベータという状態であるというメッセージであり、すなわち外勤者端末101、または外勤者端末101のユーザ121が現在エレベータの場所にいることを意味している。保持する状態項目としては、図9に記述した例以外にネットワークへの接続状態を示す"network"など様々なものが考えられる。
次に、状態変化条件保持部203で保存されるデータの構造について図10を参照して説明する。図10は本実施の形態における状態変化条件保持部203で保存されるデータ構造を示すブロック図である。
状態変化条件保持部203はユーザによって設定された状態変化条件と、通知先URIを保存する。状態変化条件と通知先URIについては複数保持することが可能である。
図10に示された例では、「Continuing_time>=1min」で表される「1分以上同一の状態が継続した場合だけ通知」という状態変化条件を満たした場合は「sip:103@example.com」という通知先URIで表される管理者端末103に対して通知するということを示す。
以上説明したように本実施の形態では、ユーザ130がプレゼンスサーバ装置100に対して「1分以上同一の状態が継続した場合だけ通知」という状態変化条件を設定し、プレゼンスサーバ装置100は状態変化条件を満たすときだけ管理者端末103に対してNOTIFYメッセージを送信する例を示した。これによって、不要なNOTIFYメッセージが送信されることがなくなり、ネットワークリソースを有効に使用できるとともに、プレゼンスサーバ装置100と管理者端末103のNOTIFYメッセージの送受信に関わる負荷が軽減される。
また、管理者端末103は所望のタイミングで状態通知を受けることができ、ユーザは必要なタイミングでの状態通知を受けることが可能となる。
なお、本実施の形態ではプレゼンスサーバ装置100が外勤者端末101、内勤者端末102のユーザ121、122の状態継続時間を計測し、それが状態変化条件で示された状態継続時間を超えた以上と判定された場合にNOTIFYメッセージを送信していたが、状態継続時間の計測および判定の機能を管理者端末103に持たせても、ユーザが必要なタイミングでの状態通知が可能となる。例えばプレゼンスサーバ装置100は外勤者端末101と内勤者端末102のユーザ121、122の状態が変化するたびに管理者端末103にNOTIFYメッセージを送信する。管理者端末103は受信したNOTIFYメッセージから状態継続時間を計測し、それが管理者端末103に予め設定された状態変化条件で示された状態継続時間以上と判定された場合にユーザ130に対して状態の通知を行うことにより、ユーザ130は必要なタイミングでの状態通知を受けることができる。また、本実施の形態では、外勤者端末101、内勤者端末102のユーザ121、122が状態発行体を構成し、ユーザ121、122の状態の変化を通知の対象としているが、外勤者端末101、内勤者端末102が状態発行体を構成し、外勤者端末101、内勤者端末102自体の状態の変化を通知の対象とするなど、様々な人やものの状態を通知の対象としてもよいことは言うまでもない。
(第2の実施の形態)
本発明の第2の実施の形態のプレゼンスサーバ装置、管理者端末およびネットワークシステムの構成は第1の実施の形態のプレゼンスサーバ装置、管理者端末およびネットワークシステムの構成と同様であるため同一の符号を付して説明を省略する。
本実施の形態では、ユーザ130はプレゼンスサーバ装置100に対して状態通知要求を行う際に状態が変化した状態変化時刻の範囲を指定する状態変化条件を入力して設定しているものとする。一例として、「状態が10時から11時の間に変化した場合だけ通知」という状態変化条件が設定され、プレゼンスサーバ装置100は外勤者端末101または内勤者端末102のユーザの状態が10時から11時の間に変化したときだけ管理者端末103に対して状態通知を行う場合について説明する。
まず、図11を参照して本実施の形態のメッセージフローを説明する。
外勤者端末101、内勤者端末102はプレゼンスサーバ装置100に対してPUBLISHメッセージを送信し、それぞれユーザ121、122の状態を予め通知して登録しておく。
ユーザ130はプレゼンスサーバ装置100に対して、状態変化条件として状態変化時刻の範囲、具体的には「状態が10時から11時の間に変化した場合だけ通知」を設定し、通知先URIとして管理者端末103のURIである「sip:103@example.com」を設定しておく。
外勤者端末101、内勤者端末102はそれぞれユーザ121、122の状態が変化するたびにプレゼンスサーバ装置100に対してPUBLISHメッセージを送信する。プレゼンスサーバ装置100はPUBLISHメッセージを受信すると、状態変化時刻として現在時刻を保持し、状態変化時刻が状態変化条件を満たす場合だけ管理者端末103に対してNOTIFYメッセージを送信する。
次にプレゼンスサーバ装置100で実行される動作について詳細を説明する。なお、プレゼンスサーバ装置100の装置構成および状態変化条件設定動作については第1の実施の形態と同様であるため説明を省略する。また、管理者端末103の装置構成および動作についても第1の実施の形態と同様であるため説明を省略する。
まず、プレゼンスサーバ装置100がPUBLISHメッセージ受信後に実行する動作について図3と図12を参照して説明する。図12は本実施の形態におけるプレゼンスサーバ装置100がPUBLISHメッセージ受信後に実行する動作を示すフロー図である。
最初に、通信部205がPUBLISHメッセージを受信し(S301)、受信したPUBLISHメッセージを制御部201に送る(S302)。制御部201はPUBLISHメッセージに記述された状態と現在時刻を状態管理データベース202に保存する(S303)。
例えばPUBLISHメッセージに内勤者端末102のユーザ122が在席していることを表す「sip:102@example.com:presence="open"」という状態が記述されていた場合は、内勤者端末102を指定する「sip:102@example.com」というURIが持つ状態項目"presence"の状態値を"open"に変更する。さらに、状態変化時刻として現在時刻を状態管理データベース202に保存する。なお、状態管理データベース202で保存されるデータ構造の詳細については後述する。
制御部201は状態変化条件保持部203に保存されている状態変化条件と通知先URIを取得する(S304)。状態変化条件として「状態が10時から11時の間に変化した場合だけ通知」という条件を意味する「10:00:00<=Changed_time<=11:00:00」を取得するので、制御部201は、状態管理データベース202に保存した内勤者端末102のユーザ122が状態を変化させた時刻が、ステップS304で取得した状態変化条件で指定された時刻の範囲に入っているか判定する(S305)。ここで、状態変化時刻が状態変化条件で指定された時刻の範囲に入っていない場合は、NOTIFYメッセージを生成せずに終了する。状態が変化した時刻が状態変化条件で指定された時刻の範囲に入っている場合は、PUBLISHメッセージに記述され、状態管理データベース202に保存された内勤者端末102のユーザ122の状態情報と通知先URIをメッセージ生成部204に送る(S306)。なお、ステップS307からS309までの工程については第1の実施の形態のステップS110からS112までの工程と同様であるため説明を省略する。
次に本実施の形態におけるNOTIFYメッセージに含まれるメッセージについて説明する。図13は本実施の形態におけるプレゼンスサーバ装置100から管理者端末103に送信されるNOTIFYメッセージのデータの構造を示すブロック図である。
図13に示されるように、Request-URIとして状態変化条件保持部の通知先URIに保持された管理者端末103のURIが記述される。Eventヘッダには、プレゼンスイベントを表す"presence"が記述される。ボディ部には状態管理データベース202から取得した例えば「外勤者端末101が日本時間で10時59分33秒に1階ホールにいた」というユーザの状態と、状態が変化した時刻が記述される。なお、状態および状態が変化した時刻は拡張ヘッダを使ってヘッダ部に記述してもよい。
次に、状態管理データベース202で保存されるデータ構造について図14を参照して説明する。なお、状態変化条件保持部203で保存されるデータの構造については第1の実施の形態と同様であるため省略する。
図14は本実施の形態における状態管理データベース202で保存されるデータの構造を示すブロック図である。
状態管理データベース202はプレゼンスサーバ装置100が管理する全ての機器のURIと状態を保持するデータベースであり、機器のURIと、それぞれの機器について1つ以上の状態項目、状態値および状態が変化した時刻が保持されている。
図14に記述された例では、「sip:101@example.com」というURIを持つ機器は、状態項目"place"に対して、エレベータを示す"elevator"という状態値を持ち、状態が変化した時刻は日本時間で10時58分51秒であるということを示す"10:58:51 +900"という値を持つことを示す。これは外勤者端末101が日本時間で10時58分51秒にエレベータへと現在位置を変化させたというメッセージであり、すなわち外勤者端末101、または外勤者端末101のユーザ121が日本時間で10時58分51秒にエレベータの場所へ移動したことを意味している。なお、保持する状態項目と状態値の組としては、図14に記述した例以外にもネットワークへの接続状態を示す"network"など様々なものが考えられる。
以上説明したように本実施の形態では、ユーザ130がプレゼンスサーバ装置100に対して「状態が10時から11時の間に変化した場合だけ通知」という状態変化条件を設定し、プレゼンスサーバ装置100は状態変化条件を満たすときだけ管理者端末103に対してNOTIFYメッセージを送信する例を示した。これによって、不要なNOTIFYメッセージが送信されることがなくなり、ネットワークリソースを有効に使用できるとともに、プレゼンスサーバ装置100と管理者端末103のNOTIFYメッセージの送受信に関わる負荷が軽減される。
なお、本実施の形態ではプレゼンスサーバ装置100が外勤者端末101、内勤者端末102のユーザ121、122の状態変化時刻を保持し、それが状態変化条件で示された時刻の範囲に入っていると判定された場合にNOTIFYメッセージを送信していたが、状態変化時刻の保持および状態変化条件の判定の機能を管理者端末103に持たせても、ユーザが必要なタイミングでの状態通知が可能となる。例えばプレゼンスサーバ装置100は外勤者端末101と内勤者端末102のユーザ121、122の状態が変化するたびに管理者端末103にNOTIFYメッセージを送信する。管理者端末103は受信したNOTIFYメッセージの状態変化時刻を保持し、それが管理者端末103に予め設定された状態変化条件で示された時刻の範囲に入っていると判定された場合にユーザに対して状態の通知を行うことにより、ユーザは必要なタイミングでの状態通知を受けることができる。また、本実施の形態では、外勤者端末101、内勤者端末102のユーザ121、122が状態発行体を構成し、ユーザ121、122の状態の変化を通知の対象としているが、外勤者端末101、内勤者端末102が状態発行体を構成し、外勤者端末101、内勤者端末102自体の状態の変化を通知の対象とするなど、様々な人やものの状態を通知の対象としてもよいことは言うまでもない。
(第3の実施の形態)
本発明の第3の実施の形態のプレゼンスサーバ装置、管理者端末およびネットワークシステムの構成は第1の実施の形態のプレゼンスサーバ装置、管理者端末およびネットワークシステムの構成と同様であるため同一の符号を付して説明を省略する。
本実施の形態では、ユーザ130はプレゼンスサーバ装置100に対して状態通知要求を行う際に少なくとも一つの状態項目とその状態項目の状態値と、状態変化時刻の範囲を指定する状態変化条件を入力して設定しているものとする。一例として、「外勤者端末101の場所が10時から12時の間に1階会議室となった場合だけ通知」という状態変化条件が設定され、プレゼンスサーバ装置100は外勤者端末101のユーザ121の状態が場所が10時から12時の間に1階会議室となった場合だけ状態通知を行う場合について説明する。
まず、図15を参照して本実施の形態のメッセージフローを説明する。
外勤者端末101、内勤者端末102はプレゼンスサーバ装置100に対してPUBLISHメッセージを送信し、それぞれがユーザ121、122の状態を予め通知して登録しておく。
ユーザ130はプレゼンスサーバ装置100に対して、状態変化条件として機器の少なくとも一つの状態項目とその状態項目の状態値と、状態変化時刻の範囲、具体的には「外勤者端末101の場所が10時から12時の間にIF会議室となった場合だけ通知」を設定し、通知先URIとして管理者端末103のURIである「sip:103@example.com」を設定しておく。
外勤者端末101、内勤者端末102はそれぞれユーザ121、122の状態が変化するたびにプレゼンスサーバ装置100に対してPUBLISHメッセージを送信する。プレゼンスサーバ装置100はPUBLISHメッセージを受信すると、機器またはユーザの状態項目、状態値および状態変化時刻を保持し、状態項目、状態値および状態変化時刻が状態変化条件を満たす場合だけ管理者端末103に対してNOTIFYメッセージを送信する。
次にプレゼンスサーバ装置100で実行される動作について詳細を説明する。なお、プレゼンスサーバ装置100の装置構成および状態変化条件設定動作については第1の実施の形態と同様であるため説明を省略する。また、管理者端末103の装置構成および動作についても第1の実施の形態と同様であるため説明を省略する。また、送信されるNOTIFYメッセージメッセージのデータ構造については第2の実施の形態と同様であるため説明を省略する。
まず、プレゼンスサーバ装置100がPUBLISHメッセージ受信後に実行する動作について図3と図16を参照して説明する。図16は本実施の形態におけるプレゼンスサーバ装置100がPUBLISHメッセージ受信後に実行する動作を示すフロー図である。
ここで、ステップS401からS405までの工程については第2の実施の形態のステップS301からS305までの工程と同様のため説明を省略する。
ステップS305で、状態変化時刻が状態変化条件に記述された時刻の範囲に入っている場合、PUBLISHメッセージに記述され、状態管理データベース202に保存された外勤者端末101の状態項目とその状態項目の状態値が状態変化条件に記述された状態項目とその状態項目の状態値と合致するか判定する(S406)。合致しない場合はNOTIFYメッセージを生成せずに終了する。合致する場合は、ステップS407に進み、NOTIFYメッセージを生成して送信する。なお、ステップS407からS410までの工程については第2の実施の形態のステップS306からS309までの工程と同様であるため説明を省略する。
以上説明したように本実施の形態では、ユーザ130がプレゼンスサーバ装置100に対して「外勤者端末101の場所が10時から12時の間にIF会議室となった場合だけ通知」という状態変化条件を設定し、プレゼンスサーバ装置100は状態変化条件を満たすときだけ管理者端末103に対してNOTIFYメッセージを送信する例を示した。これによって、不要なNOTIFYメッセージが送信されることがなくなり、ネットワークリソースを有効に使用できるとともに、プレゼンスサーバ装置100と管理者端末103のNOTIFYメッセージの送受信に関わる負荷が軽減される。
なお、本実施の形態ではプレゼンスサーバ装置100が外勤者端末101、内勤者端末102のユーザ121、122の状態変化時刻、状態項目とその状態項目の状態値を保持し、それが状態変化条件を満たしていると判定された場合にNOTIFYメッセージを送信していたが、状態変化時刻、状態項目とその状態項目の状態値の保持および状態変化条件の判定の機能を管理者端末103に持たせても、ユーザが必要なタイミングでの状態通知が可能となる。例えばプレゼンスサーバ装置100は外勤者端末101と内勤者端末102のユーザ121、122の状態が変化するたびに管理者端末103にNOTIFYメッセージを送信する。管理者端末103は受信したNOTIFYメッセージの状態変化時刻、状態項目とその状態項目の状態値を保持し、それが管理者端末103に予め設定された状態変化条件を満たしていると判定された場合にユーザに対して状態の通知を行うことにより、ユーザは必要なタイミングでの状態通知を受けることができる。さらに本実施の形態では、状態変化条件として状態変化時刻、状態項目とその状態項目の状態値を指定しているがこれに限定されることはない。状態継続時間、一つ以上の状態項目とその状態項目の状態値、あるいは状態継続時間、状態変化時間、一つ以上の状態項目とその状態項目の組み合わせなど様々な状態変化条件を指定することが可能である。また、本実施の形態では、外勤者端末101、内勤者端末102のユーザ121、122が状態発行体を構成し、ユーザ121、122の状態の変化を通知の対象としているが、外勤者端末101、内勤者端末102が状態発行体を構成し、外勤者端末101、内勤者端末102自体の状態の変化を通知の対象にするなど、様々な人やものの状態を通知の対象としてもよいことは言うまでもない。
(第4の実施の形態)
本発明の第4の実施の形態のプレゼンスサーバ装置、管理者端末およびネットワークシステムの構成は第1の実施の形態のプレゼンスサーバ装置、管理者端末およびネットワークシステムの構成と同様であるため同一の符号を付して説明を省略する。
本実施の形態では、ユーザ130はプレゼンスサーバ装置100に対して状態通知要求を行う際に少なくとも一つの状態項目とその状態項目の状態値の変化履歴を指定する状態変化条件を入力して設定しているものとする。一例として、「外勤者端末101のユーザ121の場所が休憩室→喫煙室→休憩室と状態変化した場合だけ通知」という状態変化条件が設定され、プレゼンスサーバ装置100は状態変化条件を満たすときのみ状態通知を行う例を示す。
まず、図17を参照して本実施の形態のメッセージフローを説明する。
外勤者端末101、内勤者端末102はプレゼンスサーバ装置100に対してPUBLISHメッセージを送信し、それぞれユーザ121、122の状態を予め通知して登録しておく。プレゼンスサーバ装置100はPUBLISHメッセージを受信するごとに、保持している状態変化の履歴を更新する。
ユーザ130はプレゼンスサーバ装置100に対して、状態変化条件として「外勤者端末101の場所が休憩室→喫煙室→休憩室と状態変化した場合だけ通知」を設定し、通知先URIとして管理者端末103のURIである「sip:103@example.com」を設定しておく。
外勤者端末101、内勤者端末102はそれぞれユーザ121、122の状態が変化するたびにプレゼンスサーバ装置100に対してPUBLISHメッセージを送信する。プレゼンスサーバ装置100はPUBLISHメッセージを受信するごとに、状態と状態変化時刻の履歴を更新し、ユーザ121の状態変化履歴が状態変化条件を満たす場合だけ管理者端末103に対してNOTIFYメッセージを送信する。
次にプレゼンスサーバ装置100で実行される動作について詳細を説明する。なお、プレゼンスサーバ装置100の装置構成および状態変化条件設定動作については第1の実施の形態と同様であるため説明を省略する。また、管理者端末103の装置構成および動作についても第1の実施の形態と同様であるため説明を省略する。
まず、プレゼンスサーバ装置100がPUBLISHメッセージ受信後に実行する動作について図3と図18を参照して説明する。図18は本実施の形態におけるプレゼンスサーバ装置100がPUBLISHメッセージ受信後に実行する動作を示すフロー図である。
最初に、通信部205がPUBLISHメッセージを受信し(S501)、受信したPUBLISHメッセージを制御部201に送る(S502)。制御部201はPUBLISHメッセージに記述された状態を状態管理データベース202に保存する(S503)。このとき状態管理データベース202は少なくとも一つの状態項目とその状態項目の状態値の変化履歴を保持しており、PUBLISHメッセージに記述された状態を最新状態値として変化履歴を更新する。
例えばPUBLISHメッセージに内勤者端末102のユーザ122が在席していることを表す「sip:102@example.com:presence="open"」という状態が記述されていた場合は、それを最新の状態として保持し、すでに保持してあった状態を過去の状態として更新する。なお、状態管理データベース202で保存されるデータ構造については後述する。
制御部201は状態変化条件保持部203に保存されている状態変化条件と通知先URIを取得し(S504)、状態変化条件により指定されたユーザ121の状態の履歴を状態管理データベース202から取得する(S505)。ここで、取得したユーザ121の変化履歴が、状態変化条件により指定された変化履歴の条件を満たすか判定する(S506)。変化履歴の条件を満たさない場合はNOTIFYメッセージを生成せずに終了する。変化履歴の条件を満たす場合は、ステップS507に進み、NOTIFYメッセージを生成して送信する。なお、ステップS507からS510までの工程は第2の実施の形態のステップS306からS309までの工程と同様であるため説明を省略する。
次に本実施の形態におけるNOTIFYメッセージについて説明する。
図19は本実施の形態におけるプレゼンスサーバ装置100から管理者端末103に送信されるNOTIFYメッセージのデータの構造を示すブロック図である。
Request-URIとして状態変化条件保持部の通知先URIに保持された管理者端末103のURIが記述される。Eventヘッダには、時間変化に関するイベントを表す"Time-Filter"と記述する。ボディ部には状態管理データベース202から取得した状態と、状態が変化した時刻の履歴が記述される。なお、状態および状態が変化した時刻の履歴は拡張ヘッダを使ってヘッダ部に記述してもよい。
次に、状態管理データベース202で保存されるデータの構造について説明する。なお、状態変化条件保持部203で保存されるデータの構造については図10で示された説明した第1の実施の形態における状態変化条件保持部203で保存されるデータの構造と同様であるため説明を省略する。
図20は本実施の形態における状態管理データベース202で保存されるデータの構造を示すブロック図である。
状態管理データベース202はプレゼンスサーバ装置100が管理する全ての機器のURIと状態を保持するデータベースであり、機器のURIと、それぞれの機器について1つ以上の状態項目とその状態項目の状態値および状態が変化した時刻についてそれぞれ変化履歴が保存されている。
図20に示された例では、「sip:101@example.com」というURIを持つ機器は、状態項目"place"に対して、休憩室を示す"rest_room"という状態値を持ち、状態変化時刻は日本時間で10時58分51秒であるということを示す"10:58:51 +900"という値を持つことを示し、状態項目とその状態項目の状態値および状態変化時刻の履歴を複数保持する。なお、図19では変化履歴として3つの状態の変化の履歴の履歴変化情報が保存されているが、保存する履歴変化情報の状態の変化の履歴の数はそれより多くても少なくてもよいし、一定時間内に変化した状態の変化の履歴の履歴変化情報だけを保存してもよい。
以上説明したように本実施の形態では、ユーザ130がプレゼンスサーバ装置100に対して「外勤者端末101の場所が休憩室→喫煙室→休憩室と状態変化した場合だけ通知」という状態変化条件を設定し、プレゼンスサーバ装置100は外勤者端末101のユーザ121の状態の変化の履歴が状態変化条件を満たすときだけ管理者端末103に対してNOTIFYメッセージを送信する例を示した。これによって、不要なNOTIFYメッセージが送信されることがなくなり、ネットワークリソースを有効に使用できるとともに、プレゼンスサーバ装置100と管理者端末103のNOTIFYメッセージの送受信に関わる負荷が軽減される。
なお、本実施の形態ではプレゼンスサーバ装置100が外勤者端末101、内勤者端末102のユーザ121、122の状態変化履歴を保持し、それが状態変化条件を満たしていると判定された場合にNOTIFYメッセージを送信していたが、状態変化履歴の保持および状態変化条件の判定の機能を管理者端末103に持たせても、ユーザが必要なタイミングでの状態通知が可能となる。例えばプレゼンスサーバ装置100は外勤者端末101と内勤者端末102のユーザ121、122の状態が変化するたびに管理者端末103にNOTIFYメッセージを送信する。管理者端末103は受信したNOTIFYメッセージの状態変化履歴を保持し、それが管理者端末103に予め設定された状態変化条件を満たしていると判定された場合にユーザに対して状態の通知を行うことにより、ユーザは必要なタイミングでの状態通知を受けることができる。さらに本実施の形態では、状態変化条件として状態変化時刻、状態項目とその状態項目の状態値の履歴情報を指定しているがこれに限定されることはない。状態継続時間、一つ以上の状態項目とその状態項目の状態値の履歴情報、あるいは状態継続時間、状態変化時間、一つ以上の状態項目とその状態項目の履歴情報の組み合わせなど様々な状態変化条件を指定することが可能である。また、本実施の形態では、外勤者端末101、内勤者端末102のユーザ121、122が状態発行体を構成し、ユーザ121、122の状態の変化を通知の対象としているが外勤者端末101、内勤者端末102が状態発行体を構成し、外勤者端末101、内勤者端末102自体の状態の状態を通知の対象とするなど、様々な人やものの状態を通知の対象としてもよいことは言うまでもない。
(第5の実施の形態)
本発明の第5の実施の形態のプレゼンスサーバ装置、管理者端末およびネットワークシステムの構成は第1の実施の形態のプレゼンスサーバ装置、管理者端末およびネットワークシステムの構成と同様であるため同一の符号を付して説明を省略する。
本実施の形態では、ユーザ130はプレゼンスサーバ装置100に対して状態通知要求を行う際に複数の機器またはユーザに個別に対応する複数の個別の状態変化条件と、それら複数の個別の状態変化条件間の論理条件を指定する全体の状態変化条件を入力して設定しているものとする。一例として、外勤者端末101のユーザ121の個別の状態変化条件と内勤者端末102のユーザ122の個別の状態変化条件間の論理積である、「外勤者端末101のユーザ121の場所が居室である状態が10分以上継続し、かつ、内勤者端末102のユーザ122のプレゼンス状態が在席である状態が10分以上継続した場合にだけ通知」という論理条件が全体の状態変化条件として設定され、プレゼンスサーバ装置100は外勤者端末101のユーザ121の場所が居室である状態が10分以上継続し、かつ、内勤者端末102のユーザ122のプレゼンス状態が在席である状態が10分以上継続した場合にだけ状態通知を行う場合について説明する。
まず、図21を参照して本実施の形態のメッセージフローを説明する。
外勤者端末101、内勤者端末102はプレゼンスサーバ装置100に対してPUBLISHメッセージを送信し、それぞれユーザ121、122の状態を予め登録しておく。
ユーザ130はプレゼンスサーバ装置100に対して、状態変化条件として「外勤者端末101のユーザ121の場所が居室である状態が10分以上継続し、かつ、内勤者端末102のユーザ122のプレゼンス状態が在席である状態が10分以上継続した場合にだけ通知」を設定し、通知先URIとして管理者端末103のURIである「sip:103@example.com」を設定しておく。
外勤者端末101、内勤者端末102はそれぞれユーザ121、122の状態が変化するたびにプレゼンスサーバ装置100に対してPUBLISHメッセージを送信する。プレゼンスサーバ装置100はPUBLISHメッセージを受信すると、それぞれの個別の状態変化条件に記述された時間分のタイマーを設定し、タイマー終了後に一方の機器またはユーザの状態が変化していない場合、他方の機器またはユーザの状態の履歴を参照し、他方の機器またはユーザの状態も該当する個別の状態変化条件を満たす場合だけ管理者端末103に対してNOTIFYメッセージを送信する。
次にプレゼンスサーバ装置100で実行される動作について詳細を説明する。なお、プレゼンスサーバ装置100の装置構成および状態変化条件設定動作については第4の実施の形態と同様であるため説明を省略する。また、管理者端末103の装置構成および動作については第1の実施の形態と同様であるため説明を省略する。
まず、プレゼンスサーバ装置100がPUBLISHメッセージ受信後に実行する動作について図3と図22を参照して説明する。図22は本実施の形態におけるプレゼンスサーバ装置100がPUBLISHメッセージ受信後に実行する動作を示すフロー図である。
ここで、ステップS601からS604までの工程については第4の実施の形態のステップS501からS504までの工程と同様であるため説明を省略する。制御部201はステップS604で取得したそれぞれの個別の状態変化条件に記述された状態継続時間分のタイマーを開始する(S605)。タイマーが終了すると(S606)、PUBLISHメッセージに記述された一方の機器またはユーザの状態を状態管理データベース202から取得し(S607)、状態が変化したか判定する(S608)。状態が変化した場合はNOTIFYメッセージを生成せずに終了する。状態が変化しなかった場合はその機器またはユーザに関する個別の状態変化条件で指定された状態継続時間を超えたと判断し、ステップS609に進む。その後、状態管理データベース202から状態変化条件に記述されている他方の機器またはユーザの状態の履歴を取得して(S609)、取得した状態の履歴から状態継続時間を計算し、他方の機器またはユーザの状態に関する個別の状態変化条件が指定した状態継続時間を超えているか判定する(S610)。超えていない場合はNOTIFYメッセージを生成せずに終了する。超えている場合は、全ての状態変化条件、すなわち指定された個別の状態変化条件間の論理条件を満たしていると判断してステップS611に進み、NOTIFYメッセージを生成して送信する。なお、本実施の形態では、複数の個別の状態変化条件間の論理条件として全ての個別の状態変化条件を満たす場合(AND条件)のみNOTIFYメッセージを送信する例を挙げたが、複数の個別の状態変化条件間の論理条件として、一つ以上の個別の状態変化条件を満たす場合(OR条件)、もしくは満たさない場合(NOT条件)のみNOTIFYメッセージを送信する場合も可能であり、論理積以外のその他の論理条件であってもよいこと言うまでもない。また、ステップS611からS614までの工程については第2の実施の形態のステップS306からS309までの工程と同様であるため説明を省略する。
次に本実施の形態におけるNOTIFYメッセージメッセージについて説明する。
図23は本実施の形態におけるプレゼンスサーバ装置100から管理者端末103に送信されるNOTIFYメッセージのデータの構造を示すブロック図である
Request-URIとして状態変化条件保持部の通知先URIに保持された管理者端末103のURIが記述される。Eventヘッダには、状態の時間状態変化に関するイベントを表す"Time-Filter"と記述する。ボディ部には状態管理データベース202から取得した複数の機器またはユーザの状態、すなわち外勤者端末101、内勤者端末102のユーザ121、122の状態と、状態が変化した時刻が記述される。なお、状態および状態が変化した時刻は拡張ヘッダを使ってヘッダ部に記述してもよい。
以上説明したように本実施の形態では、ユーザ130がプレゼンスサーバ装置100に対して「外勤者端末101のユーザ121の場所が居室である状態が10分以上継続し、かつ、内勤者端末102のユーザ122のプレゼンス状態が在席である状態が10分以上継続した場合にだけ通知」という個別の状態変化条件間の論理条件を設定し、プレゼンスサーバ装置100は上述の個別の状態変化条件間の論理条件が満たされるときだけ管理者端末103に対してNOTIFYメッセージを送信する例を示した。これによって、不要なNOTIFYメッセージが送信されることがなくなり、ネットワークリソースを有効に使用できるとともに、プレゼンスサーバ装置100と管理者端末103のNOTIFYメッセージの送受信に関わる負荷が軽減される。
なお、本実施の形態ではプレゼンスサーバ装置100が外勤者端末101、内勤者端末102のユーザ121、122の状態変化履歴および状態継続時間を保持し、それが状態変化条件を満たしていると判定された場合にNOTIFYメッセージを送信していたが、状態変化履歴および状態継続時間の保持と状態変化条件の判定の機能を管理者端末103に持たせても、ユーザが必要なタイミングでの状態通知が可能となる。例えばプレゼンスサーバ装置100は外勤者端末101と内勤者端末102のユーザ121、122の状態が変化するたびに管理者端末103にNOTIFYメッセージを送信する。管理者端末103は受信したNOTIFYメッセージの状態変化履歴と状態継続時間を保持し、それが管理者端末103に予め設定された状態変化条件を満たしていると判定された場合にユーザに対して状態の通知を行うことにより、ユーザは必要なタイミングでの状態通知を受けることができる。また、本実施の形態では、外勤者端末101、内勤者端末102のユーザ121、122が状態発行体を構成し、ユーザ121、122の状態の変化を通知の対象としているが、外勤者端末101、内勤者端末102が状態発行体を構成し、外勤者端末101、内勤者端末102自体の状態の変化を通知の対象とするなど、様々な人やものの状態を対象としてもよいことは言うまでもない。
(第6の実施の形態)
本発明の第6の実施の形態のプレゼンスサーバ装置、管理者端末およびネットワークシステムの構成は管理者端末103およびプレゼンスサーバ装置100に代わり管理者端末113およびプレゼンスサーバ装置400を備えている。同一の構成および同一の処理については説明を省略する。
本実施の形態では、管理者端末113はプレゼンスサーバ装置400に対して状態通知要求を行う際に、プレゼンスサーバ装置400の画面から入力を行うのではなく、状態変化条件を記述したSUBSCRIBEメッセージを送信するものとする。一例として管理者端末113は、「1分以上同一の状態が継続した場合だけ通知」という状態変化条件を記述したSUBSCRIBEメッセージを送信し、プレゼンスサーバ装置400は受信したSUBSCRIBEメッセージに記述された状態変化条件を設定して、状態変化条件を満たすときのみ状態通知を行う場合について説明する。
最初に図24を用いて本実施の形態のメッセージフローを説明する。外勤者端末101、内勤者端末102はプレゼンスサーバ装置400に対してPUBLISHメッセージを送信し、それぞれユーザ121、122の状態を予め登録しておく。管理者端末113はプレゼンスサーバ装置400に対して、状態変化条件と通知先URIを記述したSUBSCRIBEメッセージを送信する。ここでは状態変化条件として「1分以上同一の状態が継続した場合だけ通知」を記述し、通知先URIとして管理者端末113のURIである「sip:103@example.com」を記述しておく。プレゼンスサーバ装置400はSUBSCRIBEメッセージを受信すると、そこに記述された状態変化条件と通知先URIを保持しておく。
外勤者端末101、内勤者端末102はそれぞれユーザ121、122の状態が変化するたびにプレゼンスサーバ装置400に対してPUBLISHメッセージを送信する。プレゼンスサーバ装置400はPUBLISHメッセージを受信すると、状態変化条件に記述された時間分のタイマーを設定し、タイマー終了後に状態が変化していない場合だけ管理者端末113に対してNOTIFYメッセージを送信する。
最初に管理者端末113の構成と管理者端末113がSUBSCRIBEメッセージを送信する際に実行する動作について、図25と図26を参照して説明する。図25は本実施の形態における管理者端末113の構成を示すブロック図であり、図26は本実施の形態における管理者端末113がSUBSCRIBEメッセージを送信する際に実行する動作を示すフロー図である。
管理者端末113の構成について説明する。管理者端末113は、図25に示されるように、管理者端末113を構成する全ての構成部品の動作を制御する制御部401と、管理者端末113の図示されていない画面に情報を出力する画面出力部402と、画面から入力された情報を入力する入力受信部403、通知先URIおよび状態情報を含む信号を生成するメッセージ生成部404、プレゼンスサーバ装置400、外勤者端末101、内勤者端末102など外部の機器と信号の送受信を行う通信部405とから構成されている。画面出力部402と入力受信部403は、例えば、タッチパネルなどで構成されてもよい。
最初に、制御部401は状態変化条件を入力する画面を表示する命令を画面出力部402に送り(S701)、ユーザ130からの入力を待つ(S702)。ユーザ130から状態変化条件が入力されるとその情報が入力受信部403から制御部401へ送られる(S703)。ここでは状態変化条件として「1分以上同一の状態が継続した場合だけ通知」という条件が入力されたものとする。
制御部401は入力された条件を状態変化条件のフォーマットに変換する(S704)。ここでは「Continuing_time>=1min」という状態変化条件に変換する。
制御部401は変換した状態変化条件をメッセージ生成部404に送り(S705)、メッセージ生成部404は状態変化条件を記述したSUBSCRIBEメッセージを生成する(S706)。メッセージ生成部404は生成したSUBSCRIBEメッセージを通信部405に送り(S707)、通信部405は受け取ったSUBSCRIBEメッセージをプレゼンスサーバ装置400に向けて送信する(S708)。ここでプレゼンスサーバ400のアドレスは管理者端末113に予め設定されていてもよいし、ユーザが入力画面から入力してもよい。SUBSCRIBEメッセージのデータに関する詳細は後述する。
次にプレゼンスサーバ装置400の構成とSUBSCRIBEメッセージ受信動作について図27と図28を参照して説明する。図27は本実施の形態におけるプレゼンスサーバ装置400の構成を示すブロック図であり、図28は本実施の形態におけるプレゼンスサーバ装置400がSUBSCRIBEメッセージを受信する際に実行する動作を示すフロー図である。なお、プレゼンスサーバ装置400がPUBLISHメッセージ受信後に実行する動作については第1の実施の形態と同様であるため説明を省略する。また、状態管理データベース502と状態変化条件保持部503のデータ構造についても第1の実施の形態と同様であるため説明を省略する。
まず、プレゼンスサーバ装置400の構成について説明する。プレゼンスサーバ装置400は、図27に示されるように、プレゼンスサーバ装置400を構成する全ての構成部品の動作を制御する制御部501と、プレゼンスサーバ装置400が管理する全ての機器のURIと状態を保存する状態管理データベース502と、状態変化条件と通知先URIを保存する状態変化条件保持部503と、通知先URIおよび状態情報を含む信号を生成するメッセージ生成部504と、外勤者端末101、内勤者端末102、管理者端末113など外部の機器と信号の送受信を行う通信部505とを備えている。
図28は本実施の形態におけるプレゼンスサーバ装置400がSUBSCRIBEメッセージを受信する際に実行する動作を示すフロー図である。
最初に、通信部505がSUBSCRIBEメッセージを受信し(S710)、受信したSUBSCRIBEメッセージを制御部501に送る(S711)。制御部501はSUBSCRIBEメッセージに記述された状態変化条件と通知先URIを状態変化条件保持部503に保存する(S712)。ここでは状態変化条件として「Continuing_time>=1min」が記述されているのでこれを保存する。通知先URIとしてはSUBSCRIBEメッセージのContactヘッダに記述されたURIを保存する。
その後、プレゼンスサーバ装置400はSUBSCRIBEメッセージに対する最初のNOTIFYメッセージを送信してもよい。最初のNOTIFYメッセージ送信については通常のSIP手順と同様であるため説明を省略する。
次に本実施の形態におけるSUBSCRIBEメッセージメッセージについて説明する。なお、NOTIFYメッセージに含まれるメッセージの詳細は第1の実施の形態と同様のため省略する。
SUBSCRIBEメッセージについて図29を参照して説明する。図29は本実施の形態における管理者端末113からプレゼンスサーバ装置400に送信されるSUBSCRIBEメッセージのデータの構造を示す図である。
Contactヘッダには、通知先URI、Request-URIとして、管理者端末113に予め設定された任意のアドレス(anonymous@anywhereなど)が記述される。Eventヘッダには、機器の時間変化状態を指定したフィルタを示す"Time-Filter"と記述する。ボディ部には状態変化条件を記述する。なお、状態変化条件は拡張ヘッダを使ってヘッダ部に記述してもよい。
本実施の形態では、通信部405がプレゼンスサーバ装置400から外勤者端末101のユーザ121、内勤者端末102のユーザ122の状態を示す信号を受信する状態情報受信手段、および状態変化条件を設定する変化条件情報パケットをプレゼンスサーバ装置400へ送信する変化条件送信手段を構成している。
通信部505は、管理者端末113から送信される変化条件情報パケットを受信する変化条件情報受信手段を構成し、状態変化条件保持部503は通信部505により受信された変化条件情報パケットに基づいて状態変化条件を保存する状態変化条件設定手段を構成する。
状態管理データベース502は、通信部505を介して受信する外勤者端末101と内勤者端末102からユーザ121とユーザ122の状態情報に基づいてユーザ121とユーザ122の状態変化情報を保存するようになっており、状態変化情報保存手段を構成する。
制御部501は、状態管理データベース502に保存された外勤者端末101のユーザ121と内勤者端末102のユーザ122の状態変化情報と状態変化条件保持部503に保存された状態変化条件を比較して、ユーザ121とユーザ122の状態が所定の程度を超えて変化したか否かを判定するようになっており、状態変化判定手段を構成している。
さらに通信部505は、ユーザの状態が所定の程度を超えて変化したと制御部501により判定された場合に、管理者端末113に状態情報を含むNOTIFYメッセージを送信するようになっており、状態変化通知情報送信手段を構成している。
以上説明したように本実施の形態では、管理者端末113がプレゼンスサーバ装置400に対して状態変化条件を記述したSUBSCRIBEメッセージを送信し、プレゼンスサーバ装置400は状態変化条件を満たすときだけNOTIFYメッセージを送信する例を示した。これによって、状態変化条件を管理者端末113が指定することが可能となり、より適切なタイミングでNOTIFYメッセージが送信され、不要なNOTIFYメッセージが送信されることがなくなり、ネットワークリソースを有効に使用できるとともに、プレゼンスサーバ装置400と管理者端末113のNOTIFYメッセージの送受信に関わる負荷が軽減される。
なお、本実施の形態ではプレゼンスサーバ装置400が外勤者端末101、内勤者端末102のユーザ121、122の状態継続時間を計測し、それが状態変化条件で示された状態継続時間以上と判定された場合にNOTIFYメッセージを送信していたが、状態継続時間の計測および判定の機能を管理者端末113に持たせても、ユーザが必要なタイミングでの状態通知が可能となる。例えばプレゼンスサーバ装置400は外勤者端末101と内勤者端末102のユーザ121、122の状態が変化するたびに管理者端末113にNOTIFYメッセージを送信する。管理者端末113は受信したNOTIFYメッセージから状態継続時間を計測し、それが管理者端末113に予め設定された状態変化条件で示された状態継続時間以上と判定された場合にユーザに対して状態の通知を行うことにより、ユーザは必要なタイミングでの状態通知を受けることができる。また、本実施の形態では、外勤者端末101、内勤者端末102のユーザ121、122が状態発行体を構成し、ユーザ121、122の状態の変化を通知の対象としているが、外勤者端末101、内勤者端末102が状態発行体を構成し、外勤者端末101、内勤者端末102自体の状態の変化を通知の対象とするなど、様々な人やものの状態を対象としてもよいことは言うまでもない。
(第7の実施の形態)
図30は第7の実施の形態のプレゼンスサーバ装置、管理者端末およびネットワークシステムの構成を示すブロック図である。
図30においてネットワークシステムは、内勤者端末601、外勤者端末602、管理者端末603とを備え、内勤者端末601、外勤者端末602、管理者端末603はネットワーク610を介して相互に接続されている。内勤者端末601はユーザ621が操作する、例えばPCなどの機器であり、外勤者端末602はユーザ622が操作する、例えば携帯電話、PDAなどの機器である。ここで内勤者端末601は第6の実施の形態のプレゼンスサーバ装置400と同様の構成を有し、さらに内勤者端末601自体の状態変化情報を設定するようになっている。すなわち、内勤者端末601を構成する状態管理データベースは、他の機器のURIと状態とともに内勤者端末601自体または内勤者端末601を操作するユーザ621の状態も保存し、内勤者端末601を構成する状態変化条件保持部は内勤者端末601自体またはユーザ621の状態変化条件も保存し、内勤者端末601を構成する制御部は、状態管理データベースに保存された内勤者端末601自体またはユーザ621の状態変化情報も状態変化条件保持部に保存された状態変化条件と比較して、状態が所定の程度を超えて変化したか否かを判定するようになっている。管理者端末603はユーザ630が操作する、例えばPCなどの機器である。さらに管理者端末603は第6の実施の形態の管理者端末103と同様の構成を有しているものとする。管理者端末603は内勤者端末601、外勤者端末602のユーザ621、622の状態の通知を望み、内勤者端末601または外勤者端末602のいずれかに状態通知要求を送る。ここでは内勤者端末601に対して、「外勤者端末602のユーザ622の場所が居室である状態が10分以上継続し、かつ、内勤者端末601のユーザ621のプレゼンス状態が在席である状態が10分以上継続した場合にだけ通知」という状態変化条件を指定した状態通知要求を送り、内勤者端末601は外勤者端末602に対して状態通知要求を送って外勤者端末602のユーザ622の状態を取得し、状態変化条件を満たすときのみ状態通知を行う例を示す。
最初に、図31を用いて本実施の形態のメッセージフローを説明する。
管理者端末603は内勤者端末601に対して状態変化条件を記述したSUBSCRIBEメッセージを送信する。このとき状態変化条件としては「外勤者端末602のユーザ622の場所が居室である状態が10分以上継続し、かつ、内勤者端末601のユーザ621のプレゼンス状態がopenである状態が10分以上継続した場合にだけ通知」という条件を表す以下のメッセージをSIPボディ部に記述する。
「sip:602@example.com;place="desk"; Continuing_time>=10min AND
sip:601@example.com;presence="open"; Continuing_time>=10min」
内勤者端末601はSUBSCRIBEメッセージを受信すると、外勤者端末602に対して場所状態の通知要求を行うSUBSCRIBEメッセージを送信する。外勤者端末602はSUBSCRIBEメッセージを受信すると場所状態を記述したNOTIFYメッセージを内勤者端末601に送信する。内勤者端末601は外勤者端末602からNOTIFYメッセージを受信した場合、または内勤者端末601のユーザ621自身の場所状態が変化した場合に状態変化条件に記述された時間分のタイマーを設定し、タイマー終了後にユーザ621の状態が変化していない場合、状態変化条件に記述された他の機器またはユーザの状態の履歴を参照し、他の機器またはユーザの状態も状態変化条件を満たす場合だけ管理者端末603に対してNOTIFYメッセージを送信する。
次に内勤者端末601の動作について詳細を説明する。なお、内勤者端末601の構成については、内勤者端末601を構成する状態管理データベースは、他の機器のURIと状態とともに内勤者端末601自体または内勤者端末601を操作するユーザ621の状態も保存し、内勤者端末601を構成する状態変化条件保持部は内勤者端末601自体またはユーザ621の状態変化条件も保存し、内勤者端末601を構成する制御部は、状態管理データベースに保存された内勤者端末601自体またはユーザ621の状態変化情報も状態変化条件保持部に保存された状態変化条件と比較して、状態が所定の程度を超えて変化したか否かを判定するようになっている点以外は第6の実施の形態のプレゼンスサーバ装置400と同様であるため同一の符号を付して説明を省略する。また、管理者端末603の構成と動作については第6の実施の形態の管理者端末103と同様であるため同一の符号を付して説明を省略する。
最初に内勤者端末601がSUBSCRIBEメッセージを受信する際に実行する動作について図27と図32を参照して説明する。図32は本実施の形態における内勤者端末601がSUBSCRIBEメッセージを受信する際に実行する動作を示すフロー図である。
最初に通信部505がSUBSCRIBEメッセージを受信し(S801)、受信したSUBSCRIBEメッセージを制御部501に送る(S802)。制御部501はSUBSCRIBEメッセージに記述された状態変化条件と通知先URIを状態変化条件保持部503に保存する(S803)。ここでは状態変化条件が以下のように記述され、通知先URIとして管理者端末603のURIがContactヘッダに記述されているものとする。
「sip:602@example.com;place="desk"; Continuing_time>=10min AND
sip:601@example.com;presence="open"; Continuing_time>=10min」
その後、状態変化条件に記述された外勤者端末602のURIおよび状態変化条件をメッセージ生成部504に送る(S804)。メッセージ生成部504は受け取ったURIをRequest-URIに記述したSUBSCRIBEメッセージを生成し(S805)、それを通信部505に送る(S806)。通信部505はSUBSCRIBEメッセージを外勤者端末602に送信し(S807)、SUBSCRIBEメッセージに対するNOTIFYメッセージの受信を待つ(S808)。
外勤者端末602からのNOTIFYメッセージを通信部505が受信すると(S809)、通信部505は受信したNOTIFYメッセージを制御部501に送る(S810)。制御部501はNOTIFYメッセージに記述された状態を状態管理データベース502に保存する(S811)。その後、外勤者端末602はSUBSCRIBEメッセージに対する最初のNOTIFYメッセージを送信してもよい。
次に内勤者端末601がNOTIFYメッセージを送信する際に実行する動作について図27と図33を参照して説明する。図33は本実施の形態における内勤者端末601がNOTIFYメッセージを送信する際に実行する動作を示すフロー図である。
通信部505は最初に外勤者端末602からのNOTIFYメッセージを受信するか、または内勤者端末601自身の状態が変化するのを待つ(S901)、外勤者端末602からNOTIFYメッセージを受信するか、内勤者端末601自身の状態が変化すると(S902)、受信したNOTIFYメッセージに記述された状態か、または内勤者端末601自身の変化した状態を状態管理データベース502に保存する(S903)。ここで、S904からS914までの工程については第6の実施の形態のS604からS614までの工程と同様であるため説明を省略する。
なお、S904からS914までのステップは内勤者端末601自身の状態が変化し、状態管理データベース502に保存されている状態を変更した場合にも実行され、必要に応じてNOTIFYメッセージが生成される。
以上説明したように本実施の形態では、管理者端末603が内勤者端末601に対して状態変化条件を記述したSUBSCRIBEメッセージを送信し、内勤者端末601は状態変化条件に記述された状態を取得するために外勤者端末602にSUBSCRIBEメッセージを送信し状態を取得し、状態変化条件を満たすときだけNOTIFYメッセージを送信する例を示した。これによって、プレゼンスサーバ装置が無い場合でも状態変化条件を指定することができ、ネットワークリソースを有効に使用できるとともに、内勤者端末601と管理者端末603のNOTIFYメッセージの送受信に関わる負荷が軽減される。また、本実施の形態のような構成をとることにより、サーバメンテナンスの必要がなくなる。
なお、本実施の形態ではプレゼンスサーバ装置の機能を実行する内勤者端末601が内勤者端末601、外勤者端末602の状態変化履歴および状態継続時間を保持し、それが状態変化条件を満たしていると判定された場合にNOTIFYメッセージを管理者端末603に送信していたが、状態変化履歴および状態継続時間の保持と状態変化条件の判定の機能を管理者端末603に持たせても、ユーザが必要なタイミングでの状態通知が可能となる。例えばプレゼンスサーバ装置の機能を実行する内勤者端末601が内勤者端末601、外勤者端末602の状態が変化するたびに管理者端末603にNOTIFYメッセージを送信する。管理者端末603は受信したNOTIFYメッセージの状態変化履歴と状態継続時間を保持し、それが管理者端末603に予め設定された状態変化条件を満たしていると判定された場合にユーザ630に対して状態の通知を行うことにより、ユーザ630は必要なタイミングでの状態通知を受けることができる。本実施の形態では、内勤者端末601、外勤者端末602のユーザ621、622が状態発行体を構成し、ユーザ621、622の状態の変化を通知の対象としているが、内勤者端末601、外勤者端末602が状態発行体を構成し、内勤者端末601、外勤者端末602自体の状態の変化を通知の対象とするなど、様々な人やものの状態を通知の対象としてもよいことは言うまでもない。