(57)【要約】 メッセージ交換を行うためのソフトウェアから起動された別のソフトウェアに関連するユーザの状態を、メッセージ交換の相手に知らせる。 クライアント１０では、インスタントメッセンジャ（ＩＭ）にて実現されるメッセージ処理部１３が、操作受付部１２が受け付けたユーザ操作に応じて起動したアプリケーションに関する起動アプリケーション情報と、ＩＭにおけるメッセージの状態を示すＩＭ状態情報とを出力し、ウィンドウ監視部１６が、表示部１４に表示されたウィンドウを監視してウィンドウの状態を示すウィンドウ状態情報を出力する。そして、ルール解釈部１７は、これらの情報が、ルール記憶部１５に記憶されたルール定義における条件を満たす場合に、その条件に対して定義された状態メッセージをメッセージ処理部１３に返して、通信部１１を介して他のクライアントに通知されるようにする。
2010041682.tif 000002
【特許請求の範囲】
【請求項１】
他のユーザとの間でメッセージ交換を行うユーザの状態を当該他のユーザが使用する他の装置に通知する装置であって、
前記ユーザの状態を示すユーザ状態情報を、当該ユーザがメッセージ交換を行うために操作する第１のソフトウェアとは異なる第２のソフトウェアに対応付けた対応情報を記憶する記憶部と、
前記第１のソフトウェアに対するユーザ操作により前記第２のソフトウェアが起動されると、前記対応情報において当該第２のソフトウェアに対応付けられた前記ユーザ状態情報を前記他の装置に通知する通知部と
を備えた、装置。
【請求項２】
前記記憶部は、前記ユーザ状態情報を、前記第２のソフトウェアのウィンドウの状態に関する条件に更に対応付けた前記対応情報を記憶し、
前記通知部は、前記第１のソフトウェアに対するユーザ操作により起動された前記第２のソフトウェアのウィンドウの状態が、前記対応情報における前記ウィンドウの状態に関する条件を満たす場合に、前記ユーザ状態情報を前記他の装置に通知する、請求項１の装置。
【請求項３】
前記ウィンドウの状態に関する条件は、前記第２のソフトウェアのウィンドウに対してユーザ操作が行われているという条件を含む、請求項１の装置。
【請求項４】
前記ウィンドウの状態に関する条件は、前記第２のソフトウェアのウィンドウに対してユーザ操作が行われていないという条件を含む、請求項１の装置。
【請求項５】
前記記憶部は、前記ユーザ状態情報を、前記第２のソフトウェアのウィンドウの状態に関する条件と、前記第１のソフトウェアにおけるメッセージの状態に関する条件とに更に対応付けた前記対応情報を記憶し、
前記通知部は、前記第１のソフトウェアに対するユーザ操作により起動された前記第２のソフトウェアのウィンドウの状態が、前記対応情報における前記ウィンドウの状態に関する条件を満たし、かつ、前記第１のソフトウェアにおけるメッセージの状態が、前記対応情報における前記メッセージの状態に関する条件を満たす場合に、前記ユーザ状態情報を前記他の装置に通知する、請求項１の装置。
【請求項６】
前記ウィンドウの状態に関する条件は、前記第１のソフトウェアのウィンドウに対してユーザ操作が行われ、かつ、前記第２のソフトウェアのウィンドウに対してユーザ操作が行われているという条件を含み、
前記メッセージの状態に関する条件は、前記第１のソフトウェアに対してメッセージが入力中であるという条件を含む、請求項５の装置。
【請求項７】
前記ウィンドウの状態に関する条件は、前記第２のソフトウェアのウィンドウに対してユーザ操作が行われているという条件を含み、
前記メッセージの状態に関する条件は、前記第１のソフトウェアに対してメッセージが入力中でないという条件を含む、請求項５の装置。
【請求項８】
前記ユーザ状態情報は、前記第１のソフトウェア及び前記第２のソフトウェアの少なくとも何れか一方に対するユーザ操作に関する状態を示す、請求項１の装置。
【請求項９】
他のユーザとの間でメッセージ交換を行うユーザの状態を当該他のユーザが使用する他の装置に通知する装置であって、
前記ユーザの状態を示すユーザ状態情報を、当該ユーザがメッセージ交換を行うために操作する第１のソフトウェアとは異なる第２のソフトウェアと、当該第２のソフトウェアのウィンドウの状態に関する第１の条件と、前記第１のソフトウェアにおけるメッセージの状態に関する第２の条件とに対応付けた対応情報を記憶する記憶部と、
前記第１のソフトウェアに対するユーザ操作により前記第２のソフトウェアが起動されると、当該第２のソフトウェアのウィンドウの状態が、前記対応情報における前記第１の条件を満たし、かつ、当該第１のソフトウェアにおけるメッセージの状態が、前記対応情報における前記第２の条件を満たす場合に、前記対応情報において当該第２のソフトウェアと当該第１の条件と当該第２の条件とに対応付けられた前記ユーザ状態情報を前記他の装置に通知する通知部と
を備えた、装置。
【請求項１０】
他のユーザとの間でメッセージ交換を行うユーザの状態を当該他のユーザが使用する他の装置に通知する装置であって、
前記ユーザがメッセージ交換を行うために操作する第１のソフトウェアとは異なる第２のソフトウェアと、当該第１のソフトウェアのウィンドウ及び当該第２のソフトウェアのウィンドウに対してユーザ操作が行われているという第１の条件と、当該第１のソフトウェアに対してメッセージが入力中であるという第２の条件と、前記ユーザが当該第２のソフトウェアを用いて文書を閲覧しながら当該第１のソフトウェアを用いてメッセージを入力している状態を示すユーザ状態情報とを対応付けた対応情報を記憶する記憶部と、
前記第１のソフトウェアに対するユーザ操作により前記第２のソフトウェアが起動されると、当該第１のソフトウェアのウィンドウ及び当該第２のソフトウェアのウィンドウの状態が、前記対応情報における前記第１の条件を満たし、かつ、当該第１のソフトウェアにおけるメッセージの状態が、前記対応情報における前記第２の条件を満たす場合に、前記対応情報において当該第２のソフトウェアと当該第１の条件と当該第２の条件とに対応付けられた前記ユーザ状態情報を前記他の装置に通知する通知部と
を備えた、装置。
【請求項１１】
他のユーザとの間でメッセージ交換を行うユーザの状態を当該他のユーザが使用する他の装置に通知する方法であって、
前記ユーザの状態を示すユーザ状態情報を、当該ユーザがメッセージ交換を行うために操作する第１のソフトウェアとは異なる第２のソフトウェアに対応付けた対応情報を記憶するステップと、
前記第１のソフトウェアに対するユーザ操作により前記第２のソフトウェアが起動されると、前記対応情報において当該第２のソフトウェアに対応付けられた前記ユーザ状態情報を前記他の装置に通知するステップと
を含む、方法。
【請求項１２】
他のユーザとの間でメッセージ交換を行うユーザの状態を当該他のユーザが使用する他の装置に通知する装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
前記ユーザの状態を示すユーザ状態情報を、当該ユーザがメッセージ交換を行うために操作する第１のソフトウェアとは異なる第２のソフトウェアに対応付けた対応情報をメモリに読み込む読込み部と、
前記第１のソフトウェアに対するユーザ操作により前記第２のソフトウェアが起動されたことが当該第１のソフトウェアから伝えられると、前記対応情報において当該第２のソフトウェアに対応付けられた前記ユーザ状態情報が前記他の装置に通知されるように、当該ユーザ状態情報を当該第１のソフトウェアに出力する出力部と
して機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの状態を通知する装置及び方法に関する。特に、本発明は、他のユーザとの間でメッセージ交換を行うユーザの状態を他のユーザが使用する他の装置に通知する装置及び方法に関する。
【背景技術】
【０００２】
近年、様々な場面でＩＭ（Instant Messenger）等のチャットソフトウェアを利用したメッセージ交換が行われている。
メッセージ交換を行うためのツールには、電子メールや電子掲示板もあるが、これらのツールでは、通信相手が在席しているかどうかに関わらず一方的にメッセージを送って返事を待つので、通信相手が不在等の場合は返事を受け取るまでに長期間を要することがある。これに対し、チャットソフトウェアは、比較的リアルタイムなメッセージ交換を可能とするツールである。但し、このようなリアルタイム性から、チャットソフトウェアを利用する場合には、通信相手の現在の状態を知りたいという要求が出て来る。
そこで、インスタントメッセージングにおいて、例えば通信相手が電話中か在席中か不在か、といった通信相手の状態を示すプレゼンス情報を表示する技術が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２９３６９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このように、通信相手のプレゼンス情報を表示する技術は、既に知られていた。
しかしながら、通信相手のプレゼンス情報を表示するだけでは、在席中であることが分かったとしても、メッセージ交換に関連する作業を行っているのか、ただ放置しているだけなのかは分からない。例えば、メッセージ交換に関連する作業を別のソフトウェアで行っているために返事が遅れている場合に、メッセージ交換の相手はそのことを知ることができないという問題点があった。【０００５】
本発明の目的は、メッセージ交換を行うためのソフトウェアから起動された別のソフトウェアに関連するユーザの状態を、メッセージ交換の相手に知らせることにある。
【課題を解決するための手段】
【０００６】
かかる目的のもと、本発明は、他のユーザとの間でメッセージ交換を行うユーザの状態を他のユーザが使用する他の装置に通知する装置であって、ユーザの状態を示すユーザ状態情報を、ユーザがメッセージ交換を行うために操作する第１のソフトウェアとは異なる第２のソフトウェアに対応付けた対応情報を記憶する記憶部と、第１のソフトウェアに対するユーザ操作により第２のソフトウェアが起動されると、対応情報において第２のソフトウェアに対応付けられたユーザ状態情報を他の装置に通知する通知部とを備えた、装置を提供する。【０００７】
ここで、記憶部は、ユーザ状態情報を、第２のソフトウェアのウィンドウの状態に関する条件に更に対応付けた対応情報を記憶し、通知部は、第１のソフトウェアに対するユーザ操作により起動された第２のソフトウェアのウィンドウの状態が、対応情報におけるウィンドウの状態に関する条件を満たす場合に、ユーザ状態情報を他の装置に通知する、ものであってよい。その場合、ウィンドウの状態に関する条件は、第２のソフトウェアのウィンドウに対してユーザ操作が行われているという条件を含む、ものであってよい。或いは、ウィンドウの状態に関する条件は、第２のソフトウェアのウィンドウに対してユーザ操作が行われていないという条件を含む、ものであってよい。【０００８】
また、記憶部は、ユーザ状態情報を、第２のソフトウェアのウィンドウの状態に関する条件と、第１のソフトウェアにおけるメッセージの状態に関する条件とに更に対応付けた対応情報を記憶し、通知部は、第１のソフトウェアに対するユーザ操作により起動された第２のソフトウェアのウィンドウの状態が、対応情報におけるウィンドウの状態に関する条件を満たし、かつ、第１のソフトウェアにおけるメッセージの状態が、対応情報におけるメッセージの状態に関する条件を満たす場合に、ユーザ状態情報を他の装置に通知する、ものであってよい。その場合、ウィンドウの状態に関する条件は、第１のソフトウェアのウィンドウに対してユーザ操作が行われ、かつ、第２のソフトウェアのウィンドウに対してユーザ操作が行われているという条件を含み、メッセージの状態に関する条件は、第１のソフトウェアに対してメッセージが入力中であるという条件を含む、ものであってよい。或いは、ウィンドウの状態に関する条件は、第２のソフトウェアのウィンドウに対してユーザ操作が行われているという条件を含み、メッセージの状態に関する条件は、第１のソフトウェアに対してメッセージが入力中でないという条件を含む、ものであってよい。
また、ユーザ状態情報は、第１のソフトウェア及び第２のソフトウェアの少なくとも何れか一方に対するユーザ操作に関する状態を示す、ものであってよい。【０００９】
更に、本発明は、他のユーザとの間でメッセージ交換を行うユーザの状態を他のユーザが使用する他の装置に通知する装置であって、ユーザの状態を示すユーザ状態情報を、ユーザがメッセージ交換を行うために操作する第１のソフトウェアとは異なる第２のソフトウェアと、第２のソフトウェアのウィンドウの状態に関する第１の条件と、第１のソフトウェアにおけるメッセージの状態に関する第２の条件とに対応付けた対応情報を記憶する記憶部と、第１のソフトウェアに対するユーザ操作により第２のソフトウェアが起動されると、第２のソフトウェアのウィンドウの状態が、対応情報における第１の条件を満たし、かつ、第１のソフトウェアにおけるメッセージの状態が、対応情報における第２の条件を満たす場合に、対応情報において第２のソフトウェアと第１の条件と第２の条件とに対応付けられたユーザ状態情報を他の装置に通知する通知部とを備えた、装置も提供する。【００１０】
更にまた、本発明は、他のユーザとの間でメッセージ交換を行うユーザの状態を他のユーザが使用する他の装置に通知する装置であって、ユーザがメッセージ交換を行うために操作する第１のソフトウェアとは異なる第２のソフトウェアと、第１のソフトウェアのウィンドウ及び第２のソフトウェアのウィンドウに対してユーザ操作が行われているという第１の条件と、第１のソフトウェアに対してメッセージが入力中であるという第２の条件と、ユーザが第２のソフトウェアを用いて文書を閲覧しながら第１のソフトウェアを用いてメッセージを入力している状態を示すユーザ状態情報とを対応付けた対応情報を記憶する記憶部と、第１のソフトウェアに対するユーザ操作により第２のソフトウェアが起動されると、第１のソフトウェアのウィンドウ及び第２のソフトウェアのウィンドウの状態が、対応情報における第１の条件を満たし、かつ、第１のソフトウェアにおけるメッセージの状態が、対応情報における第２の条件を満たす場合に、対応情報において第２のソフトウェアと第１の条件と第２の条件とに対応付けられたユーザ状態情報を他の装置に通知する通知部とを備えた、装置も提供する。【００１１】
また、本発明は、他のユーザとの間でメッセージ交換を行うユーザの状態を他のユーザが使用する他の装置に通知する方法であって、ユーザの状態を示すユーザ状態情報を、ユーザがメッセージ交換を行うために操作する第１のソフトウェアとは異なる第２のソフトウェアに対応付けた対応情報を記憶するステップと、第１のソフトウェアに対するユーザ操作により第２のソフトウェアが起動されると、対応情報において第２のソフトウェアに対応付けられたユーザ状態情報を他の装置に通知するステップとを含む、方法も提供する。【００１２】
更に、本発明は、他のユーザとの間でメッセージ交換を行うユーザの状態を他のユーザが使用する他の装置に通知する装置としてコンピュータを機能させるプログラムであって、コンピュータを、ユーザの状態を示すユーザ状態情報を、ユーザがメッセージ交換を行うために操作する第１のソフトウェアとは異なる第２のソフトウェアに対応付けた対応情報をメモリに読み込む読込み部と、第１のソフトウェアに対するユーザ操作により第２のソフトウェアが起動されたことが第１のソフトウェアから伝えられると、対応情報において第２のソフトウェアに対応付けられたユーザ状態情報が他の装置に通知されるように、ユーザ状態情報を第１のソフトウェアに出力する出力部として機能させる、プログラムも提供する。
【発明の効果】
【００１３】
本発明によれば、メッセージ交換を行うためのソフトウェアから起動された別のソフトウェアに関連するユーザの状態を、メッセージ交換の相手に知らせることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態におけるコンピュータシステムの全体構成を示した図である。
【図２】本発明の実施の形態におけるクライアントの機能構成例を示した図である。
【図３】本発明の実施の形態で用いるルール定義の一例を示した図である。
【図４】本発明の実施の形態のクライアントにおけるメッセージ処理部の動作例を示したフローチャートである。
【図５】本発明の実施の形態のクライアントにおけるウィンドウ監視部の動作例を示したフローチャートである。
【図６】本発明の実施の形態のクライアントにおけるルール解釈部の動作例を示したフローチャートである。
【図７】本発明の実施の形態のクライアントにおけるルール解釈部が取得、生成する情報の一例を示した図である。
【図８】本発明の実施の形態のクライアントにおけるルール解釈部による状態照合処理の詳細な動作例を示したフローチャートである。
【図９】本発明の実施の形態を適用可能なコンピュータのハードウェア構成を示した図である。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照して、本発明を実施するための最良の形態（以下、「実施の形態」という）について詳細に説明する。
まず、本実施の形態が適用されるコンピュータシステムについて説明する。尚、本実施の形態では、チャットソフトウェアとしてＩＭを例にとり説明する。
図１は、このようなコンピュータシステムの全体構成例を示した図である。
図示するように、このコンピュータシステムは、クライアント１０ａと、クライアント１０ｂと、ＩＭサーバ２０とが、ネットワーク８０を介して接続されている。
【００１６】
クライアント１０ａ、１０ｂは、ユーザが使用するＰＣ等の端末装置である。より詳しくは、各ユーザが他のユーザとの間でのメッセージ交換のために用いる端末装置である。尚、図では、２台のクライアントしか示していないが、３台以上のクライアントを設けてもよい。また、以下で、クライアント１０ａ、１０ｂを区別しない場合は、単に「クライアント１０」ということもある。
ＩＭサーバ２０は、ネットワーク８０を介したＩＭによるメッセージ交換を管理するサーバコンピュータである。例えば、同じＩＭセッションに対するユーザＡのクライアント１０ａからの参加要求とユーザＢのクライアント１０ｂからの参加要求に応じて、そのＩＭセッションの識別情報、ユーザＡ及びＢの識別情報、クライアント１０ａ及び１０ｂの識別情報等を管理する。そして、ユーザＡやユーザＢからメッセージが入力された場合には、そのメッセージが相手のクライアント１０へ送信されるように制御する。
ネットワーク８０は、メッセージ交換に用いる通信手段である。このネットワーク８０としては、インターネットやＬＡＮ（Local Area Network）が例示される。
【００１７】
このような構成を有するコンピュータシステムにおいて、本実施の形態では、各クライアント１０にＩＭ状態エージェントがインストールされる。そして、このＩＭ状態エージェントが、ＩＭに関連するユーザの活動に関する情報（以下、「ユーザ活動情報」という）からユーザの状態を判定し、それを逐次相手のクライアント１０に表示する。これにより、ユーザ間のコミュニケーションをより円滑に進められるようにする。
【００１８】
ここで、ユーザ活動情報には、ＩＭ状態情報、起動アプリケーション情報（起動ＡＰ情報）、ウィンドウ状態情報がある。
このうち、ＩＭ状態情報は、ＩＭにおけるメッセージの状態を示す情報である。例えば、ＩＭに対するメッセージテキストの入力状態（メッセージテキストを入力中かどうか）を示す情報がある。
また、起動ＡＰ情報は、ＩＭに対するユーザ操作により起動されたアプリケーションを示す情報である。この情報は、例えば、起動されたアプリケーションの名前や、アプリケーションが起動することで生成されたプロセスを一意に識別するプロセスＩＤを含む。
更に、ウィンドウ状態情報は、ＩＭに対するユーザ操作により起動されたアプリケーションのウィンドウの状態を示す情報である。例えば、ウィンドウのフォーカス状態（ウィンドウに対してユーザ操作が行われているかどうか）や、ウィンドウのフォーカスの遷移状態（そのウィンドウと他のウィンドウに跨ってユーザ操作が行われているか）を示す情報がある。
【００１９】
そして、相手のクライアント１０に表示するユーザの状態は、状態メッセージとして送信する。尚、この状態メッセージは、後述するように、ＩＭ状態情報及びウィンドウ状態情報に関する定義と結び付けてルールとして定義しておく。本実施の形態では、ユーザの状態を示すユーザ状態情報の一例として、状態メッセージを用いている。尚、本明細書において、ユーザの状態とは、クライアント１０で起動されたソフトウェアに対するユーザの操作に関する状態を意味するものとする。そして、この場合、ソフトウェアは、ＩＭであっても、ＩＭから起動されたアプリケーションであっても、その両方であってもよい。
【００２０】
次に、このような動作を行うクライアント１０について詳細に説明する。
まず、クライアント１０の機能構成について説明する。
図２は、クライアント１０の機能構成例を示したブロック図である。
図示するように、クライアント１０は、通信部１１と、操作受付部１２と、メッセージ処理部１３と、表示部１４と、ルール記憶部１５と、ウィンドウ監視部１６と、ルール解釈部１７とを備える。
【００２１】
通信部１１は、通信相手のクライアント１０との間でメッセージの送受信を行う。本実施の形態では、ユーザ状態情報を通知する通知部の一例として、通信部１１を設けている。
操作受付部１２は、クライアント１０に対するキーボードやマウス等を用いたユーザ操作を受け付ける。
メッセージ処理部１３は、クライアント１０のＣＰＵがＩＭのプログラムを実行することにより実現される機能であり、他のクライアント１０との間でのメッセージ交換等、メッセージに関する処理を行う。
表示部１４は、メッセージ処理部１３が起動すると、ＩＭのウィンドウやメッセージ等を表示し、メッセージ処理部１３から他のアプリケーションが起動されると、そのアプリケーションのウィンドウを表示する。
【００２２】
ルール記憶部１５は、ＩＭから起動される可能性のあるアプリケーションごとに、ＩＭにおけるメッセージの状態に関する条件の定義（以下、「ＩＭ状態定義」という）と、アプリケーションのウィンドウの状態に関する条件の定義（以下、「ウィンドウ状態定義」という）とを対応付けたルール定義を記憶する。本実施の形態では、ユーザがメッセージ交換を行うために操作する第１のソフトウェアの一例として、ＩＭを用い、第１のソフトウェアとは異なる第２のソフトウェアの一例として、ＩＭから起動される可能性のあるアプリケーションを用いている。また、ユーザ状態情報を第２のソフトウェアに対応付けた対応情報を記憶する記憶部の一例として、ルール記憶部１５を設けている。
【００２３】
ウィンドウ監視部１６及びルール解釈部１７は、クライアント１０のＣＰＵがＩＭ状態エージェントのプログラムを実行することにより実現される機能であり、ＩＭ状態情報及びウィンドウ状態情報を定期的に検査し、ルール記憶部１５に記憶されたルール定義の中にこの検査の結果に合致するルールがあれば、そのルールに定義されている状態メッセージをメッセージ処理部１３に出力する処理を行う。
具体的には、ウィンドウ監視部１６は、表示部１４に表示されたウィンドウを監視し、ユーザによる作業が行われているウィンドウを検査する。
ルール解釈部１７は、ルール記憶部１５からルール定義を読み込み、ＩＭ状態情報がＩＭ状態定義に合致するか、ウィンドウ状態情報がウィンドウ状態定義に合致するかを判定し、両方とも合致すれば、そのＩＭ状態定義及びウィンドウ状態定義に対応付けられている状態メッセージを取り出してメッセージ処理部１３に渡す。本実施の形態では、ユーザ状態情報を第２のソフトウェアに対応付けた対応情報をメモリに読み込む読込み部の一例として、また、ユーザ状態情報を第１のソフトウェアに出力する出力部の一例として、ルール解釈部１７を設けている。
【００２４】
尚、図では、ＩＭ状態エージェントをＩＭとは別に示したが、ＩＭ状態エージェントは、ＩＭソフトウェアにプラグイン等として組み込んでもよい。
【００２５】
ここで、ルール記憶部１５に記憶されたルール定義について説明する。
図３は、ルール記憶部１５に記憶されたルール定義の具体例を示した図である。尚、図では便宜上、ルール定義例をマークアップランゲージ形式（例えばＸＭＬ）で表記する。  まず、本実施の形態におけるルール定義例は、ＩＭ状態エージェントの動作規則定義（以下、単に「動作規則定義」という）が集まったものになっている。<Rule>〜</Rule>が動作規則定義の一単位であり、これはルール解釈部１７が処理する単位でもある。そして、この動作規則定義は、以下の定義を包括する。これらの定義は、ユーザ活動情報と状態メッセージとを結び付けるためにルール定義に含められる項目である。
【００２６】
第一に、ウィンドウ定義である。これは、Window要素として定義される。ウィンドウ定義は、状態メッセージと結び付けたいユーザ活動情報が行われる対象となるウィンドウ（以下、「対象ウィンドウ」という）を特定する情報を定義する。
Window要素には、次の属性を定義できる。尚、「＊」は必須属性を示す。
・Name＊：アプリケーション名を示す文字列である（正規表現も可能である）。
・Id＊：対象ウィンドウを識別するためのウィンドウＩＤであり、ウィンドウ状態定義等で用いられる。ここで、ウィンドウＩＤ「０」は、ＩＭのウィンドウに付与されるので、Idとしては、「０」以外の数値が指定される。
・LauncherId：起動元アプリケーションのウィンドウのウィンドウＩＤである。但し、定義を省略した場合は、起動元アプリケーションは任意とみなされる。
【００２７】
図では、ＩＭ（ウィンドウＩＤ「０」）から起動されたアプリケーションである「PDF Reader」のウィンドウのウィンドウＩＤを「１」と定義している。
また、次のような記述を行うことも可能である。この記述では、ウィンドウＩＤ「１」のウィンドウを開いているアプリケーションから起動されたアプリケーションである「Web Browser」のウィンドウのウィンドウＩＤを「２」と定義している。
<Window Name=“Web Browser” Id=“2” LauncherId=“1”/>
【００２８】
第二に、ウィンドウ状態定義である。これは、WindowState要素として定義される。ウィンドウ状態定義は、対象ウィンドウの状態に関する条件を定義する。
WindowState要素には、次の属性を定義できる。尚、下記Focus、Visibleの何れか一方を定義することが必須である。
・Focus：フォーカス遷移関係にあるウィンドウのウィンドウＩＤのリストである。但し、リストに否定記号を付加することにより、リスト内のウィンドウＩＤのウィンドウの全てがフォーカスされていないという条件を定義してもよい。また、リスト内のウィンドウＩＤに否定記号を付加することにより、そのウィンドウＩＤのウィンドウがフォーカスされていないという条件を定義してもよい。
・Visible：アイコン化等されずに開かれているウィンドウのウィンドウＩＤのリストである。但し、リストに否定記号を付加することにより、リスト内のウィンドウＩＤのウィンドウの全てがアイコン化されているという条件を定義してもよい。また、リスト内のウィンドウＩＤに否定記号を付加することにより、そのウィンドウＩＤのウィンドウがアイコン化されているという条件を定義してもよい。
ここで、リストとは、ウィンドウＩＤをカンマで区切って並べたものであり、その中に「０」があれば、それはＩＭのウィンドウを表す。また、否定記号としては、如何なる記号を用いてもよいが、例えば「！」といった記号を用いることが考えられる。
【００２９】
図では、ＩＭのウィンドウ（ウィンドウＩＤ「０」）とＰＤＦ閲覧ソフトウェア「PDF Reader」のウィンドウ（ウィンドウＩＤ「１」）とがフォーカス遷移関係にある状態を定義している。
また、次のような記述を行うことも可能である。この記述では、ＩＭのウィンドウ（ウィンドウＩＤ「０」）とウィンドウＩＤ「２」のウィンドウがアイコン化されずに開かれており、ウィンドウＩＤ「１」のウィンドウとウィンドウＩＤ「４」のウィンドウが遷移関係にある状態を定義している。
<WindowState Visible=“0,2”Focus=“1,4”/>
【００３０】
第三に、ＩＭ状態定義である。これは、IMState要素として定義される。ＩＭ状態定義は、ＩＭアプリケーションの状態に関する条件を定義する。
IMState要素には、次の属性を定義できる。
・Input：ＩＭに対してメッセージが入力中かどうかを示す数値である。例えば、0（未入力）、1（入力中）の何れかの数値をとる。
・Presence：ＩＭのプレゼンス状態を示す数値である。数値はＩＭの種類によるが、一般的なプレゼンス状態を表す場合は、例えば、0 - Active (応答可）、1 - Away（離席中）、2 - Idle（操作なし）、3 - Inactive（応答不可）等を定義できる。
【００３１】
図では、ＩＭに対してメッセージが入力中である状態を示している。
また、次のような記述を行うことも可能である。この記述では、ＩＭのプレゼンス状態がIdleでメッセージが入力中である状態を定義している。
<IMState Presence=“2” Input=“1”/>
【００３２】
第四に、ＩＭ状態変更定義である。これは、Status要素として定義される。ＩＭ状態変更定義は、ルール定義に定義された条件を実際の状態が満たした場合に変更するＩＭ状態を定義する。本実施の形態では、特に、ルールにマッチした場合にＩＭに通知する状態変更命令（状態メッセージ更新等）の定義を含む。
Status要素には、次の属性を定義できる。
・Message：ＩＭの状態メッセージ変更を指示する文字列である。状態メッセージそのものを定義する。
・Presence：ＩＭのプレゼンス状態の変更を指示する数値である。数値はＩＭの種類によるが、一般的なプレゼンス状態を表す場合は、例えば、0 - Active (応答可）、1 - Away（離席中）、2 - Idle（操作なし）、3 - Inactive（応答不可）等を定義できる。尚、これを定義しない場合は、プレゼンス状態は変更されない。
【００３３】
図では、ルール定義で定義された条件にマッチした場合に、ＩＭの状態メッセージを「資料コメント中」に変更するように定義している。
【００３４】
尚、図３に示したルール定義例は、例えば、次のようなシナリオの場合に適用される。（１）ＩＭのファイル送信機能で、ＰＤＦファイルが送られてくる。
（２）ユーザが、例えばＩＭ上でＰＤＦファイルを開く操作を行うことにより、ＰＤＦ閲覧ソフトウェア「PDF Reader」を起動する。このとき、ＩＭは、起動したＰＤＦ閲覧ソフトウェアのプロセスＩＤ等をＩＭ状態エージェントに渡す。
（３）ＩＭ状態エージェントが定期的に前景ウィンドウ（foregroundウィンドウ）、つまり、操作中のウィンドウを監視する。
（４）その結果、前景ウィンドウ（foregroundウィンドウ）は、ＰＤＦ閲覧ソフトウェアのウィンドウ（ウィンドウＩＤ「１」）かＩＭのウィンドウ（ウィンドウＩＤ「０」）であった。尚、ＰＤＦ閲覧ソフトウェアのウィンドウがＩＭから起動されたものかどうかは、（２）でＩＭから渡されたプロセスＩＤで分かる。そして、上記のウィンドウの状態は、ルール定義のWindowState要素に記述された条件を満足する。
（５）更に、ＩＭの入力ウィンドウにはテキストが入力されていた。このような状態は、ルール定義のIMState要素に記述された条件を満足する。
（６）ＩＭ状態エージェントは、ルール定義のStatus要素に従い、ＩＭに「資料コメント中」という状態メッセージに変更する命令を通知する。
【００３５】
以下、本実施の形態の動作について説明する。尚、図３のルール定義では、Window要素に、LauncherId属性として「０」以外の値も設定できるようにしたが、以下では、簡単のために、「０」のみを設定できることとする。また、図３のルール定義では、WindowState要素に、Focus属性とVisible属性とを定義できるようにしたが、以下では、簡単のために、Focusのみを定義できることとする。
【００３６】
図４は、本実施の形態におけるメッセージ処理部１３の動作例を示したフローチャートである。
まず、メッセージ処理部１３は、操作受付部１２からユーザ操作があった旨を伝えられたかどうかを判定する（ステップ１０１）。そして、ユーザ操作があった旨を伝えられていなければ、ステップ１０１を繰り返し、ユーザ操作があった旨を伝えられるまで待つ。また、ユーザ操作があった旨を伝えられれば、そのユーザ操作の内容を判定する（ステップ１０２）。
【００３７】
ここで、ユーザ操作の内容が、アプリケーションを起動する操作であると判定されたとする。
その場合、メッセージ処理部１３は、指示されたアプリケーションを起動する（ステップ１０３）。そして、起動したアプリケーションに関する起動ＡＰ情報を、例えば、ルール解釈部１７が参照可能な起動ＡＰ情報用のメモリに格納することにより、ルール解釈部１７に伝える（ステップ１０４）。ここで、メッセージ処理部１３は、起動されたアプリケーションの種類を認識できるものとし、アプリケーション名を起動ＡＰ情報に含める。また、起動ＡＰ情報には、アプリケーションを起動することで生成されたプロセスを識別するプロセスＩＤも含める。
【００３８】
また、ユーザ操作の内容が、ＩＭの状態を変更する操作であると判定されたとする。
その場合、メッセージ処理部１３は、ＩＭ状態情報を、例えば、ルール解釈部１７が参照可能なＩＭ状態情報用のメモリに格納することにより、ルール解釈部１７に伝える（ステップ１０５）。ここで、ＩＭ状態情報としては、ＩＭに対してテキストが入力中であることを示す情報が例示される。
一方、ユーザ操作の内容が、それ以外であると判定された場合は、そのユーザ操作に応じた処理を行い終了する。尚、このユーザ操作に基づく処理は本発明とは関係ないので省略する。
【００３９】
図５は、本実施の形態におけるウィンドウ監視部１６の動作例を示したフローチャートである。
まず、ウィンドウ監視部１６は、ウィンドウ監視の時期が到来したかどうかを判定する（ステップ１２１）。そして、ウィンドウ監視の時期が到来していなければ、ステップ１２１を繰り返し、時期が到来するのを待つ。また、ウィンドウ監視の時期が到来していれば、表示部１４に表示されたウィンドウのうち前景ウィンドウについて、そのウィンドウを開いたアプリケーションのプロセスＩＤを取得し、メモリに蓄積する（ステップ１２２）。尚、表示部１４に表示されたウィンドウのうちの前景ウィンドウは、例えば、ＡＰＩのGetForegroundWindowを用いて特定することができる。その後、ウィンドウ監視部１６は、前景ウィンドウのプロセスＩＤを規定回数取得したかどうかを判定する（ステップ１２３）。
【００４０】
その結果、前景ウィンドウのプロセスＩＤを規定回数取得していない場合は、ステップ１２１〜１２３の処理を繰り返す。
一方、前景ウィンドウのプロセスＩＤを規定回数取得した場合は、これまでにステップ１２２で取得されたプロセスＩＤをメモリから取り出す（ステップ１２４）。そして、ルール解釈部１７が参照可能なウィンドウ状態情報用のメモリに格納することにより、ルール解釈部１７に伝える（ステップ１２５）。
【００４１】
図６は、本実施の形態におけるルール解釈部１７の動作例を示したフローチャートである。尚、この動作に先立ち、ルール解釈部１７が参照可能なメモリには、メッセージ処理部１３が起動ＡＰ情報及びＩＭ状態情報を格納し、ウィンドウ監視部１６がウィンドウ状態情報を格納しているものとする。
まず、ルール解釈部１７は、ルール記憶部１５からルール定義を読み込む（ステップ１４１）。
次に、ルール解釈部１７は、ウィンドウ監視部１６がメモリに格納したウィンドウ状態情報を取得する（ステップ１４２）。ここで、ウィンドウ状態情報には、現在作業中のウィンドウを開いたアプリケーションのプロセスＩＤが含まれる。
【００４２】
また、ルール解釈部１７は、メッセージ処理部１３がメモリに格納した起動ＡＰ情報を取得する（ステップ１４３）。ここで、起動ＡＰ情報には、アプリケーション名とプロセスＩＤとが含まれる。
そして、ルール解釈部１７は、ステップ１４２で取得したウィンドウ状態情報に含まれるプロセスＩＤを、ステップ１４３で取得した起動ＡＰ情報を参照してアプリケーション名に置き換えることにより、新たなウィンドウ状態情報を生成する（ステップ１４４）。尚、ＩＭ状態エージェントは、その起動時にＩＭのプロセスＩＤを把握しているものとし、その把握しているプロセスＩＤが、ウィンドウ状態情報に含まれるプロセスＩＤの中にあれば、そのプロセスＩＤをアプリケーション名「ＩＭ」に置き換える。また、ステップ１４３で取得した起動ＡＰ情報に含まれるプロセスＩＤが、ウィンドウ状態情報に含まれるプロセスＩＤの中になければ、そのプロセスＩＤを例えば空白に置き換えて、現在作業中のウィンドウの中に、ＩＭから起動されていないウィンドウがあることを明示するものとする。
更に、ルール解釈部１７は、メッセージ処理部１３がメモリに格納したＩＭ状態情報を取得する（ステップ１４５）。
【００４３】
その後、ルール解釈部１７は、ウィンドウ状態情報とウィンドウ状態定義、及び、ＩＭ状態情報とＩＭ状態定義の照合処理を行う（ステップ１４６）。そして、ウィンドウ状態情報とウィンドウ状態定義が整合し、ＩＭ状態情報とＩＭ状態定義が整合するかどうかを判定する（ステップ１４７）。
その結果、両方が整合する場合には、ステップ１４１で読み込んだルール定義のうちのＩＭ状態変更定義に従い、ＩＭ状態変更命令をメッセージ処理部１３に伝える（ステップ１４８）。ここで、ＩＭ状態変更命令としては、例えば、ウィンドウ状態定義及びＩＭ状態定義に対応付けられたＩＭの状態メッセージの変更命令がある。尚、このような動作によりＩＭの状態メッセージを伝えられると、メッセージ処理部１３は、状態メッセージを通信部１１に受け渡し、通信部１１が状態メッセージを他のクライアント１０に送信することになる。
一方、何れかが整合しなければ、ＩＭ状態変更命令をメッセージ処理部１３に伝えることなく処理を終了する。
【００４４】
ここで、ステップ１４２で取得する情報、ステップ１４３で取得する情報、ステップ１４４で生成する情報の具体例を説明する。
図７（ａ）は、ステップ１４２で取得する情報の具体例を示した図である。
ここでは、２つのウィンドウがフォーカス遷移関係にあるものとし、これら２つのウィンドウを開いたアプリケーションのプロセスＩＤをテーブル形式で示している。これらのプロセスＩＤのうち、「１２２２」はＩＭのプロセスＩＤであり、「１２３４」は「PDF Reader」のプロセスＩＤであるものとする。
【００４５】
図７（ｂ）は、ステップ１４３で取得する情報の具体例を示した図である。
ここでは、「PDF Reader」が起動されたものとし、プロセスＩＤ「１２３４」とアプリケーション名「PDF Reader」との対応をテーブル形式で示している。
【００４６】
図７（ｃ）は、ステップ１４４で生成する情報の具体例を示した図である。
まず、ＩＭ状態エージェントは、図７（ａ）のプロセスＩＤ「１２２２」がＩＭのプロセスＩＤであることを把握しているので、同図１行目の「１２２２」を「ＩＭ」に置き換える。また、図７（ｂ）のプロセスＩＤとアプリケーションとの対応を参照して、図７（ａ）２行目のプロセスＩＤ「１２３４」を「PDF Reader」に置き換える。これにより、ウィンドウ状態情報は、フォーカス遷移関係にある２つのウィンドウを開いたアプリケーション名をテーブル形式で示したものとして再生成される。
【００４７】
このように、図７（ｃ）のようなウィンドウ状態情報が生成されていることを前提として、図６のステップ１４６の状態照合処理が行われる。
図８は、この照合処理の動作例を示したフローチャートである。
まず、ルール解釈部１７は、図６のステップ１４１で読み込んだルール定義のうちのウィンドウ定義に従い、アプリケーション名とウィンドウＩＤとの対応情報を生成する（ステップ１６１）。例えば、図３に示した動作規則定義が読み込まれたとすると、アプリケーション名「PDF Reader」とウィンドウＩＤ「１」との対応情報が生成される。また、他にも動作規則定義があるとすると、その動作規則定義も参照して、アプリケーション名とウィンドウＩＤとの対応情報を生成する。
【００４８】
次に、ルール解釈部１７は、図６のステップ１４３で取得した起動ＡＰ情報に含まれるアプリケーション名が記述された動作規則定義を読み込む（ステップ１６２）。
また、ルール解釈部１７は、ウィンドウ状態定義のFocus属性に含まれるウィンドウＩＤのリストを取り出す（ステップ１６３）。そして、リスト内の各ウィンドウＩＤに対応するアプリケーションを特定し、アプリケーションのリストを生成する（ステップ１６４）。尚、ウィンドウＩＤが「０」であれば、アプリケーションは「ＩＭ」とし、ウィンドウＩＤが「０」以外であれば、ステップ１６１で生成したアプリケーション名とウィンドウＩＤとの対応情報に基づいて、アプリケーションを特定する。例えば、図３に示したルール定義の場合、ウィンドウＩＤのリストは「０」、「１」となっている。ここで、ウィンドウＩＤ「０」からはアプリケーションとしてＩＭを特定し、ウィンドウＩＤ「１」からは、ステップ１６１で生成された対応情報に基づいて、アプリケーション「PDF Reader」を特定する。
【００４９】
その後、ルール解釈部１７は、ステップ１６４で生成されたアプリケーションのリストが、ステップ１４４で生成されたウィンドウ状態情報に含まれるアプリケーションと一致するかどうかを判定する（ステップ１６５）。
その結果、一致した場合、ルール解釈部１７は、ＩＭ状態定義のinput属性に設定された値を取得する（ステップ１６６）。そして、この値によって示される状態が、ステップ１４５で取得されたＩＭ状態情報と一致するかどうかを判定する（ステップ１６６）。
ここで、一致した場合、ルール解釈部１７は、一致する旨と、ＩＭ状態変更定義に記述されたＩＭ状態変更命令とを出力する（ステップ１６８）。本実施の形態では、特に、ＩＭ状態メッセージを変更する命令を出力する。
一方、ステップ１６５やステップ１６７で一致しなかった場合、ルール解釈部１７は、一致しない旨をメッセージ処理部１３に出力する（ステップ１６９）。
【００５０】
尚、この動作例では、図３のルール定義に関して説明した否定記号を考慮しなかったが、否定記号を考慮した動作としてもよい。
例えば、ウィンドウＩＤのリストに否定記号が付加されている場合、ステップ１６５では、ステップ１６４で生成したリスト内のアプリケーションの何れも、ステップ１４４で生成されたウィンドウ状態情報（例えば、図７（ｃ）の情報）に含まれない、という条件が満たされているかどうかを判定すればよい。そして、条件が満たされていれば、ステップ１６６へ進み、条件が満たされていなければ、ステップ１６９へ進めばよい。
【００５１】
また、リスト内のウィンドウＩＤに否定記号が付加されている場合、ステップ１６５では、ステップ１６４で生成したリスト内のアプリケーションのうちウィンドウＩＤに否定記号が付加されていなかったものについては、そのアプリケーションが、ステップ１４４で生成されたウィンドウ状態情報（例えば、図７（ｃ）の情報）に含まれる、という条件が満たされているかを判定すればよい。また、ステップ１６４で生成したリスト内のアプリケーションのうちのウィンドウＩＤに否定記号が付加されていたものについては、そのアプリケーションが、ステップ１４４で生成されたウィンドウ状態情報（例えば、図７（ｃ）の情報）に含まれない、という条件が満たされているかを判定すればよい。そして、リスト内の全てのアプリケーションについて、前者の条件及び後者の条件のうちの該当する条件が満たされていれば、ステップ１６６へ進み、リスト内の何れかのアプリケーションについて、前者の条件及び後者の条件のうちの該当する条件が満たされていなければ、ステップ１６９へ進めばよい。
【００５２】
但し、図７及び図８を参照して説明したマッチングアルゴリズムはあくまで一例であり、その他の如何なるマッチングアルゴリズムを採用してもよい。
【００５３】
以上、本発明の実施の形態について詳細に説明してきた。
ところで、本実施の形態では、ＩＭのウィンドウと「PDF Reader」のウィンドウとの間でフォーカスが遷移しており、ＩＭに対してメッセージが入力中である場合に、「資料コメント中」、つまり、ユーザが「PDF Reader」を用いて文書を閲覧しながらＩＭにメッセージを入力していることを示す状態メッセージを通知するようにした。しかしながら、どのような条件が満たされた場合にどのような状態メッセージを通知するかについては、他にも様々な態様が考えられる。
例えば、Focus=“1”、Input=“0”という条件を定義し、この条件が満たされた場合に、ユーザがＩＭにメッセージを入力する前に「PDF Reader」を用いて文書を閲覧していることを示す状態メッセージを通知するようにしてもよい。
【００５４】
また、ＩＭにおけるメッセージの状態に関する条件を考慮しない態様も考えられる。
例えば、Focus=“1”という条件だけを定義し、この条件が満たされた場合に、ユーザがメッセージ交換のための「PDF Reader」を用いた作業を行っていることを示す状態メッセージを通知するようにしてもよい。
また、Focus=!“1”（「！」は否定記号）という条件だけを定義し、この条件が満たされた場合に、ユーザがメッセージ交換のための「PDF Reader」を用いた作業を行っていないことを示す状態メッセージを通知するようにしてもよい。
【００５５】
更に、ウィンドウの状態に関する条件を考慮しない態様も考えられる。
この場合は、ユーザの状態を示すユーザ状態情報を「PDF Reader」に対応付けて記憶しておき、ＩＭからを「PDF Reader」が起動されると、その対応付けられたユーザ状態情報を通知することになる。
【００５６】
また、本実施の形態では、ＩＭで送付するデータをＰＤＦファイルとし、ＩＭからＰＤＦ閲覧ソフトウェアを起動してこのＰＤＦファイルを閲覧する場面を想定した。しかしながら、これはあくまで一例であり、ＩＭで送付するデータは如何なる形式のデータでもよく、如何なるソフトウェアを用いてこのデータを閲覧するようにしてもよい。
更に、本実施の形態では、メッセージ交換の相手が１人であることを想定したが、複数の相手と個別にチャットをする場合は、各チャットセッションについて上記プロセスを適用すればよい。
【００５７】
以上説明したように、本実施の形態では、ＩＭから起動される可能性のあるアプリケーションごとに、ウィンドウの状態に関する条件と、ＩＭにおけるメッセージに関する条件と、ユーザの状態を示す状態メッセージとを対応付けておき、実際の状態がこれらの条件を満たした場合に、状態メッセージを通知するようにした。これにより、電話中、在席中、不在中といった種類のプレゼンス情報ではなく、ＩＭから起動されるソフトウェアを用いてチャットに関連する作業が行われているかという観点からのプレゼンス情報を、通信相手に提供できるようになった。
また、ユーザ活動情報の取得は、ＩＭソフトウェアの変更とウィンドウシステムの機能を使用することで大抵は可能となるため、アプリケーションに対する変更は必要ない。
【００５８】
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。図９は、このようなコンピュータのハードウェア構成の一例を示した図である。図示するように、コンピュータは、演算手段であるＣＰＵ（Central Processing Unit）９０ａと、Ｍ／Ｂ（マザーボード）チップセット９０ｂを介してＣＰＵ９０ａに接続されたメインメモリ９０ｃと、同じくＭ／Ｂチップセット９０ｂを介してＣＰＵ９０ａに接続された表示機構９０ｄとを備える。また、Ｍ／Ｂチップセット９０ｂには、ブリッジ回路９０ｅを介して、ネットワークインターフェイス９０ｆと、磁気ディスク装置（ＨＤＤ）９０ｇと、音声機構９０ｈと、キーボード／マウス９０ｉと、フレキシブルディスクドライブ９０ｊとが接続されている。
【００５９】
尚、図９において、各構成要素は、バスを介して接続される。例えば、ＣＰＵ９０ａとＭ／Ｂチップセット９０ｂの間や、Ｍ／Ｂチップセット９０ｂとメインメモリ９０ｃの間は、ＣＰＵバスを介して接続される。また、Ｍ／Ｂチップセット９０ｂと表示機構９０ｄとの間は、ＡＧＰ（Accelerated Graphics Port）を介して接続されてもよいが、表示機構９０ｄがＰＣＩ Ｅｘｐｒｅｓｓ対応のビデオカードを含む場合、Ｍ／Ｂチップセット９０ｂとこのビデオカードの間は、ＰＣＩ Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バスを介して接続される。また、ブリッジ回路９０ｅと接続する場合、ネットワークインターフェイス９０ｆについては、例えば、ＰＣＩ Ｅｘｐｒｅｓｓを用いることができる。また、磁気ディスク装置９０ｇについては、例えば、シリアルＡＴＡ（AT Attachment）、パラレル転送のＡＴＡ、ＰＣＩ（Peripheral Components Interconnect）を用いることができる。更に、キーボード／マウス９０ｉ、及び、フレキシブルディスクドライブ９０ｊについては、ＵＳＢ（Universal Serial Bus）を用いることができる。
【００６０】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム（装置又は機器）、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスク−リード／ライト（ＣＤ−Ｒ／Ｗ）及びＤＶＤが含まれる。
【００６１】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００６２】
１０…クライアント、１１…通信部、１２…操作受付部、１３…メッセージ処理部、１４…表示部、１５…ルール記憶部、１６…ウィンドウ監視部、１７…ルール解釈部、２０…ＩＭサーバ
【図１】
2010041682.tif 000003
【図２】
2010041682.tif 000004
【図３】
2010041682.tif 000005
【図４】
2010041682.tif 000006
【図５】
2010041682.tif 000007
【図６】
2010041682.tif 000008
【図７】
2010041682.tif 000009
【図８】
2010041682.tif 000010
【図９】
2010041682.tif 000011
【国際調査報告】
2010041682.tif 000012
2010041682.tif 000013