(57)【要約】【課題】  マウスポインタに追従して広告を表示する際、ユーザが他のアプリケーションで業務を行っている間でも、計算機に負荷を掛けずに複数の広告を画面上に表示させること。【解決手段】  端末装置と通信ネットワークを介して繋がり、通知情報を端末装置２へ配信するサーバ装置を有する情報通知システムであって、サーバ装置は、通知対象に関連付けて、アイコン情報および通知情報を保存する手段と、アイコン情報および通知情報を端末装置へ送信する手段とを備え、端末装置は、サーバ装置から送られてくるアイコン情報および通知情報を取得する手段と、マウスポインタの位置を取得する手段と、マウスポインタ近傍の領域に前記アイコンを表示すると共に通知情報をスクロール表示する手段と、マウスポインタの反復移動の速度を検出する手段と、検出した反復移動の速度をもとに表示されている通知情報を順に切り替える手段とを備える。【選択図】      図３
2005122507.tif 000002
【特許請求の範囲】
【請求項１】
端末装置と通信ネットワークを介して繋がり、通知情報を端末装置へ配信するサーバ装置を有する情報通知システムであって、
前記サーバ装置は、
通知対象に関連付けて、アイコン情報および通知情報を保存する手段と、
前記アイコン情報および前記通知情報を端末装置へ送信する手段と、を備え、
前記端末装置は、
前記サーバ装置から送られてくるアイコン情報および通知情報を取得する手段と、
マウスポインタの位置を取得する手段と、
前記マウスポインタ近傍の領域にアイコンを表示すると共に通知情報をスクロール表示する手段と、
マウスポインタの反復移動の速度を検出する手段と、
前記反復移動の速度をもとに表示されている通知情報を順に切り替える手段と、
を備えたことを特徴とする情報通知システム。
【請求項２】
サーバから通知情報を通信ネットワーク経由で端末装置の画面上に表示させる情報通知方法であって、前記通知情報を端末装置の画面上に表示されるマウスポインタとは、所定の間隔をおいて設定する領域に、通知対象に関連付けられたアイコンを表示すると共に通知情報をスクロールして表示し、前記マウスポインタの移動に追随して移動制御することを特徴とする情報通知方法。
【請求項３】
表示すべき通知対象が複数存在する場合は、一の通知対象の通知情報を表示すると共に、他の通知対象に対応するアイコンを前記一の通知対象のアイコンの近傍に縮小表示することを特徴とする請求項２記載の情報通知方法。
【請求項４】
前記通知情報に対応する詳細情報取得先アドレス情報を画面所定エリアに保存し、マウスポインタで指示することによって、当該アドレスにアクセスして、詳細情報を取得して予め設定されたブラウザ上に表示されることを特徴とする請求項２または３に記載の情報通知方法。
【請求項５】
端末装置上で動作するプログラムであって、
サーバからアイコン情報と通知情報を取得する処理と、
マウスポインタの位置を取得する処理と、
前記マウスポインタ近傍の領域にアイコンを表示すると共に通知情報をスクロール表示する処理と、
マウスポインタの反復移動の速度を検出する処理と、
前記反復移動の速度をもとに表示されている通知情報を順に切り替える処理と、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネット等の通信ネットワーク経由で広告情報等の通知情報をユーザの端末に配信する情報通知システム、情報通知方法、および、プログラムに関する。
【背景技術】
【０００２】
近時、インターネットの普及により、多くの人々がこの通信ネットワークに接続し、様々な情報の入手や発信を行っている。インターネットのWWW（World Wide Web）や電子メールサービスを多くの人間が利用するにいたった結果、インターネットを利用した広告が一般的に行われるようになってきた。
インターネットを使った広告にはたくさんの種類があり、その代表的なものにバナー広告がある。インターネットを使えば、従来のテレビや新聞等のマス広告に比べかかる広告料金は少なくて済む。バナー広告は、ホームページ上に掲載されているバナー（旗）をクリックして広告主のホームページや商品情報等へジャンプするものである。
ところで、このバナー広告の形態を用いて表示する場合、端末装置画面上にある一定の場所に固定された範囲でしかバナー広告を張り付けることができない。このため、その固定された場所から離れた場合、すなわち、バナー広告以外の表示内容を閲覧しようとして画面をスクロールしたときに、表示されていたバナー広告は画面から消え、見えなくなってしまうという不都合があった。ブラウザで表示する際にフレーム分割を行い、バナー広告を常時表示することも考えられるが、広告以外の本来のコンテンツ情報を表示するスペースが狭くなるという問題が生ずる。
【０００３】
この問題に対しては、端末画面上に表示されるマウスポインタとは所定の間隔をおいて設定される領域に表示される広告情報を、マウスポインタの移動に追随して移動制御するか、あるいは、移動オブジェクト軌道設定部により設定された所定の軌道に沿って移動する移動オブジェクトをマウスポインタで捕らえ、クリックすることにより広告主のホームページにジャンプさせることによって、広告が画面から消えることなく、インターネット広告表示を実現するという方法が提案されている。（例えば、特許文献１を参照）。
【０００４】
しかしながら、このようにマウスポインタに広告情報を追従させるやり方は、ユーザの注意を引くという効果がある一方、計算機の負荷が過大となり、広告表示を目的とするＷｅｂ画面にこの方法で表示させて使用することは可能であるものの、ユーザが端末で他の業務を行っているという状況での使用には適さないという問題がある。また、複数の広告情報を表示させようとすると、マウスポインタの周辺が広告情報で煩雑になるという問題もある。さらに、広告の詳細情報を表示させる際、所定の起動に沿って移動する移動オブジェクトをマウスポインタで捕らえてクリックするのは、端末で他の作業を行っているユーザにとっては煩わしい操作となる。
【特許文献１】特開２００２−２０２７４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、上記のかかる事情に鑑みてなされたものであり、マウスポインタに追従して広告やメッセージ等の通知情報を表示する際、ユーザが他のアプリケーションソフトウェア（以下、アプリケーションという）で作業を行っている間でも、計算機に負荷を掛けずに複数の通知情報を画面上に表示させることのできる情報通知システム、情報通知方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の目的を達成するため、本発明に係わる情報通知システムは、端末装置と通信ネットワークを介して繋がり、通知情報を端末装置へ配信するサーバ装置を有する情報通知システムであって、前記サーバ装置は、通知対象に関連付けて、アイコン情報および通知情報を保存する手段と、前記アイコン情報および前記通知情報を端末装置へ送信する手段とを備え、前記端末装置は、前記サーバ装置から送られてくるアイコン情報および通知情報を取得する手段と、マウスポインタの位置を取得する手段と、前記マウスポインタ近傍の領域に前記アイコンを表示すると共に通知情報をスクロール表示する手段と、マウスポインタの反復移動の速度を検出する手段と、前記反復移動の速度をもとに表示されている通知情報を順に切り替える手段とを備えたことを特徴とする。
【０００７】
複数の広告をマウスの動きによって順に切り替え、また長い通知情報はスクロール表示するので、マウス周辺が広告で煩雑になるのを防止することができる。
ここで、通信対象とは、通知情報を送信する単位であって、広告の配信の場合は、ある広告主の広告すべき商品やサービスの単位を意味し、たとえば、ブランド単位でメッセージを送信する場合はそれを含む趣旨である。
通知情報とは、端末に表示すべきメッセージ情報を意味する。たとえば、広告情報や会社内の業務指令などの情報あるいは自己のリマインダとしてのスケジュール情報などが含まれる。
【０００８】
アイコン情報とは、アイコンそのものの他、端末装置にアイコンを表示させるためのアイコンを識別するための情報、あるいは、端末装置側でアイコン自体を保存している場合に、情報の通知に伴って該当するアイコンを選択するための情報も含む趣旨である。また、端末装置側で通知対象情報によって、アイコン表示をさせるような場合は、アイコン情報は通知対象情報である場合も含む。
反復移動の速度には、角速度も含む趣旨である。なお、速度および角速度それぞれの絶対値の一定時間の平均値が所定の範囲にあるか否かを判定し、その範囲にある場合は通知情報を切り替えたり、次に表示する通知情報がない場合は、アイコンの消去をするなどの処理をすると、ユーザの作業に支障を来たさず、切り替え等を行うことができる。
このとき、普段のユーザのマウス移動スピードを監視し、切り替え判定のための基準値を補正するようにすれば、より精度の高い処理が可能となる。
【０００９】
好ましくは、端末装置において、ＣＰＵ等の性能情報を取得し、この性能情報によって
画面表示関連のインジケータのスクロール速度や表示形式などのパラメータを変更可能にするとよい。ここで、性能情報とは、ＣＰＵチップの種別、動作速度、主メモリの容量などの情報を意味する。また、インジケータとは、通知を受け取るとマウスの近くに表示されるスコープアイコンとメッセージの総称をいう。
なお、この性能情報によって、サーバへの通知情報の有無の問い合わせ周期を変更するようにしてもよい。これにより、性能の低い端末（計算機）は、サーバへの問い合わせ間隔を長くするなど、負荷を軽減することができる。
【００１０】
より好ましくは、ネットワーク負荷をサーバ側で収集し、問い合わせ間隔設定コマンドを端末装置側へ送信し、端末装置は、その問い合わせ間隔にしたがってサーバに問い合わせ（定期アクセス）をするようにするとよい。これにより、サーバは自らの負荷を制御できるため、ユーザ数が増えても対応可能となる。
【００１１】
また、サーバ側では、ユーザごと通知情報ごとに、通知情報が通知済みか否かを示す通知済みフラグと詳細情報（ＵＲＬ）へ誘導済みか否かを示す誘導済みフラグを備えるようにするとよい。
同じ通知情報を何度も送信する必要がなくなるので、計算機や通信ネットワークの負荷を軽減することができる。
なお、性能情報に替え、または、性能情報と共に、負荷情報を収集するようにしてもよい。負荷情報とは通信ネットワークの反応時間などである。
さらに、アイコンや通知情報をマウスポインタに追従して移動させる場合、マウスポインタが移動を開始してから少し時間をおいてアイコンまたは通知情報の移動を開始するようにするとよい。これにより、ユーザはマウスポインタを容易に判別できる。
【００１２】
また、本発明に係わる情報通知方法は、サーバから通知情報を通信ネットワーク経由で端末装置の画面上に表示させる情報通知方法であって、前記通知情報を端末装置の画面上に表示されるマウスポインタとは、所定の間隔をおいて設定する領域に、通知対象に関連付けられたアイコンを表示すると共に通知情報をスクロールして表示し、前記マウスポインタの移動に追随して移動制御することを特徴とする。
表示すべき通知対象が複数存在する場合は、一の通知対象の通知情報を表示すると共に、他の通知対象に対応するアイコンを前記一の通知対象のアイコンの近傍に縮小表示する。これにより、マウスポインタ周辺が煩雑にならずに、ユーザは通知情報の配信状況を知ることができる。
【００１３】
好ましくは、前記通知情報に対応する詳細情報取得先アドレス情報を画面の所定エリアに関連付けて保存し、マウスポインタで指示することによって、当該アドレスにアクセスして、詳細情報を取得して予め設定されたブラウザ上に表示されるようにするとよい。
【００１４】
たとえば、タスクバー上のアイコンをクリックすることによって、広告の一覧が表示され、さらに特定の広告をクリックすることによって、その詳細情報が保存されているＷｅｂサイトから情報を取得して、Ｗｅｂブラウザに表示させるようにする。これにより、ユーザは、興味のある広告の詳細情報を簡便な手法で入手することができる。
ここで、「詳細情報取得先アドレス情報」とは、アドレス自体の他、アドレスと関連付けられた情報、たとえば、マウスポインタ付近に表示される通知情報の全部または一部などを含む趣旨である。
【００１５】
また、本発明に係わるプログラムは、端末装置上で動作するプログラムであって、
サーバからアイコン情報と通知情報を取得する処理と、マウスポインタの位置を取得する処理と、前記マウスポインタ近傍の領域にアイコンを表示すると共に通知情報をスクロール表示する処理と、マウスポインタの反復移動の速度を検出する処理と、前記反復移動の速度をもとに表示されている通知情報を順に切り替える処理とをコンピュータに実行させることを特徴とする
【００１６】
なお、本発明は、広告情報のみならず、たとえば、会社内において、従業員へ情報を通知するためのしくみとして活用することも可能である。
【発明の効果】
【００１７】
本発明によれば、マウスポインタに追従して広告等の通知メッセージを表示する際、ユーザが他のアプリケーションで作業を行っている間でも、計算機に負荷を掛けずに複数の通知メッセージを画面上に表示させることが可能となる。また、通知メッセージを切り替える際にマウスを振るだけで、切り替えることができ、煩わしい操作やマウスポインタを遠くへ移動させて操作をする必要がなく、ユーザの作業の効率低下を抑制することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を説明する。図１は、情報通知システム１、および、通信ネットワークを介して繋がるエンドユーザ端末２、サービス業者（サービス管理者）端末７、および、企業ユーザ端末８の装置構成図である。情報通知システム（以下、Seelサーバまたはサーバマシン）１は、複数の企業ユーザ（広告主）の広告情報をユーザ端末へ配信する広告情報提供サービスを行う業者（以下、サービス業者という）のサーバとして構成される。ここで、情報通知システム１は、インターネット等の通信ネットワーク３を介してエンドユーザ端末（以下、クライアントマシン）２と繋がっている。また、ＬＡＮ等の構内ネットワーク５を介してファイアウォール６と繋がっている。ファイアウォール６の先は、通信ネットワーク４を介してサービス業者端末７あるいは企業ユーザ端末８と繋がっている。なお、通信ネットワーク３と通信ネットワーク４は、物理的に同じネットワークを共有する場合もある。通信ネットワーク４は、必要によりＳＳＬ通信を行う。
なお、企業ユーザは、図示しない、一般のＷｅｂサーバに各企業の詳細な広告情報を掲載しているものとする。
【００１９】
以上の構成において、広告情報提供サービスの処理の流れを図２を用いて説明する。
まず、広告主である企業ユーザは、サービス事業者に広告表示サービスの利用の申し込みを行う（Ｓ１０１）。そして、サービス事業者の管理者は、サービス業者端末７を介して情報通知システム１にアカウントを作成して（Ｓ１０２）、そのアカウント情報を広告主に通知する（Ｓ１０３）。そして、その広告主のサーバ（一般のWebサーバ）に、クライアントマシン用のインストールソフトウェア（Seelインストーラ）を設置する（Ｓ１０４）。
【００２０】
一方、広告情報の提供を受けるエンドユーザは、Webサーバにアクセスして、Seelインストーラをクライアントマシンにダウンロードしてインストールを実行する（Ｓ１０５）。通常は、クライアントマシンが立ち上がったときに、インストールされた広告表示用プログラム（Seelプログラム）が起動されるように設定される。
【００２１】
そして、エンドユーザが、クライアントマシンを立ち上げるとSeelプログラムが起動され（Ｓ１０６）、Seelプログラムから定期的にSeelサーバへアクセスして、新たに通知すべき広告情報の有無を検索する（Ｓ１０７、Ｓ１０９）。新たに通知すべき広告情報がない場合は、通知なしのレスポンスが返信される（Ｓ１０８、Ｓ１１０）。
【００２２】
企業ユーザが広告情報などの通知内容を登録した後（Ｓ１１１）、クライアントマシンのSeelプログラムがSeelサーバにアクセスすると（Ｓ１１２）、Seelサーバ内の通知済みフラグがＯＮになり（Ｓ１１３）、通知ありのメッセージ情報がクライアントマシンに送られる（Ｓ１１４）。ここで、通知済みフラグは、各通知についてサーバが各エンドユーザに対して一度でもその通知を送信したことを表すものである。初期状態はＯＦＦである。このフラグにより、以降、そのユーザに対して同一の通知を行わないようにすることができる。その後は、インジケータ（通知されたメッセージ情報）が消去されない限り、Seelプログラムからの定期アクセスに対して、Seelサーバからは通知なしのメッセージが返送される。
【００２３】
ステップＳ１１４の後、エンドユーザがインジケータを消去する（Ｓ１１５）。その後、Seelサーバにおいて新たな通知が配信期間に入った場合は、次のSeelプログラムからの定期アクセスに対して（Ｓ１１６）、Seelサーバ内の通知済みフラグがＯＮになり（Ｓ１１７）、Seelサーバからは通知ありのレスポンスが返送される（Ｓ１１８）。
クライアントマシンのスコープ定義ファイルに保存されている更新周期でこのステップは繰り返される（Ｓ１１９〜Ｓ１２２）。
【００２４】
そして、エンドユーザがクライアントマシンのトレイアイコンをクリックして（Ｓ１１２３）、ブラウザを開くと（Ｓ１２４）、Seelサーバ上の誘導済みフラグがＯＮになり（Ｓ１２５）、誘導先ＵＲＬ（Universal Resource Locator）がクライアントマシンに送られる（Ｓ１２６）。そして、誘導先ＵＲＬへの転送（ページの切り替え）が行われる。（Ｓ１２７）。    
【００２５】
ここで、誘導済みフラグとは、通知を受けたエンドユーザがインジケータを見てトレイアイコンをクリックして誘導先のサイトを閲覧したことを表すものである。初期状態はＯＦＦである。このフラグは、通知に対してエンドユーザが閲覧したかどうか（興味を持ったかどうか）のフィードバック率等の集計データとして使用することができる。
【００２６】
特に、ユーザ登録情報とパソコンの起動時刻等の生活（行動）情報との組み合わせでユーザをパターン分類し、夫々のユーザの誘導済みフラグの状態との相関を演算することにより、ＣＲＭ（Customer Relationship Management）のしくみとして活用することも可能である。この場合、ユーザ登録情報は、年齢、性別、郵便番号程度にしておき、プライベート情報を収集しなくても相当な効果が期待できる。
【００２７】
次に、上記のステップＳ１１４で、広告情報の通知があったときの、クライアントマシンでの表示例について図４を用いて説明する。
唯一の通知対象（スコープ）に対して、唯一の通知が届いた場合の画面表示は、図４（ａ）のようになる。この図のように、メッセージが長い場合は、メッセージの一部が切り抜かれスクロールして全文表示されるようになっている。
【００２８】
また、唯一のスコープに対して一度に複数の通知が届いた場合の画面表示は図４（ｂ）のようになる。一定数の通知までが連なって表示され、一定数を超えると最後に「続きがあります」と表示され、以降のメッセージは省略される。なお、スコープとは、企業ユーザ等が展開するブランドの名義で通知の配信等を行う範囲の単位を意味する。
一度に複数のスコープに対して通知が届いた場合の画面表示は図４（ｃ）のようになる。最前面のスコープについての通知は通常通り表示されるが、それ以降のスコープについては縮小化されたアイコン（メッセージの上に表示されているアイコン）だけが連なって表示され、待機状態の通知があることをユーザに示す。
【００２９】
待機状態の通知がある場合に、マウスを一定の範囲の速さで振ることで最前面のスコープに関する通知が消去されると、待機状態にあったスコープ、すなわち、図４（ｃ）で縮小化されたアイコンで表示されていたスコープが一つ繰り上げられ、新たに最前面となったスコープの通知が表示される。（図４（ｄ）参照）。
【００３０】
一方、タスクトレイの表示については、何も通知が届いていない状態では、図５（ａ）右端に例示するアイコンが表示されている。ただし、これはコンフィギュレーション（以下、コンフィグという）によって消しておくことも可能である。
【００３１】
通知が届くと、図５（ａ）右端のアイコンと図５（ｂ）右端のアイコンに示すように、アイコンが点滅表示される。最前面のスコープに唯一の通知が届いているとき、このアイコンを左クリックすると、NOTIFYコマンドで指定されたアプリケーション（標準ではＯＳ標準のブラウザ）により、通知に関連付けられたＵＲＬが開かれる。同時に、それまで表示されていた通知は消去される。
【００３２】
また、最前面のスコープに複数の通知が届いているとき、アイコンを左クリックすると図５（ｃ）のようなメニューが表示される。セパレータ（「すべて閉じる（Ｘ）」の下のライン）の下側にあるメニュー項目として、最前面のスコープに届いているすべての通知メッセージがリストアップされている。これらのうち、一つを選択すると、NOTIFYコマンドで指定されたアプリケーションより、通知に関連付けられたＵＲＬが開かれる。同時にそれまで表示されていた通知は消去される。上部の「すべて閉じる」を選択した場合は、すべての通知が消去される。なお、複数のスコープに通知が届いているときに限り、「１グループ閉じる」という機能を設けるようにしてもよい。
【００３３】
通知が届いているとき、アイコンを右クリックすると図５（ｄ）のようなメニューが表示される。最下部には通知が届いているすべてのスコープ名がリストアップされており、これらのサブメニューとしてそのスコープに届いているすべての通知メッセージがリストアップされるようになっている。これらのうち一つを選択すると、NOTIFYコマンドで指定されたアプリケーション（標準ではOS標準のブラウザ）により、通知に関連付けられたＵＲＬが開かれる。同時に、表示されていた通知は消去される。
中央部に「1グループ閉じる」という表示を行い、これを選択した場合は最前面のスコープのみが消去され、「すべて閉じる」を選択した場合は、すべての通知が消去されるようになっている。
上部の「終了」を選択すると、本当に終了するかを訊ねる簡単なダイアログが表示され、そこでＯＫするとＯＳの終了を待たずして即座にアプリケーションは終了する。「詳細設定」はコンフィグダイアログを開く。「履歴を表示」は、消去してしまったものも含めて今までに届いた通知を閲覧するためのエンドユーザ向けＷｅｂ管理画面を開く。 
以下に上述の広告表示を実現するため、情報通知システム１およびクライアントマシン２の動作を図３を用いて説明する。図３は、クライアントマシン２、および、クライアントマシン２と通信ネットワーク３を介して繋がる情報通知システム１の機能ブロック図である。
【００３４】
この図において、情報通知システム１は、ユーザに関する基本情報の登録処理や広告の配信処理を実行するユーザ管理・配信処理部１１、および、広告主や広告、ユーザおよび配信処理に関する情報を記憶する記憶部１２を有している。なお、図示しないが、キーボードなどの入力部やディスプレイやプリンタなどの出力部、および、通信ネットワーク３と接続するためのインタフェースとなる通信部を備えている。ユーザ管理・配信処理部１１は、中央演算処理装置（ＣＰＵ）上で動作するソフトウェアで実現され、記憶部１２は、メモリやハードディスクなどの記憶媒体で実現される。
【００３５】
さらに、ユーザ管理・配信処理部１１は、広告主に関する情報や広告対象（通知対象）ごとに広告情報や詳細情報の取得先アドレス（ＵＲＬ）を登録する企業ユーザ管理手段（機能）１１１、広告情報の配信管理を行う配信管理手段（機能）１１２、広告の配信を受けるエンドユーザ（以下、単にユーザという）に関する情報を登録するエンドユーザ管理手段（機能）１１３、および、クライアントマシン２と通信を行いクライアントマシンからの問い合わせに対して応答する通知検索・コマンド返送手段（機能）１１４を有している。
【００３６】
また、クライアントマシン（端末装置）２は、広告情報の取得指令やマウスの速度演算等を行う制御部２１、情報通知システム１へ広告情報の有無の問い合わせや取得要求を送信する監視部２２、および、マウスに追従させて広告情報の表示出力を行う表示部２３を備えている。
【００３７】
この制御部２１、監視部２２、表示部２３は、中央演算処理装置（ＣＰＵ）上で動作するソフトウェアで実現される。また、図示しないマウスやキーボード等の入力部やディスプレイなどの表示部を備えている。
なお、制御部２１は、監視開始手段（機能）２１１、マウスの動きを検出するためのマウストラッキングスレッドループ２１２、マウス速度・角速度等演算手段（機能）２１３を有している。
【００３８】
監視部２２は、監視スレッドループ２２１、情報通知システム１や他のＷｅｂサーバと通信を行うための通信手段（機能）２２２、および、NOTIFYコマンド実行手段（機能）２２３を有している。
【００３９】
さらに、表示部２３は、通信登録メッセージ処理手段（機能）２３１、インジケータ登録手段（機能）２３２、スコープアイコン順序更新手段（機能）２３３、インジケータ順序更新手段（機能）２３４、マウス座標更新メッセージ処理手段（機能）２３５、マウス反復運動検出手段（機能）２３６、（前面）スコープアイコン消去手段（機能）２３７、スコープアイコン座標更新手段（機能）２３８、インジケータ座標更新手段（機能）２３９、スクロール量更新手段（機能）２４０、および、図示しないタスクトレイアイコン処理手段（機能）２４１と通知リンクサイト表示手段（機能）２４２を有している。
【００４０】
<広告情報登録処理>
以上の構成において、まず、情報通知システム１の企業ユーザ管理手段１１１によって、通知すべきメッセージなどの情報が登録される。この情報は、企業ユーザ端末８から通信ネットワーク４を経由して情報通知システム１へ送られてくる。
【００４１】
図６は、広告情報単位に登録されるスコープテーブルの一例である。広告情報ごとに識別情報（スコープＩＤ）がとられ、広告記号（スコープ名）、広告名（キャプション）、有効フラグ、削除フラグ、更新日、登録日が登録されている。
【００４２】
ここで、スコープとは、広告主が展開するひとつの情報配信空間（たとえば、ブランド）を意味する。スコープにはそのスコープを特定するための機械認識用の英数字列を付し、これを「スコープ名」と呼ぶ。また、人間が読む際に分かりやすく付けた名前を「スコープキャプション」（または、単に「キャプション」）と呼び、スコープＩＤに関係付けられたこれら一連の情報をスコープ情報と呼ぶ。
【００４３】
有効フラグは、そのスコープ情報が登録され、機能開始状態になったときにセットされ、削除フラグは、機能停止状態になったときにセットされる。すなわち、有効フラグは、企業ユーザに対する使用の許可状態を意味し、削除フラグは、そのスコープ情報の存在そのものを意味する。たとえば、削除フラグがＯＮのときは、その企業ユーザは管理画面に表示されない。削除フラグ、有効フラグが共にＯＦＦのときは、契約期間外の場合などが該当する。
【００４４】
また、このスコープ情報に対応して、通知テーブルが設けられている。図７は、通知テーブルの一例である。ここで、スコープＩＤごとに通知ＩＤ、アプリケーション情報、詳細情報の取得先であるＵＲＬ、表示の際の文字色、縁取り色、クライアントマシンに表示されるべきメッセージ情報、広告開始時期、広告終了時期、削除フラグ、登録日の情報などが保存されている。
ここで、アプリケーションとは、ＵＲＬをもとに取得した詳細情報を表示するときに立ち上げるべきブラウザの識別情報（ＩＤ）を意味する。
【００４５】
<ユーザ情報登録処理>
次に、情報通知システム１のエンドユーザ情報の登録処理について説明する。
エンドユーザ管理手段１１３は、ユーザからユーザ情報の送信があると、送られてきたユーザ情報をユーザテーブルに登録する。図８は、ユーザテーブルの一例である。ここで、ユーザテーブルは、ユーザ識別情報（ユーザＩＤ）ごとに年齢、性別等のユーザ属性情報、使用ＯＳやＣＰＵの種類、ＣＰＵ速度などの性能情報、通信ネットワークの反応時間などの負荷情報などが保存されている。なお、削除フラグは、ユーザが脱退したときなどサービスを停止したときにセットされる。
【００４６】
また、ユーザが情報の提供を希望する広告対象（スコープ）ごとに、ユーザＩＤとスコープＩＤが対応付けられてユーザ契約テーブルに保存される。図９は、ユーザ契約テーブルの一例である。ここで、契約フラグは、ユーザと広告主との間で広告配信の契約成立時にセットされ、契約解除時にリセットされる。
【００４７】
次にクライアントマシンの動作を図３および図１１から図２８のフローチャートを用いて説明する。
なお、クライアントマシンには、広告表示用プログラム（Seelプログラム）がインストールされているとする。このSeelプログラムは、情報提供システム１または広告主である企業のサーバからダウンロードできるものである。
【００４８】
<広告情報取得処理>
まず、クライアントマシンが立ち上がることによって、監視開始手段２１１が起動する。監視手段２１１は、起動されると、設定ファイル・レジストリから各種パラメータを取得する（Ｓ２０１）。この設定ファイルおよびレジストリの例を図２９から図３１に示す。図２９のグローバル設定ファイルは、システムの動作を規定するものである。また、図３０のレジストリには、ユーザＩＤが格納されている。図３１のスコープ定義ファイルには、サーバとの通信のための情報が格納されている。各エンドユーザは、公開されているスコープのうち好みのものを選択して、設定ファイルのインストールを行う。これにより、ユーザは、設定ファイルにインストールされたスコープから通知を受けることができる。
【００４９】
ステップＳ２０１の後、マウストラッキングスレッドループを開始する（Ｓ２０２）。これにより、マウスの位置や速度等のデータが収集できる。
スコープ定義ディレクトリ内のディレクトリリストにアクセスして、ディレクトリリストにあるディレクトリ名を抽出する（Ｓ２０４）。そして、ディレクトリ名（dir）を指定して、スコープオブジェクトを作成する（Ｓ２０５）。なお、スコープオブジェクトとは、スコープごとにスコープ名やキャプションなどの表示用データ、更新確認間隔、タイムアウト時間などの通信データなどを含んだクラスオブジェクトである。そして、スコープオブジェクトの監視スレッドループを開始する（Ｓ２０６）。これをディレクトリリストの全ディレクトリについて繰り返す（Ｓ２０７）。これにより、スコープ名が与えられたディレクトリにあるスコープ設定ファイルが全て読み込まれ、各スコープに一つずつの監視スレッドループが起動される。
【００５０】
次に監視スレッドループについて説明する。監視スレッドループは、起動されると、まず、スレッドの優先度を低く設定して（Ｓ３０１）、スコープ設定ファイルで定められている起動遅延時間分だけ待機する（Ｓ３０２）。
なお、ステップＳ３０１の処理によりサーバとの通信時だけスリープ時に比べ負荷が高くなるという現象がなくなり、安定した動作となる。また、ステップＳ３０２の処理により、他のアプリケーションの立ち上げを優先させることができる。
【００５１】
そして、スレッド続行フラグがＯＮになっているものについてＳＯＰコマンド取得ループを実行する（Ｓ３０３）。次に、インターネット接続に成功したか否かを判定し（Ｓ３０４）、成功した場合には、通信手段２２２を起動する（Ｓ３０５）。そして、再取得遅延時間分だけ待機して（Ｓ３０６）、スレッド続行フラグがＯＮになっているものについて、ステップＳ３０３からステップＳ３０８を繰り返す。一方、ステップＳ３０４でインターネット接続に成功しなかった場合は、再試行遅延時間分だけ待機して（Ｓ３０７）、次のループを実行する（Ｓ３０８）。
【００５２】
次に通信手段２２２の処理を図１３を用いて説明する。通信手段２２２は起動されると、まず、ユーザＩＤ、スコープ名、ローカル時刻等の情報をパラメータとしてサーバスクリプトにアクセスする（Ｓ４０１）。
【００５３】
一方、サーバ（情報通知システム）側の通知検索・コマンド返送手段１１４は、この情報を受信すると通知テーブルを参照して、ユーザＩＤ、スコープ名から配信すべきメッセージを検索する（Ｓ５０１）。そして、該当するユーザが見つからない場合は、ユーザＩＤを発行して、ＩＤ設定用コマンドと共に返送する（Ｓ５０３）。次に、配信すべきメッセージが見つかったか否かを判定して（Ｓ５０４）、配信すべきメッセージが見つかった場合はメッセージアクセス用コマンドを返却して（Ｓ５０５）、アクセス情報を記録して終了する（Ｓ５０６）。アクセス情報の記録は、具体的には、図１０に示す通知状態テーブルで、ユーザＩＤごとにスコープＩＤの通知済みフラグをセットすることにより行う。なお、通知状態テーブルの誘導済みフラグは、ユーザがトレイアイコンをクリックして詳細情報を要求したとき、誘導先ＵＲＬの通知の際にセットされる。
【００５４】
端末側では、ステップＳ４０１で、サーバへのアクセスの後、サーバからレスポンスを取得すると（Ｓ４０２）、レスポンスが空か否かを判定して（Ｓ４０３）、空でなければ、レスポンスを行ごとに分解して（Ｓ４０４）、コマンド実行ループを実行する
（Ｓ５０５）。コマンド実行ループでは、分解された各行（line）をさらにトークンに分解して（Ｓ４０６）、最初のトークンからコマンドの判別を行う（Ｓ４０７）。そして、トークンによって指示されたNOTIFYコマンド実行手段２２３、または図示しないSETコマンド実行手段を起動する（Ｓ４０８、Ｓ４０９）。このコマンド実行ループを分解された各行について実行する（Ｓ４１０）。
【００５５】
次にNOTIFYコマンド実行手段２２３の動作を図１４を用いて説明する。NOTIFYコマンド実行手段２２３は起動されると、これに続くトークンからの通知ＩＤ、インタフェースの種類、インジケータ色、インジケータ本文を抽出する（Ｓ６０１）。そして、通知オブジェクト（表示すべき情報）を作成して通知登録キューに追加して（Ｓ６０２）、通知登録メッセージを表示部２３へ送信する（Ｓ６０３）。
【００５６】
<広告情報表示処理>
次に通知登録メッセージ処理手段２３１の処理を説明する。通知登録メッセージ処理手段２３１は起動されると、通知登録キューが空でない限り以下のループを繰り返す（Ｓ７０１）。まず、通知登録キューから一つの通知オブジェクトを取り出す（Ｓ７０２）。通知オブジェクトは、情報通知システム１から送られてくる通知テーブルの情報で、所属スコープ名、通知ＩＤ、アプリケーション、文字色、縁取色、通知すべきメッセージ情報などである。
【００５７】
そして、登録しようとしている通知が属するスコープのアイコンが表示中か否かを判定し（Ｓ７０３）、表示中でなければ、スコープアイコンを作成し、描画スレッドを起動する（Ｓ７０４）。そして、作成したスコープアイコンをキューの最後に追加して（Ｓ７０５）、スコープアイコン順序更新手段２３３を起動する（Ｓ７０６）。ここで、スコープアイコンとは、スコープのブランドイメージを表すためのアイコンである。
【００５８】
その後、インジケータを作成し、描画スレッドを起動して（Ｓ７０７）、インジケータ登録手段２３２を起動する（Ｓ７０８）。
一方、ステップＳ７０３で「ＹＥＳ」の場合は、ステップＳ７０７以降の処理を実行する。以上のステップＳ７０１以降の通知登録ループを繰り返す（Ｓ７０９）。
【００５９】
次に、スコープアイコン順序更新手段２３３について説明する。スコープアイコン順序更新手段２３３は起動されると、まず、アイコンが表示されるべき座標を計算する（Ｓ８０１）。そして、そのアイコンが最前面にあるか否かを判定して（Ｓ８０２）、最前面にある場合は、全てのインジケータを実体化、すなわち、ウィンドウをもった画面上のオブジェクトとして表示可能な状態にして（Ｓ８０３）、インジケータ順序更新手段２３４を起動する（Ｓ８０４）。一方、ステップＳ８０２で「ＮＯ」の場合は、直ちに終了する。
【００６０】
次に、インジケータ登録手段２３２の処理を説明する。インジケータ登録手段２３２は起動されると、まず、関連付けられているスコープアイコンが最前面にあるか否かを判定する（Ｓ９０１）。そして、「ＹＥＳ」の場合は、インジケータを実体化して（Ｓ９０２）、インジケータ順序更新手段２３４を起動する（Ｓ９０３）。ステップＳ９０１で「ＮＯ」の場合は、直ちに終了する。
【００６１】
なお、インジケータ順序更新手段２３４は起動されると、インジケータが表示されるべき座標を計算し、その計算結果を保持する（Ｓ１００１）。
【００６２】
次に、マウストラッキングスレッドループの処理について説明する。マウストラッキングスレッドループは起動されると、スレッド続行フラグがＯＮになっていることを条件に以下のマウス監視ループを繰り返す（Ｓ１１０１）。まず、マウス速度・角速度等算出手段２１３を起動する（Ｓ１１０２）。そして、マウス座標更新メッセージをマウス座標更新メッセージ処理手段２３５へ送信する（Ｓ１１０３）。そして、所定時間、すなわち、１／（座標更新頻度数）秒間待機後（Ｓ１１０４）、マウス監視ループを繰り返す（Ｓ１１０５）。
【００６３】
次にマウス速度・角速度等算出手段２１３の処理を説明する。マウス速度・角速度等算出手段２１３は起動されると、まず、マウスカーソルの現在の座標と現在の時刻を取得する（Ｓ１２０１）。そして、現在と前回のデータをもとに座標差分と、経過時間を算出する（Ｓ１２０２）。続いて、移動方向と移動方向差分を求めて（Ｓ１２０３、Ｓ１２０４）、速度量と角速度量を算出する（Ｓ１２０５）。この速度量、角速度量をそれぞれ積分値に加算すると共に（Ｓ１２０６）、それぞれのキューに追加する（Ｓ１２０７）。
【００６４】
その後、速度量キューおよび角速度キューのサイズが座標更新頻度数を超えたか否かを判定して（Ｓ１２０８）、超えている場合は、それぞれのキューから１要素取り出し、またそれぞれの積分値から１要素分減算する（Ｓ１２０９）。
そして、速度量秒間平均値と角速度量秒間平均値を算出して（Ｓ１２１０）、移動方向を次回参照するために、現在の座標および時刻を保存する（Ｓ１２１１）。
【００６５】
次にマウス座標更新メッセージ処理手段２３５の処理を説明する。マウス座標更新メッセージ処理手段２３５は起動されると、まず、マウス反復運動検出手段２３６を起動する（Ｓ１３０１）。そして、全てのスコープアイコンについて、スコープアイコン座標更新手段２３８を実行する（Ｓ１３０２〜Ｓ１３０４）。
【００６６】
次にマウス反復運動検出手段２３６の処理を説明する。マウス反復運動検出手段２３６は起動されると、まず、速度量秒間平均値に速度感度係数を乗じて速度評価値（ｖ）を算出する。同様に、角速度量秒間平均値に角速度感度係数を乗じて角速度評価値（ｒ）を算出する（Ｓ１４０１）。そして、これらの評価値が所定の条件を満たしているか否かを判定して（Ｓ１４０２）、「ＹＥＳ」の場合は、最前面のものについて、スコープアイコン消去手段２３７を実行する（Ｓ１４０３）。
【００６７】
次に、スコープアイコン消去手段２３７の処理を説明する。スコープアイコン消去手段２３７は起動されると、まず、当該スコープアイコンを破棄し、キューから取り除く（Ｓ１５０１）。そして、キューにスコープアイコンが残っているか否かを判定して（Ｓ１５０２）、残っている場合は、全てのスコープアイコンについて、スコープアイコン順序更新手段２３３を実行する（Ｓ１５０３〜Ｓ１５０５）。
そして、最前面のスコープアイコンが別のものになった場合、それに付随するインジケータを全て実体化する（Ｓ１５０６）。なお、ステップＳ１５０２で「ＮＯ」のときは、直ちに終了する。
【００６８】
次にスコープアイコン座標更新手段２３８の処理を説明する。スコープアイコン座標更新手段２３８は起動されると、まず、パラメータに渡された基準点から一定のオフセットを加えた座標を目的の座標として算出する（Ｓ１６０１）。そして、現在の座標と目的の座標とを（１：遅延係数）に内分する座標を新しい座標として算出して（Ｓ１６０２）、新しい座標にアイコンを移動し、可視化する（Ｓ１６０３）。その後、そのアイコンが最前面にあるか否かを判定して（Ｓ１６０４）、最前面にある場合は、全てのインジケータについて、インジケータ座標更新手段２３９を実行する（Ｓ１６０５〜Ｓ１６０７）。
【００６９】
次にインジケータ座標更新手段２３９の処理を説明する。インジケータ座標更新手段２３９は起動されると、まず、パラメータに渡された基準点から一定のオフセットを加えた座標を目的の座標として算出する（Ｓ１７０１）。そして、現在の座標と目的の座標とを（１：遅延係数）に内分する座標を新しい座標として算出して（Ｓ１７０２）、新しい座標にインジケータを移動し可視化する（Ｓ１７０３）。
【００７０】
その後、スクロールが必要か否かを判定して（Ｓ１７０４）、スクロールが必要な場合は、次にスクロール開始ディスプレイ時間が経過したか否かを判定して（Ｓ１７０５）、「ＹＥＳ」の場合は、スクロール量更新手段２４０を起動する（Ｓ１７０６）。このステップＳ１７０５の処理により、ユーザはメッセージを読み始めるまでの猶予が与えられ、負担なくメッセージを読むことができる。
【００７１】
スクロール量更新手段２４０は起動されると、スクロール量を一定値増加し、スクロール幅の剰余をとり（Ｓ１８０１）、スクロール量を表示内容に反映させる（Ｓ１８０２）。
【００７２】
次にタスクトレイアイコン処理手段２４１の処理を説明する。タスクトレイアイコン処理手段２４１はユーザがタスクトレイをクリックすることにより起動される。起動されると、まず、クリックされたボタンが右か左かを判定する（Ｓ１９０１）。そして、右クリックの場合は、右クリックメニューを作成して・トラッキングを実行する（Ｓ１９０６）。左クリックの場合は、通知が表示中か否かを判定して（Ｓ１９０２）、表示中の場合は、次に複数の通知が表示中か否かを判定する（Ｓ１９０３）。そして、「ＹＥＳ」の場合は、最前面スコープアイコンの通知メニューを作成してトラッキングを実行する（Ｓ１９０５）。ステップＳ１９０３で、「ＮＯ」の場合は、通知リンクサイト表示手段２４２を起動する（Ｓ１９０４）。
【００７３】
通知リンクサイト表示手段２４２は起動されると、まず、目的のインジケータの通知ＩＤをパラメータとして付加したサーバスクリプトのＵＲＬを開く。このとき、その通知に関連付けられたアプリケーションで開く（Ｓ２００１）。そして、当該インジケータを破棄し、それが属していたスコープアイコンを持つリストから取り除く（Ｓ２００２）。
その後、全てのインジケータについて、インジケータ順序更新手段２３４を実行する（Ｓ２００３〜Ｓ２００５）。そして、リストが空になったか否かを判定して（Ｓ２００６）、空の場合は、スコープアイコン消去手段２３７を実行する（Ｓ２００７）。
【００７４】
以上の処理の結果、図３２（ｂ）に示すように、マウスを所定の速度で反復移動させることにより、通知メッセージの切り替え、および、消去を行うことができる。このときの、画面上のマウスポインタの動きとしては、図３２（ａ）に示すように現在位置を軸に僅かな範囲で動くのみである。このため、ユーザは、通知メッセージの切り替え等の操作のために大きくマウスを動かす必要がなく、他の業務に支障なく通知メッセージの確認および切り替えや消去等の操作を行うことができる。たとえば、図３２（ａ）のＡの送信ボタンを押すつもりであったユーザがわざわざ画面隅のＢの位置にある切替用のアイコンをクリックしようとすると、送信ボタンから目を離すことになり作業効率が低下するが、その場でマウスを所定範囲の速度で反復移動することによってメッセージの切替やアイコンの消去を行うことができるため、作業の進行を著しく妨げるようなことがない。
【００７５】
以上の処理によって、ユーザが作業を行っている端末２のマウスポインタ近傍へ広告等の情報通知を行うことができ、その情報は、マウスの操作によって、簡単に切替や消去を行うことができ、さらに、ユーザはタスクバーのアイコンをクリックすることによって詳細情報を取得することができる。
【００７６】
ここで、端末２に表示されるメッセージとサーバ１の種々のテーブルのデータとの関連を説明する。
図３３は、図４（ａ）のメッセージが表示されるときの、サーバ１のスコープテーブル、通知テーブル、通知状態テーブルのデータ例である。
通知テーブルのメッセージ情報が文字色、縁取色などの表示形式データによって設定された形式で端末上に表示される。なお、メッセージの先頭に表示されているアイコンは、端末２にコンフィグ時に設定されているスコープＩＤに関連付けされたアイコン表示用データに基づいて、サーバから送られてくるスコープＩＤからこのアイコン表示用データを抽出して表示される。
【００７７】
図３４は、図４（ｂ）のメッセージが表示されるときの、サーバ１のスコープテーブル、通知テーブル、通知状態テーブルのデータ例である。
一つのスコープＩＤに対して、通知するメッセージが３種類あるので、メッセージごとに通知ＩＤがとられる。また、この通知ＩＤごとに通知済みフラグおよび誘導済みフラグが割り付けられている。
【００７８】
図３５は、図４（ｃ）のメッセージおよび待機用アイコンが表示されるときの例である。通知テーブルには、２種類のスコープＩＤ（５，６）があり、スコープＩＤ「５」のメッセージが表示されており、スコープＩＤ「６」は、待機状態であるため、スコープＩＤ「５」のアイコンの右上に縮小表示され、待機状態のメッセージがあることを示している。この状態で、ユーザがマウスを所定の速度で反復移動させると待機状態のメッセージが表示される。
【００７９】
図３６は、タスクバーのアイコンをクリックして詳細情報を要求したときの通知状態テーブルのデータ例である。このクリックにより、誘導済みフラグが「０」から「１」に変わり、ユーザ端末には、誘導先ＵＲＬ情報が送られる。
【００８０】
以上、本実施の形態の基本的な機能に対して、さらに次の改善を行うことによって、より優れたシステムを実現することができる。
【００８１】
<クライアント側における通知タイミングの調整>
ユーザが離席しているときに通知を表示しても気付いてもらえる可能性は低い。また、本人のいないところで表示されている通知を他人に覗かれる状態にしておくのも望ましいとはいえない。このため、ユーザがマシンを使用しているタイミングを計り、離席中はそれまで通知の表示を遅延するような機能があるのが好ましい。
通常、マウスが頻繁に動いている場合は、間違いなくユーザがマシンを使用しているといえる。そうでないときでも、ユーザがＷｅｂを閲覧したりドキュメントを読んだりしている場合があり得るが、そういったときにはマウスカーソルへの注意が弱くなっている可能性が高いので、マウスが移動し始めるまで待機する。マウスが動いておらずキーボードから頻繁に入力がある場合は、ユーザはマウスから手を離している可能性が高く、邪魔になった場合はマウスを持つことを強要してしまうため、やはりこの場合も邪魔にならないよう待機する。
【００８２】
したがって、マウスが頻繁に動いているときのみに、タイミングよく通知情報を表示するのが最善といえる。ただし、あまり激しい動きをしているときは通知そのものが読みづらく、また「マウスを振った」と判断されて表示されるや否や消去されてしまいかねないので、ある程度ゆっくりした動きが検出されたときに限定するのがよい。
具体的には、マウストラッキングスレッドが繰り返し算出しているマウス速度量積分値を参考にする。「マシンが使用されている」とみなす上限値（激しい動きを無視するための値）、下限値（光学マウスでは物理的に静止していてもカーソルがわずかに動く場合があるので、これを無視するための値）を設定し、この範囲にマウス速度量積分値が入っている間は通知を受け取り次第表示する。上限値・下限値はコンフィグできるようにするとなお良い。
【００８３】
通知を受け取ったときにこの範囲から外れている場合は、この範囲に入るまで通知の表示を遅延させる。通知を受け取るのは専用のスレッドなので、単に条件を満たすまで短い周期でスリープしながらループしておればよいことになる。
【００８４】
<ホットキー機能>
ユーザの要求は、基本的にはマウスの振りとタスクトレイアイコンのメニュー選択によって伝えられるが、慣れたユーザ向けにはキーボード操作でもこれを行えるようにすると良い。実際にどのキーがどの機能に割り当てられるかはコンフィグできるようにする。割り当てられる機能として以下のようなものが考えられる。
・最前面スコープアイコンの最上位の通知に関する情報にアクセス
・最前面スコープアイコンとそれに伴う通知を消去
・スコープアイコンと通知をすべて消去
・履歴を表示
【００８５】
<履歴機能>
タスクトレイアイコンのメニューからいつでも履歴一覧を表示可能にする。履歴一覧には、これまで届けられた通知の一覧が表示され、そこから直接関連付けられた情報にアクセスできる（期限の切れた通知は除く）。
【００８６】
<予約機能>
監視スレッドの更新間隔は数時間〜１日程度を要する。しかし、メッセージ配信のリアルタイム性が要求される場合、例えば、クリスマスの夜に通知を表示し専用ブラウザが起動して欲しい場合などには、ただ再更新に頼っているだけでは機を逸してしまうことになる。
このため、予約という概念を導入するのが効果的である。具体的には、事前に監視アプリケーションからの更新確認に対しサーバスクリプトが「○○日の××時に通知を表示せよ」というコマンドを返し、それをレジストリに記憶しておくことで、指定された時刻に通知表示を行う。
【００８７】
予約の時刻は複数登録でき、また各予約には有効期間が設けられる。起動時刻にクライアントマシンが起動されておらず、その後有効期間内にクライアントマシンが起動されない場合は、その予約は無視される。また、無視された場合はその事実を次回の更新時にサーバスクリプトへ通達する。これにより、メッセージを受け取り損ねたユーザは再配信の機会を得ることができる。
【００８８】
しかしながら、ここで問題となるのが、クライアントマシンの時計がずれていると正しい時刻に表示されない可能性があるということである。また、海外での利用者の存在も考慮して、時差を吸収しなければならない。そこで、監視スレッドが定期的にサーバに送信しているクライアントマシンのローカル時刻とＧＭＴを考慮して、サーバスクリプト側で最適な予約時刻を算出する。
【００８９】
予約で多数のユーザに同一の時刻を設定すると、関連付けられたＵＲＬへのＨＴＴＰアクセスが（最大で）設定したユーザ数の分だけ同時に起こることになる。これはサーバに大きな負荷がかかり非常に危険なので、サーバ側で予約設定時刻をある程度シャッフルして時間差を設ける。効果的なのは、有効期間が重複しないいくつかのグループに分けることである。例えば、年齢によってマシンを起動している時刻に特定の傾向がある場合、それを見越した上で１９時代、２０時代、２１時代にのみ起動可能とすることで、アクセスを分散することができる。メッセージを受け取ることができなかったユーザの数が多ければ、翌日に同じ予約を入れる。ユーザが残り少なくなったらグループを減らし、有効期間を伸ばして行く。このような手順により、理想的な時間帯での配信が可能となる。
【００９０】
予約による集中アクセスを回避するため、関連付けられたＵＲＬで閲覧できる予定のコンテンツをあらかじめダウンロードし、先読みしておくという手法が考えられる。実際の時刻が来たら通知を表示し、タスクトレイアイコンがクリックされると先読みキャッシュにあるコンテンツを表示するようブラウザを起動して、コンテンツを表示する。
これにより、アクセスを集中させることなく同一の時刻にメッセージを配信したかのように見せることができる。ただし、アンケートフォームなど双方向の通信を要するページを含む場合、その部分だけはサーバへのアクセスを行うようにする。
【００９１】
<ＯＳ再インストール時のユーザＩＤの復元方法>
ユーザがＯＳを再インストールした場合、レジストリに保存されていたユーザＩＤは取得できなくなり、新しいユーザとして再登録しなければならなくなる。これを避けるため、クライアントマシン上で動作する監視アプリケーションは、ＮＩＣ（ネットワークインタフェース）のＭＡＣアドレスを取得してサーバに送信することで、ユーザＩＤの自動的な再取得が可能となる。
監視アプリケーションの開始時にユーザＩＤをレジストリから正しく取得できた場合、ＮＩＣのＭＡＣアドレスをユーザＩＤとともにサーバに送信する。サーバスクリプトは当該ユーザのＮＩＣのＭＡＣアドレスを情報通知システムのユーザテーブルに保存する。
ユーザＩＤが取得できなかった場合は、ＮＩＣのＭＡＣアドレスのみをサーバに送信する。データベースからこのＭＡＣアドレスを検索し、ユーザが見つかればそのユーザＩＤを用いるようクライアントマシンにSetコマンドを返却する。見つからなければ、新しいユーザとして登録するため登録用のインタフェースを表示するようWelcomeコマンドを返却する。
【００９２】
<起動・終了時刻の集計機能>
クライアントマシン上で動作するSeelプログラム（オブザーバ）は起動・終了の度にその時刻を記録し、サーバに知らせる。しかしこれをすべてサーバに保存しているとサーバの負荷が過大となる。このため、曜日・時刻で見た起動・終了のタイミングに限定する。これは、１週間を周期とし、０か１の振幅を持つ波形として表される。この波形の平均の形を作り、そのユーザの「平均的な１週間」を算出し保存する。
【００９３】
これにより、単純に波形の平均を採ることで、「ＰＣを起動している可能性」の時間的確率関数を得る。１週間を10分単位で分割し、時間方向へ6×24×7=1008の値を持つ。各値は整数で0〜100%とすれば十分であり、１バイトで表現される。したがって、１人のユーザにつき1008バイト＝約1Kバイト用意すれば、10分単位での１週間の生活ぶりが分かる。
【００９４】
より正確な波形を求めるため、以下の例のように値のアンチエイリアシングを行うようにしてもよい。
例：
ある週の月曜日20:43〜21:15まで起動していた場合、その週の計測値は
・月曜20時40分代の起動率は(10-3)/10 = 70%
・月曜20時50分代〜21時00分代の起動率は100%
・月曜21時10分代の起動率は5/10 = 50%
とする。
【００９５】
波形テーブルには常にこれまで計測されてきた起動確率を保持している。計測開始日時と現在時刻から、各タイムスパンが何週間分の計測値を平均したものかがわかるので、以下の式により新しい平均値を更新することができる。
<今週までの平均値> ＝ （ <先週までの平均値> × <経過した週数> 
＋ <今週の計測値> ） ÷ （<経過した週数> ＋ １）
ここで、<経過した週数>に当てはめる値をある一定の値以下に制限することで、古い値を排除していくことができる。
たとえば、10週目まで平均80%、11週目以降はずっと0%が続いたとする。普通に計算すれば、n週目の値は
（80×10）÷ n
となり、経過週数に反比例して減衰していく。これが1%まで減衰するのはn=800週目のことである。すなわち、80%の確率で起動していたのは最初の10週間だけであるにもかかわらず、15年も経たないと1%まで減衰しないことを意味する。
【００９６】
しかしここで週数を4以下に限定すると、n>=10なるn週目の値P(n)は、
P(n) = P(n-1) * 4 / 5
という式で求められるため、指数関数的に変化していくことがわかる。この漸化式を解くと、P(10)=80であるから
P(n) = 80 * (4/5)^(n-10)
P(n)<=1となるのは、以下の計算により30週目となる。
n-10 >= log(4/5, 1/80)
n >= 29.6
最初の10週間＝2ヶ月強に渡り80%であったことが、（その後5ヶ月弱にわたり0%が続いて）約7ヶ月目で1%にまで減衰することになり、週数を制限しない場合に比べれば感覚的に妥当になったといえる。もちろん、限定する週数を変更すればこの変化の速さは調節可能である。
なお、直近のある一定の期間のみにわたる平均値を算出するには、少なくともその期間分の計測値をすべて保存しておかなければならないという問題が考えられる。
【００９７】
<マウスポインタ（マウスカーソル）へのアイコン、メッセージの追従調整機能>
ブランドアイコンとメッセージはマウスカーソルにやや遅れて追従させる。以下はその手法である。
【００９８】
60分の1秒ごとに以下の処理を行う。
1. マウスカーソルの座標を取得する。
2. すべてのインジケータについて以下の処理を実行する。
2-a. まずインジケータが定位すべき絶対座標を算出する。。これには、コンフィグされたレイアウトによって定まる、マウスカーソルからの距離を用いる。
2-b. 現在のインジケータの座標と、上記2-aで求めた座標とを 1 : nDullnessに内分する座標を算出し、それをインジケータの新しい座標として更新する。nDullnessの値は0〜4程度の整数で、コンフィグ可能である。
内分点の座標が変化しなくなった場合は、上記2-aで求めた座標とする。
これにより、マウスカーソルを移動させたときに、メッセージやアイコンと一体化して、マウスカーソルの位置が把握しづらくなるという弊害を回避することができる。
【００９９】
<インジケータ消去機能の目的と実現方法の詳細>
ユーザが広告を消そうと思ったとき、ユーザに「画面右下に表示されたウィンドウの×ボタンをクリックする」などの作業をさせる一般的なポップアップ広告は、前述の「視線を注視している領域から引き離し、また元の位置を探して戻す」というユーザにストレスを与えるような動作を強いることになる。しかもこのとき、視線にあわせてマウスカーソルも遠くへ移動しなければならない。Seelプログラムは、マウスカーソルを左右に振ることによって、マウスカーソルの位置（ひいてはテーブル上での右手の位置）をほとんど遠くへ動かさずに広告を消すことを可能にする。
【０１００】
その実現方法としては、60分の1秒ごとに以下の処理を実行する。
１. マウスカーソルの座標の差分を算出する。
２. 上記１に基づき、擬似的なマウスの瞬間移動速度を算出する。
３. 上記１に基づき、擬似的なマウスの瞬間角速度を算出する。
このとき、この値の絶対値が0.5回転（180°）以下になるような回転方向となるよう、値を調整する。
４. 移動速度、角速度のそれぞれについて、その絶対値の直近1秒間の平均値を算出する。
５. 角速度の平均が一定の値以上であり、かつ移動速度と角速度が以下の不等式を満たすとき、「マウスが小刻みに方向を変えながら一定の速度以上で移動しつづけている」即ち「マウスを振っている」とみなし、インジケータを消去する。
(r > 3) and (v > 4.8 - 0.8*r) and (v > 0.1*r)
ただし
v: 移動速度の絶対値の直近1秒間の平均 [Mpixel/sec]
r: 角速度の絶対値の直近1秒間の平均 [round/sec]
このようにして、マウスの反復移動を高精度で検出することができる。
【０１０１】
以上、本実施の形態によれば、マウスポインタの近傍に広告情報等の通知メッセージを表示することができ、また、複数のメッセージを通知する場合でも、マウスポインタの周辺が煩雑になるのを抑制することができる。
【０１０２】
特に、マウスポインタ近傍の表示として、スコープアイコンと最前面のアイコンに関連する通知メッセージのスクロール表示の組み合わせにより、ユーザは効果的に通知情報を確認することができる。
さらに、通知メッセージの切り替え等の操作をマウスの動作によって行うため、通知メッセージに対する操作のためにマウスを大きく動かす必要がなく、他の業務への影響を最小限に抑えることができる。
また、情報通知システム１に通知済みフラグまたは誘導済みフラグを持たせることによって、同じ通知情報を何度も送信することをなくし、通信ネットワークの負荷およびクライアントマシンの負荷を軽減することができる。
【０１０３】
特に、ブラウザはスクリプト言語を解釈しながら、複雑に配置されたレイヤの重なり合いを再計算、再描画する必要があるが、本実施の形態の機能構成によれば、ＯＳが管理するウィンドウを直接作成・配置するため、ブラウザ上でウィンドウをシミュレートすることに比べ高速処理が可能となる。
【０１０４】
なお、本実施の形態では、企業ユーザの広告情報をエンドユーザのクライアントマシンへ配信することを例に説明したが、たとえば、会社内において、従業員へ情報を通知するためのしくみとして活用することも可能である。この場合、企業ユーザ端末８は、会社内における管理者の端末となり、情報通知システム１に対して、メッセージを登録する。通常のメールシステムでは、メーラを立ち上げなければ、そのメールを確認することができず、また誰からのメールかも送信者を確認しない限りできないが、本発明によれば、ユーザである従業員は、端末上で作業を行いながら、その特定者からのメッセージをリアルタイムに確認することができる。
【０１０５】
また、ユーザ端末２から自らのスケジュールを情報通知システム１に保存しておき、リマインダとして使用することもできる。
【０１０６】
さらに、これら、広告情報、社内の業務指示通知、リマインダの機能を複合的に持たせることも可能である。この場合、通知情報の種別ごとに優先順位を設けるようにすると効果的である。たとえば、リマインダ通知は、広告情報よりも優先順位を高くしておけば、広告表時中でもリマインダ通知が配信されると、その通知が画面に表示されるため、業務への有効利用を図りつつ、広告情報等の収集も可能となる。
【０１０７】
なお、本発明は、上記した実施形態に限定されず、その要旨を逸脱しない範囲で種々変形して適用可能なことは明らかである。
【図面の簡単な説明】
【０１０８】
【図１】本実施の形態による情報通知システム、および、通信ネットワークを介して繋がる各種端末の装置構成図である。
【図２】本実施の形態による各装置間の処理およびデータの流れの説明図である。
【図３】本実施の形態による情報通知システム（サーバマシン）１とクライアントマシン２の機能ブロック図である。
【図４】図３のクライアントマシン２への通知情報の表示の説明図である。
【図５】図３のクライアントマシン２のタスクバーの詳細情報取得時の説明図である。
【図６】図３のサーバマシン１の記憶部１２に保存されているスコープテーブルの説明図である。
【図７】図３のサーバマシン１の記憶部１２に保存されている通知テーブルの説明図である。
【図８】図３のサーバマシン１の記憶部１２に保存されているユーザテーブルの説明図である。
【図９】図３のサーバマシン１の記憶部１２に保存されているユーザ契約テーブルの説明図である。
【図１０】図３のサーバマシン１の記憶部１２に保存されている通知状態テーブルの説明図である。
【図１１】図３の監視開始手段２１１の処理手順を表すフローチャートである。
【図１２】図３の監視スレッドループ２２１の処理手順を表すフローチャートである。
【図１３】図３の通信手段２２２の処理手順を表すフローチャートである。
【図１４】図３のNOTIFYコマンド実行手段２２３の処理手順を表すフローチャートである。
【図１５】図３の通知登録メッセージ処理手段２３１の処理手順を表すフローチャートである。
【図１６】図３のスコープアイコン順序更新手段２３３の処理手順を表すフローチャートである。
【図１７】図３のインジケータ登録手段２３２の処理手順を表すフローチャートである。
【図１８】図３のインジケータ順序更新手段２３４の処理手順を表すフローチャートである。
【図１９】図３のマウストラッキングスレッドループ２１２の処理手順を表すフローチャートである。
【図２０】図３のマウス速度・角速度等算出手段２１３の処理手順を表すフローチャートである。
【図２１】図３のマウス座標更新メッセージ処理手段２３５の処理手順を表すフローチャートである。
【図２２】図３のマウス反復運動検出手段２３６の処理手順を表すフローチャートである。
【図２３】図３のスコープアイコン消去手段２３７の処理手順を表すフローチャートである。
【図２４】図３のスコープアイコン座標更新手段２３８の処理手順を表すフローチャートである。
【図２５】図３のインジケータ座標更新手段２３９の処理手順を表すフローチャートである。
【図２６】図３のスクロール量更新手段２４０の処理手順を表すフローチャートである。
【図２７】図３のクライアントマシン２のタスクトレイアイコン処理手段２４１の処理手順を表すフローチャートである。
【図２８】図３のクライアントマシン２の通知リンクサイト表示手段２４２の処理手順を表すフローチャートである。
【図２９】図３のクライアントマシン２に保存されているグローバル設定ファイルの説明図である。
【図３０】図３のクライアントマシン２に保存されているレジストリの説明図である。
【図３１】図３のクライアントマシン２に保存されているスコープ定義ファイルの説明図である。
【図３２】本発明の実施の形態によるマウスの反復移動とマウスポインタの動きの説明図である。
【図３３】図４（ａ）の表示が行われるときのサーバマシン１のテーブル設定の説明図である。
【図３４】図４（ｂ）の表示が行われるときのサーバマシン１のテーブル設定の説明図である。
【図３５】図４（ｃ）の表示が行われるときのサーバマシン１のテーブル設定の説明図である。
【図３６】図５（ｂ）でタスクバーのアイコンをクリックしたときのサーバマシン１のテーブル設定値の変化の説明図である。
【符号の説明】
【０１０９】
１  情報通知システム
２  エンドユーザ端末（クライアントマシン）
３、４ 通信ネットワーク
５  構内ＬＡＮ
６  ファイアウォール
７  サービス業者端末
８  企業ユーザ端末
１１  ユーザ管理・配信処理部
１２  記憶部
２１  制御部
２２  監視部
２３  表示部
１１１  企業ユーザ管理手段
１１２  配信管理手段
１１３  エンドユーザ管理手段
１１４  通知検索・コマンド返送手段
２１１  監視開始手段
２１２  マウストラッキングスレッドループ
２１３  マウス速度・角速度等算出手段
２２１  監視スレッドループ
２２２  通知手段
２２３  NOTIFYコマンド実行手段
２３１  通知登録メッセージ処理手段
２３２  インジケータ登録手段
２３３  スコープアイコン順序更新手段
２３４  インジケータ順序更新手段
２３５  マウス座標更新メッセージ処理手段
２３６  マウス反復運動検出手段
２３７  スコープアイコン消去手段
２３８  スコープアイコン座標更新手段
２３９  インジケータ座標更新手段
２４０  スクロール量更新手段
２４１  タスクトレイアイコン処理手段
２４２  通知リンクサイト表示手段
【図６】
2005122507.tif 000003
【図７】
2005122507.tif 000004
【図８】
2005122507.tif 000005
【図９】
2005122507.tif 000006
【図１０】
2005122507.tif 000007
【図１１】
2005122507.tif 000008
【図１２】
2005122507.tif 000009
【図１３】
2005122507.tif 000010
【図１４】
2005122507.tif 000011
【図１５】
2005122507.tif 000012
【図１６】
2005122507.tif 000013
【図１７】
2005122507.tif 000014
【図１８】
2005122507.tif 000015
【図１９】
2005122507.tif 000016
【図２０】
2005122507.tif 000017
【図２１】
2005122507.tif 000018
【図２２】
2005122507.tif 000019
【図２３】
2005122507.tif 000020
【図２４】
2005122507.tif 000021
【図２５】
2005122507.tif 000022
【図２６】
2005122507.tif 000023
【図２７】
2005122507.tif 000024
【図２８】
2005122507.tif 000025
【図２９】
2005122507.tif 000026
【図３０】
2005122507.tif 000027
【図３１】
2005122507.tif 000028
【図３３】
2005122507.tif 000029
【図３４】
2005122507.tif 000030
【図３５】
2005122507.tif 000031
【図３６】
2005122507.tif 000032
【図１】
2005122507.tif 000033
【図２】
2005122507.tif 000034
【図３】
2005122507.tif 000035
【図４】
2005122507.tif 000036
【図５】
2005122507.tif 000037
【図３２】
2005122507.tif 000038