(57)【要約】移動ユーザの場所に基づいてイベントサービスを提供するための方法、システムおよびコンピュータプログラム製品は、場所情報キャッシュを用いて移動ユーザについての新しい場所情報を記憶することで、コストおよび時間のかかる位置決定要求の必要性を減少させ、さらに、場所判定を行なうべき時間をインテリジェント式にスケジュールすることによって効率化を図る。この方法は、ａ）少なくとも１人の移動ユーザの現在の場所を示す情報を入手するステップを含み、上記少なくとも１人の移動ユーザは選択された移動ユーザを含み、上記方法はさらに、ｂ）少なくとも１人の移動ユーザの示された現在の場所に基づき、上記少なくとも１人の移動ユーザの場所に関係する少なくとも１つの条件が満足されているかどうかを判断するステップと、ｃ）少なくとも１つの条件が満足されていれば少なくとも１つのイベントを実行するステップと、ｄ）ステップａ）〜ｃ）を繰返すまでに待つための時間間隔を求めるステップとを含む。
2006503345.tif 000002
【特許請求の範囲】
【請求項１】
場所に基づいたイベントサービスを提供する方法であって、
ａ）  少なくとも１人の移動ユーザの現在の場所を示す情報を入手するステップを含み、前記少なくとも１人の移動ユーザは選択された移動ユーザを含み、前記方法はさらに、
ｂ）  少なくとも１人の移動ユーザの示された現在の場所に基づき、前記少なくとも１人の移動ユーザの場所に関係する少なくとも１つの条件が満足されているかどうかを判断するステップと、
ｃ）  少なくとも１つの条件が満足されていれば少なくとも１つのイベントを実行するステップと、
ｄ）  ステップａ）〜ｃ）を繰返すまでに待つための時間間隔を求めるステップとを含む、方法。
【請求項２】
前記待つための時間間隔を求めるステップは、
前記選択された移動ユーザとして、条件が満足されることを引起こす見込みが最も少ない移動ユーザを選択するステップと、
前記選択された移動ユーザに基づいて待つための時間間隔を求めるステップとを含む、請求項１に記載の方法。
【請求項３】
前記選択された移動ユーザに基づいて待つための時間間隔を求めるステップは、
前記選択された移動ユーザの現在の場所と前記条件に関係する領域との距離、前記選択された移動ユーザの速度、のうち少なくとも１つに基づいて、前記選択された移動ユーザが条件を満足させる見込みがある時間を推定するステップと、
前記選択された移動ユーザが条件を満足させる見込みがある推定時間と時間許容差とに基づいて待つための時間間隔を求めるステップとを含む、請求項２に記載の方法。
【請求項４】
前記入手するステップは、
移動ユーザの場所を示す情報を記憶するように動作可能なキャッシュで、前記少なくとも１人の移動ユーザの場所を示す情報を探索するステップと、
前記少なくとも１人の移動ユーザの場所を示す情報が前記キャッシュ内に見つかれば、前記少なくとも１人の移動ユーザの場所を示す情報を、前記少なくとも１人の移動ユーザの現在の場所を示す情報として使用するステップと、
前記少なくとも１人の移動ユーザの場所を示す情報が前記キャッシュ内に見つからなければ、前記少なくとも１人の移動ユーザの現在の場所を示す情報を入手するために少なくとも１つの移動体位置決定サーバに問合わせるステップとを含む、請求項３に記載の方法。
【請求項５】
前記少なくとも１つのイベントはメッセージを送信することを含む、請求項４に記載の方法。
【請求項６】
前記メッセージは移動ユーザに送信される、請求項５に記載の方法。
【請求項７】
前記メッセージは非移動ユーザに送信される、請求項５に記載の方法。
【請求項８】
前記少なくとも１つの条件は１人の移動ユーザの場所に関係する、請求項４に記載の方法。
【請求項９】
前記少なくとも１つの条件は複数の移動ユーザの場所に関係する、請求項４に記載の方法。
【請求項１０】
前記少なくとも１つの条件は移動ユーザの場所および時間に関係する、請求項４に記載の方法。
【請求項１１】
場所に基づいたイベントサービスを提供するためのシステムであって、
コンピュータプログラム命令を実行するように動作可能なプロセッサと、
前記プロセッサにより実行可能なコンピュータプログラム命令を記憶するように動作可能なメモリとを含み、前記システムは、
ａ）  少なくとも１人の移動ユーザの現在の場所を示す情報を入手するステップを行ない、前記少なくとも１人の移動ユーザは選択された移動ユーザを含み、前記システムはさらに、
ｂ）  少なくとも１人の移動ユーザの示された現在の場所に基づき、前記少なくとも１人の移動ユーザの場所に関係する少なくとも１つの条件が満足されているかどうかを判断するステップと、
ｃ）  少なくとも１つの条件が満足されていれば少なくとも１つのイベントを実行するステップと、
ｄ）  ステップａ）〜ｃ）を繰返すまでに待つための時間間隔を求めるステップとを行なう、システム。
【請求項１２】
前記待つための時間間隔を求めるステップは、
前記選択された移動ユーザとして、条件が満足されることを引起こす見込みが最も少ない移動ユーザを選択するステップと、
前記選択された移動ユーザに基づいて待つための時間間隔を求めるステップとを含む、請求項１１に記載のシステム。
【請求項１３】
前記選択された移動ユーザに基づいて待つための時間間隔を求めるステップは、
前記選択された移動ユーザの現在の場所と前記条件に関係する領域との距離、前記選択された移動ユーザの速度、のうち少なくとも１つに基づいて、前記選択された移動ユーザが条件を満足させる見込みがある時間を推定するステップと、
前記選択された移動ユーザが条件を満足させる見込みがある推定時間と時間許容差とに基づいて待つための時間間隔を求めるステップとを含む、請求項１２に記載のシステム。
【請求項１４】
前記入手するステップは、
移動ユーザの場所を示す情報を記憶するように動作可能なキャッシュで、前記少なくとも１人の移動ユーザの場所を示す情報を探索するステップと、
前記少なくとも１人の移動ユーザの場所を示す情報が前記キャッシュ内に見つかれば、前記少なくとも１人の移動ユーザの場所を示す情報を、前記少なくとも１人の移動ユーザの現在の場所を示す情報として使用するステップと、
前記少なくとも１人の移動ユーザの場所を示す情報が前記キャッシュ内に見つからなければ、前記少なくとも１人の移動ユーザの現在の場所を示す情報を入手するために少なくとも１つの移動体位置決定サーバに問合わせるステップとを含む、請求項１３に記載のシステム。
【請求項１５】
前記少なくとも１つのイベントはメッセージを送信することを含む、請求項１４に記載のシステム。
【請求項１６】
前記メッセージは移動ユーザに送信される、請求項１５に記載のシステム。
【請求項１７】
前記メッセージは非移動ユーザに送信される、請求項１５に記載のシステム。
【請求項１８】
前記少なくとも１つの条件は１人の移動ユーザの場所に関係する、請求項１４に記載の
システム。
【請求項１９】
前記少なくとも１つの条件は複数の移動ユーザの場所に関係する、請求項１４に記載のシステム。
【請求項２０】
前記少なくとも１つの条件は移動ユーザの場所および時間に関係する、請求項１４に記載のシステム。
【請求項２１】
場所に基づいたイベントサービスを提供するためのコンピュータプログラム製品であって、
コンピュータ可読媒体と、
前記コンピュータ可読媒体に記録され、プロセッサにより実行可能なコンピュータプログラム命令とを含み、前記コンピュータプログラム製品は、
ａ）  少なくとも１人の移動ユーザの現在の場所を示す情報を入手するステップを行ない、前記少なくとも１人の移動ユーザは選択された移動ユーザを含み、前記コンピュータプログラム製品はさらに、
ｂ）  少なくとも１人の移動ユーザの示された現在の場所に基づき、前記少なくとも１人の移動ユーザの場所に関係する少なくとも１つの条件が満足されているかどうかを判断するステップと、
ｃ）  少なくとも１つの条件が満足されていれば少なくとも１つのイベントを実行するステップと、
ｄ）  ステップａ）〜ｃ）を繰返すまでに待つための時間間隔を求めるステップとを行なう、コンピュータプログラム製品。
【請求項２２】
前記待つための時間間隔を求めるステップは、
前記選択された移動ユーザとして、条件が満足されることを引起こす見込みが最も少ない移動ユーザを選択するステップと、
前記選択された移動ユーザに基づいて待つための時間間隔を求めるステップとを含む、請求項２１に記載のコンピュータプログラム製品。
【請求項２３】
前記選択された移動ユーザに基づいて待つための時間間隔を求めるステップは、
前記選択された移動ユーザの現在の場所と前記条件に関係する領域との距離、前記選択された移動ユーザの速度、のうち少なくとも１つに基づいて、前記選択された移動ユーザが条件を満足させる見込みがある時間を推定するステップと、
前記選択された移動ユーザが条件を満足させる見込みがある推定時間と時間許容差とに基づいて待つための時間間隔を求めるステップとを含む、請求項２２に記載のコンピュータプログラム製品。
【請求項２４】
前記入手するステップは、
移動ユーザの場所を示す情報を記憶するように動作可能なキャッシュで、前記少なくとも１人の移動ユーザの場所を示す情報を探索するステップと、
前記少なくとも１人の移動ユーザの場所を示す情報が前記キャッシュ内に見つかれば、前記少なくとも１人の移動ユーザの場所を示す情報を、前記少なくとも１人の移動ユーザの現在の場所を示す情報として使用するステップと、
前記少なくとも１人の移動ユーザの場所を示す情報が前記キャッシュ内に見つからなければ、前記少なくとも１人の移動ユーザの現在の場所を示す情報を入手するために少なくとも１つの移動体位置決定サーバに問合わせるステップとを含む、請求項２３に記載のコンピュータプログラム製品。
【請求項２５】
前記少なくとも１つのイベントはメッセージを送信することを含む、請求項２４に記載
のコンピュータプログラム製品。
【請求項２６】
前記メッセージは移動ユーザに送信される、請求項２５に記載のコンピュータプログラム製品。
【請求項２７】
前記メッセージは非移動ユーザに送信される、請求項２５に記載のコンピュータプログラム製品。
【請求項２８】
前記少なくとも１つの条件は１人の移動ユーザの場所に関係する、請求項２４に記載のコンピュータプログラム製品。
【請求項２９】
前記少なくとも１つの条件は複数の移動ユーザの場所に関係する、請求項２４に記載のコンピュータプログラム製品。
【請求項３０】
前記少なくとも１つの条件は移動ユーザの場所および時間に関係する、請求項２４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
この発明は、移動ユーザの場所に基づいてイベントサービスを提供するための方法、システム、およびコンピュータプログラム製品に関する。
【背景技術】
【０００２】
発明の背景
近年モバイルでの通信および計算機器が広く普及するようになっている。このような機器においては、小型で容易に持ち運びできるパッケージ内に通信、計算および接続の機能が設けられている。このような機器の例としては携帯電話および携帯情報端末（ＰＤＡ）が挙げられる。このような機器で利用可能となりつつある機能として位置検知機能があり、これによって機器および／またはこの機器の接続されている通信ネットワークは機器の位置を判断することができる。この位置検知機能により、場所に基づいたイベント関連の機能への対応が可能となる。場所に基づいたイベントとは、一人または一群の移動ユーザについての、その移動機器の場所で決まる場所に関係する特徴が、予め定義された規則を満足させたときに引起こされるものである。場所に関係する特徴の例としては、場所、速度、またはその他の場所関係の活動が挙げられる。たとえばユーザが定義する規則として、人物Ａが或る特定の領域に入り、かつ人物Ｂの場所が或る特定のアドレスから２マイル以内に突き止められれば、メッセージが第３の人物Ｃに送信される、というものがあり得る。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
場所に基づいたイベントに対応できるシステムは自分の移動ユーザの場所を更新する必要がある。一般に、移動ユーザの場所は固定の定期的なスケジュールに基づいて更新される。定期的な更新が採用されているのは、移動機器場所判定の複雑さおよびコストのため移動ユーザの場所をリアルタイムに追跡することは極めてコストがかかりかつ困難であるからである。典型的な移動ネットワークには何千あるいは何百万もの移動ユーザが含まれることがあり得る。ここで生じる問題としては、移動ユーザの場所を固定の定期的なスケジュールに基づいて更新することに伴うネットワークトラフィックオーバーヘッドが極めて高くなるということがある。したがって、移動ユーザの場所を更新できるようにする一方で、従来技術と比較してネットワークトラフィックオーバーヘッドを減少させる技術に対する要求が生じることになる。
【課題を解決するための手段】
【０００４】
発明の概要
この発明は、移動ユーザの場所に基づいてイベントサービスを提供するための方法、システムおよびコンピュータプログラム製品である。この発明は、「場所情報キャッシュ」を用いて移動ユーザについての新しい場所情報を記憶させることで、コストおよび時間のかかる位置決定要求の必要性を減少させ、さらに、場所判定を行なうべき時間をインテリジェント式にスケジュールすることによって効率化を図る。この発明は、イベント条件およびイベントに関係するユーザの過去の場所や速度についての情報、ならびにその他の情報を維持する。場所に基づいたイベントが登録されるとイベントについてのレコードが作成され、これはイベントが引起こされた後に失効する。イベントに関連付けられた各々のユーザにつき、システムは、ユーザの場所がイベント条件を満たすときの予測イベント時間を保持する。この予測イベント時間によって次の位置決定がいつ実行されるのかが決まる。予測時間にて、移動ユーザの実際の場所を入手するための位置決定要求が送信される
。位置決定の結果次第で、イベント管理モジュールは、イベントを引起こすか、または予測時間およびユーザの過去の場所を更新する。予測時間は、ユーザの過去の場所および速度についての情報と、目的地の場所情報と、イベントの特徴との関数として計算される。
【０００５】
この発明に従う、場所に基づいたイベントサービスを提供する方法は、ａ）少なくとも１人の移動ユーザの現在の場所を示す情報を入手するステップを含み、上記少なくとも１人の移動ユーザは選択された移動ユーザを含み、上記方法はさらに、ｂ）少なくとも１人の移動ユーザの示された現在の場所に基づき、上記少なくとも１人の移動ユーザの場所に関係する少なくとも１つの条件が満足されているかどうかを判断するステップと、ｃ）少なくとも１つの条件が満足されていれば少なくとも１つのイベントを実行するステップと、ｄ）ステップａ）〜ｃ）を繰返すまでに待つための時間間隔を求めるステップとを含む。
【０００６】
上記待つための時間間隔を求めるステップは、条件が満足されることを引起こす見込みが最も少ない移動ユーザを選択するステップと、この選択された移動ユーザに基づいて待つための時間間隔を求めるステップとを含み得る。上記選択された移動ユーザに基づいて待つための時間間隔を求めるステップは、上記選択された移動ユーザの現在の場所と条件に関係する領域との距離、上記選択された移動ユーザの速度、のうち少なくとも１つに基づいて、上記選択された移動ユーザが条件を満足させる見込みがある時間を推定するステップと、上記選択された移動ユーザが条件を満足させる見込みがある推定時間と時間許容差とに基づいて待つための時間間隔を求めるステップとを含み得る。上記入手するステップは、移動ユーザの場所を示す情報を記憶するように動作可能なキャッシュで、上記少なくとも１人の移動ユーザの場所を示す情報を探索するステップと、上記少なくとも１人の移動ユーザの場所を示す情報が上記キャッシュ内に見つかれば、上記少なくとも１人の移動ユーザの場所を示す情報を、上記少なくとも１人の移動ユーザの現在の場所を示す情報として使用するステップと、上記少なくとも１人の移動ユーザの場所を示す情報が上記キャッシュ内に見つからなければ、上記少なくとも１人の移動ユーザの現在の場所を示す情報を入手するために少なくとも１つの移動体位置決定サーバに問合わせるステップとを含み得る。
【０００７】
上記少なくとも１つのイベントはメッセージを送信することを含み得る。上記メッセージは移動ユーザまたは非移動ユーザに送信され得る。上記少なくとも１つの条件は、１人の移動ユーザの場所に関係することも、複数の移動ユーザの場所に関係することも、または移動ユーザの場所および時間に関係することもある。
【０００８】
この発明についてその構造および動作の両方における詳細は添付の図面を参照することで最もよく理解されるであろう。図面においては、同様の番号および名称は同様の要素を指す。
【発明を実施するための最良の形態】
【０００９】
発明の詳細な説明
図１において、この発明が実現され得るネットワークシステム１００を例示するブロック図を示す。ネットワークシステム１００はネットワーク１０２を含む。ネットワーク１０２は複数の装置、たとえば移動ユーザ機器１０４Ａ〜１０４Ｂおよびネットワーク装置１０６Ａ〜１０６Ｃが通信するようにこれらを相互接続する。ネットワーク１０２は、適当に相互接続された無線および有線の両方のネットワークを含み得る。無線ネットワークにおける伝送媒体は一般に電波または光などの電磁放射エネルギーである。有線ネットワークにおける伝送媒体は一般に銅ケーブルまたは光ファイバケーブルである。
【００１０】
ネットワーク１０２は１つ以上のローカルエリアネットワーク（ＬＡＮ）、１つ以上の
ワイドエリアネットワーク（ＷＡＮ）、またはＬＡＮおよびＷＡＮの両方を含み得る。ネットワーク１０２内には１つ以上のネットワークを含ませることができ、これにはインターネットなどの公衆ネットワークと私用ネットワークとの両方を含ませることができ、イーサネット（Ｒ）、トークンリング、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）などあらゆるネットワーク技術およびプロトコルを採用することができる。図１には示さないが、ネットワーク１０２は他の１つ以上の無線ネットワークまたは１つ以上の有線ネットワークに対して接続、相互接続またはインターフェイスし得る。
【００１１】
移動ユーザ機器１０４Ａ〜１０４Ｆは、無線ネットワークの移動ユーザが動作させまたは所有する、あらゆる種類の移動電子データ処理システムまたは通信機器を含み得る。このような電子データ処理システムの例としては、パーソナルコンピュータシステムたとえばデスクトップまたはラップトップコンピュータ、携帯情報端末（ＰＤＡ）、無線通信機器たとえば携帯電話などが含まれる。移動ユーザ機器がコンピュータシステムである実施例では、コンピュータシステムはネットワーク１０２に直接接続することも、またはコンピュータシステムはネットワーク１０２に対し、他の１つ以上のネットワーク、ゲートウェイ、ファイアウォールなどを介して間接的に接続することもある。移動ユーザ機器が他の種類の装置、たとえばＰＤＡまたは無線通信機器である実施例では、ネットワーク１０２への接続は適当に直接的または間接的であって、無線、有線、または有線と無線との組合せであり得る。一般に、移動ユーザ機器１０４Ａ〜１０４Ｆのユーザインターフェイスはグラフィカルユーザインターフェイスであるが、その他のインターフェイスを使用することもある。たとえばクライエントシステムは、タッチトーン応答ユニットまたは音声応答ユニットに通信可能に接続された携帯電話を含むことができ、これはタッチトーンコマンドまたは音声コマンドを受理しかつネットワーク１０２経由で送信し、さらに、応答をネットワーク１０２経由で受信し、受信した応答を音声に変換し、受信した応答をクライエントシステムに送信する。
【００１２】
ネットワーク装置１０６Ａ〜１０６Ｃは、無線ネットワークの非移動ユーザが動作させまたは所有する、あらゆる種類の電子データ処理システムまたは通信装置を含み得る。このような電子データ処理システムの例としては、サーバ、ルータ、スイッチ、ブリッジ、音声またはトーン応答ユニットなどが含まれる。ネットワーク装置１０６Ａ〜１０６Ｃは直接ネットワーク１０２に接続されることも、またはネットワーク１０２に対し、他の１つ以上のネットワーク、ゲートウェイ、ファイアウォールなどを介して間接的に接続することもある。
【００１３】
さらに、場所情報管理システム１０８がネットワーク１０２と通信するように接続される。場所情報管理システム１０８はネットワーク１０２とインターフェイスし、かつネットワーク１０２に接続された移動ユーザ機器１０４Ａ〜１０４Ｆおよびネットワーク装置１０６Ａ〜１０６Ｃとインターフェイスして、移動ユーザが動作させまたは所有する移動ユーザ機器で決まるこれら移動ユーザの場所に基づいてサービスを提供する。
【００１４】
図２において、図１に示す場所情報管理システム１０８を例示するブロック図を示す。一般的に場所情報管理システム１０８はプログラムされた汎用コンピュータシステム、たとえばパーソナルコンピュータ、ワークステーション、サーバシステム、およびミニコンピュータまたはメインフレームコンピュータである。場所情報管理システム１０８は１つ以上のプロセッサ（ＣＰＵ）２０２Ａ〜２０２Ｎ、入出力回路２０４、ネットワークアダプタ２０６、およびメモリ２０８を含む。ＣＰＵ２０２Ａ〜２０２Ｎは、この発明の機能を行なうためのプログラム命令を実行する。一般的には、ＣＰＵ２０２Ａ〜２０２Ｎは１つ以上のマイクロプロセッサ、たとえばインテル（Intel）社のPentium（Ｒ）プロセッサである。図２に例示する実施例ではシステム１０８は単一の多重プロセッサコンピュータシステムとして実現され、多数のプロセッサ２０２Ａ〜２０２Ｎは、メモリ２０８、入出
力回路２０４およびネットワークアダプタ２０６などのシステム資源を共用する。しかしこの発明はまた、単一プロセッサコンピュータシステム、多重プロセッサコンピュータシステムまたはその組合せであり得る、複数のネットワーク化されたコンピュータシステムとしてシステム１０８が実現される実施例も企図している。
【００１５】
入出力回路２０４は、場所情報管理システム１０８へデータを入力またはここからデータを出力する機能を提供する。たとえば入出力回路は、キーボード、マウス、タッチパッド、トラックボール、スキャナなどの入力装置、ビデオアダプタ、モニタ、プリンタなどの出力装置、およびモデムなどの入出力装置を含み得る。ネットワークアダプタ２０６は場所情報管理システム１０８とネットワーク１０２とのインターフェイスをとる。
【００１６】
メモリ２０８は、場所情報管理システム１０８の各機能を行なうためにＣＰＵ２０２によって実行されるプログラム命令と、ＣＰＵ２０２によって使用され処理されるデータとを記憶する。メモリ２０８はランダムアクセスメモリ（ＲＡＭ）、読出専用メモリ（ＲＯＭ）、プログラム可能読出専用メモリ（ＰＲＯＭ）、電気消去可能なプログラム可能読出専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリなどの電子メモリデバイス、および磁気ディスクドライブ、テープドライブ、光ディスクドライブなどの電気機械的メモリを含むことができ、これはＩＤＥ（integrated drive electronics）インターフェイスまたはその変形物または改良物、たとえばＥＩＤＥ（enhanced IDE）、またはＵＤＭＡ（ultra direct memory access）またはＳＣＳＩ（small computer system interface）ベースのインターフェイス、またはその変形物または改良物、たとえば高速ＳＣＳＩ、幅広ＳＣＳＩ、高速および幅広ＳＣＳＩなど、またはＦＣ−ＡＬ（fiber channel-arbitrated loop）インターフェイスを使用することができる。
【００１７】
メモリ２０８は、イベント管理モジュール２１０、場所情報獲得モジュール２１２、モバイルアプリケーション２１４Ａ，２１４Ｂおよび基本ソフト２１６を含む。イベント管理モジュール２１０は、移動ユーザの場所と、移動ユーザの場所に基づき定義されるイベント条件とを管理し、この発明の場所に基づいたイベント処理を行なう。場所情報獲得モジュール２１２は、移動ユーザが動作させまたは所有する移動機器の場所を判定するシステムと通信して移動ユーザの場所を示す情報を入手する。モバイルアプリケーション２１４Ａ，２１４Ｂはその他場所に基づく処理を行なう。基本ソフト２１６は全体的なシステム機能を提供する。システム性能を向上させるために、場所情報獲得モジュール２１２は、場所情報をキャッシュできるようにする場所情報キャッシュ２１８を含む。
【００１８】
図２に示すように、この発明の企図する実現例としては、多重プロセッサ、多重タスク処理、多重プロセスおよび／またはマルチスレッド計算が可能な１つまたは複数のシステムによるものだけでなく、単一プロセッサ、単一スレッド計算が可能なシステムによるものもある。多重プロセッサ計算は、２つ以上のプロセッサを使用した計算を行なうことに関する。多重タスク処理計算は、基本ソフトにおける２つ以上のタスクを用いた計算を行なうことに関する。タスクとは基本ソフト概念であって、実行されているプログラムと基本ソフトの用いるブックキーピング情報とを組合せたものを指す。基本ソフトはプログラムの実行のたびにこれについての新たなタスクを作成する。タスクはプログラムの封筒のようなものであり、プログラムをタスク番号で識別してこれに他のブックキーピング情報を添付する。ＵＮＩＸ（Ｒ）、ＯＳ／２（Ｒ）およびWindows（Ｒ）を含む多くの基本ソフトは同時に多数のタスクを実行でき、これらはマルチタスキングＯＳと呼ばれている。多重タスク処理とは、基本ソフトが同時に２つ以上の実行可能物を実行できることである。各々の実行可能物はそれ自身のアドレス空間内で実行され、すなわちこれら実行可能物は自分たちのメモリのいずれを共有することもできない。これには利点もあり、それはいずれのプログラムも、システム上で実行されている他のプログラムのいずれについての実行にも損害を与えることができないからである。しかしながら、プログラムは基本ソフト
を介して（またはファイルシステムに格納されたファイルを読出すことによって）しか情報交換ができない。多重プロセス計算は多重タスク処理計算と類似するが、それはタスクおよびプロセスという用語が、基本ソフトによっては両者を区別しているものがあるとはいえ、交換可能に用いられることが多いからである。
【００１９】
図３において、図２に示す場所情報管理システム１０８に含まれる処理モジュール同士のやり取りを例示するブロック図を示す。場所情報管理システム１０８は移動ユーザに関係する場所情報を獲得してこの情報を記憶および管理し、さらに、予め定義されている、場所に基づく条件が満足されたかどうかについて、上記場所情報を用いて判断する。場所情報管理システム１０８は場所情報獲得モジュール２１２とイベント管理モジュール２１０を含み、さらにモバイルアプリケーション２１４Ａ，２１４Ｂなど他のモバイルアプリケーションも含み得る。場所情報獲得モジュール２１２は場所情報キャッシュ２１８を含み、ネットワーク１０２を介して移動体位置決定サーバ３１０と通信する。イベント管理モジュール２１０は、場所を追跡されている移動ユーザについての場所情報を場所情報獲得モジュール２１２から要求する。位置決定要求が場所情報獲得モジュール２１２に入ると、この要求を満たす情報をまず場所情報キャッシュ２１８で探索する。キャッシュされる情報には、移動ユーザが動作させまたは所有する移動機器のＩＤなどの情報、移動ユーザの過去の場所、たとえば移動機器の過去のｎ個の位置に関係する情報、およびその他の場所関係の情報が含まれ得る。
【００２０】
要求に応答して項目がキャッシュ内に見つかると、この項目が使用するには古すぎないかどうかについて判断される。各々のキャッシュ項目は或る時間がたつと失効するが、この時間はユーザの速度と、ユーザの過去の位置と、アプリケーションにより特定される場所パラメータ特性とのヒューリスティックな関数である。要求を満たす情報が場所情報キャッシュ２１８内に見つかればキャッシュされた情報が返され、実際の位置検知は行なわれない。要求を満たす情報が場所情報キャッシュ２１８内に見つからなければ、実際の位置検知が実行され、こうして入手された情報によって場所情報キャッシュ２１８が更新されることになる。
【００２１】
一般的に移動体位置決定サーバ３１０は無線ネットワークを介して移動機器と通信し、移動機器の位置を示す情報を入手する。要求を満たす情報が場所情報キャッシュ２１８内に見つからなければ、場所情報獲得モジュール２１２は、場所を追跡されている移動ユーザについての場所情報を移動体位置決定サーバ３１０から要求する。
【００２２】
要求を満たすのに必要な情報が入手されれば、場所情報キャッシュ２１２はこの情報をイベント管理モジュール２１０に送信し、さらにこの情報をモバイルアプリケーション２１４Ａ，２１４Ｂなど他のモバイルアプリケーションにも送信し得る。イベント管理モジュール２１０は、特定の移動ユーザについて定義された、場所に基づく条件が満足されたかどうかについて、受取った情報を用いて判断する。もし満足されていれば、イベント管理モジュール２１０はイベントの実行を引起こす。
【００２３】
イベント管理モジュール２１０は場所情報獲得モジュール２１２の上に配置される。イベント管理モジュール２１０は、イベント条件およびイベントに関係するユーザの過去の位置や速度についての情報、ならびにその他の情報を維持する。場所に基づいたイベントが登録されるとイベントについてのレコードが作成され、これはイベントが引起こされた後に失効する。イベントに関連付けられた各々のユーザにつき、システムはユーザの場所がいつイベント条件を満たすかについての予測イベント時間を保持する。この予測イベント時間によって次の位置決定がいつ行なわれるかが決まり、ここで初期値は実際のイベント時間よりも確実に前になるようにされる。予測時間にて位置決定要求がシステムの位置決定モジュールに送信される。位置決定の結果次第で、イベント管理モジュール２１０は
イベントを引起こすか、または予測時間とユーザの過去の位置とを更新する。予測時間は、ユーザの過去の位置および速度についての情報と、目的地の場所情報と、以前の予測イベント時間同士の間隔と、イベントの特徴との関数として計算される。
【００２４】
図４において、図３に示す場所情報獲得モジュール２１２の動作のプロセス４００を例示するフロー図を示す。この図については、場所情報獲得モジュール３００の動作を例示するデータ流れ図である図５を参照すると最もよい。プロセス４００が開始してステップ４０２にて移動ユーザの現在の場所を入手する。イベント管理モジュール２１０は、場所を追跡されている移動ユーザについての場所情報を場所情報獲得モジュール２１２から要求する。位置決定要求が場所情報獲得モジュール２１２に入ると、この要求を満たす情報をまず場所情報キャッシュ２１８で探索する。キャッシュされる情報には、移動ユーザが動作させまたは所有する移動機器のＩＤなどの情報、移動ユーザの過去の位置、たとえば移動機器の過去のｎ個の位置に関係する情報、およびその他の場所関係の情報が含まれ得る。
【００２５】
各々のキャッシュ項目は或る時間がたつと失効するが、この時間はユーザの速度とユーザの過去の位置とのヒューリスティック関数である。要求を満たす情報が場所情報キャッシュ２１８内に見つかれば実際の位置検知は行なわれない。その代わり、キャッシュされた情報たとえば移動ユーザの以前の位置、またはキャッシュされた情報に基づく情報、たとえば以前の位置と速度との関数として計算された外挿位置が返される。要求を満たす情報が場所情報キャッシュ２１８内に見つからなければ、場所情報キャッシュは位置決定要求を移動体位置決定サーバ３１０に送信する。位置決定要求５０２は、１人以上の移動ユーザおよび／または移動ユーザが動作させまたは所有する移動機器を識別する情報を含む。位置決定要求５０２が移動ユーザを識別する情報を含む場合、この情報は移動機器を識別する情報へと変換される。こうして識別された移動機器に対し、移動体位置決定サーバ３１０は、典型的には無線ネットワーク経由で通信して、この移動機器の位置を示す情報を入手する。移動体位置決定サーバ３１０は、移動機器の位置を示す情報を含む位置決定結果５０４を場所情報キャッシュ２１８へ送信する。一般的に位置決定結果５０４は移動機器の緯度および経度の形をとる位置情報を含む。
【００２６】
場所情報キャッシュ２１２は位置決定結果５０４に含まれる場所情報をキャッシュしてこの場所情報をイベント管理モジュール２１０へ送信する。
【００２７】
ステップ４０４にて、この場所情報を用いてイベント管理モジュール２１０は、入手された場所情報が関わる移動ユーザについて定義されたイベント条件が満足されたかどうかを判断する。イベント管理モジュール２１０はイベント条件についての情報を維持し、さらに、イベントに関連付けられた移動ユーザに関係する情報、たとえば移動ユーザの過去の場所、移動ユーザの速度およびその他の情報を維持する。場所に基づいたイベントが登録されると、イベントについてのレコードまたはエントリがイベントデータベース内に作成される。イベント条件が満足されてイベントが引起こされた後、レコードは失効する。位置決定結果５０４内の情報が、定義された、場所に基づいたイベント条件と比較される。たとえば条件を、特定のアドレスから２マイル以内と定義することがあり得る。この比較を行なう際、一般に利用可能な地球コード化サービスまたはそのデータベースからアドレスの緯度および経度を入手し、このアドレスの緯度および経度と、位置決定結果５０４に含まれる緯度および経度との距離が容易に計算される。距離が２マイルよりも小さければ条件は満足されている。この発明ではあらゆる所望の複雑さでの条件が定義および評価され得る。たとえば、場所だけに基づく条件に加えて、時間に基づく条件または時間と場所との組合せに基づく条件もまた定義され得る。このような条件の一例として、今日午後２時以降に特定のアドレスから２マイル以内、と定義することがあり得る。
【００２８】
ステップ４０６にて、イベント条件が満足されたかどうかについて判断し、さらにプロセス４００が進んでステップ４０８にて定義されたイベント処理が行なわれる。イベント処理は所望に応じた複雑さのものであり得るが、一般的には１以上のメッセージを１以上の当事者へ送信することを含む。たとえば、或る移動ユーザが特定のアドレスから２マイル以内にいると判断された場合、そのような意味の情報を含むメッセージがこのアドレスへ送信され得る。これを用いて、たとえば、或る当事者が或る目的地に到着しかかっており、この目的地にいる者はこの当事者がすぐに到着すると予想できることを示すことがあり得る。同様に１以上の他の当事者に対し、条件が満足したことをこれら当事者に知らせるメッセージが送信され得る。
【００２９】
ステップ４１０にてイベントの後処理が行なわれる。
【００３０】
もしステップ４０６にて満足されたイベント条件がないと判断された場合、プロセス４００が進んでステップ４１２にて、次の場所更新についての予測時間が求められる。イベント管理モジュール２１０はイベント条件についての情報を維持し、さらに、イベントに関連付けられた移動ユーザに関係する情報、たとえば移動ユーザの過去の場所、移動ユーザの速度、およびその他の情報を維持する。場所に基づいたイベントが登録されると、イベントについてのレコードまたはエントリがイベントデータベース内で作成される。イベント条件が満足されイベントが引起こされた後、レコードは失効する。イベントに関連付けられた各々の移動ユーザにつき、イベント管理モジュール２１０は、移動ユーザの場所がイベント条件を満足するであろうと予測される時間である予測イベント時間を求めて維持する。この予測イベント時間を用いて、移動ユーザの場所に対する次の要求がいつ送信されるかを判断する。予測時間を調整することによって、イベント条件が実際に満足されるより前に場所に対する要求が行なわれることを確実にし、こうしてイベント条件の満足を取り逃したりこれが遅れたりしないようにする。
【００３１】
たとえば、移動ユーザの場所および速度を用いて、予測時間を以下のように求めることができる。移動ユーザの場所と、この移動ユーザが関連付けられているイベント条件内に含まれる最も近い場所との距離を求める。次にこの距離を移動ユーザの速度で除算し、移動ユーザの場所がイベント条件を満足し得るまでの最少時間を求める。この最少時間を減じれば、場所に対する要求が行なわれるのは確実に、イベント条件が実際に満足される前となる。次に最小時間を現在の時間に加えて予測時間を求める。
【００３２】
ステップ４１４にて、予測時間まで待ってからプロセスがループしてステップ４０２へ戻り、ここで場所の更新が行なわれる。
【００３３】
図６において、予測時間を求めるステップ４１２のサブプロセスを例示するフロー図を示す。ステップ４１２のサブプロセスが開始してステップ６０２にて、正しい移動ユーザが追跡されているかどうか判断する。所与のイベント条件について追跡されるべき正しい移動ユーザとは、自分に関連付けられたイベント条件が満足されることを引起こす見込みが最も少ない移動ユーザである。たとえばこれは当該の領域から最も遠い移動ユーザや、最も動きの遅い移動ユーザなどであり得る。イベント条件を最初に満足させる見込みが最も少ない移動ユーザが追跡されるように選択されていなければ、ステップ６０４にて、イベント条件を最初に満足させる見込みが最も少ない移動ユーザが追跡されるように選択される。次にプロセスはステップ６０６に進む。もしステップ６０２にて、イベント条件を最初に満足させる見込みが最も少ない移動ユーザが追跡されるように選択されていると判断された場合、プロセスは直接ステップ６０６に進む。
【００３４】
ステップ６０６にて選択された移動ユーザが追跡され、場所更新についての予測時間がこの選択されたユーザに基づいて設定される。予測時間はヒューリスティック関数を用い
て求められる。たとえばヒューリスティック関数は、選択された移動ユーザの現在の位置と当該の領域との距離、選択された移動ユーザが動く速さおよび方向を含む選択された移動ユーザの速度、選択された移動ユーザの過去の位置、および時間許容差に基づき得る。場合によって、たとえば移動ユーザが目的地に近いときにはヒューリスティック関数は簡単な算出であり得るが、その他の場合、たとえば移動ユーザが目的地から遠くにいる場合には、ヒューリスティック関数を高度化させることによって、生じ得る移動ユーザの移動についての変化をカバーしてやる必要がある。たとえば、移動ユーザが目的地から千マイル離れており、１時間につき５０マイルで移動している場合、単純な算出では２０時間という予測時間をもたらすことになる。しかし移動ユーザの移動は変化する可能性があるため、これを予測時間として用いるべきではない。移動ユーザが飛行機に乗って目的地にもっと早く到着することもあり得る。したがって、移動ユーザが目的地から遠くにいる場合、速度についての制限を低くして、予測時間が遅すぎないようにすることが有利である。
【００３５】
時間許容差は、条件の満足の検出において許容され得る不正確さの程度を定める。すなわち、時間許容差をｔとすると、イベント条件の満足の検出は、イベント条件が満足されてから時間ｔ以内に起こる必要がある。たとえば時間許容差を１０分に設定し、移動ユーザが或る領域内に入ることを条件とする場合、システムは、移動ユーザがこの領域に入ったことを、この移動ユーザが実際に領域に入ってから１０分以内に検出しなければならない。時間許容差はシステム全体のデフォルトであっても、特定のイベントについて移動ユーザにより指定されたものであってもよい。
【００３６】
選択された移動ユーザが領域から遠くにいるもしくは動きが遅い、またはその両方である場合、選択された移動ユーザが領域内に入る推定時間は大きく、予測時間までの計算される時間間隔はこれに対応して大きくなる。選択された移動ユーザが領域の近くにいるもしくは動きが速い、またはその両方である場合、選択された移動ユーザが領域内に入る推定時間は小さく、予測時間までの計算される時間間隔はこれに対応して小さくなる。しかしながら、計算された時間間隔が時間許容差よりも小さいものになれば、時間間隔は、この小さい計算値ではなく時間許容差に設定される。このように、位置決定要求の数を減少させることでシステム性能が向上し、時間許容差内に条件の満足を検出することがなお保証される。
【００３７】
単純な事例としては、単一のユーザが或る領域に入るまたはここから出るというものがある。実際には場所に基づいたイベントの条件は複雑なものであることもある。たとえば１人の移動ユーザが領域内に入る、１人の移動ユーザが領域を離れる、多数の移動ユーザが領域内にいる、多数の移動ユーザが領域外にいる、或る移動ユーザが、他の移動ユーザが領域内にいるときに領域内に入るまたはここを離れる、などがある。異なる条件をさらにブール演算と組合せることもできる。しかし、あらゆる所与の時間において、単一の移動ユーザの場所を評価することで複雑な条件を評価することができる。
【００３８】
以下のイベント条件を例として考える。
「３人の移動ユーザＡ，Ｂ，Ｃが皆カリフォルニアにいたら、メッセージをＤに送信する」
このイベントは午後１時に登録されたと仮定する。この時間に既に条件が満足されていれば、イベントが引起こされて終了となる。そうでなければ、カリフォルニアの外に少なくとも１人の移動ユーザがいることになる。ＡおよびＢが既にこの中におり、Ｃが外にいると仮定する。この場合、３人の移動ユーザすべての位置を追跡し続けなくてもＣを追跡するだけでよい。この場合においてはＣが条件を最初に満足させる見込みが最も少ない移動ユーザであると判断され、Ｃが追跡すべき移動ユーザとして選択される。
【００３９】
午後４時にＣがカリフォルニアに入ると仮定する。それまでの３時間の間にＣの場所が
１０回判定され、そのうち前半の５つの位置決定要求には互いに対して大きな時間間隔を設けるが、それはＣがすぐに到着する見込みが少なかったからである。後半の５つの位置決定要求には時間許容差と等しい固定の間隔を設けるが、それはＣが目的地に近づきつつあるからである。しかしこの３時間の間にＡおよびＢの場所はイベントシステムによって全く判定されない。選択された移動ユーザＣがカリフォルニアに入り条件を満足させたときに、システムは３人の移動ユーザすべての場所を入手して完全な条件が満足されたかどうかを判断する。条件が満たされている（３人すべてがカリフォルニアにいる）場合、イベントが引起こされる。条件が満たされていない場合、ＡもしくはＢまたはその両方がカリフォルニアの外にいることになる。再び、条件を最初に満足させる見込みが最も少ない移動ユーザが追跡されるように選択される。追跡されるように選択された移動ユーザが他の移動ユーザよりも先に領域内に入ったとしても、イベントはなお正しく検出される。「正しい」移動ユーザが追跡されるように選択された場合に必要であるよりも多くの位置決定要求をシステムは行なうことになるであろうが、イベントはなお正しく検出される。
【００４０】
イベントが引起こされる、または管理者もしくはユーザによってイベントがシステムから削除されるまで図４に示すプロセスを繰返す。上述の例では、完全なイベント条件は３つの条件要素の連言、すなわち、Ａがカリフォルニアにおり、Ｂがカリフォルニアにおり、かつＣがカリフォルニアにいる、として記述され得る。この種の条件のように条件要素の論理積を取る場合にはただ１人の移動ユーザを追跡するだけでよく、移動ユーザが領域に入るまたはここを離れることが条件となる。複雑な条件において条件要素の論理和を取る場合、条件要素は同じ行為を有する多数のイベントとして扱われ得る。たとえば条件が、
「ＡまたはＢがカリフォルニアに入ったときにメッセージをＤに送信する」
である場合、イベントは２つの別個のイベント、すなわち（１）「Ａがカリフォルニアに入ったときにメッセージをＤに送信する」および（２）「Ｂがカリフォルニアに入ったときにメッセージをＤに送信する」として扱われ得る。この条件は実際には２つの別個のイベントであるため、両方の移動ユーザを追跡する必要がある。これら条件の各々は、単一のユーザが領域に入る／ここを離れることに依存する。これらイベントのうち１つが引起こされれば、全体的な条件は満足されており、他のイベントを追跡する必要はもはやなく、これは消去すべきである。
【００４１】
図７において、領域Ｒへ向かって動いている移動ユーザを示す。移動ユーザと領域との現在の距離はＤであり、速度はｖである。ここでＤは移動ユーザと領域との最短距離であり、これは動きの方向を考慮しない。このイベントの時間許容差はｔである。ユーザの過去のｎ個の位置を表すためにベクトルｐを用いる。よって、予測時間を求めるための時間間隔を出力するヒューリスティック関数はＴ＝ｆ（Ｄ，ｖ，ｐ，ｔ）として記述され得る。なおＤは、ユーザの場所および速度ならびに目標の領域に関するヒューリスティックとして取ることができる。よってＤについてＤ＝ｈ（Ｒ，ｌ，ｖ）と規定することができ、ここでＲは目標の領域、ｌはユーザの場所、およびｖはユーザの速度である。
【００４２】
この発明をフル機能のデータ処理システムとの関連で記載しているが、当業者であれば、この発明のプロセスはコンピュータ可読の命令媒体の形および多種多様にわたる形で配付可能であり、この発明は配付を実際に行なうのに用いる信号伝達媒体の特定の種類とは無関係に等しく適用されることを理解するであろうことに注目することが重要である。コンピュータ可読媒体の例としては、フロッピー（Ｒ）ディスク、ハードディスクドライブ、ＲＡＭおよびＣＤ−ＲＯＭなどの記録媒体、ならびに、デジタルおよびアナログの通信リンクなどの伝送媒体が含まれる。
【００４３】
この発明の特定の実施例を記載したが、当業者であればここに記載の実施例と均等の他の実施例があることが理解されるであろう。したがってこの発明は特定の例示の実施例に
限定されるべきではなく、前掲の特許請求の範囲によってのみ限定されると理解されるべきである。
【図面の簡単な説明】
【００４４】
【図１】この発明が実現され得るネットワークシステム１００を例示するブロック図である。
【図２】図１に示す場所情報管理システムを例示するブロック図である。
【図３】図２に示す場所情報管理システムに含まれる処理モジュール同士のやり取りを例示するブロック図である。
【図４】図３に示す場所情報獲得モジュールの動作プロセスを例示するフロー図である。
【図５】図３に示す場所情報獲得モジュールの動作を例示するデータ流れ図である。
【図６】図４に示すプロセスにおける１ステップのサブプロセスを例示するフロー図である。
【図７】この発明に従う時間間隔を求める応用例を説明する図である。
【図１】
2006503345.tif 000003
【図２】
2006503345.tif 000004
【図３】
2006503345.tif 000005
【図４】
2006503345.tif 000006
【図５】
2006503345.tif 000007
【図６】
2006503345.tif 000008
【図７】
2006503345.tif 000009
【国際調査報告】
2006503345.tif 000010
2006503345.tif 000011
2006503345.tif 000012