(57)【要約】端末の移動に伴う通信担当サーバの割当ての過度の変更を抑制できるようにする。コンピュータ（１）の位置情報取得手段（１ａ）で、情報提供対象の候補となる携帯情報端末装置の位置情報が取得される。すると、領域判定手段（１ｂ）により、携帯情報端末装置から取得した位置情報に基づいて、その携帯情報端末装置が担当領域とマージン領域との何れかに含まれるかどうかが判定される。携帯情報端末装置が担当領域内に進入したとき、情報提供手段（１ｃ）により、その携帯情報端末装置への情報提供が開始され、携帯情報端末装置がマージン領域外に出たとき、その携帯情報端末装置への情報提供が終了する。
2005025248.tif 000002
【特許請求の範囲】
【請求項１】
移動端末装置に対して、前記移動端末装置の位置に応じた情報をコンピュータを用いて提供するための情報提供方法において、
前記コンピュータが、
前記移動端末装置の位置情報を取得し、
担当領域と前記担当領域の外周に沿って設けられたマージン領域とが予め定義されており、前記位置情報に基づいて、前記移動端末装置が前記担当領域と前記マージン領域との何れかに含まれるかどうかを判定し、
前記移動端末装置が前記担当領域内に進入したとき、前記移動端末装置への情報提供を開始し、
情報提供の対象となった前記移動端末装置が前記マージン領域外に出たとき、前記移動端末装置への情報提供を終了する、
ことを特徴とする情報提供方法。
【請求項２】
外部からの入力情報に基づいて前記マージン領域を動的に変更することを特徴とする請求の範囲第１項記載の情報提供方法。
【請求項３】
前記外部からの入力情報は隣接領域内の移動端末装置数であることを特徴とする請求の範囲第２項記載の情報提供方法。
【請求項４】
前記外部からの入力情報は担当領域内の移動端末装置数であることを特徴とする請求の範囲第２項記載の情報提供方法。
【請求項５】
前記外部からの入力情報はマージン領域内の移動端末装置数であることを特徴とする請求の範囲第２項記載の情報提供方法。
【請求項６】
前記外部からの入力情報は前記担当領域内の予め指定された領域内の移動端末装置数であることを特徴とする請求の範囲第２項記載の情報提供方法。
【請求項７】
前記マージン領域での滞在可能時間が予め設定されており、前記位置情報がマージン領域内であっても、前記マージン領域内の滞在時間が前記滞在可能時間を超えたときは、前記移動端末装置への情報提供を終了することを特徴とする請求の範囲第１項記載の情報提供方法。
【請求項８】
外部からの入力情報に基づいて前記滞在可能時間を動的に変更することを特徴とする請求の範囲第７項記載の情報提供方法。
【請求項９】
前記外部からの入力情報は隣接領域内の移動端末装置数であることを特徴とする請求の範囲第８項記載の情報提供方法。
【請求項１０】
前記外部からの入力情報は前記担当領域内の移動端末装置数であることを特徴とする請求の範囲第８項記載の情報提供方法。
【請求項１１】
前記外部からの入力情報はマージン領域内の移動端末装置数であることを特徴とする請求の範囲第８項記載の情報提供方法。
【請求項１２】
前記外部からの入力情報は前記担当領域の予め指定された領域内の移動端末装置数であることを特徴とする請求の範囲第８項記載の情報提供方法。
【請求項１３】
情報提供サービス全体を管理するマスタサーバから前記移動端末装置が前記担当領域内に居ることを示す通知を受け取った場合に、前記移動端末装置の位置情報を取得することを特徴とする請求の範囲第１項記載の情報提供方法。
【請求項１４】
前記移動端末装置への情報提供を終了したとき、情報提供サービス全体を管理するマスタサーバへ、前記移動端末装置への情報提供状態を解除したことを通知することを特徴とする請求の範囲第１項記載の情報提供方法。
【請求項１５】
前記マスタサーバから前記移動端末装置への情報提供開始依頼を受けたときに、前記移動端末装置の位置情報の取得を開始し、前記移動端末装置への情報提供を終了するまで前記移動端末装置の位置情報を繰り返し取得することを特徴とする請求の範囲第１４項記載の情報提供方法。
【請求項１６】
移動端末装置に対して、前記移動端末装置の位置に応じた情報を提供するための情報提供プログラムにおいて、
コンピュータに、
前記移動端末装置の位置情報を取得し、
担当領域と前記担当領域の外周に沿って設けられたマージン領域とが予め定義されており、前記位置情報に基づいて、前記移動端末装置が前記担当領域と前記マージン領域との何れかに含まれるかどうかを判定し、
前記移動端末装置が前記担当領域内に進入したとき、前記移動端末装置への情報提供を開始し、
情報提供の対象となった前記移動端末装置が前記マージン領域外に出たとき、前記移動端末装置への情報提供を終了する、
処理を実行させることを特徴とする情報提供プログラム。
【請求項１７】
移動端末装置に対して、前記移動端末装置の位置に応じた情報を提供するための情報提供装置において、
前記移動端末装置の位置情報を取得する位置情報取得手段と、
担当領域と前記担当領域の外周に沿って設けられたマージン領域とが予め定義されており、前記位置情報に基づいて、前記移動端末装置が前記担当領域と前記マージン領域との何れかに含まれるかどうかを判定する領域判定手段と、
前記移動端末装置が前記担当領域内に進入したとき、前記移動端末装置への情報提供を開始し、情報提供の対象となった前記移動端末装置が前記マージン領域外に出たとき、前記移動端末装置への情報提供を終了する情報提供手段と、
を有することを特徴とする情報提供装置。
【請求項１８】
移動端末装置に対して、前記移動端末装置の位置に応じた情報を提供するための情報提供プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
前記移動端末装置の位置情報を取得し、
担当領域と前記担当領域の外周に沿って設けられたマージン領域とが予め定義されており、前記位置情報に基づいて、前記移動端末装置が前記担当領域と前記マージン領域との何れかに含まれるかどうかを判定し、
前記移動端末装置が前記担当領域内に進入したとき、前記移動端末装置への情報提供を開始し、
情報提供の対象となった前記移動端末装置が前記マージン領域外に出たとき、前記移動端末装置への情報提供を終了する、
処理を実行させることを特徴とする情報提供プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】  本発明は移動端末装置に情報を提供する情報提供方法、情報提供プログラム、情報提供装置、および情報提供プログラムを記録したコンピュータ読み取り可能な記録媒体に関し、特に担当地域内の移動端末装置を対象として情報を提供する情報提供方法、情報提供プログラム、情報提供装置、および情報提供プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】  従来、大規模な情報提供サービスを構築する場合には、システムのスケーラビリティ（処理に対する要求の質的、量的変化に適応できる度合い）を確保するために負荷分散が行われる。負荷分散には、大別して地域分散とコンテンツ分散とがある。地域分散は、都道府県単位などの地域毎に同一のコンテンツを持ったサーバを割り当て、ユーザの接続場所によって担当するサーバを振り分ける負荷分散方式である。コンテンツ分散は、コンテンツ毎に異なるサーバを割り当て、ユーザが要求するコンテンツに応じて担当するサーバを振り分ける負荷分散方式である。
なお、地域分散によって所定の領域内の端末を所定のサーバに割り当てた場合、領域内外の境界付近に端末があるとき、位置検出の誤差により、実際には領域内にある端末が領域外と判断される虞がある。そこで、領域内外の判定を柔軟に行うために、例えば、建設機械の遠隔制御において稼働領域と非稼働領域の間にヒステリシス領域を設けて、ヒステリシス領域内では稼働領域として扱う技術が開示されている（たとえば、特許文献１参照）。
【特許文献１】      特開２００３−２７５２９号公報
ところで、負荷分散システムを利用したサービスの１つに、ユーザ端末の位置に応じて適切な店舗情報コンテンツを提供するサービスがある。このようなサービスは、提供範囲が広く情報コンテンツが多数ある場合が多く、その場合負荷分散を行う必要がある。ユーザ端末の位置に応じたコンテンツ提供サービスでは、地域分散とコンテンツ分散を組み合わせてスケールを確保することもできる。
地域分散とコンテンツ分散を組み合わせるには、それぞれの地域に割り当てられた各サーバは、その地域内の土地に関連あるコンテンツとその地域内のユーザ端末装置を管理すればよい。但し、ユーザ端末装置が移動したことにより領域が変わると、移動元の領域を担当しているサーバと移動先の領域を担当しているサーバとの間で自動的にユーザ端末装置に関する情報の引き継ぎ処理を行う。これにより、移動先の地域の担当サーバがユーザ端末の担当となる。
しかし、この方式ではユーザ端末装置が領域間を移動すると、それぞれの領域に割り当てられている担当サーバ間でユーザ情報の引き継ぎ処理が必要となる。その際にデータベースへのデータ格納や取得処理などが発生すると、特に高い計算コストが必要となる。特に、ユーザ端末装置が領域の境界付近を連続して移動すると領域移動が頻繁に発生し、その結果サーバ負荷が非常に高くなるという問題がある。
なお、特許文献１で示された技術では、非稼働領域からヒステリシス領域に入った場合にはすぐに稼働領域として扱われるため、ヒステリシス領域と非稼働領域の境界付近を建設機械が移動した場合は、境界内外の判定結果が連続して変更されてしまう。そのため、前述の問題を解決することはできない。
【発明の開示】
本発明はこのような点に鑑みてなされたものであり、端末の移動に伴う通信担当サーバの割当ての過度の変更を抑制できる情報提供方法、情報提供プログラム、情報提供装置、および情報提供プログラムを記録したコンピュータ読み取り可能な記録媒体を提供することを目的とする。
本発明では上記課題を解決するために、図１に示すような処理をコンピュータ１に実行させる情報提供方法が提供される。本発明に係る情報提供方法は、移動端末装置に対して、移動端末装置の位置に応じた情報を提供する処理をコンピュータ１に実行させるためのものである。この情報提供方法ではコンピュータ１が以下の処理を実行する。
コンピュータ１は、前記移動端末装置の位置情報を取得し、担当領域と前記担当領域の外周に沿って設けられたマージン領域とが予め定義されており、前記位置情報に基づいて、前記移動端末装置が前記担当領域と前記マージン領域との何れかに含まれるかどうかを判定し、前記移動端末装置が前記担当領域内に進入したとき、前記移動端末装置への情報提供を開始し、情報提供の対象となった前記移動端末装置が前記マージン領域外に出たとき、前記移動端末装置への情報提供を終了する。
これにより、位置情報に基づいて、移動端末装置が担当領域とマージン領域との何れかに含まれるかどうかが判定され、移動端末装置が担当領域内に進入したとき、移動端末装置への情報提供が開始される。その後、情報提供の対象となった移動端末装置がマージン領域外に出たとき、移動端末装置への情報提供が終了する。
以上説明したように本発明では、移動端末装置が担当領域内に進入したとき、移動端末装置へ情報提供開始し、担当領域の外周に沿ったマージン領域外に出たとき、移動端末装置への情報提供を終了するようにした。そのため、担当領域外に移動端末装置が移動しても、マージン領域内であれば情報提供が継続され、情報提供の開始、終了の切り替え頻度を低く抑えることができる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】  図１は、実施の形態に適用される発明の概念図である。
図２は、領域の分割例を示す図である。
図３は、本発明の実施の形態に係るエリア情報システムの構成例を示す図である。
図４は、本発明の実施の形態に用いる担当サーバのハードウェア構成例を示す図である。
図５は、本発明の実施の形態に係るエリア情報システムの機能構成を示すブロック図である。
図６は、担当定義テーブルのデータ構造例を示す図である。
図７は、「領域Ａ」の担当領域、マージン領域、指定領域を示す概念図である。
図８は、店舗情報テーブルのデータ構造例を示す図である。
図９は、ユーザ管理テーブルのデータ構造例を示す図である。
図１０は、担当領域テーブルのデータ構造例を示す図である。
図１１は、ローカル店舗情報テーブルのデータ構造例を示す図である。
図１２は、担当ユーザ数テーブルのデータ構造例を示す図である。
図１３は、担当ユーザテーブルのデータ構造例を示す図である。
図１４は、情報配信サービスで行われる処理の手順を示すシーケンス図である。
図１５は、移動端末装置からのログオン処理の詳細を示すフローチャートである。
図１６は、エリア情報システム利用画面の一例を示す図である。
図１７は、サーバ起動処理の手順を示すフローチャートである。
図１８は、ユーザ登録要求処理の手順を示すフローチャートである。
図１９は、ユーザ登録処理の手順を示すフローチャートである。
図２０は、移動端末装置でのサービス開始処理の手順を示すフローチャートである。
図２１は、マスタサーバでのサービス開始処理の手順を示すフローチャートである。
図２２は、購読開始処理の手順を示すフローチャートである。
図２３は、領域判定処理の手順を示すフローチャートである。
図２４は、店舗情報表示処理の手順を示すフローチャートである。
図２５は、担当サーバ変更処理の手順を示すフローチャートである。
図２６は、境界を越えて移動したときの担当サーバの切り替え状況を示す図である。
図２７は、担当サーバの切り替え状況の比較例を示す図である。
図２８は、マージン領域の変更を伴う領域判定処理の手順を示すフローチャートである。
図２９は、マージン領域の調整倍率設定処理の手順を示すフローチャートである。
図３０は、各担当領域内に端末数に基づくマージン領域の変更例を示す図である。
図３１は、マージン領域と指定領域との端末数によるマージン領域の変更例を示す図である。
図３２は、マージン領域への滞在可能時間を利用した担当サーバ切り替えを行うときの領域判定処理の手順を示すフローチャートである。
図３３は、マージン領域に長期滞在したときの担当サーバ切り替え例を示す図である。
図３４は、滞在可能時間の変更を伴う領域判定処理の手順を示すフローチャートである。
図３５は、滞在可能時間の調整倍率設定処理の手順を示すフローチャートである。
【発明を実施するための最良の形態】  以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
本発明では、それぞれの領域に対して、隣接する領域内にマージン領域を持たせ、マージン領域を超えた時点で隣接領域へ移動したと判断する。これにより、領域の境界付近を移動した場合も領域移動の発生を抑制し、領域毎にサーバを負荷分散させた場合の負荷上昇を抑制することができる。また、自身及び隣接する領域を担当しているサーバの負荷に応じて、領域移動の発生しやすさを変更する。これにより、過度の領域移動の抑制を防止することができる。
図１は、実施の形態に適用される発明の概念図である。本発明に係る情報提供方法は、コンピュータ１を用いて、移動端末装置４ａ〜４ｇに対して、移動端末装置４ａ〜４ｇの位置に応じた情報を提供するためのものである。情報提供方法では、コンピュータ１により、位置情報取得手段１ａ、領域判定手段１ｂ、情報提供手段１ｃの機能が実現され、コンピュータ１が情報提供装置として機能する。
位置情報取得手段１ａは、移動端末装置４ａ〜４ｇのうち情報提供対象の候補となる移動端末装置の位置情報を取得する。具体的には、担当領域２とマージン領域３とに滞在しているか、直前の位置情報の取得時に当該領域に滞在していた移動端末装置の位置情報が取得される。
領域判定手段１ｂは、担当領域２と担当領域２の外周に沿って設けられたマージン領域３とが予め定義されており、移動端末装置から取得した位置情報に基づいて、その移動端末装置が担当領域とマージン領域との何れかに含まれるかどうかを判定する。
情報提供手段１ｃは、移動端末装置が担当領域内に進入したとき、その移動端末装置を情報提供の対象として、以後、情報提供を開始する。また、情報提供手段１ｃは、情報提供の対象となった移動端末装置がマージン領域外に出たとき、移動端末装置への情報提供を終了する。
これにより、コンピュータ１の位置情報取得手段１ａで、情報提供対象の候補となる移動端末装置の位置情報が取得される。すると、領域判定手段１ｂにより、移動端末装置から取得した位置情報に基づいて、その移動端末装置が担当領域とマージン領域との何れかに含まれるかどうかが判定される。移動端末装置が担当領域内に進入したとき、情報提供手段１ｃにより、その移動端末装置への情報提供が開始され、移動端末装置がマージン領域外に出たとき、その移動端末装置への情報提供が終了する。
図１の例では、移動端末装置４ａ〜４ｃが担当領域２内にあり、移動端末装置４ｄ，４ｅがマージン領域３内にあり、移動端末装置４ｆ，４ｇが担当領域２およびマージン領域３の外部にある。ここで、移動端末装置４ｄは、担当領域２からマージン領域３に移動したものとする。移動端末装置４ｅは、担当領域２とマージン領域３との外部からマージン領域３内に移動したものとする。移動端末装置４ｆは、マージン領域３内から担当領域２とマージン領域３との外部に移動したものとする。
この場合、移動端末装置４ａ〜４ｃに対しては、コンピュータ１から情報提供が行われる。また、移動端末装置４ｄは、担当領域２内に滞在している間、コンピュータ１による情報提供の対象であったため、マージン領域３内に移動した後も引き続きコンピュータ１から情報提供が行われる。移動端末装置４ｅは、外部からマージン領域３に入っているため、情報提供を開始するための条件（担当領域２に一旦入ること）が満たされない。従って、コンピュータ１から移動端末装置４ｅへの情報提供は行われない。携帯情報端装置４ｆはマージン領域３の外に出てしまったため、その携帯情報端装置４ｆの位置情報がコンピュータ１に送られることにより、コンピュータ１からの情報提供が終了する。移動端末装置４ｇは、元からマージン領域３外であるため、コンピュータ１からの情報提供は行われない。
このように、担当領域２に進入した移動端末装置に対して情報提供を開始するが、担当領域２を出てもマージン領域３内に留まっていれば情報提供を継続するようにした。そのため、担当領域２に対して頻繁に出入りする移動端末装置があっても、情報提供の開始や終了の切り替え頻度が少なくなる。
ここで、コンピュータを複数設け、サービス対象地域を複数の領域に分割し、コンピュータで負荷分散（地域分散）をして、各領域内の移動端末装置へ情報提供を行うことができる。その場合、マスタサーバにおいて、各コンピュータの担当領域、マージン領域、各コンピュータが提供すべき情報などを管理させることができる。各コンピュータは、マスタサーバに問い合わせて、自己の担当領域やマージン領域を認識する。
また、マスタサーバは、各コンピュータに対して、そのコンピュータが情報提供を開始すべき移動端末装置の識別情報を通知する。具体的には、各コンピュータは、移動端末装置への情報提供を終了したとき、その移動端末装置の識別情報をマスタサーバに通知する。すると、マスタサーバは、移動端末装置の現在位置を担当領域とする他のコンピュータに対して、その移動端末装置の識別情報を通知する。この識別情報の通知を受けた他のコンピュータが、その移動端末装置の位置情報を取得し、その移動端末装置が担当領域内にあれば情報提供を開始する。これにより、複数のコンピュータで広い地域に存在する多数の移動端末装置に対して情報提供を行う場合であっても、１つの移動端末装置へ複数のコンピュータが重複して情報提供を行うことが防止できる。
ところで、本発明は、以下のような応用が可能である。
まず、マージン領域３を動的に変更することができる。この場合、外部からの何らかの入力情報に基づいて自分自身のマージン領域の増減を決定する。
たとえば、担当領域に隣接する領域を担当する他のコンピュータが情報を提供している移動端末装置数を取得し、その移動端末装置数に応じて自己のマージン領域を変更できる。具体的には、隣接領域内（自己のマージン領域内は除く）の移動端末装置数が既定の上限数を上回った場合、マージン領域を増大させる。また、隣接領域内の移動端末装置数が既定の下限数を下回った場合、マージン領域を減少させる。下限値と上限値の間であった場合は、マージン領域を規定値に設定する。
また、自己の担当領域内の移動端末装置数に応じてマージン領域を変更できる。具体的には、担当領域内の移動端末装置数が既定の上限数を上回った場合、マージン領域を減少させる。また、担当領域内の移動端末装置数が既定の下限数を下回った場合、マージン領域を増大させる。下限値と上限値の間であった場合は、マージン領域を規定値に設定する。
また、自己のマージン領域内の移動端末装置数に応じてマージン領域を変更できる。具体的には、マージン領域内の移動端末装置数が既定の上限数を上回った場合、マージン領域を減少させる。また、そのマージン領域内の移動端末装置数が既定の下限数を下回った場合、マージン領域を増大させる。下限値と上限値の間であった場合は、マージン領域を規定値に設定する。
また、自己の担当領域内の予め指定された領域内の移動端末装置数に応じてマージン領域を変更できる。具体的には、指定された領域内の移動端末装置数が既定の上限数を上回った場合、マージン領域を減少させる。また、その指定された領域内の移動端末装置数が既定の下限数を下回った場合、マージン領域を増大させる。下限値と上限値の間であった場合は、マージン領域を規定値に設定する。
なお、移動端末装置がマージン領域内に長期滞在した場合、その移動端末装置への情報提供を終了させてもよい。すなわち、コンピュータで、予めマージン領域の滞在可能時間を保持し、位置情報がマージン領域内であると判定するとその時刻を記憶する。コンピュータは、以降位置情報がマージン領域内に滞在している判定すると現時刻と記憶した時刻を比較し、マージン領域滞在可能な時間を超えた時点で、情報提供を終了する。
このとき、滞在可能時間を動的に変更することもできる。この場合、外部からの何らかの入力情報に基づいて、マージン領域の滞在可能時間を変更する。
たとえば、隣接領域を担当する他のコンピュータが情報を提供している移動端末装置数に応じて滞在可能時間を変更できる。具体的には、隣接領域内（自己のマージン領域内を除く）の移動端末装置数が既定の上限数を上回った場合、滞在可能時間を増大させる。また、隣接領域内の移動端末装置数が既定の下限数を下回った場合、滞在可能時間を減少させる。下限値と上限値の間であった場合は、滞在可能時間を規定値に設定する。
また、自己の担当領域内の移動端末装置数に応じて滞在可能時間を変更できる。担当領域内の移動端末装置数が既定の上限数を上回った場合、滞在可能時間を減少させる。また、担当領域内の移動端末装置数が既定の下限数を下回った場合、滞在可能時間を増大させる。下限値と上限値の間であった場合は、領域滞在可能領域を規定値に設定する。
また、自己のマージン領域内の移動端末装置数に応じて滞在可能時間を変更できる。具体的には、マージン領域内の移動端末装置数が既定の上限数を上回った場合、滞在可能時間を減少させる。また、そのマージン担当領域内の移動端末装置数が既定の下限数を下回った場合、滞在可能時間を増大させる。下限値と上限値の間であった場合は、領域滞在可能領域を規定値に設定する。
また、自己の担当領域内の予め指定された領域内の移動端末装置数に応じて滞在可能時間を変更できる。具体的には、指定された領域内の移動端末装置数が既定の上限数を上回った場合、滞在可能時間を減少させる。また、その指定された領域内の移動端末装置数が既定の下限数を下回った場合、滞在可能時間を増大させる。下限値と上限値の間であった場合は、領域滞在可能領域を規定値に設定する。
このようにして、領域の境界付近をユーザ端末が移動しても、情報提供の開始や終了の切り替えの頻度を抑制できる。これにより、移動端末装置が領域間を移動することにともなう負荷の増大を抑制できる。
さらに、それぞれの領域が隣接領域内に持つマージン領域を、自身あるいは隣接する領域を担当するサーバの担当ユーザ数の大小に基づいて動的に変更することによって、現在の各コンピュータの負荷を考慮しながら領域移動処理の発生頻度を調節できる。
また、マージン領域に滞在できる時間を設定することで、実質的な領域移動の処理を適切に行うことができる。
また、マージン領域に滞在できる時間を、自身あるいは隣接する領域を担当するサーバの担当ユーザ数の大小に基づいて動的に変更することによって、現在のサーバ負荷を考慮しながら領域移動処理の発生頻度を調節できる。
以下、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）機能付き移動端末装置を所持している利用者の現在位置に最適な店舗情報を通知するサービスに本発明を適用した場合を例に採り、本発明の実施の形態を具体的に説明する。なお、以下の説明では情報を提供するための情報提供プログラムを実行するコンピュータ（情報提供装置として機能するコンピュータ）を、ホストと呼ぶことする。
図２は、領域の分割例を示す図である。図２に示すように、サービス対象地域を、複数の領域２１〜２９に分割する。なお、各領域２１〜２９には、識別情報が設定されている。領域２１の識別情報は「領域Ａ」、領域２２の識別情報は「領域Ｂ」、領域２３の識別情報は「領域Ｃ」、領域２４の識別情報は「領域Ｄ」、領域２５の識別情報は「領域Ｅ」、領域２６の識別情報は「領域Ｆ」、領域２７の識別情報は「領域Ｇ」、領域２８の識別情報は「領域Ｈ」、領域２９の識別情報は「領域Ｉ」である。
各領域には、その領域内の移動端末装置への情報提供サービスを担当するホストコンピュータ（ホスト）が予め決められている。ここで、ある移動端末装置へ情報提供サービスを担当するホストを、その移動端末装置の担当サーバと呼ぶ。たとえば、移動端末装置を所持するユーザ３０が「領域Ａ」から「領域Ｂ」へ境界３１を越えて移動した場合、原則として、移動端末装置にサービスを提供する担当サーバが変更される。このとき、ユーザ３０が境界３１を越えた直後に担当サーバの切り替えを行うと、ユーザ３０が引き返したときに、再度担当サーバの切り替えが発生する。そこで、本発明の実施の形態に係るエリア情報システムでは、境界３１を越えてから所定の条件を満たした場合にのみ、担当サーバの切り替えを行う。
具体的には、「領域Ａ」の外周に沿ってマージン領域３２を設定しておく。そして、ユーザ３０が「領域Ａ」からマージン領域３２内に移動したときは、「領域Ａ」外であっても「領域Ａ」を担当するホストが、ユーザ３０に対する情報提供を担当する。また、マージン領域３２内であり「領域Ａ」外である場所へのユーザ３０の滞在期間が所定時間を超えたときには、ユーザ３０に対する情報提供を担当するホストを変更することもできる。たとえば、ユーザ３０が「領域Ｂ」内で且つ「領域Ａ」の外側に設けられたマージン領域３２内に所定時間以上滞在した場合、その後は、「領域Ｂ」を担当する担当サーバがユーザ３０への情報配信を担当する。
また、マージン領域３２の広さを動的に変更することもできる。たとえば、「領域Ａ」内の端末数、マージン領域３２内の移動端末装置数、あるいは「領域Ａ」の外周に沿って内側に設けた指定領域３３内の移動端末装置数に応じて、マージン領域３２の広さを動的に変更する。
図３は、本発明の実施の形態に係るエリア情報システムの構成例を示す図である。本発明の実施の形態に係るエリア情報システムは、ネットワーク１０を介して接続された複数のサーバコンピュータで構成される。ネットワーク１０としては、たとえば、インターネットのような広域ネットワークを利用することができる。ネットワーク１０には、マスタサーバ１００、複数のホスト２００，２００ａ，２００ｂ，・・・、ＩＭ（Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｅ）サーバ３００、および移動端末装置４００が接続されている。
マスタサーバ１００は、ユーザにサービスするためのマスタ情報を管理するサーバコンピュータである。マスタサーバ１００は、それぞれの領域を担当するホスト２００，２００ａ，２００ｂ，・・・の担当領域の情報や全店舗情報などが格納されたマスタＤＢ（データベース）を有し、利用者からのユーザ登録やユーザ登録解除などの処理を行う。たとえば、マスタサーバ１００は、各ホスト２００，２００ａ，２００ｂ，・・・に対して、担当領域内の店舗情報を配信する。
ホスト２００，２００ａ，２００ｂ，・・・は、自分自身の担当領域とマージン領域との定義情報、担当領域とマージン領域に含まれる店舗情報などが格納されたローカルＤＢを持つ。そして、ホスト２００，２００ａ，２００ｂ，・・・は、自身が担当している領域内にいる利用者に対して店舗情報を通知したり、利用者が自身の担当領域外に出た場合はその旨をマスタサーバ１００に通知したりする。本発明の実施の形態では、ホスト２００は、「領域Ａ」を担当領域とするサーバコンピュータである。ホスト２００ａは、「領域Ｂ」を担当領域とするサーバコンピュータである。ホスト２００ｂは、「領域Ｃ」を担当領域とするサーバコンピュータである。各ホスト２００，２００ａ，２００ｂ，・・・は、移動端末装置から位置情報を受信して、担当領域内にある店舗情報を通知するためのサーバプログラム（情報提供プログラム）に基づいて動作している。なお、本発明の実施の形態では、ホスト２００，２００ａ，２００ｂ，・・・と利用者の移動端末装置４００との間の情報のやりとりはインスタントメッセージ技術を利用する。
また、各ホスト２００，２００ａ，２００ｂ，・・・には、ネットワーク１０での識別情報としてホスト名が設定されている。ホスト２００のホスト名は「α」、ホスト２００ａのホスト名は「β」、ホスト２００ｂのホスト名は「γ」である。
ＩＭサーバ３００は、ユーザに対してインスタントメッセージ機能を提供するサーバコンピュータである。インスタントメッセージ機能では、ネットワーク１０に接続した移動端末装置同士で直接メッセージのやりとりを可能とする機能である。インスタントメッセージは、電子メールと異なり、登録した相手が現在ネットワーク１０に接続しているかどうかが分かり、接続されている装置へリアルタイムにメッセージを送ることができる。
ここで、インスタントメッセージ技術の仕組みを簡単に説明する。インスタントメッセージ技術は、プレゼンス機能とメッセージング機能で構成されている。プレゼンス機能とは、ユーザ＃１がユーザ＃２の任意の情報（プレゼンス）を購読するようにＩＭサーバ３００に設定しておくと、ユーザ＃２がその情報を変更した場合にリアルタイムで通知されるサービスである。一般的にプレゼンスの購読は、インスタントメッセージサービスでそれぞれのユーザを識別するためのＩＭアドレスという識別子を利用して行う。また、購読されたユーザは、購読を要求しているユーザのＩＭアドレスを知ることができ、どの情報を相手に公開するかを設定が可能である。メッセージング機能とは、ユーザ＃１とユーザ＃２の間でテキストメッセージがリアルタイムで送信する機能である。この場合も、ユーザの指定にはＩＭアドレスを利用する。
上記の機能を利用すると、ホスト２００，２００ａ，２００ｂ，・・・が移動端末装置４００のＩＭアドレスを指定して購読を開始すると、移動端末装置にはホスト２００，２００ａ，２００ｂ，・・・のＩＭアドレスと購読開始要求が通知される。移動端末装置４００がホスト２００，２００ａ，２００ｂ，・・・のＩＭアドレスに対して「位置情報」をプレゼンスとして公開すると、移動端末装置４００の位置情報がホスト２００，２００ａ，２００ｂ，・・・にプレゼンスとして通知され、ホスト２００，２００ａ，２００ｂ，・・・はメッセージング機能を使って店舗情報を移動端末装置４００に通知することができる。
移動端末装置４００は、ユーザがサービスの提供を受けるために使用する携帯型のコンピュータである。移動端末装置４００は、ＧＰＳ機能を搭載しており、自身の位置（緯度、経度）を測定することができる。なお、図３では省略しているが、ネットワーク１０には無線基地局が接続されており、移動端末装置４００は、無線基地局と無線通信を行うことでネットワーク１０に接続される。
本発明の実施の形態では、移動端末装置４００は携帯型のコンピュータとしているが、例えば、ＧＰＳ機能や他の位置情報取得機能を搭載した携帯電話であってもよい。
図４は、本発明の実施の形態に用いる担当サーバのハードウェア構成例を示す図である。ホスト２００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１によって装置全体が制御されている。ＣＰＵ２０１には、バス２０７を介してＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２、ハードディスクドライブ（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２０３、グラフィック処理装置２０４、入力インタフェース２０５、および通信インタフェース２０６が接続されている。
ＲＡＭ２０２には、ＣＰＵ２０１に実行させるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２０２には、ＣＰＵ２０１による処理に必要な各種データが格納される。ＨＤＤ２０３には、ＯＳやアプリケーションプログラムが格納される。
グラフィック処理装置２０４には、モニタ１１が接続されている。グラフィック処理装置２０４は、ＣＰＵ２０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース２０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース２０５は、キーボード１２やマウス１３から送られてくる信号を、バス２０７を介してＣＰＵ２０１に送信する。
通信インタフェース２０６は、ネットワーク１０に接続されている。通信インタフェース２０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本発明の実施の形態の処理機能を実現することができる。なお、図４には、ホスト２００のハードウェア構成例を示したが、他のホスト２００ａ，２００ｂ，・・・、マスタサーバ１００、ＩＭサーバ３００、移動端末装置４００も同様のハードウェアで実現することができる。ただし、移動端末装置４００は、ＧＰＳアンテナと、ＧＰＳアンテナから受信した情報を基に位置を算出する回路や、無線通信回路をさらに有している。なお、移動端末装置４００では、モニタやキーボードは、装置に内蔵してもよい。また、移動端末装置４００では、マウスに代えて、スティックやペンを用いたポインティングデバイスを用いることもできる。
図５は、本発明の実施の形態に係るエリア情報システムの機能構成を示すブロック図である。なお、図５の例では、ホスト２００，２００ａ，２００ｂ，・・・の構成については、ホスト２００の構成を代表的に示しているが、他のホスト２００ａ，２００ｂ，・・・も同様の構成である。
マスタサーバ１００は、マスタＤＢ１１０、マスタデータ管理部１２０、および担当サーバ決定部１３０を有している。
マスタＤＢ１１０は、サービス全体に関する情報を保持するデータベースである。マスタＤＢ１１０は、担当定義テーブル１１１、店舗情報テーブル１１２、およびユーザ管理テーブル１１３を有している。担当定義テーブル１１１には、担当サーバ毎の担当領域の定義等が登録される。店舗情報テーブル１１２には、ユーザに提供する店舗情報がされている。ユーザ管理テーブル１１３には、ユーザ毎の管理情報が登録されている。
マスタデータ管理部１２０は、マスタＤＢ１１０内の各種データの更新、およびマスタＤＢ１１０内に登録されたデータの担当サーバ（ホスト２００）への配信を行う。たとえば、ユーザが領域の境界を跨いで移動し、そのユーザを担当すべき担当サーバが変更されると、マスタデータ管理部１２０は、そのユーザの管理情報を新たに担当する担当サーバに送信する。
担当サーバ決定部１３０は、ホスト２００から、ユーザを担当するための条件を満たさなくなったことを示す通知（領域外メッセージ）を受け取る。その通知を受け取った担当サーバ決定部１３０は、該当するユーザを新たに担当すべき担当サーバを決定し、決定内容をマスタデータ管理部１２０に通知する。
ホスト２００は、ローカルＤＢ２１０、ローカルデータ管理部２２０、マスタデータ問い合わせ部２３０、情報提供部２４０、領域判定部２５０、および動的データ変更部２６０を有している。
ローカルＤＢ２１０は、ホスト２００が担当するユーザを管理し、そのユーザに情報を提供するために必要なデータが登録されている。具体的には、ローカルＤＢ２１０には、担当領域テーブル２１１、ローカル店舗情報テーブル２１２、担当ユーザ数テーブル２１３、及び担当ユーザテーブル２１４が格納されている。担当領域テーブル２１１には、ホスト２００が担当する領域を定義する情報が登録されている。ローカル店舗情報テーブル２１２には、ホスト２００の担当領域およびマージン領域内の店舗の情報が登録されている。担当ユーザ数テーブル２１３には、ホスト２００の担当領域およびマージン領域内のユーザ数が登録されている。担当ユーザテーブル２１４には、ホスト２００が担当するユーザの管理情報が登録されている。
ローカルデータ管理部２２０は、ローカルＤＢ２１０内のデータを管理する。
マスタデータ問い合わせ部２３０は、ホスト２００の担当領域およびマージン領域内の店舗情報や担当ユーザの管理情報を、マスタサーバ１００からマスタＤＢ１１０内のデータとして取得する。
情報提供部２４０は、担当ユーザに対して店舗情報を提供する。なお、店舗情報の提供は、ＩＭサーバ３００におけるインスタントメッセージ機能を利用して行われる。
領域判定部２５０は、担当ユーザの位置情報を取得し、そのユーザが担当領域若しくはマージン領域内に滞在しているか否かを判定する。
動的データ変更部２６０は、ローカルＤＢ２１０に登録されているデータ等に基づいて、マージン領域を動的に変更する。変更したマージン領域はローカルデータ管理部２２０に通知され、ローカルＤＢ２１０の内容に反映される。
ＩＭサーバ３００は、ユーザ認証部３１０とＩＭサービス部３２０とを有している。
ユーザ認証部３１０は、移動端末装置４００からの認証要求を受け付け、ユーザ認証を行う。ユーザ認証の結果は、移動端末装置４００に渡される。ユーザ認証に成功した場合、ユーザ認証部３１０は、その旨をＩＭサービス部３２０に通知する。
ＩＭサービス部３２０は、インスタントメッセージによる装置間のメッセージ中継サービスである。具体的には、移動端末装置４００から出された情報（位置情報等）をリアルタイムにホスト２００に通知したり、ホスト２００から出された情報（店舗情報等）を移動端末装置４００に通知したりする。なお、ＩＭサービス部３２０は、ユーザ認証部３１０によるユーザ認証に成功した移動端末装置に対してのみ、インスタントメッセージのサービスを提供する。
移動端末装置４００は、認証要求部４１０、情報取得部４２０、および位置計測部４３０を有している。
認証要求部４１０は、ＩＭサーバ３００に対して認証要求を送信し、その認証処理の結果を受け取る。認証要求部４１０は、認証に成功した場合には、その旨を情報取得部４２０に通知する。
情報取得部４２０は、ＩＭサーバ３００への認証に成功した旨の通知を受け取ると、ＩＭサーバ３００を経由して、ホスト２００から配信される情報を取得する。情報取得部４２０は、取得した店舗情報を画面表示する。
位置計測部４３０は、ＧＰＳ機能等を用いて移動端末装置４００の位置を計測し、位置情報（緯度、経度）をＩＭサーバ３００を介してホスト２００に通知する。なお、位置を計測する機能（測地機能）は、ＧＰＳ以外の機能を用いてもよい。たとえば、無線通信のための最寄りの基地局の位置に基づいて、移動端末装置４００の位置を判断することできる。
次に、本発明の実施の形態のシステムで利用されるＤＢの内容について具体的に説明する。まず、マスタサーバ１００で保持されるマスタＤＢ１１０内の各テーブルのデータ構造を説明する。
図６は、担当定義テーブルのデータ構造例を示す図である。担当定義テーブル１１１は、各担当サーバの担当領域に関する情報を保持するテーブルで、「ホスト名」「担当領域」「マージン」「指定領域」「滞在可能時間」「上限超指数」「下限超指数」のフィールドを有している。各フィールドの横方向に並べられた情報同士が互いに関連づけられ、領域毎のレコードを構成している。
「ホスト名」は、領域毎の担当サーバのホスト名を格納するフィールドである。図６の例ではα、β、γ等のホスト名が登録されている。
「担当領域」は、各ホストが担当する領域の定義情報を格納するフィールドである。「担当領域」フィールド内の１行目と２行目とが、それぞれ担当領域の左下端（南西の角）の経度と緯度とを表している。また、「担当領域」フィールド内の３行目と４行目とが、それぞれ担当領域の右上端（北東の角）の経度と緯度とを表している。たとえば、ホスト名「α」の担当領域の南西の角は、東経１３４度１２分１０秒、北緯４５度１５分１０秒である。また、ホスト名「α」の担当領域の北東の角は、東経１３４度１２分１５秒、北緯４５度１５分１５秒である。したがって、東経が１３４度１２分１０秒〜１３４度１２分１５秒であり、北緯が４５度１５分１０秒〜４５度１５分１５秒である範囲が、ホスト名「α」であるホスト２００の担当領域である。
なお、本発明の実施の形態では経度と緯度で領域を指定しているが、経度と緯度を使って矩形領域に一意のＩＤを割り当て、そのＩＤを「担当領域」フィールドに設定することもできる。たとえば、経度と緯度の度、分、秒連続して並べ、経度の先頭に東経を示すＥ、緯度の先頭に北緯を示すＮを付加することで一意的にＩＤを付けることが可能である。具体的には、各領域の経度方向の幅を５秒、緯度方向の幅を５秒と定義しておく。そして、東経１３４度１２分１０秒、北緯４５度１５分１０秒以上東経１３４度１２分１５秒、北緯４５度１５分１５秒未満の矩形領域をＩＤ「Ｅ１３４１２１０Ｎ４５１５１０」とする。このＩＤを「担当領域」フィールドに設定することで、担当領域の地理的な範囲が定義される。
「マージン」は、担当領域の外側に設けられるマージン領域の幅を格納するフィールドである。幅は、経度及び緯度に加減算する角度（秒）で示される。図６の例では、ホスト名「α」のホスト２００は、経度と緯度との両側に２秒ずつのマージンを持っている。マージン領域は担当領域の外側のため、東経が１３４度１２分８秒〜１３４度１２分１７秒であり、且つ北緯が４５度１５分８秒〜北緯４５度１５分１７秒の矩形領域のうち、担当領域を除く部分がマージン領域となる。
なお、図６の例では、経度と緯度方向に同じマージンを持っているが、それぞれ異なる値を持っていてもよい。また、図６の例では、経度、緯度の角度（秒）によってマージンを指定しているが、「担当領域」フィールドの項目での説明と同様に、矩形領域に一意に設定されたＩＤ（たとえば、「Ｅ１３４１２０８Ｎ４５１５０８」）でマージン領域の外周を示す矩形領域を定義してもよい。この場合、マージン領域の外周を示す矩形領域の経度方向の幅を９秒、緯度方向の幅を９秒と定義しておく。これにより、１つのＩＤによって図６に示したのと同様の矩形領域が設定できる。
「指定領域」は、担当領域の内側に持つ矩形領域の幅を格納するフィールドである。幅は、経度及び緯度に加減算する角度（秒）で示される。図６のホスト名「α」のホスト２００は、緯度と経度との両側に１秒ずつの指定領域を持っている。指定領域は、担当領域の内側のため、東経が１３４度１２分１１秒〜１３４度１２分１４秒であり、且つ北緯が４５度１５分１１秒〜北緯４５度１５分１４秒の矩形領域を担当領域から除いた部分が指定領域となる。
図６では経度と緯度方向に同じ幅の指定領域を持っているが、それぞれ異なる幅に設定してもよい。また、経度、緯度での角度（秒）によって指定領域を指定しているが、矩形領域に一意に設定されたＩＤ（たとえば、「Ｅ１３４１２１１Ｎ４５１５１１」）で指定領域の内周を示す矩形領域を定義してもよい。この場合、指定領域の内周を示す矩形領域の経度方向の幅を３秒、緯度方向の幅を３秒と定義しておく。これにより、１つのＩＤによって図６に示したのと同様の矩形領域が設定できる。
「滞在可能時間」は、移動端末装置４００がマージン領域に滞在できる最長の時間（秒）を格納するフィールドである。移動端末装置４００が滞在可能時間を超えてマージン領域に滞在すると、その移動端末装置４００は対応する担当サーバの管理対象外と判断される。たとえば、図６の例では、ホスト名「α」のホスト２００では、移動端末装置４００が６０秒を超えてマージン領域に滞在すると、マージン領域内であっても、その移動端末装置４００を情報提供対象外であると判定する。
「上限超指数」は、自身及び隣接領域での担当人数がこの値を超えたときにマージン及び滞在可能時間を調整するための指数を格納するフィールドである。「上限超指数」フィールドの１行目はマージンの指数を表し、２行目は時間の指数を表している。図６の例では、ホスト名「α」のホスト２００は、自身の担当人数が５００人を超えた場合、マージンが規定値の２秒の０．８倍に変更され、滞在可能時間が６０秒の０．５倍に設定される。また、隣接領域の担当人数が５００人を超えた場合、マージンが２秒の１／０．８倍に変更され、滞在可能時間が６０秒の１／０．５倍に設定される。
「下限超指数」は自身及び隣接領域での担当人数がこの値を下回ったときにマージン及び滞在可能時間を調整するための指数を格納するフィールドで、１行目はマージンの指数、２行目は時間の指数を表している。図６の例では、ホスト名「α」のホスト２００は、担当人数が１００人を下回った場合、マージンは規定値の２秒の１．５倍に変更され、滞在可能時間は６０秒の１．５倍に設定される。また、隣接領域の担当人数が１００人を下回った場合、マージンは規定値の２秒の１／１．５倍に変更され、滞在可能時間は６０秒の１／１．５倍に設定される。なお、本発明の実施の形態では、担当領域と隣接領域のマージン及び滞在可能時間の調整に同一の指数を用いているが、独立した値を使って調整することもできる。
図７は、「領域Ａ」の担当領域、マージン領域、指定領域を示す概念図である。「領域Ａ」を担当するホスト２００の担当領域は、担当定義テーブル１１１の「担当領域」フィールドで定義された境界３１で囲まれた矩形領域の内部である。また、「領域Ａ」のマージン領域３２は、担当定義テーブル１１１の「担当領域」フィールドの値に「マージン」フィールドで定義された値を加えた（南西の角を示す緯度、経度からマージンの値を減算、北西の角を示す緯度、経度に対してマージの値を加算）矩形３２ａの内部の領域のうち、担当領域を除く部分である。また、「領域Ａ」の指定領域３３は、担当領域内から、担当定義テーブル１１１の「担当領域」フィールドから「指定領域」フィールドで定義された値を減じた（南西の角を示す緯度、経度に対してマージンの値を加算、北西の角を示す緯度、経度に対してマージの値を減算）矩形３３ａの内部の領域を除く部分である。
ここで、「領域Ｂ」と重複するマージン領域を「Ｍ１」、「領域Ｃ」と重複するマージン領域を「Ｍ２」、「領域Ｄ」と重複するマージン領域を「Ｍ３」、「領域Ｅ」と重複するマージン領域を「Ｍ４」、「領域Ｆ」と重複するマージン領域を「Ｍ５」、「領域Ｇ」と重複するマージン領域を「Ｍ６」、「領域Ｈ」と重複するマージン領域を「Ｍ７」、「領域Ｉ」と重複するマージン領域を「Ｍ８」とする。
このように、各担当サーバに対して担当領域が割り当てられると共に、その担当領域のマージン領域、指定領域等の情報が担当定義テーブル１１１に設定される。
図８は、店舗情報テーブルのデータ構造例を示す図である。店舗情報テーブル１１２は、本サービスで提供する全店舗に関する情報を保持するテーブルであり、「店舗名」「所在地」「担当領域」「店舗情報」「カテゴリ区分」のフィールドを持つ。各フィールドの横方向に並べられた情報同士が互いに関連づけられている。これ以外にも、「住所」「電話番号」「ホームページのＵＲＬ」など様々な情報を、店舗情報テーブル１１２に含めることができる。
「店舗名」はその店舗の名前を格納するフィールドである。
「所在地」はその店舗の所在地を格納するフィールドである。図８の例では、経度と緯度が格納されているが、図６に示した担当定義テーブル１１１の「担当領域」フィールドの項目での説明と同様に、地理的な位置に一意に設定されたＩＤ（たとえば、「Ｅ１３４１２１１Ｎ４５１５１１」）で所在地を定義してもよい。
「担当領域」はそれぞれの店舗が含まれる担当ホスト名を格納するフィールドである。これは店舗情報をファイルから読み込む際にマスタサーバ１００のマスタデータ管理部１２０によって設定される。例えば、店舗名「ｂ」の店舗情報は、図８の「所在地」と図６の担当定義テーブル１１１の「担当領域」および「マージン」を利用することで、ホスト名「β」の担当領域（領域Ｂ）及びホスト名「α」のマージン領域に含まれることが分かる。
「店舗情報」は利用者に通知する各店舗の説明情報を格納するフィールドである。
「カテゴリ区分」は各店舗の分類情報を格納するフィールドである。
また、マスタサーバ１００では、マスタデータ管理部１２０により、ユーザ管理テーブル１１３を用いて、本サービスを利用するためのユーザ登録やユーザ登録の解除が行われる。
図９は、ユーザ管理テーブルのデータ構造例を示す図である。ユーザ管理テーブル１１３は、サービスを提供すべきユーザに関する情報を保持するテーブルであり、「ユーザ」「担当サーバ」「デフォルト担当サーバ」「配信希望カテゴリ区分」のフィールドを有する。各欄の横方向に並べられた情報同士が互いに関連づけられ、１つのレコードを構成している。
「ユーザ」フィールドは、本サービスの利用登録を行っているユーザの識別情報を格納するフィールドである。利用登録を解除すると、該当するユーザの識別情報に対応するレコードが削除される。なお、本発明の実施の形態では、ユーザの識別情報として、インスタントメッセージサービス上でのユーザ識別情報であるＩＭアドレスを用いるものとする。
「担当サーバ」フィールドは、それぞれのユーザを現在担当しているサーバのホスト名を格納するフィールドで、担当サーバが変更されるとフィールドは更新される。
「デフォルト担当サーバ」フィールドはユーザ登録時に一時的にユーザを担当するサーバのホスト名で、これらはラウンドロビンなどの手法で一つのサーバに負荷を集中させないようにする。
「配信希望カテゴリ区分」フィールドはそれぞれのユーザが配信を希望しているカテゴリ情報を格納するフィールドで、このフィールドを利用して必要な情報のみをユーザに配信する。
次に、ホスト２００のローカルデータ管理部２２０に保持される各種テーブルの内容について説明する。
図１０は、担当領域テーブルのデータ構造例を示す図である。担当領域テーブル２１１は、自身が担当する領域に関する情報を保持するテーブルで、「担当領域」「マージン」「指定領域」「滞在可能時間」「上限超指数」「下限超指数」のフィールドを有している。各フィールドの横方向に並べられた情報同士が互いに関連づけられ、１つのレコードを構成している。それぞれのフィールドの意味は、マスタサーバ１００の担当定義テーブル１１１の同名のフィールドと同じである。各フィールドには起動時にマスタサーバ１００に問い合わせて取得した値が設定される。なお、設定されるのは、担当定義テーブル１１１に登録されているデータのうち、ホスト２００自身の担当領域等に関するデータのみである。
図１１は、ローカル店舗情報テーブルのデータ構造例を示す図である。ローカル店舗情報テーブル２１２は、ホスト２００が利用者に通知する店舗に関する情報を保持するテーブルであり、「店舗名」、「店舗情報」、「領域」のフィールドを有している。各フィールドの横方向に並べられた情報同士が互いに関連づけられ、１つのレコードを構成している。それぞれのフィールドの意味は、マスタサーバ１００の店舗情報テーブル１１２の同名のフィールドと同じである。なお、これ以外にも、「住所」「電話番号」「ホームページのＵＲＬ」など様々な情報を、ローカル店舗情報テーブル２１２に含めることができる。各フィールドは起動時にマスタサーバに問い合わせて取得した値が設定される。なお、設定されるのは、マスタサーバ１００の店舗情報テーブル１１２に登録されているデータのうち、ホスト２００自身の担当領域およびその周辺（たとえば、マージン領域）内に位置する店舗のデータのみである。
図１２は、担当ユーザ数テーブルのデータ構造例を示す図である。担当ユーザ数テーブル２１３は、領域の種別毎の移動端末装置数を管理するデータテーブルであり、「ユーザ端末所在」と「端末数」とのフィールドが設けられている。各フィールドの横方向に並べられた情報同士が互いに関連づけられている。
「ユーザ端末所在」フィールドには、ユーザが使用する移動端末装置を、所在地によって分類するときの領域種別が設定される。図１２の例では、「ユーザ端末所在」フィールドに、「担当領域内」、「指定領域内」、「マージンＭ１内」（担当領域の東側のマージン領域）、・・・、「マージン領域Ｍ８内」（担当領域の北東側のマージン領域）、「Ｍ１を含む隣接領域内」（担当領域の東側に隣接する領域）、・・・、「Ｍ８を含む隣接領域内」（担当領域の北東側に隣接する領域）が設定されている。
「端末数」フィールドには、各領域種別内に存在する端末数である。
図１３は、担当ユーザテーブルのデータ構造例を示す図である。担当ユーザテーブル２１４はホスト２００が情報の配信サービスを担当するユーザに関する情報が登録されたデータテーブルである。担当ユーザテーブル２１４には、「ユーザ」、「配信希望カテゴリ」、「滞在領域」、「マージン進入時刻」のフィールドが設けられている。各フィールドの横方向に並べられた情報同士が互いに関連づけられている。
「ユーザ」フィールドには、担当サーバ２００が情報配信すべきユーザの識別情報が設定される。
「配信希望カテゴリ」フィールドには、「ユーザ」が配信を希望している店舗のカテゴリ区分が格納されるフィールドである。
「滞在領域」フィールドには、「ユーザ」が現在滞在している領域が格納されるフィールドであり、担当領域またはマージン領域が格納される。
「マージン進入時刻」フィールドには、「ユーザ」が最初にマージン領域に進入した時刻が格納されるフィールドで、そのマージン領域外へ移動した場合には時刻はクリアされる。
以上のような構成のシステムにおいて、情報配信サービスが行われる。以下、情報配信サービスを提供する際の各装置の処理を具体的に説明する。
図１４は、情報配信サービスで行われる処理の手順を示すシーケンス図である。以下、図１４に示す処理をステップ番号に沿って説明する。なお、ＩＭサーバ３００に関しては、本発明の実施の形態に係る情報提供サービスとは別に、インスタントメッセージサービスが継続して行われているものとする。
［ステップＳ１１］移動端末装置４００が起動されると、移動端末装置４００からＩＭサーバ３００に対するログオン処理が行われる。この処理の詳細は後述する（図１５参照）。
［ステップＳ１２］ＩＭサーバ３００において、移動端末装置４００のログオンを認めると、ログオンに成功したことを移動端末装置４００に通知する。
［ステップＳ１３］一方、マスタサーバ１００とホスト２００とが起動されると、ホスト２００からマスタサーバ１００へ接続要求が出さる。
［ステップＳ１４］ホスト２００とマスタサーバ１００との間の接続が成功すると、マスタサーバ１００からホスト２００へ、各種情報（ホスト２００がサービスを提供する情報端末装置の管理情報等）が送信される。なお、ステップＳ１３，Ｓ１４の処理の詳細は後述する（図１７参照）。
［ステップＳ１５］ログインに成功した移動端末装置４００からマスタサーバ１００へ、ユーザ登録が行われる。この処理の詳細は後述する（図１８参照）。
［ステップＳ１６］マスタサーバ１００は、移動端末装置４００からのユーザ登録を受け付けると、成功した旨を移動端末装置４００に通知する。この処理の詳細は後述する（図１９参照）。
［ステップＳ１７］移動端末装置４００は、ユーザ登録後、サービス開始の要求をマスタサーバ１００に対して出力し、その後、サービスの提供を受ける。なお、この例では、サービス開始時点において、移動端末装置４００を使用するユーザは、ホスト２００の担当領域内に居るものとする。この処理の詳細は後述する（図２０参照）。
［ステップＳ１８］マスタサーバ１００は、ホスト２００に対して、移動端末装置４００の情報の購読指示を送信する。この処理の詳細は後述する（図２１参照）。
［ステップＳ１９］ホスト２００は、マスタサーバ１００からの購読指示に応答して、ＩＭサーバ３００に対して移動端末装置４００に関する情報の購読要求を送信する（購読開始処理）。この処理の詳細は後述する（図２２参照）。
［ステップＳ２０］ホスト２００は、購読手続きが成功すると、マスタサーバ１００から、該当ユーザの配信希望カテゴリを取得する。
［ステップＳ２１］その後、移動端末装置４００は、位置が移動する毎に、位置プレゼンスをＩＭサーバ３００に対して送信する。
［ステップＳ２２］ＩＭサーバ３００は、移動端末装置４００の位置プレゼンスをホスト２００に通知する。
［ステップＳ２３］ホスト２００は、位置プレゼンスに基づいて領域判定を行い、移動端末装置４００が情報提供対象であると判断すれば、移動端末装置４００向けの情報をＩＭサーバ３００に通知する。この処理の詳細は後述する（図２３参照）。
［ステップＳ２４］ＩＭサーバ３００は、ホスト２００から渡された情報を、移動端末装置４００に通知する。すると、移動端末装置４００は、店舗情報を画面表示する。この処理の詳細は後述する（図２４参照）。
［ステップＳ２５］その後、移動端末装置４００は、位置が移動する。このとき、移動端末装置４００が、ホスト２００の担当外となる条件を満たしたものとする（たとえば、ホスト２００のマージン領域外に移動した場合など）。移動端末装置４００は、現在の位置プレゼンスをＩＭサーバ３００に対して送信する。
［ステップＳ２６］ＩＭサーバ３００は、移動端末装置４００の位置プレゼンスをホスト２００に通知する。
［ステップＳ２７］ホスト２００は、移動端末装置４００が自己の担当外になったと判断し、領域外通知をマスタサーバ１００に送信する。
［ステップＳ２８］マスタサーバ１００は、移動端末装置４００へサービスを提供する担当サーバを決定し（この例では、ホスト２００ａに決定されたものとする）、そのホスト２００ａに対して購読指示を送信する。
［ステップＳ２９］購読指示を受け取ったホスト２００ａは、ＩＭサーバ３００に対して移動端末装置４００に関する情報の購読要求を送信する。
［ステップＳ３０］ホスト２００ａは、購読手続きが成功すると、マスタサーバ１００から、該当ユーザの配信希望カテゴリを取得する。
このような手順で、移動端末装置４００の位置に応じたサービス提供が行われる。以下、図１４に示す処理の詳細を説明する。
図１５は、移動端末装置からのログオン処理の詳細を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
［ステップＳ４１］移動端末装置４００の認証要求部４１０は、ユーザからの操作入力等に応答して、ログオン画面を表示させる。
［ステップＳ４２］移動端末装置４００の認証要求部４１０は、ＩＭサーバのログオン処理を行う。たとえば、認証要求部４１０は、ユーザの操作入力により、ユーザ名、ＩＭアドレス、パスワードを受け付ける。認証要求部４１０は、ユーザ名、ＩＭアドレス、パスワードとの組を含む認証要求をＩＭサーバ３００に送信する。ＩＭサーバ３００では、ユーザ認証部３１０が認証要求を受け取り、予め登録されているユーザデータベースと認証要求の内容とを照合する。認証要求に含まれるユーザ名とＩＭアドレスとの組が登録されていてパスワードが正しければ、ユーザ認証部３１０は認証を認める。ユーザ認証部３１０は、認証処理の判断結果を移動端末装置４００に通知する。
［ステップＳ４３］移動端末装置４００の認証要求部４１０は、ＩＭサーバ３００のユーザ認証部３１０から送られた認証処理の判断結果に基づいて、ログオンの成否を判定する。ログオンに成功した場合、処理がステップＳ４４に進められる。ログオンに失敗した場合、処理がステップＳ４５に進められる。
［ステップＳ４４］認証要求部４１０は、ログオンに成功した場合、その旨を情報取得部４２０に通知する。情報取得部４２０は、ログオン成功の通知に応答して、サービス利用画面を表示させる。その後、ログオン処理が終了し、情報取得部４２０はイベント待ち状態となる。
［ステップＳ４５］認証要求部４１０は、ログオンに失敗した場合、リトライができるか否か判断する。たとえば、予めリトライ可能回数が設定されており、そのリトライ回数がリトライ可能回数以下であれば、リトライ可能と判断し、そうでなければ、リトライ不可能と判断する。リトライが可能な場合、処理がステップＳ４１に進められ、再度ログオン処理が行われる。リトライが不可能な場合、処理が終了する。
ログオンが成功すると、移動端末装置４００においてエリア情報システム利用画面が表示される。
図１６は、エリア情報システム利用画面の一例を示す図である。図１６に示すようにエリア情報システム利用画面４０には、ツールバー４１と店舗リスト表示部４２とが設けられている。エリア情報システム利用画面４０内に、これ以外の機能ボタンや描画領域を設けることもできる。なお、エリア情報システム利用画面４０は、ログオンに成功した場合に限り表示される。
ツールバー４１には、「登録」ボタン４１ａ、「開始」ボタン４１ｂ、「停止」ボタン４１ｃ、および「解除」ボタン４１ｄの機能ボタンが設けられている。
「登録」ボタン４１ａは、本サービスにユーザ登録する場合に用いる機能ボタンである。「開始」ボタン４１ｂはユーザ登録終了後、実際にサービスを利用する場合に用いる機能ボタンである。「停止」ボタン４１ｃは、サービスの利用を一時停止する際に用いる機能ボタンである。「停止」ボタン４１ｃを押してもサービスへのユーザ登録は解除されない。「解除」ボタン４１ｄは、本サービスへのユーザ登録を解除する際に用いる機能ボタンである。これらの機能ボタンは、サービスへの利用登録やサービスの利用開始状況によって、押すことができたり、押すことができなかったりすることもある。
店舗リスト表示部４２には、担当サーバから通知された店舗情報が表示される。図１６の例では通知された店舗の名前のみが表示されているが、例えば、このリスト領域の店舗名をダブルクリックすることによって、店舗情報を表示することができる。なお、ログイン直後は、まだ店舗情報を取得していないため、店舗リスト表示部４２内は空欄となる。
このようなエリア情報システム利用画面４０が表示されることで、ユーザは、エリア情報システムを利用可能となる。
一方、エリア情報システムの運用を開始するには、マスタサーバ１００と各ホスト２００，２００ａ，２００ｂ，・・・とが起動されている必要がある。マスタサーバ１００は、起動されることで、移動端末装置４００やホスト２００，２００ａ，２００ｂ，・・・からの各種要求待機状態となる。
図１７は、サーバ起動処理の手順を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
［ステップＳ５１］ホスト２００のマスタデータ問い合わせ部２３０は、マスタサーバ１００への接続処理を行う。具体的には、マスタデータ問い合わせ部２３０からマスタサーバ１００へ接続要求が出される。その接続要求は、マスタサーバ１００のマスタデータ管理部１２０で受け取られる。マスタデータ管理部１２０は、接続要求に対して応答する。
［ステップＳ５２］マスタデータ問い合わせ部２３０は、マスタサーバ１００からの応答によって、接続の成否を判定する。接続に成功した場合には、処理がステップＳ５４に進められる。接続に失敗した場合には、処理がステップＳ５３に進められる。
［ステップＳ５３］マスタデータ問い合わせ部２３０は、接続に失敗した場合、リトライができるか否か判断する。たとえば、予めリトライ可能回数が設定されており、そのリトライ回数がリトライ可能回数以下であれば、リトライ可能と判断し、そうでなければ、リトライ不可能と判断する。リトライが可能な場合、処理がステップＳ５１に進められ、再度接続処理が行われる。リトライが不可能な場合、処理が終了する。
［ステップＳ５４］接続に成功した場合、マスタデータ問い合わせ部２３０は、ホスト２００自身が担当する領域の情報を取得する。具体的には、マスタデータ問い合わせ部２３０は、マスタサーバ１００に対して、自己のサーバ名「α」に応じた担当定義情報の取得要求を出す。すると、マスタサーバ１００のマスタデータ管理部１２０は、担当定義テーブル１１１からホスト名「α」のレコードを取り出し、担当領域情報としてホスト２００に送信する。マスタデータ問い合わせ部２３０は、マスタデータ管理部１２０から送られた担当領域情報を受け取り、ローカルデータ管理部２２０に渡す。
［ステップＳ５５］マスタデータ問い合わせ部２３０は、ホスト２００が担当する領域内の店舗情報を取得する。具体的には、マスタデータ問い合わせ部２３０は、マスタサーバ１００に対して、自己のサーバ名「α」に応じた領域内店舗情報の取得要求を出す。すると、マスタサーバ１００のマスタデータ管理部１２０は、担当定義テーブル１１１からホスト名「α」のレコードを取り出し、ホスト２００の担当領域を認識する。そして、マスタデータ管理部１２０は、ホスト２００の担当領域内の店舗情報を、店舗情報テーブル１１２から取得する。マスタデータ管理部１２０は、取得した店舗情報をホスト２００に送信する。マスタデータ問い合わせ部２３０は、マスタデータ管理部１２０から送られた店舗情報を受け取り、ローカルデータ管理部２２０に渡す。
［ステップＳ５６］マスタデータ問い合わせ部２３０は、ホスト２００が担当する領域内の店舗情報を取得する。具体的には、マスタデータ問い合わせ部２３０は、マスタサーバ１００に対して、自己のサーバ名「α」に応じた領域内店舗情報の取得要求を出す。すると、マスタサーバ１００のマスタデータ管理部１２０は、担当定義テーブル１１１からホスト名「α」のレコードを取り出し、ホスト２００の担当領域を認識する。そして、マスタデータ管理部１２０は、ホスト２００のマージン領域内の店舗情報を、店舗情報テーブル１１２から取得する。マスタデータ管理部１２０は、取得した店舗情報をホスト２００に送信する。マスタデータ問い合わせ部２３０は、マスタデータ管理部１２０から送られた店舗情報を受け取り、ローカルデータ管理部２２０に渡す。
［ステップＳ５７］ローカルデータ管理部２２０は、ステップＳ５４〜Ｓ５６の処理によって受け取った情報に基づいて、ローカルＤＢ２１０を作成する。その後、処理が終了する。
このようにして、ホスト２００のローカルＤＢ２１０が構築される。他のホスト２００ａ，２００ｂ，・・・でも同様の処理が行われ、それぞれの担当領域に応じた内容のローカルＤＢが構築される。以後、各ホスト２００，２００ａ，２００ｂ，・・・から移動端末装置４００への情報配信が可能となる。
そこで、移動端末装置４００のユーザは、エリア情報システム利用画面４０内の「登録」ボタン４１ａを選択する。これにより、移動端末装置４００においてユーザ登録処理が行われる。ユーザ登録処理は、マスタサーバ１００上で動作しているマスタデータ管理部１２０に対してインスタントメッセージシステムで使われる識別子であるＩＭアドレスと「ユーザ登録」コマンドを通知することで行う。
図１８は、ユーザ登録要求処理の手順を示すフローチャートである。以下、図１８に示す処理をステップ番号に沿って説明する。
［ステップＳ６１］移動端末装置４００の情報取得部４２０は、マスタサーバ１００への接続処理を行う。具体的には、情報取得部４２０からマスタサーバ１００へ接続要求が出される。その接続要求は、マスタサーバ１００のマスタデータ管理部１２０で受け取られる。マスタデータ管理部１２０は、接続要求に対して応答する。
［ステップＳ６２］情報取得部４２０は、マスタサーバ１００からの応答によって、接続の成否を判定する。接続に成功した場合には、処理がステップＳ６５に進められる。接続に失敗した場合には、処理がステップＳ６３に進められる。
［ステップＳ６３］情報取得部４２０は、接続に失敗した場合、リトライができるか否か判断する。たとえば、予めリトライ可能回数が設定されており、そのリトライ回数がリトライ可能回数以下であれば、リトライ可能と判断し、そうでなければ、リトライ不可能と判断する。リトライが可能な場合、処理がステップＳ６１に進められ、再度接続処理が行われる。リトライが不可能な場合、処理がステップＳ６４に進められる。
［ステップＳ６４］情報取得部４２０は、移動端末装置４００の画面にエラーメッセージを表示し、処理を終了する。
［ステップＳ６５］情報取得部４２０は、接続に成功した場合、ユーザ登録コマンドとＩＭアドレスとをマスタサーバ１００に対して送信する。マスタサーバ１００では、マスタデータ管理部１２０がＩＭアドレスをユーザ管理テーブル１１３に登録する。そして、マスタデータ管理部１２０は、登録処理の結果を移動端末装置４００に返す。
［ステップＳ６６］情報取得部４２０は、マスタサーバ１００からの応答に基づいて、登録処理に成功したか否かを判断する。登録処理に成功した場合、処理を終了する。登録処理に失敗した場合、処理がステップＳ６７に進められる。
［ステップＳ６７］情報取得部４２０は、移動端末装置４００の画面にエラーメッセージを表示し、処理を終了する。
ここで、ユーザ登録コマンドを受け取ったマスタサーバ１００側での処理について詳細に説明する。
図１９は、ユーザ登録処理の手順を示すフローチャートである。以下、図１９に示す処理をステップ番号に沿って説明する。
［ステップＳ７１］マスタサーバ１００のマスタデータ管理部１２０は、移動端末装置４００からのユーザ登録コマンドを受け取ると、ＩＭアドレスを抽出する。
［ステップＳ７２］マスタデータ管理部１２０は、抽出したＩＭアドレスが、ユーザ管理テーブル１１３に登録済であるか否かを判断する。登録済であれば、処理がステップＳ７３に進められる。登録済でなければ処理がステップＳ７４に進められる。
［ステップＳ７３］マスタデータ管理部１２０は、登録失敗の応答を移動端末装置４００に返し、処理を終了する。
［ステップＳ７４］マスタデータ管理部１２０は、デフォルト担当サーバを決定する。たとえば、デフォルト担当サーバには、システム全体の担当サーバを順番に割り振っていく。すなわち、システム全体で担当サーバ「α」、「β」、「γ」がある場合、前回のユーザ登録時にサーバ「α」を割り当てた場合はサーバ「β」を担当サーバとして割り当てる。これ以外にも、「担当サーバ」のフィールドをリアルタイムで集計して、現在担当しているユーザが最も少ないサーバを担当に割り当ててもよい。
［ステップＳ７５］マスタデータ管理部１２０は、ユーザ管理テーブル１１３に、ステップＳ７１で抽出したＩＭアドレスをユーザとしたレコードを登録する。なお、この時点ではまだサービスの利用を開始していないので、担当サーバのフィールドは空欄のままである。
［ステップＳ７６］マスタデータ管理部１２０は、登録成功の応答を移動端末装置４００に返し、処理を終了する。
このようにして、移動端末装置４００からユーザ登録コマンドを送信し、マスタサーバ１００でユーザ登録を行うことができる。なお、ユーザ登録コマンドには、ＩＭアドレス以外にも、ユーザ名やパスワードなどを含めることができる。ユーザ名やパスワードを送信することによって、マスタサーバ１００においてＩＭサーバ３００とは独立したユーザ認証を行うことができる。
ユーザ登録完了後、移動端末装置４００のエリア情報システム利用画面４０で「開始」ボタン４１ｂが押されると、移動端末装置４００の情報取得部４２０は、サービス開始処理を行う。
図２０は、移動端末装置でのサービス開始処理の手順を示すフローチャートである。以下、図２０に示す処理をステップ番号に沿って説明する。
［ステップＳ８１］移動端末装置４００の情報取得部４２０は、マスタサーバ１００への接続処理を行う。具体的には、情報取得部４２０からマスタサーバ１００へ接続要求が出される。その接続要求は、マスタサーバ１００のマスタデータ管理部１２０で受け取られる。マスタデータ管理部１２０は、接続要求に対して応答する。
［ステップＳ８２］情報取得部４２０は、マスタサーバ１００からの応答によって、接続の成否を判定する。接続に成功した場合には、処理がステップＳ８５に進められる。接続に失敗した場合には、処理がステップＳ８３に進められる。
［ステップＳ８３］情報取得部４２０は、接続に失敗した場合、リトライができるか否か判断する。たとえば、予めリトライ可能回数が設定されており、そのリトライ回数がリトライ可能回数以下であれば、リトライ可能と判断し、そうでなければ、リトライ不可能と判断する。リトライが可能な場合、処理がステップＳ８１に進められ、再度接続処理が行われる。リトライが不可能な場合、処理がステップＳ８４に進められる。
［ステップＳ８４］情報取得部４２０は、移動端末装置４００の画面にエラーメッセージを表示し、処理を終了する。
［ステップＳ８５］情報取得部４２０は、接続に成功した場合、サービス利用開始コマンドとＩＭアドレスとをマスタサーバ１００に対して送信する。マスタサーバ１００では、マスタデータ管理部１２０がサービス利用開始処理を行う。そして、マスタデータ管理部１２０は、開始処理の結果を移動端末装置４００に返す。
［ステップＳ８６］情報取得部４２０は、マスタサーバ１００からの応答に基づいて、開始処理に成功したか否かを判断する。開始処理に成功した場合、処理を終了する。開始処理に失敗した場合、処理がステップＳ８７に進められる。
［ステップＳ８７］情報取得部４２０は、移動端末装置４００の画面にエラーメッセージを表示し、処理を終了する。
ここで、サービス利用開始コマンドを受け取ったマスタサーバ１００側での処理について詳細に説明する。
図２１は、マスタサーバでのサービス開始処理の手順を示すフローチャートである。以下、図２１に示す処理をステップ番号に沿って説明する。
［ステップＳ９１］マスタサーバ１００のマスタデータ管理部１２０は、サービス利用開始コマンドからＩＭアドレスを抽出する。
［ステップＳ９２］マスタデータ管理部１２０は、抽出したＩＭアドレスに基づいて、ユーザ登録済か否かを判断する。具体的には、ユーザ管理テーブル１１３のユーザのフィールドに抽出したＩＭアドレスが登録されていれば、ユーザ登録済である。ユーザ登録済であれば、処理がステップＳ９３に進められる。ユーザ登録済でなければ処理がステップＳ９７に進められる。
［ステップＳ９３］マスタデータ管理部１２０は、サービス開始済か否かを判断する。具体的には、ユーザ管理テーブル１１３の担当サーバのフィールドにホスト名が設定されていれば、サービス開始済と判断される。サービス開始済の場合、処理が終了する。サービス開始済で無い場合、処理がステップＳ９４に進められる。
［ステップＳ９４］マスタデータ管理部１２０は、デフォルト担当サーバに、該当ＩＭアドレスの購読指示を送信する。具体的には、マスタデータ管理部１２０は、ＩＭアドレスを含む購読開始コマンドをデフォルト担当サーバに送信する。
［ステップＳ９５］マスタデータ管理部１２０は、デフォルト担当サーバからの応答に基づいて、購読成功か否かを判断する。購読成功の場合、処理がステップＳ９６に進められる。購読失敗の場合、処理がステップＳ９７に進められる。
［ステップＳ９６］マスタデータ管理部１２０は、ユーザ管理テーブル１１３の担当サーバを更新する。具体的には、マスタデータ管理部１２０は、ユーザ管理テーブル１１３の担当サーバのフィールドに、デフォルト担当サーバと同じホスト名を設定する。その後、処理が終了する。
［ステップＳ９７］マスタデータ管理部１２０は、移動端末装置４００に開始失敗の応答を返す。
このように、移動端末装置４００からマスタサーバ１００に対して、ＩＭアドレスとサービス利用開始コマンドとが送信されると、マスタサーバ１００からデフォルト担当サーバに対して、移動端末装置４００の情報の購読が指示される。デフォルト担当サーバは、マスタサーバの指示に従って、該当ＩＭアドレスの購読開始処理を行う。
次に、デフォルト担当サーバがホスト２００であるものとして、購読開始処理の詳細を説明する。
図２２は、購読開始処理の手順を示すフローチャートである。以下、図２２に示す処理をステップ番号に沿って説明する。
［ステップＳ１０１］ホスト２００の情報提供部２４０は、購読開始コマンドを受信すると、この購読開始コマンドからＩＭアドレスを抽出する。
［ステップＳ１０２］情報提供部２４０は、ＩＭアドレスに該当する移動端末装置の情報を購読済か否かを判断する。具体的には、情報提供部２４０は、担当ユーザテーブル２１４のユーザフィールドに、抽出したＩＭアドレスが登録されているか否かにより、購読済か否かを判断する。ＩＭアドレスが登録されていれば、購読済である。購読済の場合には、処理が終了する。購読済でない場合には、処理がステップＳ１０３に進められる。
［ステップＳ１０３］情報提供部２４０は、抽出したＩＭアドレスを指定した購読要求を、ＩＭサーバ３００に対して送信する。
［ステップＳ１０４］情報提供部２４０は、ＩＭサーバ３００からの応答に基づいて、購読に成功したか否かを判断する。購読に成功した場合、処理がステップＳ１０５に進められる。購読に失敗した場合、処理がステップＳ１０８に進められる。
［ステップＳ１０５］情報提供部２４０は、マスタデータ問い合わせ部２３０を介して、マスタサーバ１００から該当ユーザの配信希望カテゴリを取得する。ここで、該当ユーザの配信希望カテゴリとは、ユーザ管理テーブル１１３内のステップＳ１０３で抽出したＩＭアドレスが「ユーザ」フィールドに設定されたレコードにおけるカテゴリ区分のデータである。
［ステップＳ１０６］マスタデータ問い合わせ部２３０は、取得した配信希望カテゴリをローカルデータ管理部２２０に渡す。ローカルデータ管理部２２０は、担当ユーザ数テーブル２１３と担当ユーザテーブル２１４とを更新する。
［ステップＳ１０７］情報提供部２４０は、マスタサーバ１００に購読成功の応答を返し、処理を終了する。
［ステップＳ１０８］情報提供部２４０は、マスタサーバ１００に購読失敗の応答を返し、処理を終了する。
その後、移動端末装置４００は購読開始要求の通知を受信し、位置情報を格納したプレゼンスをデフォルト担当サーバに対して公開する。プレゼンスとは、インスタントメッセージサービスで提供される機能であり、ユーザの状態を、そのユーザの情報を購読する他のユーザに通知する機能である。本発明の実施の形態では、移動端末装置４００の位置情報を含むプレゼンスが、ホスト２００に通知される。このように、移動端末装置４００が位置情報を含むプレゼンスをＩＭサーバ３００に設定することで、移動端末装置４００の情報を購読しているホスト２００にのみ、自動的に位置情報を格納したプレゼンスを公開することが可能である。
移動端末装置４００が位置情報を格納したプレゼンスを公開すると、ホスト２００に移動端末装置の現在位置が通知される。その後、移動端末装置４００がプレゼンスを更新するたびに、ホスト２００に対して位置情報を含むプレゼンスが通知される。ホスト２００は、プレゼンスを受け取る毎に領域判定を行う。
図２３は、領域判定処理の手順を示すフローチャートである。以下、図２３に示す処理をステップ番号に沿って説明する。
［ステップＳ１１１］ホスト２００の領域判定部２５０は、プレゼンスから位置情報を抽出する。
［ステップＳ１１２］領域判定部２５０は、移動端末装置４００の位置が担当領域内か否かを判断する。担当領域内であれば処理がステップＳ１１５に進められる。担当領域外であれば処理がステップＳ１１３に進められる。
［ステップＳ１１３］領域判定部２５０は、マージン領域内か否かを判断する。マージン領域内であれば処理がステップＳ１１４に進められる。マージン領域外であれば処理がステップＳ１１８に進められる。
［ステップＳ１１４］領域判定部２５０は、マージン領域内の位置を判定する。すなわち、マージン領域は担当領域の周囲８方向に細分化されるため、細分化された領域の何処に移動端末装置４００が有るのかが判定される。
［ステップＳ１１５］領域判定部２５０は、ステップＳ１１２〜Ｓ１１４による領域判定結果をローカルデータ管理部２２０に渡す。ローカルデータ管理部２２０は、領域判定部２５０から渡された領域判定結果に基づいて、担当ユーザ数テーブル２１３および担当ユーザテーブル２１４を更新する。なお、前回の領域判定と同じ結果であれば、担当ユーザ数テーブル２１３および担当ユーザテーブル２１４の内容は変更されない。
［ステップＳ１１６］領域判定部２５０は、ステップＳ１１２〜Ｓ１１４による領域判定結果を情報提供部２４０に渡す。情報提供部２４０は、移動端末装置４００に通知する店舗情報を決定する。たとえば、担当領域またはマージン領域内の店舗のうち、移動端末装置４００のユーザが希望するカテゴリ区分の店舗に関する店舗情報を、通知対象として決定する。
［ステップＳ１１７］情報提供部２４０は、通知対象の店舗情報を、ＩＭサーバ３００を介して移動端末装置４００に通知する。その後、処理が終了する。
［ステップＳ１１８］領域判定部２５０は、移動端末装置４００のＩＭアドレスの購読解除要求を、ＩＭサーバ３００に対して送信する。
［ステップＳ１１９］領域判定部２５０は、ＩＭサーバ３００からの応答に基づいて、購読解除に成功したか否かを判断する。購読解除に成功した場合、処理がステップＳ１２０に進められる。購読解除に失敗した場合、処理が終了する。
［ステップＳ１２０］領域判定部２５０は、ローカルデータ管理部２２０に対して購読解除を通知する。すると、ローカルデータ管理部２２０は、担当ユーザ数テーブル２１３および担当ユーザテーブル２１４を更新する。
［ステップＳ１２１］情報提供部２４０は、マスタサーバ１００に対して、移動端末装置４００のＩＭアドレスと位置情報とを含む領域外コマンドを通知し、処理を終了する。
このようにして、移動端末装置４００が担当領域内であれば店舗情報を通知すると共に、担当領域外であっても、マージン領域内であれば店舗情報を通知することができる。すなわち、ホスト２００の情報提供部２４０は受信したプレゼンスから位置情報を抽出して、担当領域テーブル２１１の「担当領域」フィールドにマージンの値を加えた領域に該当ユーザが含まれるかどうかを検査する。自分の担当領域またはマージン領域に含まれる場合には、ローカル店舗情報テーブル２１２に格納されている店舗情報を移動端末装置４００にインスタントメッセージ機能で通知する。移動端末装置４００は、通知された店舗情報を自身のデータ管理テーブルに格納し、店舗リスト表示部４２に店舗名を表示する。
図２４は、店舗情報表示処理の手順を示すフローチャートである。以下、図２４に示す処理をステップ番号に沿って説明する。
［ステップＳ１３１］移動端末装置４００の情報取得部４２０は、インスタントメッセージ機能で送られた情報から、店舗情報を抽出する。
［ステップＳ１３２］情報取得部４２０は、抽出した店舗情報を、内部のデータテーブルに格納する。
［ステップＳ１３３］情報取得部４２０は、新たに取得した店舗情報に基づく店舗リストを、店舗リスト表示部４２に表示されている店舗リストに表示する。その後、処理が終了する。
なお、ホスト２００から領域外コマンドを受け取ったマスタサーバ１００は、移動端末装置４００への情報の配信を担当する担当サーバの変更処理を行う。
図２５は、担当サーバ変更処理の手順を示すフローチャートである。以下、図２５に示す処理をステップ番号に沿って説明する。
［ステップＳ１４１］マスタサーバ１００の担当サーバ決定部１３０は、ホスト２００から送られた領域外コマンドからＩＭアドレスを抽出する。
［ステップＳ１４２］担当サーバ決定部１３０は、ホスト２００から送られた領域外コマンドから位置情報を抽出する。
［ステップＳ１４３］担当サーバ決定部１３０は、担当定義テーブル１１１を参照し、移動端末装置４００の現在の位置を含む領域への情報配信を担当するホストを、新たに移動端末装置４００の担当サーバとして決定する（この例では、ホスト２００ａに決定されたものとする）。
［ステップＳ１４４］担当サーバ決定部１３０は、ステップＳ１４３で決定した担当サーバ（ホスト２００ａ）に、ステップＳ１４１で抽出したＩＭアドレスに購読指示を通知する。
［ステップＳ１４５］担当サーバ決定部１３０は、担当サーバからの応答に基づいて、購読成功か否かを判定する。成功した場合には、処理がステップＳ１４６に進められる。購読に失敗した場合には、処理がステップＳ１４７に進められる。
［ステップＳ１４６］担当サーバ決定部１３０は、購読に成功した場合、移動端末装置４００の担当サーバが変更されたことを、マスタデータ管理部１２０に通知する。すると、マスタデータ管理部１２０は、ユーザ管理テーブル１１３の移動端末装置４００に対応するレコードの「担当サーバ」フィールドの内容を、新たに担当サーバとなったホストのホスト名に更新する。その後、処理が終了する。
［ステップＳ１４７］担当サーバ決定部１３０は、購読に失敗した場合、マスタサーバ１００に対して、担当サーバの変更に失敗したことを示す応答を返し、処理を終了する。
このように、移動端末装置４００が担当領域とマージン領域の値を加えた領域に含まれない場合、担当サーバとして機能しているホスト２００は、移動端末装置４００の購読を解除する。移動端末装置４００は購読開始要求通知と同様に購読解除要求通知を受信し、公開していた位置情報を格納したプレゼンスの公開を停止する。さらに、担当サーバであるホスト２００はマスタサーバ１００に対して該当移動端末装置のＩＭアドレスと位置情報を通知する。マスタサーバ１００は担当定義テーブル１１１の担当領域のみを参照して、通知された位置情報を担当領域とするホストを検索する。さらに、ユーザ管理テーブル１１３内で該当ユーザの担当サーバフィールドに検索したサーバのホスト名を格納後、該当するサーバに対して該当移動端末装置へ購読開始するように指示する。移動端末装置に対して購読開始を指示されたサーバプログラムは前述の手順によって、移動端末装置４００への購読開始を行う。
これにより、移動端末装置４００が担当領域外およびマージン領域外になったときに、担当サーバが変更される。すなわち、格子状に区分けされた領域の境界を越えて移動端末装置が移動しても、現在の担当サーバのマージン領域内であれば、引き続き、同じホストが担当サーバとしてサービスを提供する。したがって、ユーザが領域の境界を跨いだ移動を頻繁に行っても担当サーバを切り替えずに済み、担当サーバの切り替えに伴いマスタサーバや担当サーバの負荷を軽減することができる。
図２６は、境界を越えて移動したときの担当サーバの切り替え状況を示す図である。図２６では、移動端末装置４００の位置５１〜５８の移動状況を示している。位置５１〜５８を示す矩形内には、移動端末装置４００の担当サーバとなるホストのホスト名が示されている。識別情報が「領域Ａ」の領域２１は、ホスト名「α」のホスト２００の担当領域である。識別情報が「領域Ｂ」の領域２２は、ホスト名「β」のホスト２００ａの担当領域である。領域２１のうち、領域２２に隣接する部分がホスト２００ａのマージン領域３４である。領域２２のうち、領域２１に隣接する部分がホスト２００のマージン領域３２である。
移動端末装置４００を使用しているユーザが領域２１内の位置５１にいる間は、ホスト名「α」のホスト２００が担当サーバとなる。ユーザが位置５２に移動し、さらに領域の境界３１を跨いで位置５３（マージン領域３２内）と移動しても、担当サーバは、ホスト名「α」のホスト２００のままである。その後、ユーザがマージン領域３２を出て、位置５４に移動すると、担当サーバがホスト名「β」のホスト２００ａに変更される。
逆に、移動端末装置４００を使用しているユーザが領域２２内の位置５５にいる間は、ホスト名「β」のホスト２００ａが担当サーバとなる。ユーザが位置５６に移動し、さらに領域の境界３１を跨いで位置５７（マージン領域３４内）と移動しても、担当サーバは、ホスト名「β」のホスト２００ａのままである。その後、ユーザがマージン領域３４を出て、位置５８に移動すると、担当サーバがホスト名「α」のホスト２００に変更される。
図２７は、担当サーバの切り替え状況の比較例を示す図である。図２７（Ａ）は従来技術による担当サーバ切り替え例を示しており、図２７（Ｂ）は本発明の実施の形態による担当サーバ切り替え例を示している。図２７では、移動端末装置４００が移動したときの軌跡が示されている。そして、移動端末装置４００の位置毎に、領域判定が行われたときの担当サーバのホスト名が示されている。
従来技術では、移動端末装置４００を使用するユーザが領域２１内に滞在しているときは、ホスト名「α」のホスト２００が担当サーバとなり、領域２２内に滞在しているときは、ホスト名「β」のホスト２００ａが担当サーバとなるものとする。この場合、移動端末装置４００を使用するユーザが移動し、２つの領域２１，２２の境界３１を跨ぐ毎に担当サーバが切り替えられる。図２７（Ａ）の例では、担当サーバの切り替えが６回発生している。
本発明の実施の形態では、ホスト名「α」のホスト２００の担当領域は、識別情報が「領域Ａ」の領域２１であり、領域２１の外周に沿ってマージン領域３２が定義されている。同様に、ホスト名「β」のホスト２００ａの担当領域は、識別情報が「領域Ｂ」の領域２２であり、領域２２の外周に沿ってマージン領域３４が定義されている。この場合、移動端末装置４００を使用するユーザが、領域２１（ホスト２００ａのマージン領域３４外）から領域２１，２２の境界３１を跨いでマージン領域３２に移動しても、担当サーバの切り替えが発生しない。移動端末装置４００を使用するユーザが、領域２２内で、ホスト２００のマージン領域３２を出たときに担当サーバの切り替えが発生する。従って、従来技術の例と同じ経路で移動しているにも拘わらず、本発明の実施の形態では１回しか担当サーバの切り替えが発生していない。
このように、マージン領域を設けたことで、担当サーバの切り替え頻度が抑制され、システムの負荷を軽減できる。たとえば、マスタサーバ１００において、新たに担当サーバを検索する処理は、マスタサーバ１００内の担当定義テーブル１１１を全て検索する必要があり、処理に時間が掛かる。したがって、担当サーバの切り替え回数を減らすことで、マスタサーバ１００の処理負荷が軽減される。
なお、図２３に示した領域判定処理では、同時にマージン領域を動的に変更することができる。マージン領域を動的に変更することで、ホスト間の処理負荷の均衡を図ることができる。たとえば、自身の担当ユーザ数、自身のマージン領域内の担当ユーザ数、自身の指定領域内の担当ユーザ数あるいは隣接領域のサーバの担当ユーザ数によって、マージン領域を動的に変更できる。なお、自身の担当ユーザ数は購読開始要求時にカウンタを１増加させ、購読解除要求時にカウンタを１減少させることによって知ることができる。
図１０に示した担当領域テーブル２１１の担当領域、マージン、指定領域の各フィールドの値から、担当領域の外周を示す矩形、マージン領域の外周を示す矩形、指定領域の内周を示す矩形が計算できる。したがって、移動端末装置４００から位置情報が通知された場合にこれらの矩形領域内にあるかどうかを調査し、矩形領域にある場合にはそれぞれの領域内にあるＩＭアドレスリストに移動端末装置４００のＩＭアドレスを追加する。また、矩形領域内にない場合には、ＩＭアドレスリストから移動端末装置のＩＭアドレスを削除する。このリストに含まれるＩＭアドレスを数えることで、自身のマージン領域内の担当ユーザ数と自身の指定領域内の担当ユーザ数を知ることができる。
隣接領域のサーバの担当ユーザ数は、例えば担当領域のサーバを購読しておくことによって知ることができる。ホスト名「α」のホスト２００とホスト名「β」のホスト２００ａとが隣接した領域を担当しているとすると、ホスト２００はホスト２００ａの「担当ユーザ数」を購読しておき、ホスト２００ａはホスト２００の「担当ユーザ数」を購読しておく。さらに、それぞれのサーバが担当ユーザ数変更時に、プレゼンスに変更されたユーザ数を設定する。すると、隣接サーバへ自身の担当数が通知される。
また、マスタサーバ１００はユーザ管理テーブル１１３を参照することによって、任意のホストの担当ユーザ数を知ることができるので、一定時間毎に自分自身の隣接領域を担当しているサーバの担当ユーザ数を問い合わせてもよい。これらは、たとえば、マスタサーバ上の担当領域テーブルに、それぞれの領域の隣接領域を担当するサーバを格納しておくことによって実現可能である。
本実施の形態では隣接領域を担当しているサーバ間で担当ユーザ数を購読する方式を利用して説明する。なお、それぞれの領域を担当しているホスト２００，２００ａ，２００ｂは、先に述べた方法によって、自身が担当しているユーザ数、マージン領域内のユーザ数、指定領域内のユーザ数及び隣接領域を担当しているホストの担当ユーザ数を把握しているものとする。
図２８は、マージン領域の変更を伴う領域判定処理の手順を示すフローチャートである。なお、図２８のステップＳ２０１，Ｓ２０３，Ｓ２０５〜Ｓ２１２は、それぞれ図２３のステップＳ１１１，Ｓ１１２，Ｓ１１４〜Ｓ１２１と同じ処理であるため説明を省略する。
［ステップＳ２０２］動的データ変更部２６０は、マージン領域の調整倍率を設定する。この処理の詳細は後述する（図２９参照）。
その後、担当領域の判定が行われ、担当領域外の場合（ステップＳ２０３の「ＮＯ」のルート）、ステップＳ２０４に処理が進められる。
［ステップＳ２０４］領域判定部２５０は、ステップＳ２０１で抽出した位置情報が、調整倍率によって調整後のマージン領域内か否かを判断する。マージン領域内であれば処理がステップＳ２０５に進められる。マージン領域外であれば処理がステップＳ２０９に進められる。
図２９は、マージン領域の調整倍率設定処理の手順を示すフローチャートである。以下、図２９に示す処理をステップ番号に沿って説明する。
［ステップＳ２２１］動的データ変更部２６０は、倍率を１に初期化する。
［ステップＳ２２２］動的データ変更部２６０は、自領域内端末数（担当領域内の移動端末装置の数）を、予め設定されている下限値（下限超指数の担当ユーザ数の値）および予め設定されている上限値（上限超指数の担当ユーザ数の値）と比較する。自領域内端末数が下限値以下であれば、処理がステップＳ２２３に進められる。自領域内端末数が上限値以上であれば、処理がステップＳ２２４に進められる。それ以外であれば、処理がステップＳ２２５に進められる。
［ステップＳ２２３］動的データ変更部２６０は、現在の倍率に下限超指数で示される係数を乗算することで、倍率を増加させる。その後、処理がステップＳ２２５に進められる。
［ステップＳ２２４］動的データ変更部２６０は、現在の倍率に上限超指数で示される係数を乗算することで、倍率を減少させる。その後、処理がステップＳ２２５に進められる。
［ステップＳ２２５］動的データ変更部２６０は、マージン領域内端末数（担当領域内の移動端末装置の数）を、予め設定されている下限値および予め設定されている上限値と比較する。マージン領域内端末数が下限値以下であれば、処理がステップＳ２２６に進められる。マージン領域内端末数が上限値以上であれば、処理がステップＳ２２７に進められる。それ以外であれば、処理がステップＳ２２８に進められる。
［ステップＳ２２６］動的データ変更部２６０は、現在の倍率に下限超指数で示される係数を乗算することで、倍率を増加させる。その後、処理がステップＳ２２８に進められる。
［ステップＳ２２７］動的データ変更部２６０は、現在の倍率に上限超指数で示される係数を乗算することで、倍率を減少させる。その後、処理がステップＳ２２８に進められる。
［ステップＳ２２８］動的データ変更部２６０は、指定領域内端末数（担当領域内の移動端末装置の数）を、予め設定されている下限値および予め設定されている上限値と比較する。指定領域内端末数が下限値以下であれば、処理がステップＳ２２９に進められる。指定領域内端末数が上限値以上であれば、処理がステップＳ２３０に進められる。それ以外であれば、処理がステップＳ２３１に進められる。
［ステップＳ２２９］動的データ変更部２６０は、現在の倍率に下限超指数で示される係数を乗算することで、倍率を増加させる。その後、処理がステップＳ２３１に進められる。
［ステップＳ２３０］動的データ変更部２６０は、現在の倍率に上限超指数で示される係数を乗算することで、倍率を減少させる。その後、処理がステップＳ２３１に進められる。
［ステップＳ２３１］動的データ変更部２６０は、隣接領域内端末数（担当領域内の移動端末装置の数）を、予め設定されている下限値および予め設定されている上限値と比較する。隣接領域内端末数が下限値以下であれば、処理がステップＳ２３２に進められる。隣接領域内端末数が上限値以上であれば、処理がステップＳ２３３に進められる。それ以外であれば、処理が終了する。
［ステップＳ２３２］動的データ変更部２６０は、現在の倍率を下限超指数で示される係数で除算することで、倍率を減少させる。その後、処理が終了する。
［ステップＳ２３３］動的データ変更部２６０は、現在の倍率を上限超指数で示される係数で除算することで、倍率を増加させる。その後、処理が終了する。
このようにして、マージン領域が動的に変更される。
図３０は、各担当領域内に端末数に基づくマージン領域の変更例を示す図である。たとえば、領域２１の端末数が上限値以上になると、領域２１を担当するホスト２００のマージン領域３２が狭められる（マージン領域３２の外周を示す境界線３５が領域２１側の位置３５ａに移動する）。また、領域２１の端末数が下限値以下になると、領域２１を担当するホスト２００のマージン領域３２が広げられる（マージン領域３２の外周を示す境界線３５が領域２２側の位置３５ｂに移動する）。
領域２２の端末数が上限値以上になると、領域２１を担当するホスト２００のマージン領域３２が広げられる（マージン領域３２の外周を示す境界線３５が領域２２側の位置３５ｂに移動する）。また、領域２２の端末数が下限値以下になると、領域２１を担当するホスト２００のマージン領域３２が狭められる（マージン領域３２の外周を示す境界線３５が領域２１側の位置３５ａに移動する）。
図３１は、マージン領域と指定領域との端末数によるマージン領域の変更例を示す図である。たとえば、領域２１を担当するホスト２００のマージン領域３２の端末数が上限値以上になると領域２１のマージン領域３２が狭められる（マージン領域３２の外周を示す境界線３５が領域２１側の位置３５ａに移動する）。また、領域２１を担当するホスト２００のマージン領域３２の端末数が下限値以下になると領域２１のマージン領域３２が広げられる（マージン領域３２の外周を示す境界線３５が領域２２側の位置３５ｂに移動する）。
領域２１を担当するホスト２００の指定領域３３の端末数が上限値以上になると領域２１のマージン領域３２が狭められる（マージン領域３２の外周を示す境界線３５が領域２２側の位置３５ａに移動する）。また、領域２１を担当するホスト２００の指定領域３３の端末数が下限値以下になると領域２１のマージン領域３２が広げられる（マージン領域３２の外周を示す境界線３５が領域２１側の位置３５ｂに移動する）。
マージン領域の変更量は、担当領域テーブル２１１に定義されている。たとえば、図１０に示す内容の担当領域テーブル２１１を持ち、現在５５０人のユーザを担当しているホスト２００が、移動端末装置４００から位置情報のプレゼンスを受信した場合を考える。このホスト２００では、担当領域テーブル２１１の上限超指数フィールドの１行目（「５００，０．８」）のように「担当ユーザ数が５００人を超えた場合には、マージン領域を０．８倍にする」と記述されている。そのため、領域判定を行う場合には、マージン領域を０．８倍にする。
このとき、マージン領域が減少することによってそれまで領域内と判定されていた移動端末装置４００が領域外となる場合が生じるが、この時点での担当サーバの変更は行わず、次回移動端末装置４００から位置情報が通知された場合に再度領域外であれば担当サーバの変更を行う。
同様に、図１０に示す内容の担当領域テーブル２１１を持ち、現在５０人のユーザを担当しているサーバが、移動端末装置４００から位置情報のプレゼンスを受信した場合を考える。このサーバでは、図１０の下限超指数フィールドの１行目（「１００，１．５」）のように「担当ユーザ数が１００人を下回った場合には、マージン領域を１．５倍にする」と記述されている。そのため、領域判定を行う場合には、マージン領域を１．５倍にする。また、上限値と下限値の間の担当ユーザ数の場合は、マージン領域は変更しない。
上記は自身の担当ユーザ数について説明したが、マージン領域内のユーザ数、指定領域内のユーザ数でも全く同様である。また、隣接領域の担当ユーザ数ではマージン領域の倍率を指数の逆数とする。これらの倍率は、自身の担当ユーザ数、マージン領域内のユーザ数、指定領域内のユーザ数、隣接領域内のユーザ数のいずれかのみを使って決定してもよいし、複数を組み合わせて決定してもよい。但し、自身の担当ユーザ数とマージン領域内のユーザ数あるいは指定領域内のユーザ数は包含関係にあるので、一方の情報のみを使用して倍率を決定することにしてもよい。たとえば、自領域内端末数を倍数変更のための判断対象とせず、マージン領域内端末数、指定領域内端末数、および隣接領域内端末数に基づいて倍率を設定する。図１０の担当領域テーブル２１１で、マージン領域内に５５０人、指定領域内に５５０人、隣接領域の担当ユーザが５０人の場合、マージン領域の倍率は、０．８×０．８×（１÷１．５）＝０．４３倍となる。
なお、図１０の担当領域テーブル２１１は各領域について一律的に上限超指数と下限超指数を設定しているが、領域毎に上限超指数と下限超指数とを設定してもよい。たとえば、上下左右のそれぞれの隣接領域に対して、独立した値を設定することもできる。さらに、隣接領域から通知する情報を担当ユーザ数ではなく、マージン領域の指数にすることも可能である。
次に、ユーザのマージン領域への滞在可能時間を利用した担当サーバの切り替え処理について説明する。担当サーバ２００，２００ａ，２００ｂ，・・・は移動端末装置４００の位置がマージン領域内であると判定すると、該当移動端末装置４００のＩＭアドレスと位置情報を受け取った時刻を記憶する。その後、同じ移動端末装置４００から通知された位置情報がマージン領域内と判定した場合、現在の時刻と最初にマージン領域に含まれると判定した時刻の間隔を計算し、図１０の担当領域テーブル２１１内の滞在可能時間と比較する。間隔が滞在可能時間を超えている場合には領域外であると判定し、超えていない場合には領域内と判定する。領域外と判定した場合は、マスタサーバ１００に領域外コマンド、該当ＩＭアドレス、位置情報を通知して、担当サーバ割り当て変更の処理を行う。
領域内と判定した場合も最初にマージン領域に含まれると判定した時刻はクリアせず、その後位置情報が通知された場合の滞在可能時間との比較に利用する。また、以前にマージン領域内にあると判定された移動端末装置から通知された位置情報が、ある時点でマージン領域でない担当領域に含まれると判定された場合、ホストは最初にマージン領域にいると判定された時刻をクリアする。
図３２は、マージン領域への滞在可能時間を利用した担当サーバ切り替えを行うときの領域判定処理の手順を示すフローチャートである。以下、図３２に示す処理をステップ番号に沿って説明する。
［ステップＳ３０１］領域判定部２５０は、プレゼンスから位置情報を抽出する。
［ステップＳ３０２］領域判定部２５０は、抽出した位置情報で示される位置がホスト２００の担当領域内か否かを判断する。担当領域内であれば処理がステップＳ３０３に進められる。担当領域外であれば、処理がステップＳ３０５に進められる。
［ステップＳ３０３］領域判定部２５０は、直前（前回の位置情報取得時）にマージン領域に滞在していたか否かを判断する。マージン領域に滞在していた場合、処理がステップＳ３０４に進められる。マージン領域に滞在していなかった場合、処理がステップＳ３１０に進められる。
［ステップＳ３０４］領域判定部２５０は、マージン領域に入った時刻をクリアする。その後、処理がステップＳ３１０に進められる。
［ステップＳ３０５］領域判定部２５０は、ステップＳ３０２において担当領域外と判断した場合、マージン領域内か否かを判断する。マージン領域内の場合、処理がステップＳ３０６に進められる。マージン領域外の場合、処理がステップＳ３１２に進められる。
［ステップＳ３０６］領域判定部２５０は、直前（前回の位置情報取得時）にマージン領域に滞在していたか否かを判断する。マージン領域に滞在していた場合、処理がステップＳ３０８に進められる。マージン領域に滞在していなかった場合、処理がステップＳ３０７に進められる。
［ステップＳ３０７］領域判定部２５０は、マージン領域に入った時刻を記憶する。その後、処理がステップＳ３１０に進められる。
［ステップＳ３０８］領域判定部２５０は、マージン領域入った時刻からの経過時間を算出する。
［ステップＳ３０９］領域判定部２５０は、経過時間が滞在可能時間未満か否かを判断する。滞在可能時間未満であれば、処理がステップＳ３１０に進められる。滞在可能時間以上であれば、処理がステップＳ３１２に進められる。
［ステップＳ３１０］領域判定部２５０は、ステップＳ３０２〜Ｓ３０９による領域判定結果をローカルデータ管理部２２０に渡す。ローカルデータ管理部２２０は、領域判定部２５０から渡された領域判定結果に基づいて、担当ユーザ数テーブル２１３および担当ユーザテーブル２１４を更新する。
［ステップＳ３１１］領域判定部２５０は、ステップＳ３０２〜Ｓ３０９による領域判定結果を情報提供部２４０に渡す。情報提供部２４０は、移動端末装置４００に通知する店舗情報を決定する。たとえば、担当領域またはマージン領域内の店舗のうち、移動端末装置４００のユーザが希望するカテゴリ区分の店舗に関する店舗情報を、通知対象として決定する。そして、情報提供部２４０は、通知対象の店舗情報を、ＩＭサーバ３００を介して移動端末装置４００に通知する。その後、処理が終了する。
［ステップＳ３１２］領域判定部２５０は、移動端末装置４００のＩＭアドレスの購読解除要求を、ＩＭサーバ３００に対して送信する。
［ステップＳ３１３］領域判定部２５０は、ＩＭサーバ３００からの応答に基づいて、購読解除に成功したか否かを判断する。購読解除に成功した場合、処理がステップＳ３１４に進められる。購読解除に失敗した場合、処理が終了する。
［ステップＳ３１４］領域判定部２５０は、ローカルデータ管理部２２０に対して購読解除を通知する。すると、ローカルデータ管理部２２０は、担当ユーザ数テーブル２１３および担当ユーザテーブル２１４を更新する。
［ステップＳ３１５］情報提供部２４０は、マスタサーバ１００に対して、移動端末装置４００のＩＭアドレスと位置情報とを含む領域外コマンドを通知し、処理を終了する。
このようにして、ユーザがマージン領域内に滞在している場合でも、その滞在時間が所定期間以上となる場合には、担当サーバを切り替えることができる。
図３３は、マージン領域に長期滞在したときの担当サーバ切り替え例を示す図である。移動端末装置４００を使用するユーザが、ホスト名「α」のホスト２００が担当する領域２１からマージン領域３２に移動した場合、マージン領域３２への進入直後は担当サーバの切り替えが行われない。マージン領域３２内に所定期間以上滞在していると、移動端末装置４００の担当サーバがホスト名「β」のホスト２００ａに切り替えられる。
最後に、自身の担当ユーザ数、マージン領域内のユーザ数、指定領域内のユーザ数あるいは隣接領域のサーバの担当ユーザ数によって、滞在可能時間が動的に変更される場合について説明する。
図３４は、滞在可能時間の変更を伴う領域判定処理の手順を示すフローチャートである。なお、図３４のステップＳ４０１，Ｓ４０３〜Ｓ４０９，Ｓ４１１〜Ｓ４１６は、それぞれ図３２のステップＳ３０１〜Ｓ３０８，Ｓ３１０〜Ｓ３１５と同じ処理であるため説明を省略する。
［ステップＳ４０２］動的データ変更部２６０は、滞在可能時間の調整倍率を設定する。この処理の詳細は後述する（図３５参照）。
その後、担当領域の判定等の処理が行われ、以前からマージン領域に滞在していると判断された場合、ステップＳ４１０に処理が進められる。
［ステップＳ４１０］領域判定部２５０は、ステップＳ４０９で算出された経過時間が、調整倍率によって調整後の滞在可能時間未満か否かを判断する。調整後の滞在可能時間未満であれば処理がステップＳ４１１に進められる。調整後の滞在可能時間未満でなければ処理がステップＳ４１３に進められる。
図３５は、滞在可能時間の調整倍率設定処理の手順を示すフローチャートである。以下、図３５に示す処理をステップ番号に沿って説明する。
［ステップＳ４２１］動的データ変更部２６０は、倍率を１に初期化する。
［ステップＳ４２２］動的データ変更部２６０は、自領域内端末数（担当領域内の移動端末装置の数）を、予め設定されている下限値（下限超指数の担当ユーザ数の値）および予め設定されている上限値（上限超指数の担当ユーザ数の値）と比較する。自領域内端末数が下限値以下であれば、処理がステップＳ４２３に進められる。自領域内端末数が上限値以上であれば、処理がステップＳ４２４に進められる。それ以外であれば、処理がステップＳ４２５に進められる。
［ステップＳ４２３］動的データ変更部２６０は、現在の倍率に下限超指数で示される係数を乗算することで、倍率を増加させる。その後、処理がステップＳ４２５に進められる。
［ステップＳ４２４］動的データ変更部２６０は、現在の倍率に上限超指数で示される係数を乗算することで、倍率を減少させる。その後、処理がステップＳ４２５に進められる。
［ステップＳ４２５］動的データ変更部２６０は、マージン領域内端末数（担当領域内の移動端末装置の数）を、予め設定されている下限値および予め設定されている上限値と比較する。マージン領域内端末数が下限値以下であれば、処理がステップＳ４２６に進められる。マージン領域内端末数が上限値以上であれば、処理がステップＳ４２７に進められる。それ以外であれば、処理がステップＳ４２８に進められる。
［ステップＳ４２６］動的データ変更部２６０は、現在の倍率に下限超指数で示される係数を乗算することで、倍率を増加させる。その後、処理がステップＳ４２８に進められる。
［ステップＳ４２７］動的データ変更部２６０は、現在の倍率に上限超指数で示される係数を乗算することで、倍率を減少させる。その後、処理がステップＳ４２８に進められる。
［ステップＳ４２８］動的データ変更部２６０は、指定領域内端末数（担当領域内の移動端末装置の数）を、予め設定されている下限値および予め設定されている上限値と比較する。指定領域内端末数が下限値以下であれば、処理がステップＳ４２９に進められる。指定領域内端末数が上限値以上であれば、処理がステップＳ４３０に進められる。それ以外であれば、処理がステップＳ４３１に進められる。
［ステップＳ４２９］動的データ変更部２６０は、現在の倍率に下限超指数で示される係数を乗算することで、倍率を増加させる。その後、処理がステップＳ４３１に進められる。
［ステップＳ４３０］動的データ変更部２６０は、現在の倍率に上限超指数で示される係数を乗算することで、倍率を減少させる。その後、処理がステップＳ４３１に進められる。
［ステップＳ４３１］動的データ変更部２６０は、隣接領域内端末数（担当領域内の移動端末装置の数）を、予め設定されている下限値および予め設定されている上限値と比較する。隣接領域内端末数が下限値以下であれば、処理がステップＳ４２９に進められる。隣接領域内端末数が上限値以上であれば、処理がステップＳ４３０に進められる。それ以外であれば、処理が終了する。
［ステップＳ４３２］動的データ変更部２６０は、現在の倍率を下限超指数で示される係数で除算することで、倍率を減少させる。その後、処理が終了する。
［ステップＳ４３３］動的データ変更部２６０は、現在の倍率を上限超指数で示される係数で除算することで、倍率を増加させる。その後、処理が終了する。
このようにして、滞在可能時間が動的に変更される。
たとえば、図１０の担当領域テーブル２１１を持ち、現在５５０人のユーザを担当しているサーバが、以前にマージン領域にいると判定された移動端末装置から位置情報のプレゼンスを受信した場合を考える。このサーバでは、図１０の上限超指数の２行目（「５００，０．５」）のように「担当ユーザ数が５００人を超えた場合には、マージン領域内の滞在可能時間を０．５倍にする」と記述されているため、通知された位置が再度マージン領域内である場合は滞在可能時間を０．５倍にしてから最初にマージン領域にいると判定された時刻からの経過時間と比較する。
このとき、滞在可能時間が減少することによってそれまで滞在可能時間内のため領域内と判定されていた移動端末装置が滞在可能時間を超えていて領域外となる場合が生じるが、この時点での担当サーバの変更は行わず、次回移動端末装置から位置情報が通知された場合に再度領域外であれば担当サーバの変更を行う。
同様に、図１０の担当領域テーブル２１１を持ち、現在５０人のユーザを担当しているサーバが、以前にマージン領域にいると判定された移動端末装置から位置情報のプレゼンスを受信した場合を考える。このサーバでは、図１０の下限超指数の２行目（「５００，１．５」）のように「担当ユーザ数が５０人を下回った場合には、マージン領域内の滞在可能時間を１．５倍にする」と記述されているため、通知された位置が再度マージン領域内である場合は滞在可能時間を１．５倍にしてから最初にマージン領域にいると判定された時刻からの経過時間と比較する。また、上限値と下限値の間の担当ユーザ数の場合は、滞在可能時間の指数は変更しない。
上記は自身の担当ユーザ数について説明したが、マージン領域内のユーザ数、指定領域内のユーザ数でも全く同様である。また、隣接領域の担当ユーザ数ではマージン領域の倍率を指数の逆数とする。これらの倍率は、自身の担当ユーザ数、マージン領域内のユーザ数、指定領域内のユーザ数、隣接領域内のユーザ数のいずれかのみを使って決定してもよいし、複数を組み合わせて決定してもよい。但し、自身の担当ユーザ数とマージン領域内のユーザ数あるいは指定領域内のユーザ数は包含関係にあるので、両方を同時に使って倍率を決定することは出来ない。例えば、図１０の担当領域テーブル２１１で、マージン領域内に５５０人、指定領域内に５５０人、隣接領域の担当ユーザが５０人の場合、滞在可能時間の倍率は、０．５×０．５×（１÷１．５）＝０．１７倍となる。
なお、図１０の担当領域テーブル２１１は隣接領域について一律的に上限超指数と下限超指数を設定しているが、例えば上下左右のそれぞれの隣接領域に対して、独立した値を設定できるようにしてもよい。さらに、隣接領域から通知する情報を担当ユーザ数ではなく、滞在可能時間の指数にすることも可能である。また、マージン領域の変更を動的に行った後に、マージン領域の滞在可能時間を動的に変更してもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、マスタサーバ１００，ホスト２００，２００ａ，２００ｂ，・・・、移動端末装置４００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）などがある。光磁気記録媒体には、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｃ）などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【図１】
2005025248.tif 000003
【図２】
2005025248.tif 000004
【図３】
2005025248.tif 000005
【図４】
2005025248.tif 000006
【図５】
2005025248.tif 000007
【図６】
2005025248.tif 000008
【図７】
2005025248.tif 000009
【図８】
2005025248.tif 000010
【図９】
2005025248.tif 000011
【図１０】
2005025248.tif 000012
【図１１】
2005025248.tif 000013
【図１２】
2005025248.tif 000014
【図１３】
2005025248.tif 000015
【図１４】
2005025248.tif 000016
【図１５】
2005025248.tif 000017
【図１６】
2005025248.tif 000018
【図１７】
2005025248.tif 000019
【図１８】
2005025248.tif 000020
【図１９】
2005025248.tif 000021
【図２０】
2005025248.tif 000022
【図２１】
2005025248.tif 000023
【図２２】
2005025248.tif 000024
【図２３】
2005025248.tif 000025
【図２４】
2005025248.tif 000026
【図２５】
2005025248.tif 000027
【図２６】
2005025248.tif 000028
【図２７】
2005025248.tif 000029
【図２８】
2005025248.tif 000030
【図２９】
2005025248.tif 000031
【図３０】
2005025248.tif 000032
【図３１】
2005025248.tif 000033
【図３２】
2005025248.tif 000034
【図３３】
2005025248.tif 000035
【図３４】
2005025248.tif 000036
【図３５】
2005025248.tif 000037
【手続補正書】
【提出日】平成17年11月18日(2005.11.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
移動端末装置に対して、前記移動端末装置の位置に応じた情報をコンピュータを用いて提供するための情報提供方法において、
前記コンピュータが、
前記移動端末装置の位置情報を取得し、
担当領域と前記担当領域の外周に沿って設けられたマージン領域とが予め定義されており、前記位置情報に基づいて、前記移動端末装置が前記担当領域と前記マージン領域との何れかに含まれるかどうかを判定し、
前記移動端末装置が前記担当領域内に進入したとき、前記移動端末装置への情報提供を開始し、
情報提供の対象となった前記移動端末装置が前記マージン領域外に出たとき、前記移動端末装置への情報提供を終了する、
ことを特徴とする情報提供方法。
【請求項２】
外部からの入力情報に基づいて前記マージン領域を動的に変更することを特徴とする請求項１記載の情報提供方法。
【請求項３】
前記外部からの入力情報は隣接領域内の移動端末装置数であることを特徴とする請求項２記載の情報提供方法。
【請求項４】
前記外部からの入力情報は前記担当領域内の移動端末装置数であることを特徴とする請求項２記載の情報提供方法。
【請求項５】
前記外部からの入力情報は前記マージン領域内の移動端末装置数であることを特徴とする請求項２記載の情報提供方法。
【国際調査報告】
2005025248.tif 000038
2005025248.tif 000039
2005025248.tif 000040
2005025248.tif 000041