JP4397375B2 - 情報提供方法および情報提供プログラム - Google Patents
情報提供方法および情報提供プログラム Download PDFInfo
- Publication number
- JP4397375B2 JP4397375B2 JP2005508789A JP2005508789A JP4397375B2 JP 4397375 B2 JP4397375 B2 JP 4397375B2 JP 2005508789 A JP2005508789 A JP 2005508789A JP 2005508789 A JP2005508789 A JP 2005508789A JP 4397375 B2 JP4397375 B2 JP 4397375B2
- Authority
- JP
- Japan
- Prior art keywords
- area
- mobile terminal
- information
- server
- terminal device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/16—Performing reselection for specific purposes
- H04W36/22—Performing reselection for specific purposes for handling the traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/043—Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/52—Network services specially adapted for the location of the user terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/24—Reselection being triggered by specific parameters
- H04W36/32—Reselection being triggered by specific parameters by location or mobility data, e.g. speed data
- H04W36/322—Reselection being triggered by specific parameters by location or mobility data, e.g. speed data by location data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/021—Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
- H04W4/022—Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences with dynamic range variability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/029—Location-based management or tracking services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
- Information Transfer Between Computers (AREA)
Description
なお、地域分散によって所定の領域内の端末を所定のサーバに割り当てた場合、領域内外の境界付近に端末があるとき、位置検出の誤差により、実際には領域内にある端末が領域外と判断される虞がある。そこで、領域内外の判定を柔軟に行うために、例えば、建設機械の遠隔制御において稼働領域と非稼働領域の間にヒステリシス領域を設けて、ヒステリシス領域内では稼働領域として扱う技術が開示されている(たとえば、特許文献1参照)。
地域分散とコンテンツ分散を組み合わせるには、それぞれの地域に割り当てられた各サーバは、その地域内の土地に関連あるコンテンツとその地域内のユーザ端末装置を管理すればよい。但し、ユーザ端末装置が移動したことにより領域が変わると、移動元の領域を担当しているサーバと移動先の領域を担当しているサーバとの間で自動的にユーザ端末装置に関する情報の引き継ぎ処理を行う。これにより、移動先の地域の担当サーバがユーザ端末の担当となる。
しかし、この方式ではユーザ端末装置が領域間を移動すると、それぞれの領域に割り当てられている担当サーバ間でユーザ情報の引き継ぎ処理が必要となる。その際にデータベースへのデータ格納や取得処理などが発生すると、特に高い計算コストが必要となる。特に、ユーザ端末装置が領域の境界付近を連続して移動すると領域移動が頻繁に発生し、その結果サーバ負荷が非常に高くなるという問題がある。
なお、特許文献1で示された技術では、非稼働領域からヒステリシス領域に入った場合にはすぐに稼働領域として扱われるため、ヒステリシス領域と非稼働領域の境界付近を建設機械が移動した場合は、境界内外の判定結果が連続して変更されてしまう。そのため、前述の問題を解決することはできない。
本発明では上記課題を解決するために、図1に示すような処理をコンピュータ1に実行させる情報提供方法が提供される。本発明に係る情報提供方法は、移動端末装置に対して、移動端末装置の位置に応じた情報を提供する処理をコンピュータ1に実行させるためのものである。この情報提供方法ではコンピュータ1が以下の処理を実行する。
コンピュータ1は、前記移動端末装置の位置情報を取得し、担当領域と前記担当領域の外周に沿って設けられたマージン領域とが予め定義されており、前記位置情報に基づいて、前記移動端末装置が前記担当領域と前記マージン領域との何れかに含まれるかどうかを判定し、前記移動端末装置が前記担当領域内に進入したとき、前記移動端末装置への情報提供を開始し、情報提供の対象となった前記移動端末装置が前記マージン領域外に出たとき、前記移動端末装置への情報提供を終了する。
これにより、位置情報に基づいて、移動端末装置が担当領域とマージン領域との何れかに含まれるかどうかが判定され、移動端末装置が担当領域内に進入したとき、移動端末装置への情報提供が開始される。その後、情報提供の対象となった移動端末装置がマージン領域外に出たとき、移動端末装置への情報提供が終了する。
以上説明したように本発明では、移動端末装置が担当領域内に進入したとき、移動端末装置へ情報提供開始し、担当領域の外周に沿ったマージン領域外に出たとき、移動端末装置への情報提供を終了するようにした。そのため、担当領域外に移動端末装置が移動しても、マージン領域内であれば情報提供が継続され、情報提供の開始、終了の切り替え頻度を低く抑えることができる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
図2は、領域の分割例を示す図である。
図3は、本発明の実施の形態に係るエリア情報システムの構成例を示す図である。
図4は、本発明の実施の形態に用いる担当サーバのハードウェア構成例を示す図である。
図5は、本発明の実施の形態に係るエリア情報システムの機能構成を示すブロック図である。
図6は、担当定義テーブルのデータ構造例を示す図である。
図7は、「領域A」の担当領域、マージン領域、指定領域を示す概念図である。
図8は、店舗情報テーブルのデータ構造例を示す図である。
図9は、ユーザ管理テーブルのデータ構造例を示す図である。
図10は、担当領域テーブルのデータ構造例を示す図である。
図11は、ローカル店舗情報テーブルのデータ構造例を示す図である。
図12は、担当ユーザ数テーブルのデータ構造例を示す図である。
図13は、担当ユーザテーブルのデータ構造例を示す図である。
図14は、情報配信サービスで行われる処理の手順を示すシーケンス図である。
図15は、移動端末装置からのログオン処理の詳細を示すフローチャートである。
図16は、エリア情報システム利用画面の一例を示す図である。
図17は、サーバ起動処理の手順を示すフローチャートである。
図18は、ユーザ登録要求処理の手順を示すフローチャートである。
図19は、ユーザ登録処理の手順を示すフローチャートである。
図20は、移動端末装置でのサービス開始処理の手順を示すフローチャートである。
図21は、マスタサーバでのサービス開始処理の手順を示すフローチャートである。
図22は、購読開始処理の手順を示すフローチャートである。
図23は、領域判定処理の手順を示すフローチャートである。
図24は、店舗情報表示処理の手順を示すフローチャートである。
図25は、担当サーバ変更処理の手順を示すフローチャートである。
図26は、境界を越えて移動したときの担当サーバの切り替え状況を示す図である。
図27は、担当サーバの切り替え状況の比較例を示す図である。
図28は、マージン領域の変更を伴う領域判定処理の手順を示すフローチャートである。
図29は、マージン領域の調整倍率設定処理の手順を示すフローチャートである。
図30は、各担当領域内に端末数に基づくマージン領域の変更例を示す図である。
図31は、マージン領域と指定領域との端末数によるマージン領域の変更例を示す図である。
図32は、マージン領域への滞在可能時間を利用した担当サーバ切り替えを行うときの領域判定処理の手順を示すフローチャートである。
図33は、マージン領域に長期滞在したときの担当サーバ切り替え例を示す図である。
図34は、滞在可能時間の変更を伴う領域判定処理の手順を示すフローチャートである。
図35は、滞在可能時間の調整倍率設定処理の手順を示すフローチャートである。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
本発明では、それぞれの領域に対して、隣接する領域内にマージン領域を持たせ、マージン領域を超えた時点で隣接領域へ移動したと判断する。これにより、領域の境界付近を移動した場合も領域移動の発生を抑制し、領域毎にサーバを負荷分散させた場合の負荷上昇を抑制することができる。また、自身及び隣接する領域を担当しているサーバの負荷に応じて、領域移動の発生しやすさを変更する。これにより、過度の領域移動の抑制を防止することができる。
図1は、実施の形態に適用される発明の概念図である。本発明に係る情報提供方法は、コンピュータ1を用いて、移動端末装置4a〜4gに対して、移動端末装置4a〜4gの位置に応じた情報を提供するためのものである。情報提供方法では、コンピュータ1により、位置情報取得手段1a、領域判定手段1b、情報提供手段1cの機能が実現され、コンピュータ1が情報提供装置として機能する。
位置情報取得手段1aは、移動端末装置4a〜4gのうち情報提供対象の候補となる移動端末装置の位置情報を取得する。具体的には、担当領域2とマージン領域3とに滞在しているか、直前の位置情報の取得時に当該領域に滞在していた移動端末装置の位置情報が取得される。
領域判定手段1bは、担当領域2と担当領域2の外周に沿って設けられたマージン領域3とが予め定義されており、移動端末装置から取得した位置情報に基づいて、その移動端末装置が担当領域とマージン領域との何れかに含まれるかどうかを判定する。
情報提供手段1cは、移動端末装置が担当領域内に進入したとき、その移動端末装置を情報提供の対象として、以後、情報提供を開始する。また、情報提供手段1cは、情報提供の対象となった移動端末装置がマージン領域外に出たとき、移動端末装置への情報提供を終了する。
これにより、コンピュータ1の位置情報取得手段1aで、情報提供対象の候補となる移動端末装置の位置情報が取得される。すると、領域判定手段1bにより、移動端末装置から取得した位置情報に基づいて、その移動端末装置が担当領域とマージン領域との何れかに含まれるかどうかが判定される。移動端末装置が担当領域内に進入したとき、情報提供手段1cにより、その移動端末装置への情報提供が開始され、移動端末装置がマージン領域外に出たとき、その移動端末装置への情報提供が終了する。
図1の例では、移動端末装置4a〜4cが担当領域2内にあり、移動端末装置4d,4eがマージン領域3内にあり、移動端末装置4f,4gが担当領域2およびマージン領域3の外部にある。ここで、移動端末装置4dは、担当領域2からマージン領域3に移動したものとする。移動端末装置4eは、担当領域2とマージン領域3との外部からマージン領域3内に移動したものとする。移動端末装置4fは、マージン領域3内から担当領域2とマージン領域3との外部に移動したものとする。
この場合、移動端末装置4a〜4cに対しては、コンピュータ1から情報提供が行われる。また、移動端末装置4dは、担当領域2内に滞在している間、コンピュータ1による情報提供の対象であったため、マージン領域3内に移動した後も引き続きコンピュータ1から情報提供が行われる。移動端末装置4eは、外部からマージン領域3に入っているため、情報提供を開始するための条件(担当領域2に一旦入ること)が満たされない。従って、コンピュータ1から移動端末装置4eへの情報提供は行われない。携帯情報端装置4fはマージン領域3の外に出てしまったため、その携帯情報端装置4fの位置情報がコンピュータ1に送られることにより、コンピュータ1からの情報提供が終了する。移動端末装置4gは、元からマージン領域3外であるため、コンピュータ1からの情報提供は行われない。
このように、担当領域2に進入した移動端末装置に対して情報提供を開始するが、担当領域2を出てもマージン領域3内に留まっていれば情報提供を継続するようにした。そのため、担当領域2に対して頻繁に出入りする移動端末装置があっても、情報提供の開始や終了の切り替え頻度が少なくなる。
ここで、コンピュータを複数設け、サービス対象地域を複数の領域に分割し、コンピュータで負荷分散(地域分散)をして、各領域内の移動端末装置へ情報提供を行うことができる。その場合、マスタサーバにおいて、各コンピュータの担当領域、マージン領域、各コンピュータが提供すべき情報などを管理させることができる。各コンピュータは、マスタサーバに問い合わせて、自己の担当領域やマージン領域を認識する。
また、マスタサーバは、各コンピュータに対して、そのコンピュータが情報提供を開始すべき移動端末装置の識別情報を通知する。具体的には、各コンピュータは、移動端末装置への情報提供を終了したとき、その移動端末装置の識別情報をマスタサーバに通知する。すると、マスタサーバは、移動端末装置の現在位置を担当領域とする他のコンピュータに対して、その移動端末装置の識別情報を通知する。この識別情報の通知を受けた他のコンピュータが、その移動端末装置の位置情報を取得し、その移動端末装置が担当領域内にあれば情報提供を開始する。これにより、複数のコンピュータで広い地域に存在する多数の移動端末装置に対して情報提供を行う場合であっても、1つの移動端末装置へ複数のコンピュータが重複して情報提供を行うことが防止できる。
ところで、本発明は、以下のような応用が可能である。
まず、マージン領域3を動的に変更することができる。この場合、外部からの何らかの入力情報に基づいて自分自身のマージン領域の増減を決定する。
たとえば、担当領域に隣接する領域を担当する他のコンピュータが情報を提供している移動端末装置数を取得し、その移動端末装置数に応じて自己のマージン領域を変更できる。具体的には、隣接領域内(自己のマージン領域内は除く)の移動端末装置数が既定の上限数を上回った場合、マージン領域を増大させる。また、隣接領域内の移動端末装置数が既定の下限数を下回った場合、マージン領域を減少させる。下限値と上限値の間であった場合は、マージン領域を規定値に設定する。
また、自己の担当領域内の移動端末装置数に応じてマージン領域を変更できる。具体的には、担当領域内の移動端末装置数が既定の上限数を上回った場合、マージン領域を減少させる。また、担当領域内の移動端末装置数が既定の下限数を下回った場合、マージン領域を増大させる。下限値と上限値の間であった場合は、マージン領域を規定値に設定する。
また、自己のマージン領域内の移動端末装置数に応じてマージン領域を変更できる。具体的には、マージン領域内の移動端末装置数が既定の上限数を上回った場合、マージン領域を減少させる。また、そのマージン領域内の移動端末装置数が既定の下限数を下回った場合、マージン領域を増大させる。下限値と上限値の間であった場合は、マージン領域を規定値に設定する。
また、自己の担当領域内の予め指定された領域内の移動端末装置数に応じてマージン領域を変更できる。具体的には、指定された領域内の移動端末装置数が既定の上限数を上回った場合、マージン領域を減少させる。また、その指定された領域内の移動端末装置数が既定の下限数を下回った場合、マージン領域を増大させる。下限値と上限値の間であった場合は、マージン領域を規定値に設定する。
なお、移動端末装置がマージン領域内に長期滞在した場合、その移動端末装置への情報提供を終了させてもよい。すなわち、コンピュータで、予めマージン領域の滞在可能時間を保持し、位置情報がマージン領域内であると判定するとその時刻を記憶する。コンピュータは、以降位置情報がマージン領域内に滞在している判定すると現時刻と記憶した時刻を比較し、マージン領域滞在可能な時間を超えた時点で、情報提供を終了する。
このとき、滞在可能時間を動的に変更することもできる。この場合、外部からの何らかの入力情報に基づいて、マージン領域の滞在可能時間を変更する。
たとえば、隣接領域を担当する他のコンピュータが情報を提供している移動端末装置数に応じて滞在可能時間を変更できる。具体的には、隣接領域内(自己のマージン領域内を除く)の移動端末装置数が既定の上限数を上回った場合、滞在可能時間を増大させる。また、隣接領域内の移動端末装置数が既定の下限数を下回った場合、滞在可能時間を減少させる。下限値と上限値の間であった場合は、滞在可能時間を規定値に設定する。
また、自己の担当領域内の移動端末装置数に応じて滞在可能時間を変更できる。担当領域内の移動端末装置数が既定の上限数を上回った場合、滞在可能時間を減少させる。また、担当領域内の移動端末装置数が既定の下限数を下回った場合、滞在可能時間を増大させる。下限値と上限値の間であった場合は、領域滞在可能領域を規定値に設定する。
また、自己のマージン領域内の移動端末装置数に応じて滞在可能時間を変更できる。具体的には、マージン領域内の移動端末装置数が既定の上限数を上回った場合、滞在可能時間を減少させる。また、そのマージン担当領域内の移動端末装置数が既定の下限数を下回った場合、滞在可能時間を増大させる。下限値と上限値の間であった場合は、領域滞在可能領域を規定値に設定する。
また、自己の担当領域内の予め指定された領域内の移動端末装置数に応じて滞在可能時間を変更できる。具体的には、指定された領域内の移動端末装置数が既定の上限数を上回った場合、滞在可能時間を減少させる。また、その指定された領域内の移動端末装置数が既定の下限数を下回った場合、滞在可能時間を増大させる。下限値と上限値の間であった場合は、領域滞在可能領域を規定値に設定する。
このようにして、領域の境界付近をユーザ端末が移動しても、情報提供の開始や終了の切り替えの頻度を抑制できる。これにより、移動端末装置が領域間を移動することにともなう負荷の増大を抑制できる。
さらに、それぞれの領域が隣接領域内に持つマージン領域を、自身あるいは隣接する領域を担当するサーバの担当ユーザ数の大小に基づいて動的に変更することによって、現在の各コンピュータの負荷を考慮しながら領域移動処理の発生頻度を調節できる。
また、マージン領域に滞在できる時間を設定することで、実質的な領域移動の処理を適切に行うことができる。
また、マージン領域に滞在できる時間を、自身あるいは隣接する領域を担当するサーバの担当ユーザ数の大小に基づいて動的に変更することによって、現在のサーバ負荷を考慮しながら領域移動処理の発生頻度を調節できる。
以下、GPS(Global Positioning System)機能付き移動端末装置を所持している利用者の現在位置に最適な店舗情報を通知するサービスに本発明を適用した場合を例に採り、本発明の実施の形態を具体的に説明する。なお、以下の説明では情報を提供するための情報提供プログラムを実行するコンピュータ(情報提供装置として機能するコンピュータ)を、ホストと呼ぶことする。
図2は、領域の分割例を示す図である。図2に示すように、サービス対象地域を、複数の領域21〜29に分割する。なお、各領域21〜29には、識別情報が設定されている。領域21の識別情報は「領域A」、領域22の識別情報は「領域B」、領域23の識別情報は「領域C」、領域24の識別情報は「領域D」、領域25の識別情報は「領域E」、領域26の識別情報は「領域F」、領域27の識別情報は「領域G」、領域28の識別情報は「領域H」、領域29の識別情報は「領域I」である。
各領域には、その領域内の移動端末装置への情報提供サービスを担当するホストコンピュータ(ホスト)が予め決められている。ここで、ある移動端末装置へ情報提供サービスを担当するホストを、その移動端末装置の担当サーバと呼ぶ。たとえば、移動端末装置を所持するユーザ30が「領域A」から「領域B」へ境界31を越えて移動した場合、原則として、移動端末装置にサービスを提供する担当サーバが変更される。このとき、ユーザ30が境界31を越えた直後に担当サーバの切り替えを行うと、ユーザ30が引き返したときに、再度担当サーバの切り替えが発生する。そこで、本発明の実施の形態に係るエリア情報システムでは、境界31を越えてから所定の条件を満たした場合にのみ、担当サーバの切り替えを行う。
具体的には、「領域A」の外周に沿ってマージン領域32を設定しておく。そして、ユーザ30が「領域A」からマージン領域32内に移動したときは、「領域A」外であっても「領域A」を担当するホストが、ユーザ30に対する情報提供を担当する。また、マージン領域32内であり「領域A」外である場所へのユーザ30の滞在期間が所定時間を超えたときには、ユーザ30に対する情報提供を担当するホストを変更することもできる。たとえば、ユーザ30が「領域B」内で且つ「領域A」の外側に設けられたマージン領域32内に所定時間以上滞在した場合、その後は、「領域B」を担当する担当サーバがユーザ30への情報配信を担当する。
また、マージン領域32の広さを動的に変更することもできる。たとえば、「領域A」内の端末数、マージン領域32内の移動端末装置数、あるいは「領域A」の外周に沿って内側に設けた指定領域33内の移動端末装置数に応じて、マージン領域32の広さを動的に変更する。
図3は、本発明の実施の形態に係るエリア情報システムの構成例を示す図である。本発明の実施の形態に係るエリア情報システムは、ネットワーク10を介して接続された複数のサーバコンピュータで構成される。ネットワーク10としては、たとえば、インターネットのような広域ネットワークを利用することができる。ネットワーク10には、マスタサーバ100、複数のホスト200,200a,200b,・・・、IM(Instant Message)サーバ300、および移動端末装置400が接続されている。
マスタサーバ100は、ユーザにサービスするためのマスタ情報を管理するサーバコンピュータである。マスタサーバ100は、それぞれの領域を担当するホスト200,200a,200b,・・・の担当領域の情報や全店舗情報などが格納されたマスタDB(データベース)を有し、利用者からのユーザ登録やユーザ登録解除などの処理を行う。たとえば、マスタサーバ100は、各ホスト200,200a,200b,・・・に対して、担当領域内の店舗情報を配信する。
ホスト200,200a,200b,・・・は、自分自身の担当領域とマージン領域との定義情報、担当領域とマージン領域に含まれる店舗情報などが格納されたローカルDBを持つ。そして、ホスト200,200a,200b,・・・は、自身が担当している領域内にいる利用者に対して店舗情報を通知したり、利用者が自身の担当領域外に出た場合はその旨をマスタサーバ100に通知したりする。本発明の実施の形態では、ホスト200は、「領域A」を担当領域とするサーバコンピュータである。ホスト200aは、「領域B」を担当領域とするサーバコンピュータである。ホスト200bは、「領域C」を担当領域とするサーバコンピュータである。各ホスト200,200a,200b,・・・は、移動端末装置から位置情報を受信して、担当領域内にある店舗情報を通知するためのサーバプログラム(情報提供プログラム)に基づいて動作している。なお、本発明の実施の形態では、ホスト200,200a,200b,・・・と利用者の移動端末装置400との間の情報のやりとりはインスタントメッセージ技術を利用する。
また、各ホスト200,200a,200b,・・・には、ネットワーク10での識別情報としてホスト名が設定されている。ホスト200のホスト名は「α」、ホスト200aのホスト名は「β」、ホスト200bのホスト名は「γ」である。
IMサーバ300は、ユーザに対してインスタントメッセージ機能を提供するサーバコンピュータである。インスタントメッセージ機能では、ネットワーク10に接続した移動端末装置同士で直接メッセージのやりとりを可能とする機能である。インスタントメッセージは、電子メールと異なり、登録した相手が現在ネットワーク10に接続しているかどうかが分かり、接続されている装置へリアルタイムにメッセージを送ることができる。
ここで、インスタントメッセージ技術の仕組みを簡単に説明する。インスタントメッセージ技術は、プレゼンス機能とメッセージング機能で構成されている。プレゼンス機能とは、ユーザ#1がユーザ#2の任意の情報(プレゼンス)を購読するようにIMサーバ300に設定しておくと、ユーザ#2がその情報を変更した場合にリアルタイムで通知されるサービスである。一般的にプレゼンスの購読は、インスタントメッセージサービスでそれぞれのユーザを識別するためのIMアドレスという識別子を利用して行う。また、購読されたユーザは、購読を要求しているユーザのIMアドレスを知ることができ、どの情報を相手に公開するかを設定が可能である。メッセージング機能とは、ユーザ#1とユーザ#2の間でテキストメッセージがリアルタイムで送信する機能である。この場合も、ユーザの指定にはIMアドレスを利用する。
上記の機能を利用すると、ホスト200,200a,200b,・・・が移動端末装置400のIMアドレスを指定して購読を開始すると、移動端末装置にはホスト200,200a,200b,・・・のIMアドレスと購読開始要求が通知される。移動端末装置400がホスト200,200a,200b,・・・のIMアドレスに対して「位置情報」をプレゼンスとして公開すると、移動端末装置400の位置情報がホスト200,200a,200b,・・・にプレゼンスとして通知され、ホスト200,200a,200b,・・・はメッセージング機能を使って店舗情報を移動端末装置400に通知することができる。
移動端末装置400は、ユーザがサービスの提供を受けるために使用する携帯型のコンピュータである。移動端末装置400は、GPS機能を搭載しており、自身の位置(緯度、経度)を測定することができる。なお、図3では省略しているが、ネットワーク10には無線基地局が接続されており、移動端末装置400は、無線基地局と無線通信を行うことでネットワーク10に接続される。
本発明の実施の形態では、移動端末装置400は携帯型のコンピュータとしているが、例えば、GPS機能や他の位置情報取得機能を搭載した携帯電話であってもよい。
図4は、本発明の実施の形態に用いる担当サーバのハードウェア構成例を示す図である。ホスト200は、CPU(Central Processing Unit)201によって装置全体が制御されている。CPU201には、バス207を介してRAM(Random Access Memory)202、ハードディスクドライブ(HDD:Hard Disk Drive)203、グラフィック処理装置204、入力インタフェース205、および通信インタフェース206が接続されている。
RAM202には、CPU201に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM202には、CPU201による処理に必要な各種データが格納される。HDD203には、OSやアプリケーションプログラムが格納される。
グラフィック処理装置204には、モニタ11が接続されている。グラフィック処理装置204は、CPU201からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース205には、キーボード12とマウス13とが接続されている。入力インタフェース205は、キーボード12やマウス13から送られてくる信号を、バス207を介してCPU201に送信する。
通信インタフェース206は、ネットワーク10に接続されている。通信インタフェース206は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本発明の実施の形態の処理機能を実現することができる。なお、図4には、ホスト200のハードウェア構成例を示したが、他のホスト200a,200b,・・・、マスタサーバ100、IMサーバ300、移動端末装置400も同様のハードウェアで実現することができる。ただし、移動端末装置400は、GPSアンテナと、GPSアンテナから受信した情報を基に位置を算出する回路や、無線通信回路をさらに有している。なお、移動端末装置400では、モニタやキーボードは、装置に内蔵してもよい。また、移動端末装置400では、マウスに代えて、スティックやペンを用いたポインティングデバイスを用いることもできる。
図5は、本発明の実施の形態に係るエリア情報システムの機能構成を示すブロック図である。なお、図5の例では、ホスト200,200a,200b,・・・の構成については、ホスト200の構成を代表的に示しているが、他のホスト200a,200b,・・・も同様の構成である。
マスタサーバ100は、マスタDB110、マスタデータ管理部120、および担当サーバ決定部130を有している。
マスタDB110は、サービス全体に関する情報を保持するデータベースである。マスタDB110は、担当定義テーブル111、店舗情報テーブル112、およびユーザ管理テーブル113を有している。担当定義テーブル111には、担当サーバ毎の担当領域の定義等が登録される。店舗情報テーブル112には、ユーザに提供する店舗情報がされている。ユーザ管理テーブル113には、ユーザ毎の管理情報が登録されている。
マスタデータ管理部120は、マスタDB110内の各種データの更新、およびマスタDB110内に登録されたデータの担当サーバ(ホスト200)への配信を行う。たとえば、ユーザが領域の境界を跨いで移動し、そのユーザを担当すべき担当サーバが変更されると、マスタデータ管理部120は、そのユーザの管理情報を新たに担当する担当サーバに送信する。
担当サーバ決定部130は、ホスト200から、ユーザを担当するための条件を満たさなくなったことを示す通知(領域外メッセージ)を受け取る。その通知を受け取った担当サーバ決定部130は、該当するユーザを新たに担当すべき担当サーバを決定し、決定内容をマスタデータ管理部120に通知する。
ホスト200は、ローカルDB210、ローカルデータ管理部220、マスタデータ問い合わせ部230、情報提供部240、領域判定部250、および動的データ変更部260を有している。
ローカルDB210は、ホスト200が担当するユーザを管理し、そのユーザに情報を提供するために必要なデータが登録されている。具体的には、ローカルDB210には、担当領域テーブル211、ローカル店舗情報テーブル212、担当ユーザ数テーブル213、及び担当ユーザテーブル214が格納されている。担当領域テーブル211には、ホスト200が担当する領域を定義する情報が登録されている。ローカル店舗情報テーブル212には、ホスト200の担当領域およびマージン領域内の店舗の情報が登録されている。担当ユーザ数テーブル213には、ホスト200の担当領域およびマージン領域内のユーザ数が登録されている。担当ユーザテーブル214には、ホスト200が担当するユーザの管理情報が登録されている。
ローカルデータ管理部220は、ローカルDB210内のデータを管理する。
マスタデータ問い合わせ部230は、ホスト200の担当領域およびマージン領域内の店舗情報や担当ユーザの管理情報を、マスタサーバ100からマスタDB110内のデータとして取得する。
情報提供部240は、担当ユーザに対して店舗情報を提供する。なお、店舗情報の提供は、IMサーバ300におけるインスタントメッセージ機能を利用して行われる。
領域判定部250は、担当ユーザの位置情報を取得し、そのユーザが担当領域若しくはマージン領域内に滞在しているか否かを判定する。
動的データ変更部260は、ローカルDB210に登録されているデータ等に基づいて、マージン領域を動的に変更する。変更したマージン領域はローカルデータ管理部220に通知され、ローカルDB210の内容に反映される。
IMサーバ300は、ユーザ認証部310とIMサービス部320とを有している。
ユーザ認証部310は、移動端末装置400からの認証要求を受け付け、ユーザ認証を行う。ユーザ認証の結果は、移動端末装置400に渡される。ユーザ認証に成功した場合、ユーザ認証部310は、その旨をIMサービス部320に通知する。
IMサービス部320は、インスタントメッセージによる装置間のメッセージ中継サービスである。具体的には、移動端末装置400から出された情報(位置情報等)をリアルタイムにホスト200に通知したり、ホスト200から出された情報(店舗情報等)を移動端末装置400に通知したりする。なお、IMサービス部320は、ユーザ認証部310によるユーザ認証に成功した移動端末装置に対してのみ、インスタントメッセージのサービスを提供する。
移動端末装置400は、認証要求部410、情報取得部420、および位置計測部430を有している。
認証要求部410は、IMサーバ300に対して認証要求を送信し、その認証処理の結果を受け取る。認証要求部410は、認証に成功した場合には、その旨を情報取得部420に通知する。
情報取得部420は、IMサーバ300への認証に成功した旨の通知を受け取ると、IMサーバ300を経由して、ホスト200から配信される情報を取得する。情報取得部420は、取得した店舗情報を画面表示する。
位置計測部430は、GPS機能等を用いて移動端末装置400の位置を計測し、位置情報(緯度、経度)をIMサーバ300を介してホスト200に通知する。なお、位置を計測する機能(測地機能)は、GPS以外の機能を用いてもよい。たとえば、無線通信のための最寄りの基地局の位置に基づいて、移動端末装置400の位置を判断することできる。
次に、本発明の実施の形態のシステムで利用されるDBの内容について具体的に説明する。まず、マスタサーバ100で保持されるマスタDB110内の各テーブルのデータ構造を説明する。
図6は、担当定義テーブルのデータ構造例を示す図である。担当定義テーブル111は、各担当サーバの担当領域に関する情報を保持するテーブルで、「ホスト名」「担当領域」「マージン」「指定領域」「滞在可能時間」「上限超指数」「下限超指数」のフィールドを有している。各フィールドの横方向に並べられた情報同士が互いに関連づけられ、領域毎のレコードを構成している。
「ホスト名」は、領域毎の担当サーバのホスト名を格納するフィールドである。図6の例ではα、β、γ等のホスト名が登録されている。
「担当領域」は、各ホストが担当する領域の定義情報を格納するフィールドである。「担当領域」フィールド内の1行目と2行目とが、それぞれ担当領域の左下端(南西の角)の経度と緯度とを表している。また、「担当領域」フィールド内の3行目と4行目とが、それぞれ担当領域の右上端(北東の角)の経度と緯度とを表している。たとえば、ホスト名「α」の担当領域の南西の角は、東経134度12分10秒、北緯45度15分10秒である。また、ホスト名「α」の担当領域の北東の角は、東経134度12分15秒、北緯45度15分15秒である。したがって、東経が134度12分10秒〜134度12分15秒であり、北緯が45度15分10秒〜45度15分15秒である範囲が、ホスト名「α」であるホスト200の担当領域である。
なお、本発明の実施の形態では経度と緯度で領域を指定しているが、経度と緯度を使って矩形領域に一意のIDを割り当て、そのIDを「担当領域」フィールドに設定することもできる。たとえば、経度と緯度の度、分、秒連続して並べ、経度の先頭に東経を示すE、緯度の先頭に北緯を示すNを付加することで一意的にIDを付けることが可能である。具体的には、各領域の経度方向の幅を5秒、緯度方向の幅を5秒と定義しておく。そして、東経134度12分10秒、北緯45度15分10秒以上東経134度12分15秒、北緯45度15分15秒未満の矩形領域をID「E1341210N451510」とする。このIDを「担当領域」フィールドに設定することで、担当領域の地理的な範囲が定義される。
「マージン」は、担当領域の外側に設けられるマージン領域の幅を格納するフィールドである。幅は、経度及び緯度に加減算する角度(秒)で示される。図6の例では、ホスト名「α」のホスト200は、経度と緯度との両側に2秒ずつのマージンを持っている。マージン領域は担当領域の外側のため、東経が134度12分8秒〜134度12分17秒であり、且つ北緯が45度15分8秒〜北緯45度15分17秒の矩形領域のうち、担当領域を除く部分がマージン領域となる。
なお、図6の例では、経度と緯度方向に同じマージンを持っているが、それぞれ異なる値を持っていてもよい。また、図6の例では、経度、緯度の角度(秒)によってマージンを指定しているが、「担当領域」フィールドの項目での説明と同様に、矩形領域に一意に設定されたID(たとえば、「E1341208N451508」)でマージン領域の外周を示す矩形領域を定義してもよい。この場合、マージン領域の外周を示す矩形領域の経度方向の幅を9秒、緯度方向の幅を9秒と定義しておく。これにより、1つのIDによって図6に示したのと同様の矩形領域が設定できる。
「指定領域」は、担当領域の内側に持つ矩形領域の幅を格納するフィールドである。幅は、経度及び緯度に加減算する角度(秒)で示される。図6のホスト名「α」のホスト200は、緯度と経度との両側に1秒ずつの指定領域を持っている。指定領域は、担当領域の内側のため、東経が134度12分11秒〜134度12分14秒であり、且つ北緯が45度15分11秒〜北緯45度15分14秒の矩形領域を担当領域から除いた部分が指定領域となる。
図6では経度と緯度方向に同じ幅の指定領域を持っているが、それぞれ異なる幅に設定してもよい。また、経度、緯度での角度(秒)によって指定領域を指定しているが、矩形領域に一意に設定されたID(たとえば、「E1341211N451511」)で指定領域の内周を示す矩形領域を定義してもよい。この場合、指定領域の内周を示す矩形領域の経度方向の幅を3秒、緯度方向の幅を3秒と定義しておく。これにより、1つのIDによって図6に示したのと同様の矩形領域が設定できる。
「滞在可能時間」は、移動端末装置400がマージン領域に滞在できる最長の時間(秒)を格納するフィールドである。移動端末装置400が滞在可能時間を超えてマージン領域に滞在すると、その移動端末装置400は対応する担当サーバの管理対象外と判断される。たとえば、図6の例では、ホスト名「α」のホスト200では、移動端末装置400が60秒を超えてマージン領域に滞在すると、マージン領域内であっても、その移動端末装置400を情報提供対象外であると判定する。
「上限超指数」は、自身及び隣接領域での担当人数がこの値を超えたときにマージン及び滞在可能時間を調整するための指数を格納するフィールドである。「上限超指数」フィールドの1行目はマージンの指数を表し、2行目は時間の指数を表している。図6の例では、ホスト名「α」のホスト200は、自身の担当人数が500人を超えた場合、マージンが規定値の2秒の0.8倍に変更され、滞在可能時間が60秒の0.5倍に設定される。また、隣接領域の担当人数が500人を超えた場合、マージンが2秒の1/0.8倍に変更され、滞在可能時間が60秒の1/0.5倍に設定される。
「下限超指数」は自身及び隣接領域での担当人数がこの値を下回ったときにマージン及び滞在可能時間を調整するための指数を格納するフィールドで、1行目はマージンの指数、2行目は時間の指数を表している。図6の例では、ホスト名「α」のホスト200は、担当人数が100人を下回った場合、マージンは規定値の2秒の1.5倍に変更され、滞在可能時間は60秒の1.5倍に設定される。また、隣接領域の担当人数が100人を下回った場合、マージンは規定値の2秒の1/1.5倍に変更され、滞在可能時間は60秒の1/1.5倍に設定される。なお、本発明の実施の形態では、担当領域と隣接領域のマージン及び滞在可能時間の調整に同一の指数を用いているが、独立した値を使って調整することもできる。
図7は、「領域A」の担当領域、マージン領域、指定領域を示す概念図である。「領域A」を担当するホスト200の担当領域は、担当定義テーブル111の「担当領域」フィールドで定義された境界31で囲まれた矩形領域の内部である。また、「領域A」のマージン領域32は、担当定義テーブル111の「担当領域」フィールドの値に「マージン」フィールドで定義された値を加えた(南西の角を示す緯度、経度からマージンの値を減算、北西の角を示す緯度、経度に対してマージの値を加算)矩形32aの内部の領域のうち、担当領域を除く部分である。また、「領域A」の指定領域33は、担当領域内から、担当定義テーブル111の「担当領域」フィールドから「指定領域」フィールドで定義された値を減じた(南西の角を示す緯度、経度に対してマージンの値を加算、北西の角を示す緯度、経度に対してマージの値を減算)矩形33aの内部の領域を除く部分である。
ここで、「領域B」と重複するマージン領域を「M1」、「領域C」と重複するマージン領域を「M2」、「領域D」と重複するマージン領域を「M3」、「領域E」と重複するマージン領域を「M4」、「領域F」と重複するマージン領域を「M5」、「領域G」と重複するマージン領域を「M6」、「領域H」と重複するマージン領域を「M7」、「領域I」と重複するマージン領域を「M8」とする。
このように、各担当サーバに対して担当領域が割り当てられると共に、その担当領域のマージン領域、指定領域等の情報が担当定義テーブル111に設定される。
図8は、店舗情報テーブルのデータ構造例を示す図である。店舗情報テーブル112は、本サービスで提供する全店舗に関する情報を保持するテーブルであり、「店舗名」「所在地」「担当領域」「店舗情報」「カテゴリ区分」のフィールドを持つ。各フィールドの横方向に並べられた情報同士が互いに関連づけられている。これ以外にも、「住所」「電話番号」「ホームページのURL」など様々な情報を、店舗情報テーブル112に含めることができる。
「店舗名」はその店舗の名前を格納するフィールドである。
「所在地」はその店舗の所在地を格納するフィールドである。図8の例では、経度と緯度が格納されているが、図6に示した担当定義テーブル111の「担当領域」フィールドの項目での説明と同様に、地理的な位置に一意に設定されたID(たとえば、「E1341211N451511」)で所在地を定義してもよい。
「担当領域」はそれぞれの店舗が含まれる担当ホスト名を格納するフィールドである。これは店舗情報をファイルから読み込む際にマスタサーバ100のマスタデータ管理部120によって設定される。例えば、店舗名「b」の店舗情報は、図8の「所在地」と図6の担当定義テーブル111の「担当領域」および「マージン」を利用することで、ホスト名「β」の担当領域(領域B)及びホスト名「α」のマージン領域に含まれることが分かる。
「店舗情報」は利用者に通知する各店舗の説明情報を格納するフィールドである。
「カテゴリ区分」は各店舗の分類情報を格納するフィールドである。
また、マスタサーバ100では、マスタデータ管理部120により、ユーザ管理テーブル113を用いて、本サービスを利用するためのユーザ登録やユーザ登録の解除が行われる。
図9は、ユーザ管理テーブルのデータ構造例を示す図である。ユーザ管理テーブル113は、サービスを提供すべきユーザに関する情報を保持するテーブルであり、「ユーザ」「担当サーバ」「デフォルト担当サーバ」「配信希望カテゴリ区分」のフィールドを有する。各欄の横方向に並べられた情報同士が互いに関連づけられ、1つのレコードを構成している。
「ユーザ」フィールドは、本サービスの利用登録を行っているユーザの識別情報を格納するフィールドである。利用登録を解除すると、該当するユーザの識別情報に対応するレコードが削除される。なお、本発明の実施の形態では、ユーザの識別情報として、インスタントメッセージサービス上でのユーザ識別情報であるIMアドレスを用いるものとする。
「担当サーバ」フィールドは、それぞれのユーザを現在担当しているサーバのホスト名を格納するフィールドで、担当サーバが変更されるとフィールドは更新される。
「デフォルト担当サーバ」フィールドはユーザ登録時に一時的にユーザを担当するサーバのホスト名で、これらはラウンドロビンなどの手法で一つのサーバに負荷を集中させないようにする。
「配信希望カテゴリ区分」フィールドはそれぞれのユーザが配信を希望しているカテゴリ情報を格納するフィールドで、このフィールドを利用して必要な情報のみをユーザに配信する。
次に、ホスト200のローカルデータ管理部220に保持される各種テーブルの内容について説明する。
図10は、担当領域テーブルのデータ構造例を示す図である。担当領域テーブル211は、自身が担当する領域に関する情報を保持するテーブルで、「担当領域」「マージン」「指定領域」「滞在可能時間」「上限超指数」「下限超指数」のフィールドを有している。各フィールドの横方向に並べられた情報同士が互いに関連づけられ、1つのレコードを構成している。それぞれのフィールドの意味は、マスタサーバ100の担当定義テーブル111の同名のフィールドと同じである。各フィールドには起動時にマスタサーバ100に問い合わせて取得した値が設定される。なお、設定されるのは、担当定義テーブル111に登録されているデータのうち、ホスト200自身の担当領域等に関するデータのみである。
図11は、ローカル店舗情報テーブルのデータ構造例を示す図である。ローカル店舗情報テーブル212は、ホスト200が利用者に通知する店舗に関する情報を保持するテーブルであり、「店舗名」、「店舗情報」、「領域」のフィールドを有している。各フィールドの横方向に並べられた情報同士が互いに関連づけられ、1つのレコードを構成している。それぞれのフィールドの意味は、マスタサーバ100の店舗情報テーブル112の同名のフィールドと同じである。なお、これ以外にも、「住所」「電話番号」「ホームページのURL」など様々な情報を、ローカル店舗情報テーブル212に含めることができる。各フィールドは起動時にマスタサーバに問い合わせて取得した値が設定される。なお、設定されるのは、マスタサーバ100の店舗情報テーブル112に登録されているデータのうち、ホスト200自身の担当領域およびその周辺(たとえば、マージン領域)内に位置する店舗のデータのみである。
図12は、担当ユーザ数テーブルのデータ構造例を示す図である。担当ユーザ数テーブル213は、領域の種別毎の移動端末装置数を管理するデータテーブルであり、「ユーザ端末所在」と「端末数」とのフィールドが設けられている。各フィールドの横方向に並べられた情報同士が互いに関連づけられている。
「ユーザ端末所在」フィールドには、ユーザが使用する移動端末装置を、所在地によって分類するときの領域種別が設定される。図12の例では、「ユーザ端末所在」フィールドに、「担当領域内」、「指定領域内」、「マージンM1内」(担当領域の東側のマージン領域)、・・・、「マージン領域M8内」(担当領域の北東側のマージン領域)、「M1を含む隣接領域内」(担当領域の東側に隣接する領域)、・・・、「M8を含む隣接領域内」(担当領域の北東側に隣接する領域)が設定されている。
「端末数」フィールドには、各領域種別内に存在する端末数である。
図13は、担当ユーザテーブルのデータ構造例を示す図である。担当ユーザテーブル214はホスト200が情報の配信サービスを担当するユーザに関する情報が登録されたデータテーブルである。担当ユーザテーブル214には、「ユーザ」、「配信希望カテゴリ」、「滞在領域」、「マージン進入時刻」のフィールドが設けられている。各フィールドの横方向に並べられた情報同士が互いに関連づけられている。
「ユーザ」フィールドには、担当サーバ200が情報配信すべきユーザの識別情報が設定される。
「配信希望カテゴリ」フィールドには、「ユーザ」が配信を希望している店舗のカテゴリ区分が格納されるフィールドである。
「滞在領域」フィールドには、「ユーザ」が現在滞在している領域が格納されるフィールドであり、担当領域またはマージン領域が格納される。
「マージン進入時刻」フィールドには、「ユーザ」が最初にマージン領域に進入した時刻が格納されるフィールドで、そのマージン領域外へ移動した場合には時刻はクリアされる。
以上のような構成のシステムにおいて、情報配信サービスが行われる。以下、情報配信サービスを提供する際の各装置の処理を具体的に説明する。
図14は、情報配信サービスで行われる処理の手順を示すシーケンス図である。以下、図14に示す処理をステップ番号に沿って説明する。なお、IMサーバ300に関しては、本発明の実施の形態に係る情報提供サービスとは別に、インスタントメッセージサービスが継続して行われているものとする。
[ステップS11]移動端末装置400が起動されると、移動端末装置400からIMサーバ300に対するログオン処理が行われる。この処理の詳細は後述する(図15参照)。
[ステップS12]IMサーバ300において、移動端末装置400のログオンを認めると、ログオンに成功したことを移動端末装置400に通知する。
[ステップS13]一方、マスタサーバ100とホスト200とが起動されると、ホスト200からマスタサーバ100へ接続要求が出さる。
[ステップS14]ホスト200とマスタサーバ100との間の接続が成功すると、マスタサーバ100からホスト200へ、各種情報(ホスト200がサービスを提供する情報端末装置の管理情報等)が送信される。なお、ステップS13,S14の処理の詳細は後述する(図17参照)。
[ステップS15]ログインに成功した移動端末装置400からマスタサーバ100へ、ユーザ登録が行われる。この処理の詳細は後述する(図18参照)。
[ステップS16]マスタサーバ100は、移動端末装置400からのユーザ登録を受け付けると、成功した旨を移動端末装置400に通知する。この処理の詳細は後述する(図19参照)。
[ステップS17]移動端末装置400は、ユーザ登録後、サービス開始の要求をマスタサーバ100に対して出力し、その後、サービスの提供を受ける。なお、この例では、サービス開始時点において、移動端末装置400を使用するユーザは、ホスト200の担当領域内に居るものとする。この処理の詳細は後述する(図20参照)。
[ステップS18]マスタサーバ100は、ホスト200に対して、移動端末装置400の情報の購読指示を送信する。この処理の詳細は後述する(図21参照)。
[ステップS19]ホスト200は、マスタサーバ100からの購読指示に応答して、IMサーバ300に対して移動端末装置400に関する情報の購読要求を送信する(購読開始処理)。この処理の詳細は後述する(図22参照)。
[ステップS20]ホスト200は、購読手続きが成功すると、マスタサーバ100から、該当ユーザの配信希望カテゴリを取得する。
[ステップS21]その後、移動端末装置400は、位置が移動する毎に、位置プレゼンスをIMサーバ300に対して送信する。
[ステップS22]IMサーバ300は、移動端末装置400の位置プレゼンスをホスト200に通知する。
[ステップS23]ホスト200は、位置プレゼンスに基づいて領域判定を行い、移動端末装置400が情報提供対象であると判断すれば、移動端末装置400向けの情報をIMサーバ300に通知する。この処理の詳細は後述する(図23参照)。
[ステップS24]IMサーバ300は、ホスト200から渡された情報を、移動端末装置400に通知する。すると、移動端末装置400は、店舗情報を画面表示する。この処理の詳細は後述する(図24参照)。
[ステップS25]その後、移動端末装置400は、位置が移動する。このとき、移動端末装置400が、ホスト200の担当外となる条件を満たしたものとする(たとえば、ホスト200のマージン領域外に移動した場合など)。移動端末装置400は、現在の位置プレゼンスをIMサーバ300に対して送信する。
[ステップS26]IMサーバ300は、移動端末装置400の位置プレゼンスをホスト200に通知する。
[ステップS27]ホスト200は、移動端末装置400が自己の担当外になったと判断し、領域外通知をマスタサーバ100に送信する。
[ステップS28]マスタサーバ100は、移動端末装置400へサービスを提供する担当サーバを決定し(この例では、ホスト200aに決定されたものとする)、そのホスト200aに対して購読指示を送信する。
[ステップS29]購読指示を受け取ったホスト200aは、IMサーバ300に対して移動端末装置400に関する情報の購読要求を送信する。
[ステップS30]ホスト200aは、購読手続きが成功すると、マスタサーバ100から、該当ユーザの配信希望カテゴリを取得する。
このような手順で、移動端末装置400の位置に応じたサービス提供が行われる。以下、図14に示す処理の詳細を説明する。
図15は、移動端末装置からのログオン処理の詳細を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS41]移動端末装置400の認証要求部410は、ユーザからの操作入力等に応答して、ログオン画面を表示させる。
[ステップS42]移動端末装置400の認証要求部410は、IMサーバのログオン処理を行う。たとえば、認証要求部410は、ユーザの操作入力により、ユーザ名、IMアドレス、パスワードを受け付ける。認証要求部410は、ユーザ名、IMアドレス、パスワードとの組を含む認証要求をIMサーバ300に送信する。IMサーバ300では、ユーザ認証部310が認証要求を受け取り、予め登録されているユーザデータベースと認証要求の内容とを照合する。認証要求に含まれるユーザ名とIMアドレスとの組が登録されていてパスワードが正しければ、ユーザ認証部310は認証を認める。ユーザ認証部310は、認証処理の判断結果を移動端末装置400に通知する。
[ステップS43]移動端末装置400の認証要求部410は、IMサーバ300のユーザ認証部310から送られた認証処理の判断結果に基づいて、ログオンの成否を判定する。ログオンに成功した場合、処理がステップS44に進められる。ログオンに失敗した場合、処理がステップS45に進められる。
[ステップS44]認証要求部410は、ログオンに成功した場合、その旨を情報取得部420に通知する。情報取得部420は、ログオン成功の通知に応答して、サービス利用画面を表示させる。その後、ログオン処理が終了し、情報取得部420はイベント待ち状態となる。
[ステップS45]認証要求部410は、ログオンに失敗した場合、リトライができるか否か判断する。たとえば、予めリトライ可能回数が設定されており、そのリトライ回数がリトライ可能回数以下であれば、リトライ可能と判断し、そうでなければ、リトライ不可能と判断する。リトライが可能な場合、処理がステップS41に進められ、再度ログオン処理が行われる。リトライが不可能な場合、処理が終了する。
ログオンが成功すると、移動端末装置400においてエリア情報システム利用画面が表示される。
図16は、エリア情報システム利用画面の一例を示す図である。図16に示すようにエリア情報システム利用画面40には、ツールバー41と店舗リスト表示部42とが設けられている。エリア情報システム利用画面40内に、これ以外の機能ボタンや描画領域を設けることもできる。なお、エリア情報システム利用画面40は、ログオンに成功した場合に限り表示される。
ツールバー41には、「登録」ボタン41a、「開始」ボタン41b、「停止」ボタン41c、および「解除」ボタン41dの機能ボタンが設けられている。
「登録」ボタン41aは、本サービスにユーザ登録する場合に用いる機能ボタンである。「開始」ボタン41bはユーザ登録終了後、実際にサービスを利用する場合に用いる機能ボタンである。「停止」ボタン41cは、サービスの利用を一時停止する際に用いる機能ボタンである。「停止」ボタン41cを押してもサービスへのユーザ登録は解除されない。「解除」ボタン41dは、本サービスへのユーザ登録を解除する際に用いる機能ボタンである。これらの機能ボタンは、サービスへの利用登録やサービスの利用開始状況によって、押すことができたり、押すことができなかったりすることもある。
店舗リスト表示部42には、担当サーバから通知された店舗情報が表示される。図16の例では通知された店舗の名前のみが表示されているが、例えば、このリスト領域の店舗名をダブルクリックすることによって、店舗情報を表示することができる。なお、ログイン直後は、まだ店舗情報を取得していないため、店舗リスト表示部42内は空欄となる。
このようなエリア情報システム利用画面40が表示されることで、ユーザは、エリア情報システムを利用可能となる。
一方、エリア情報システムの運用を開始するには、マスタサーバ100と各ホスト200,200a,200b,・・・とが起動されている必要がある。マスタサーバ100は、起動されることで、移動端末装置400やホスト200,200a,200b,・・・からの各種要求待機状態となる。
図17は、サーバ起動処理の手順を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
[ステップS51]ホスト200のマスタデータ問い合わせ部230は、マスタサーバ100への接続処理を行う。具体的には、マスタデータ問い合わせ部230からマスタサーバ100へ接続要求が出される。その接続要求は、マスタサーバ100のマスタデータ管理部120で受け取られる。マスタデータ管理部120は、接続要求に対して応答する。
[ステップS52]マスタデータ問い合わせ部230は、マスタサーバ100からの応答によって、接続の成否を判定する。接続に成功した場合には、処理がステップS54に進められる。接続に失敗した場合には、処理がステップS53に進められる。
[ステップS53]マスタデータ問い合わせ部230は、接続に失敗した場合、リトライができるか否か判断する。たとえば、予めリトライ可能回数が設定されており、そのリトライ回数がリトライ可能回数以下であれば、リトライ可能と判断し、そうでなければ、リトライ不可能と判断する。リトライが可能な場合、処理がステップS51に進められ、再度接続処理が行われる。リトライが不可能な場合、処理が終了する。
[ステップS54]接続に成功した場合、マスタデータ問い合わせ部230は、ホスト200自身が担当する領域の情報を取得する。具体的には、マスタデータ問い合わせ部230は、マスタサーバ100に対して、自己のサーバ名「α」に応じた担当定義情報の取得要求を出す。すると、マスタサーバ100のマスタデータ管理部120は、担当定義テーブル111からホスト名「α」のレコードを取り出し、担当領域情報としてホスト200に送信する。マスタデータ問い合わせ部230は、マスタデータ管理部120から送られた担当領域情報を受け取り、ローカルデータ管理部220に渡す。
[ステップS55]マスタデータ問い合わせ部230は、ホスト200が担当する領域内の店舗情報を取得する。具体的には、マスタデータ問い合わせ部230は、マスタサーバ100に対して、自己のサーバ名「α」に応じた領域内店舗情報の取得要求を出す。すると、マスタサーバ100のマスタデータ管理部120は、担当定義テーブル111からホスト名「α」のレコードを取り出し、ホスト200の担当領域を認識する。そして、マスタデータ管理部120は、ホスト200の担当領域内の店舗情報を、店舗情報テーブル112から取得する。マスタデータ管理部120は、取得した店舗情報をホスト200に送信する。マスタデータ問い合わせ部230は、マスタデータ管理部120から送られた店舗情報を受け取り、ローカルデータ管理部220に渡す。
[ステップS56]マスタデータ問い合わせ部230は、ホスト200が担当する領域内の店舗情報を取得する。具体的には、マスタデータ問い合わせ部230は、マスタサーバ100に対して、自己のサーバ名「α」に応じた領域内店舗情報の取得要求を出す。すると、マスタサーバ100のマスタデータ管理部120は、担当定義テーブル111からホスト名「α」のレコードを取り出し、ホスト200の担当領域を認識する。そして、マスタデータ管理部120は、ホスト200のマージン領域内の店舗情報を、店舗情報テーブル112から取得する。マスタデータ管理部120は、取得した店舗情報をホスト200に送信する。マスタデータ問い合わせ部230は、マスタデータ管理部120から送られた店舗情報を受け取り、ローカルデータ管理部220に渡す。
[ステップS57]ローカルデータ管理部220は、ステップS54〜S56の処理によって受け取った情報に基づいて、ローカルDB210を作成する。その後、処理が終了する。
このようにして、ホスト200のローカルDB210が構築される。他のホスト200a,200b,・・・でも同様の処理が行われ、それぞれの担当領域に応じた内容のローカルDBが構築される。以後、各ホスト200,200a,200b,・・・から移動端末装置400への情報配信が可能となる。
そこで、移動端末装置400のユーザは、エリア情報システム利用画面40内の「登録」ボタン41aを選択する。これにより、移動端末装置400においてユーザ登録処理が行われる。ユーザ登録処理は、マスタサーバ100上で動作しているマスタデータ管理部120に対してインスタントメッセージシステムで使われる識別子であるIMアドレスと「ユーザ登録」コマンドを通知することで行う。
図18は、ユーザ登録要求処理の手順を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。
[ステップS61]移動端末装置400の情報取得部420は、マスタサーバ100への接続処理を行う。具体的には、情報取得部420からマスタサーバ100へ接続要求が出される。その接続要求は、マスタサーバ100のマスタデータ管理部120で受け取られる。マスタデータ管理部120は、接続要求に対して応答する。
[ステップS62]情報取得部420は、マスタサーバ100からの応答によって、接続の成否を判定する。接続に成功した場合には、処理がステップS65に進められる。接続に失敗した場合には、処理がステップS63に進められる。
[ステップS63]情報取得部420は、接続に失敗した場合、リトライができるか否か判断する。たとえば、予めリトライ可能回数が設定されており、そのリトライ回数がリトライ可能回数以下であれば、リトライ可能と判断し、そうでなければ、リトライ不可能と判断する。リトライが可能な場合、処理がステップS61に進められ、再度接続処理が行われる。リトライが不可能な場合、処理がステップS64に進められる。
[ステップS64]情報取得部420は、移動端末装置400の画面にエラーメッセージを表示し、処理を終了する。
[ステップS65]情報取得部420は、接続に成功した場合、ユーザ登録コマンドとIMアドレスとをマスタサーバ100に対して送信する。マスタサーバ100では、マスタデータ管理部120がIMアドレスをユーザ管理テーブル113に登録する。そして、マスタデータ管理部120は、登録処理の結果を移動端末装置400に返す。
[ステップS66]情報取得部420は、マスタサーバ100からの応答に基づいて、登録処理に成功したか否かを判断する。登録処理に成功した場合、処理を終了する。登録処理に失敗した場合、処理がステップS67に進められる。
[ステップS67]情報取得部420は、移動端末装置400の画面にエラーメッセージを表示し、処理を終了する。
ここで、ユーザ登録コマンドを受け取ったマスタサーバ100側での処理について詳細に説明する。
図19は、ユーザ登録処理の手順を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
[ステップS71]マスタサーバ100のマスタデータ管理部120は、移動端末装置400からのユーザ登録コマンドを受け取ると、IMアドレスを抽出する。
[ステップS72]マスタデータ管理部120は、抽出したIMアドレスが、ユーザ管理テーブル113に登録済であるか否かを判断する。登録済であれば、処理がステップS73に進められる。登録済でなければ処理がステップS74に進められる。
[ステップS73]マスタデータ管理部120は、登録失敗の応答を移動端末装置400に返し、処理を終了する。
[ステップS74]マスタデータ管理部120は、デフォルト担当サーバを決定する。たとえば、デフォルト担当サーバには、システム全体の担当サーバを順番に割り振っていく。すなわち、システム全体で担当サーバ「α」、「β」、「γ」がある場合、前回のユーザ登録時にサーバ「α」を割り当てた場合はサーバ「β」を担当サーバとして割り当てる。これ以外にも、「担当サーバ」のフィールドをリアルタイムで集計して、現在担当しているユーザが最も少ないサーバを担当に割り当ててもよい。
[ステップS75]マスタデータ管理部120は、ユーザ管理テーブル113に、ステップS71で抽出したIMアドレスをユーザとしたレコードを登録する。なお、この時点ではまだサービスの利用を開始していないので、担当サーバのフィールドは空欄のままである。
[ステップS76]マスタデータ管理部120は、登録成功の応答を移動端末装置400に返し、処理を終了する。
このようにして、移動端末装置400からユーザ登録コマンドを送信し、マスタサーバ100でユーザ登録を行うことができる。なお、ユーザ登録コマンドには、IMアドレス以外にも、ユーザ名やパスワードなどを含めることができる。ユーザ名やパスワードを送信することによって、マスタサーバ100においてIMサーバ300とは独立したユーザ認証を行うことができる。
ユーザ登録完了後、移動端末装置400のエリア情報システム利用画面40で「開始」ボタン41bが押されると、移動端末装置400の情報取得部420は、サービス開始処理を行う。
図20は、移動端末装置でのサービス開始処理の手順を示すフローチャートである。以下、図20に示す処理をステップ番号に沿って説明する。
[ステップS81]移動端末装置400の情報取得部420は、マスタサーバ100への接続処理を行う。具体的には、情報取得部420からマスタサーバ100へ接続要求が出される。その接続要求は、マスタサーバ100のマスタデータ管理部120で受け取られる。マスタデータ管理部120は、接続要求に対して応答する。
[ステップS82]情報取得部420は、マスタサーバ100からの応答によって、接続の成否を判定する。接続に成功した場合には、処理がステップS85に進められる。接続に失敗した場合には、処理がステップS83に進められる。
[ステップS83]情報取得部420は、接続に失敗した場合、リトライができるか否か判断する。たとえば、予めリトライ可能回数が設定されており、そのリトライ回数がリトライ可能回数以下であれば、リトライ可能と判断し、そうでなければ、リトライ不可能と判断する。リトライが可能な場合、処理がステップS81に進められ、再度接続処理が行われる。リトライが不可能な場合、処理がステップS84に進められる。
[ステップS84]情報取得部420は、移動端末装置400の画面にエラーメッセージを表示し、処理を終了する。
[ステップS85]情報取得部420は、接続に成功した場合、サービス利用開始コマンドとIMアドレスとをマスタサーバ100に対して送信する。マスタサーバ100では、マスタデータ管理部120がサービス利用開始処理を行う。そして、マスタデータ管理部120は、開始処理の結果を移動端末装置400に返す。
[ステップS86]情報取得部420は、マスタサーバ100からの応答に基づいて、開始処理に成功したか否かを判断する。開始処理に成功した場合、処理を終了する。開始処理に失敗した場合、処理がステップS87に進められる。
[ステップS87]情報取得部420は、移動端末装置400の画面にエラーメッセージを表示し、処理を終了する。
ここで、サービス利用開始コマンドを受け取ったマスタサーバ100側での処理について詳細に説明する。
図21は、マスタサーバでのサービス開始処理の手順を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。
[ステップS91]マスタサーバ100のマスタデータ管理部120は、サービス利用開始コマンドからIMアドレスを抽出する。
[ステップS92]マスタデータ管理部120は、抽出したIMアドレスに基づいて、ユーザ登録済か否かを判断する。具体的には、ユーザ管理テーブル113のユーザのフィールドに抽出したIMアドレスが登録されていれば、ユーザ登録済である。ユーザ登録済であれば、処理がステップS93に進められる。ユーザ登録済でなければ処理がステップS97に進められる。
[ステップS93]マスタデータ管理部120は、サービス開始済か否かを判断する。具体的には、ユーザ管理テーブル113の担当サーバのフィールドにホスト名が設定されていれば、サービス開始済と判断される。サービス開始済の場合、処理が終了する。サービス開始済で無い場合、処理がステップS94に進められる。
[ステップS94]マスタデータ管理部120は、デフォルト担当サーバに、該当IMアドレスの購読指示を送信する。具体的には、マスタデータ管理部120は、IMアドレスを含む購読開始コマンドをデフォルト担当サーバに送信する。
[ステップS95]マスタデータ管理部120は、デフォルト担当サーバからの応答に基づいて、購読成功か否かを判断する。購読成功の場合、処理がステップS96に進められる。購読失敗の場合、処理がステップS97に進められる。
[ステップS96]マスタデータ管理部120は、ユーザ管理テーブル113の担当サーバを更新する。具体的には、マスタデータ管理部120は、ユーザ管理テーブル113の担当サーバのフィールドに、デフォルト担当サーバと同じホスト名を設定する。その後、処理が終了する。
[ステップS97]マスタデータ管理部120は、移動端末装置400に開始失敗の応答を返す。
このように、移動端末装置400からマスタサーバ100に対して、IMアドレスとサービス利用開始コマンドとが送信されると、マスタサーバ100からデフォルト担当サーバに対して、移動端末装置400の情報の購読が指示される。デフォルト担当サーバは、マスタサーバの指示に従って、該当IMアドレスの購読開始処理を行う。
次に、デフォルト担当サーバがホスト200であるものとして、購読開始処理の詳細を説明する。
図22は、購読開始処理の手順を示すフローチャートである。以下、図22に示す処理をステップ番号に沿って説明する。
[ステップS101]ホスト200の情報提供部240は、購読開始コマンドを受信すると、この購読開始コマンドからIMアドレスを抽出する。
[ステップS102]情報提供部240は、IMアドレスに該当する移動端末装置の情報を購読済か否かを判断する。具体的には、情報提供部240は、担当ユーザテーブル214のユーザフィールドに、抽出したIMアドレスが登録されているか否かにより、購読済か否かを判断する。IMアドレスが登録されていれば、購読済である。購読済の場合には、処理が終了する。購読済でない場合には、処理がステップS103に進められる。
[ステップS103]情報提供部240は、抽出したIMアドレスを指定した購読要求を、IMサーバ300に対して送信する。
[ステップS104]情報提供部240は、IMサーバ300からの応答に基づいて、購読に成功したか否かを判断する。購読に成功した場合、処理がステップS105に進められる。購読に失敗した場合、処理がステップS108に進められる。
[ステップS105]情報提供部240は、マスタデータ問い合わせ部230を介して、マスタサーバ100から該当ユーザの配信希望カテゴリを取得する。ここで、該当ユーザの配信希望カテゴリとは、ユーザ管理テーブル113内のステップS103で抽出したIMアドレスが「ユーザ」フィールドに設定されたレコードにおけるカテゴリ区分のデータである。
[ステップS106]マスタデータ問い合わせ部230は、取得した配信希望カテゴリをローカルデータ管理部220に渡す。ローカルデータ管理部220は、担当ユーザ数テーブル213と担当ユーザテーブル214とを更新する。
[ステップS107]情報提供部240は、マスタサーバ100に購読成功の応答を返し、処理を終了する。
[ステップS108]情報提供部240は、マスタサーバ100に購読失敗の応答を返し、処理を終了する。
その後、移動端末装置400は購読開始要求の通知を受信し、位置情報を格納したプレゼンスをデフォルト担当サーバに対して公開する。プレゼンスとは、インスタントメッセージサービスで提供される機能であり、ユーザの状態を、そのユーザの情報を購読する他のユーザに通知する機能である。本発明の実施の形態では、移動端末装置400の位置情報を含むプレゼンスが、ホスト200に通知される。このように、移動端末装置400が位置情報を含むプレゼンスをIMサーバ300に設定することで、移動端末装置400の情報を購読しているホスト200にのみ、自動的に位置情報を格納したプレゼンスを公開することが可能である。
移動端末装置400が位置情報を格納したプレゼンスを公開すると、ホスト200に移動端末装置の現在位置が通知される。その後、移動端末装置400がプレゼンスを更新するたびに、ホスト200に対して位置情報を含むプレゼンスが通知される。ホスト200は、プレゼンスを受け取る毎に領域判定を行う。
図23は、領域判定処理の手順を示すフローチャートである。以下、図23に示す処理をステップ番号に沿って説明する。
[ステップS111]ホスト200の領域判定部250は、プレゼンスから位置情報を抽出する。
[ステップS112]領域判定部250は、移動端末装置400の位置が担当領域内か否かを判断する。担当領域内であれば処理がステップS115に進められる。担当領域外であれば処理がステップS113に進められる。
[ステップS113]領域判定部250は、マージン領域内か否かを判断する。マージン領域内であれば処理がステップS114に進められる。マージン領域外であれば処理がステップS118に進められる。
[ステップS114]領域判定部250は、マージン領域内の位置を判定する。すなわち、マージン領域は担当領域の周囲8方向に細分化されるため、細分化された領域の何処に移動端末装置400が有るのかが判定される。
[ステップS115]領域判定部250は、ステップS112〜S114による領域判定結果をローカルデータ管理部220に渡す。ローカルデータ管理部220は、領域判定部250から渡された領域判定結果に基づいて、担当ユーザ数テーブル213および担当ユーザテーブル214を更新する。なお、前回の領域判定と同じ結果であれば、担当ユーザ数テーブル213および担当ユーザテーブル214の内容は変更されない。
[ステップS116]領域判定部250は、ステップS112〜S114による領域判定結果を情報提供部240に渡す。情報提供部240は、移動端末装置400に通知する店舗情報を決定する。たとえば、担当領域またはマージン領域内の店舗のうち、移動端末装置400のユーザが希望するカテゴリ区分の店舗に関する店舗情報を、通知対象として決定する。
[ステップS117]情報提供部240は、通知対象の店舗情報を、IMサーバ300を介して移動端末装置400に通知する。その後、処理が終了する。
[ステップS118]領域判定部250は、移動端末装置400のIMアドレスの購読解除要求を、IMサーバ300に対して送信する。
[ステップS119]領域判定部250は、IMサーバ300からの応答に基づいて、購読解除に成功したか否かを判断する。購読解除に成功した場合、処理がステップS120に進められる。購読解除に失敗した場合、処理が終了する。
[ステップS120]領域判定部250は、ローカルデータ管理部220に対して購読解除を通知する。すると、ローカルデータ管理部220は、担当ユーザ数テーブル213および担当ユーザテーブル214を更新する。
[ステップS121]情報提供部240は、マスタサーバ100に対して、移動端末装置400のIMアドレスと位置情報とを含む領域外コマンドを通知し、処理を終了する。
このようにして、移動端末装置400が担当領域内であれば店舗情報を通知すると共に、担当領域外であっても、マージン領域内であれば店舗情報を通知することができる。すなわち、ホスト200の情報提供部240は受信したプレゼンスから位置情報を抽出して、担当領域テーブル211の「担当領域」フィールドにマージンの値を加えた領域に該当ユーザが含まれるかどうかを検査する。自分の担当領域またはマージン領域に含まれる場合には、ローカル店舗情報テーブル212に格納されている店舗情報を移動端末装置400にインスタントメッセージ機能で通知する。移動端末装置400は、通知された店舗情報を自身のデータ管理テーブルに格納し、店舗リスト表示部42に店舗名を表示する。
図24は、店舗情報表示処理の手順を示すフローチャートである。以下、図24に示す処理をステップ番号に沿って説明する。
[ステップS131]移動端末装置400の情報取得部420は、インスタントメッセージ機能で送られた情報から、店舗情報を抽出する。
[ステップS132]情報取得部420は、抽出した店舗情報を、内部のデータテーブルに格納する。
[ステップS133]情報取得部420は、新たに取得した店舗情報に基づく店舗リストを、店舗リスト表示部42に表示されている店舗リストに表示する。その後、処理が終了する。
なお、ホスト200から領域外コマンドを受け取ったマスタサーバ100は、移動端末装置400への情報の配信を担当する担当サーバの変更処理を行う。
図25は、担当サーバ変更処理の手順を示すフローチャートである。以下、図25に示す処理をステップ番号に沿って説明する。
[ステップS141]マスタサーバ100の担当サーバ決定部130は、ホスト200から送られた領域外コマンドからIMアドレスを抽出する。
[ステップS142]担当サーバ決定部130は、ホスト200から送られた領域外コマンドから位置情報を抽出する。
[ステップS143]担当サーバ決定部130は、担当定義テーブル111を参照し、移動端末装置400の現在の位置を含む領域への情報配信を担当するホストを、新たに移動端末装置400の担当サーバとして決定する(この例では、ホスト200aに決定されたものとする)。
[ステップS144]担当サーバ決定部130は、ステップS143で決定した担当サーバ(ホスト200a)に、ステップS141で抽出したIMアドレスに購読指示を通知する。
[ステップS145]担当サーバ決定部130は、担当サーバからの応答に基づいて、購読成功か否かを判定する。成功した場合には、処理がステップS146に進められる。購読に失敗した場合には、処理がステップS147に進められる。
[ステップS146]担当サーバ決定部130は、購読に成功した場合、移動端末装置400の担当サーバが変更されたことを、マスタデータ管理部120に通知する。すると、マスタデータ管理部120は、ユーザ管理テーブル113の移動端末装置400に対応するレコードの「担当サーバ」フィールドの内容を、新たに担当サーバとなったホストのホスト名に更新する。その後、処理が終了する。
[ステップS147]担当サーバ決定部130は、購読に失敗した場合、マスタサーバ100に対して、担当サーバの変更に失敗したことを示す応答を返し、処理を終了する。
このように、移動端末装置400が担当領域とマージン領域の値を加えた領域に含まれない場合、担当サーバとして機能しているホスト200は、移動端末装置400の購読を解除する。移動端末装置400は購読開始要求通知と同様に購読解除要求通知を受信し、公開していた位置情報を格納したプレゼンスの公開を停止する。さらに、担当サーバであるホスト200はマスタサーバ100に対して該当移動端末装置のIMアドレスと位置情報を通知する。マスタサーバ100は担当定義テーブル111の担当領域のみを参照して、通知された位置情報を担当領域とするホストを検索する。さらに、ユーザ管理テーブル113内で該当ユーザの担当サーバフィールドに検索したサーバのホスト名を格納後、該当するサーバに対して該当移動端末装置へ購読開始するように指示する。移動端末装置に対して購読開始を指示されたサーバプログラムは前述の手順によって、移動端末装置400への購読開始を行う。
これにより、移動端末装置400が担当領域外およびマージン領域外になったときに、担当サーバが変更される。すなわち、格子状に区分けされた領域の境界を越えて移動端末装置が移動しても、現在の担当サーバのマージン領域内であれば、引き続き、同じホストが担当サーバとしてサービスを提供する。したがって、ユーザが領域の境界を跨いだ移動を頻繁に行っても担当サーバを切り替えずに済み、担当サーバの切り替えに伴いマスタサーバや担当サーバの負荷を軽減することができる。
図26は、境界を越えて移動したときの担当サーバの切り替え状況を示す図である。図26では、移動端末装置400の位置51〜58の移動状況を示している。位置51〜58を示す矩形内には、移動端末装置400の担当サーバとなるホストのホスト名が示されている。識別情報が「領域A」の領域21は、ホスト名「α」のホスト200の担当領域である。識別情報が「領域B」の領域22は、ホスト名「β」のホスト200aの担当領域である。領域21のうち、領域22に隣接する部分がホスト200aのマージン領域34である。領域22のうち、領域21に隣接する部分がホスト200のマージン領域32である。
移動端末装置400を使用しているユーザが領域21内の位置51にいる間は、ホスト名「α」のホスト200が担当サーバとなる。ユーザが位置52に移動し、さらに領域の境界31を跨いで位置53(マージン領域32内)と移動しても、担当サーバは、ホスト名「α」のホスト200のままである。その後、ユーザがマージン領域32を出て、位置54に移動すると、担当サーバがホスト名「β」のホスト200aに変更される。
逆に、移動端末装置400を使用しているユーザが領域22内の位置55にいる間は、ホスト名「β」のホスト200aが担当サーバとなる。ユーザが位置56に移動し、さらに領域の境界31を跨いで位置57(マージン領域34内)と移動しても、担当サーバは、ホスト名「β」のホスト200aのままである。その後、ユーザがマージン領域34を出て、位置58に移動すると、担当サーバがホスト名「α」のホスト200に変更される。
図27は、担当サーバの切り替え状況の比較例を示す図である。図27(A)は従来技術による担当サーバ切り替え例を示しており、図27(B)は本発明の実施の形態による担当サーバ切り替え例を示している。図27では、移動端末装置400が移動したときの軌跡が示されている。そして、移動端末装置400の位置毎に、領域判定が行われたときの担当サーバのホスト名が示されている。
従来技術では、移動端末装置400を使用するユーザが領域21内に滞在しているときは、ホスト名「α」のホスト200が担当サーバとなり、領域22内に滞在しているときは、ホスト名「β」のホスト200aが担当サーバとなるものとする。この場合、移動端末装置400を使用するユーザが移動し、2つの領域21,22の境界31を跨ぐ毎に担当サーバが切り替えられる。図27(A)の例では、担当サーバの切り替えが6回発生している。
本発明の実施の形態では、ホスト名「α」のホスト200の担当領域は、識別情報が「領域A」の領域21であり、領域21の外周に沿ってマージン領域32が定義されている。同様に、ホスト名「β」のホスト200aの担当領域は、識別情報が「領域B」の領域22であり、領域22の外周に沿ってマージン領域34が定義されている。この場合、移動端末装置400を使用するユーザが、領域21(ホスト200aのマージン領域34外)から領域21,22の境界31を跨いでマージン領域32に移動しても、担当サーバの切り替えが発生しない。移動端末装置400を使用するユーザが、領域22内で、ホスト200のマージン領域32を出たときに担当サーバの切り替えが発生する。従って、従来技術の例と同じ経路で移動しているにも拘わらず、本発明の実施の形態では1回しか担当サーバの切り替えが発生していない。
このように、マージン領域を設けたことで、担当サーバの切り替え頻度が抑制され、システムの負荷を軽減できる。たとえば、マスタサーバ100において、新たに担当サーバを検索する処理は、マスタサーバ100内の担当定義テーブル111を全て検索する必要があり、処理に時間が掛かる。したがって、担当サーバの切り替え回数を減らすことで、マスタサーバ100の処理負荷が軽減される。
なお、図23に示した領域判定処理では、同時にマージン領域を動的に変更することができる。マージン領域を動的に変更することで、ホスト間の処理負荷の均衡を図ることができる。たとえば、自身の担当ユーザ数、自身のマージン領域内の担当ユーザ数、自身の指定領域内の担当ユーザ数あるいは隣接領域のサーバの担当ユーザ数によって、マージン領域を動的に変更できる。なお、自身の担当ユーザ数は購読開始要求時にカウンタを1増加させ、購読解除要求時にカウンタを1減少させることによって知ることができる。
図10に示した担当領域テーブル211の担当領域、マージン、指定領域の各フィールドの値から、担当領域の外周を示す矩形、マージン領域の外周を示す矩形、指定領域の内周を示す矩形が計算できる。したがって、移動端末装置400から位置情報が通知された場合にこれらの矩形領域内にあるかどうかを調査し、矩形領域にある場合にはそれぞれの領域内にあるIMアドレスリストに移動端末装置400のIMアドレスを追加する。また、矩形領域内にない場合には、IMアドレスリストから移動端末装置のIMアドレスを削除する。このリストに含まれるIMアドレスを数えることで、自身のマージン領域内の担当ユーザ数と自身の指定領域内の担当ユーザ数を知ることができる。
隣接領域のサーバの担当ユーザ数は、例えば担当領域のサーバを購読しておくことによって知ることができる。ホスト名「α」のホスト200とホスト名「β」のホスト200aとが隣接した領域を担当しているとすると、ホスト200はホスト200aの「担当ユーザ数」を購読しておき、ホスト200aはホスト200の「担当ユーザ数」を購読しておく。さらに、それぞれのサーバが担当ユーザ数変更時に、プレゼンスに変更されたユーザ数を設定する。すると、隣接サーバへ自身の担当数が通知される。
また、マスタサーバ100はユーザ管理テーブル113を参照することによって、任意のホストの担当ユーザ数を知ることができるので、一定時間毎に自分自身の隣接領域を担当しているサーバの担当ユーザ数を問い合わせてもよい。これらは、たとえば、マスタサーバ上の担当領域テーブルに、それぞれの領域の隣接領域を担当するサーバを格納しておくことによって実現可能である。
本実施の形態では隣接領域を担当しているサーバ間で担当ユーザ数を購読する方式を利用して説明する。なお、それぞれの領域を担当しているホスト200,200a,200bは、先に述べた方法によって、自身が担当しているユーザ数、マージン領域内のユーザ数、指定領域内のユーザ数及び隣接領域を担当しているホストの担当ユーザ数を把握しているものとする。
図28は、マージン領域の変更を伴う領域判定処理の手順を示すフローチャートである。なお、図28のステップS201,S203,S205〜S212は、それぞれ図23のステップS111,S112,S114〜S121と同じ処理であるため説明を省略する。
[ステップS202]動的データ変更部260は、マージン領域の調整倍率を設定する。この処理の詳細は後述する(図29参照)。
その後、担当領域の判定が行われ、担当領域外の場合(ステップS203の「NO」のルート)、ステップS204に処理が進められる。
[ステップS204]領域判定部250は、ステップS201で抽出した位置情報が、調整倍率によって調整後のマージン領域内か否かを判断する。マージン領域内であれば処理がステップS205に進められる。マージン領域外であれば処理がステップS209に進められる。
図29は、マージン領域の調整倍率設定処理の手順を示すフローチャートである。以下、図29に示す処理をステップ番号に沿って説明する。
[ステップS221]動的データ変更部260は、倍率を1に初期化する。
[ステップS222]動的データ変更部260は、自領域内端末数(担当領域内の移動端末装置の数)を、予め設定されている下限値(下限超指数の担当ユーザ数の値)および予め設定されている上限値(上限超指数の担当ユーザ数の値)と比較する。自領域内端末数が下限値以下であれば、処理がステップS223に進められる。自領域内端末数が上限値以上であれば、処理がステップS224に進められる。それ以外であれば、処理がステップS225に進められる。
[ステップS223]動的データ変更部260は、現在の倍率に下限超指数で示される係数を乗算することで、倍率を増加させる。その後、処理がステップS225に進められる。
[ステップS224]動的データ変更部260は、現在の倍率に上限超指数で示される係数を乗算することで、倍率を減少させる。その後、処理がステップS225に進められる。
[ステップS225]動的データ変更部260は、マージン領域内端末数(担当領域内の移動端末装置の数)を、予め設定されている下限値および予め設定されている上限値と比較する。マージン領域内端末数が下限値以下であれば、処理がステップS226に進められる。マージン領域内端末数が上限値以上であれば、処理がステップS227に進められる。それ以外であれば、処理がステップS228に進められる。
[ステップS226]動的データ変更部260は、現在の倍率に下限超指数で示される係数を乗算することで、倍率を増加させる。その後、処理がステップS228に進められる。
[ステップS227]動的データ変更部260は、現在の倍率に上限超指数で示される係数を乗算することで、倍率を減少させる。その後、処理がステップS228に進められる。
[ステップS228]動的データ変更部260は、指定領域内端末数(担当領域内の移動端末装置の数)を、予め設定されている下限値および予め設定されている上限値と比較する。指定領域内端末数が下限値以下であれば、処理がステップS229に進められる。指定領域内端末数が上限値以上であれば、処理がステップS230に進められる。それ以外であれば、処理がステップS231に進められる。
[ステップS229]動的データ変更部260は、現在の倍率に下限超指数で示される係数を乗算することで、倍率を増加させる。その後、処理がステップS231に進められる。
[ステップS230]動的データ変更部260は、現在の倍率に上限超指数で示される係数を乗算することで、倍率を減少させる。その後、処理がステップS231に進められる。
[ステップS231]動的データ変更部260は、隣接領域内端末数(担当領域内の移動端末装置の数)を、予め設定されている下限値および予め設定されている上限値と比較する。隣接領域内端末数が下限値以下であれば、処理がステップS232に進められる。隣接領域内端末数が上限値以上であれば、処理がステップS233に進められる。それ以外であれば、処理が終了する。
[ステップS232]動的データ変更部260は、現在の倍率を下限超指数で示される係数で除算することで、倍率を減少させる。その後、処理が終了する。
[ステップS233]動的データ変更部260は、現在の倍率を上限超指数で示される係数で除算することで、倍率を増加させる。その後、処理が終了する。
このようにして、マージン領域が動的に変更される。
図30は、各担当領域内に端末数に基づくマージン領域の変更例を示す図である。たとえば、領域21の端末数が上限値以上になると、領域21を担当するホスト200のマージン領域32が狭められる(マージン領域32の外周を示す境界線35が領域21側の位置35aに移動する)。また、領域21の端末数が下限値以下になると、領域21を担当するホスト200のマージン領域32が広げられる(マージン領域32の外周を示す境界線35が領域22側の位置35bに移動する)。
領域22の端末数が上限値以上になると、領域21を担当するホスト200のマージン領域32が広げられる(マージン領域32の外周を示す境界線35が領域22側の位置35bに移動する)。また、領域22の端末数が下限値以下になると、領域21を担当するホスト200のマージン領域32が狭められる(マージン領域32の外周を示す境界線35が領域21側の位置35aに移動する)。
図31は、マージン領域と指定領域との端末数によるマージン領域の変更例を示す図である。たとえば、領域21を担当するホスト200のマージン領域32の端末数が上限値以上になると領域21のマージン領域32が狭められる(マージン領域32の外周を示す境界線35が領域21側の位置35aに移動する)。また、領域21を担当するホスト200のマージン領域32の端末数が下限値以下になると領域21のマージン領域32が広げられる(マージン領域32の外周を示す境界線35が領域22側の位置35bに移動する)。
領域21を担当するホスト200の指定領域33の端末数が上限値以上になると領域21のマージン領域32が狭められる(マージン領域32の外周を示す境界線35が領域22側の位置35aに移動する)。また、領域21を担当するホスト200の指定領域33の端末数が下限値以下になると領域21のマージン領域32が広げられる(マージン領域32の外周を示す境界線35が領域21側の位置35bに移動する)。
マージン領域の変更量は、担当領域テーブル211に定義されている。たとえば、図10に示す内容の担当領域テーブル211を持ち、現在550人のユーザを担当しているホスト200が、移動端末装置400から位置情報のプレゼンスを受信した場合を考える。このホスト200では、担当領域テーブル211の上限超指数フィールドの1行目(「500,0.8」)のように「担当ユーザ数が500人を超えた場合には、マージン領域を0.8倍にする」と記述されている。そのため、領域判定を行う場合には、マージン領域を0.8倍にする。
このとき、マージン領域が減少することによってそれまで領域内と判定されていた移動端末装置400が領域外となる場合が生じるが、この時点での担当サーバの変更は行わず、次回移動端末装置400から位置情報が通知された場合に再度領域外であれば担当サーバの変更を行う。
同様に、図10に示す内容の担当領域テーブル211を持ち、現在50人のユーザを担当しているサーバが、移動端末装置400から位置情報のプレゼンスを受信した場合を考える。このサーバでは、図10の下限超指数フィールドの1行目(「100,1.5」)のように「担当ユーザ数が100人を下回った場合には、マージン領域を1.5倍にする」と記述されている。そのため、領域判定を行う場合には、マージン領域を1.5倍にする。また、上限値と下限値の間の担当ユーザ数の場合は、マージン領域は変更しない。
上記は自身の担当ユーザ数について説明したが、マージン領域内のユーザ数、指定領域内のユーザ数でも全く同様である。また、隣接領域の担当ユーザ数ではマージン領域の倍率を指数の逆数とする。これらの倍率は、自身の担当ユーザ数、マージン領域内のユーザ数、指定領域内のユーザ数、隣接領域内のユーザ数のいずれかのみを使って決定してもよいし、複数を組み合わせて決定してもよい。但し、自身の担当ユーザ数とマージン領域内のユーザ数あるいは指定領域内のユーザ数は包含関係にあるので、一方の情報のみを使用して倍率を決定することにしてもよい。たとえば、自領域内端末数を倍数変更のための判断対象とせず、マージン領域内端末数、指定領域内端末数、および隣接領域内端末数に基づいて倍率を設定する。図10の担当領域テーブル211で、マージン領域内に550人、指定領域内に550人、隣接領域の担当ユーザが50人の場合、マージン領域の倍率は、0.8×0.8×(1÷1.5)=0.43倍となる。
なお、図10の担当領域テーブル211は各領域について一律的に上限超指数と下限超指数を設定しているが、領域毎に上限超指数と下限超指数とを設定してもよい。たとえば、上下左右のそれぞれの隣接領域に対して、独立した値を設定することもできる。さらに、隣接領域から通知する情報を担当ユーザ数ではなく、マージン領域の指数にすることも可能である。
次に、ユーザのマージン領域への滞在可能時間を利用した担当サーバの切り替え処理について説明する。担当サーバ200,200a,200b,・・・は移動端末装置400の位置がマージン領域内であると判定すると、該当移動端末装置400のIMアドレスと位置情報を受け取った時刻を記憶する。その後、同じ移動端末装置400から通知された位置情報がマージン領域内と判定した場合、現在の時刻と最初にマージン領域に含まれると判定した時刻の間隔を計算し、図10の担当領域テーブル211内の滞在可能時間と比較する。間隔が滞在可能時間を超えている場合には領域外であると判定し、超えていない場合には領域内と判定する。領域外と判定した場合は、マスタサーバ100に領域外コマンド、該当IMアドレス、位置情報を通知して、担当サーバ割り当て変更の処理を行う。
領域内と判定した場合も最初にマージン領域に含まれると判定した時刻はクリアせず、その後位置情報が通知された場合の滞在可能時間との比較に利用する。また、以前にマージン領域内にあると判定された移動端末装置から通知された位置情報が、ある時点でマージン領域でない担当領域に含まれると判定された場合、ホストは最初にマージン領域にいると判定された時刻をクリアする。
図32は、マージン領域への滞在可能時間を利用した担当サーバ切り替えを行うときの領域判定処理の手順を示すフローチャートである。以下、図32に示す処理をステップ番号に沿って説明する。
[ステップS301]領域判定部250は、プレゼンスから位置情報を抽出する。
[ステップS302]領域判定部250は、抽出した位置情報で示される位置がホスト200の担当領域内か否かを判断する。担当領域内であれば処理がステップS303に進められる。担当領域外であれば、処理がステップS305に進められる。
[ステップS303]領域判定部250は、直前(前回の位置情報取得時)にマージン領域に滞在していたか否かを判断する。マージン領域に滞在していた場合、処理がステップS304に進められる。マージン領域に滞在していなかった場合、処理がステップS310に進められる。
[ステップS304]領域判定部250は、マージン領域に入った時刻をクリアする。その後、処理がステップS310に進められる。
[ステップS305]領域判定部250は、ステップS302において担当領域外と判断した場合、マージン領域内か否かを判断する。マージン領域内の場合、処理がステップS306に進められる。マージン領域外の場合、処理がステップS312に進められる。
[ステップS306]領域判定部250は、直前(前回の位置情報取得時)にマージン領域に滞在していたか否かを判断する。マージン領域に滞在していた場合、処理がステップS308に進められる。マージン領域に滞在していなかった場合、処理がステップS307に進められる。
[ステップS307]領域判定部250は、マージン領域に入った時刻を記憶する。その後、処理がステップS310に進められる。
[ステップS308]領域判定部250は、マージン領域入った時刻からの経過時間を算出する。
[ステップS309]領域判定部250は、経過時間が滞在可能時間未満か否かを判断する。滞在可能時間未満であれば、処理がステップS310に進められる。滞在可能時間以上であれば、処理がステップS312に進められる。
[ステップS310]領域判定部250は、ステップS302〜S309による領域判定結果をローカルデータ管理部220に渡す。ローカルデータ管理部220は、領域判定部250から渡された領域判定結果に基づいて、担当ユーザ数テーブル213および担当ユーザテーブル214を更新する。
[ステップS311]領域判定部250は、ステップS302〜S309による領域判定結果を情報提供部240に渡す。情報提供部240は、移動端末装置400に通知する店舗情報を決定する。たとえば、担当領域またはマージン領域内の店舗のうち、移動端末装置400のユーザが希望するカテゴリ区分の店舗に関する店舗情報を、通知対象として決定する。そして、情報提供部240は、通知対象の店舗情報を、IMサーバ300を介して移動端末装置400に通知する。その後、処理が終了する。
[ステップS312]領域判定部250は、移動端末装置400のIMアドレスの購読解除要求を、IMサーバ300に対して送信する。
[ステップS313]領域判定部250は、IMサーバ300からの応答に基づいて、購読解除に成功したか否かを判断する。購読解除に成功した場合、処理がステップS314に進められる。購読解除に失敗した場合、処理が終了する。
[ステップS314]領域判定部250は、ローカルデータ管理部220に対して購読解除を通知する。すると、ローカルデータ管理部220は、担当ユーザ数テーブル213および担当ユーザテーブル214を更新する。
[ステップS315]情報提供部240は、マスタサーバ100に対して、移動端末装置400のIMアドレスと位置情報とを含む領域外コマンドを通知し、処理を終了する。
このようにして、ユーザがマージン領域内に滞在している場合でも、その滞在時間が所定期間以上となる場合には、担当サーバを切り替えることができる。
図33は、マージン領域に長期滞在したときの担当サーバ切り替え例を示す図である。移動端末装置400を使用するユーザが、ホスト名「α」のホスト200が担当する領域21からマージン領域32に移動した場合、マージン領域32への進入直後は担当サーバの切り替えが行われない。マージン領域32内に所定期間以上滞在していると、移動端末装置400の担当サーバがホスト名「β」のホスト200aに切り替えられる。
最後に、自身の担当ユーザ数、マージン領域内のユーザ数、指定領域内のユーザ数あるいは隣接領域のサーバの担当ユーザ数によって、滞在可能時間が動的に変更される場合について説明する。
図34は、滞在可能時間の変更を伴う領域判定処理の手順を示すフローチャートである。なお、図34のステップS401,S403〜S409,S411〜S416は、それぞれ図32のステップS301〜S308,S310〜S315と同じ処理であるため説明を省略する。
[ステップS402]動的データ変更部260は、滞在可能時間の調整倍率を設定する。この処理の詳細は後述する(図35参照)。
その後、担当領域の判定等の処理が行われ、以前からマージン領域に滞在していると判断された場合、ステップS410に処理が進められる。
[ステップS410]領域判定部250は、ステップS409で算出された経過時間が、調整倍率によって調整後の滞在可能時間未満か否かを判断する。調整後の滞在可能時間未満であれば処理がステップS411に進められる。調整後の滞在可能時間未満でなければ処理がステップS413に進められる。
図35は、滞在可能時間の調整倍率設定処理の手順を示すフローチャートである。以下、図35に示す処理をステップ番号に沿って説明する。
[ステップS421]動的データ変更部260は、倍率を1に初期化する。
[ステップS422]動的データ変更部260は、自領域内端末数(担当領域内の移動端末装置の数)を、予め設定されている下限値(下限超指数の担当ユーザ数の値)および予め設定されている上限値(上限超指数の担当ユーザ数の値)と比較する。自領域内端末数が下限値以下であれば、処理がステップS423に進められる。自領域内端末数が上限値以上であれば、処理がステップS424に進められる。それ以外であれば、処理がステップS425に進められる。
[ステップS423]動的データ変更部260は、現在の倍率に下限超指数で示される係数を乗算することで、倍率を増加させる。その後、処理がステップS425に進められる。
[ステップS424]動的データ変更部260は、現在の倍率に上限超指数で示される係数を乗算することで、倍率を減少させる。その後、処理がステップS425に進められる。
[ステップS425]動的データ変更部260は、マージン領域内端末数(担当領域内の移動端末装置の数)を、予め設定されている下限値および予め設定されている上限値と比較する。マージン領域内端末数が下限値以下であれば、処理がステップS426に進められる。マージン領域内端末数が上限値以上であれば、処理がステップS427に進められる。それ以外であれば、処理がステップS428に進められる。
[ステップS426]動的データ変更部260は、現在の倍率に下限超指数で示される係数を乗算することで、倍率を増加させる。その後、処理がステップS428に進められる。
[ステップS427]動的データ変更部260は、現在の倍率に上限超指数で示される係数を乗算することで、倍率を減少させる。その後、処理がステップS428に進められる。
[ステップS428]動的データ変更部260は、指定領域内端末数(担当領域内の移動端末装置の数)を、予め設定されている下限値および予め設定されている上限値と比較する。指定領域内端末数が下限値以下であれば、処理がステップS429に進められる。指定領域内端末数が上限値以上であれば、処理がステップS430に進められる。それ以外であれば、処理がステップS431に進められる。
[ステップS429]動的データ変更部260は、現在の倍率に下限超指数で示される係数を乗算することで、倍率を増加させる。その後、処理がステップS431に進められる。
[ステップS430]動的データ変更部260は、現在の倍率に上限超指数で示される係数を乗算することで、倍率を減少させる。その後、処理がステップS431に進められる。
[ステップS431]動的データ変更部260は、隣接領域内端末数(担当領域内の移動端末装置の数)を、予め設定されている下限値および予め設定されている上限値と比較する。隣接領域内端末数が下限値以下であれば、処理がステップS429に進められる。隣接領域内端末数が上限値以上であれば、処理がステップS430に進められる。それ以外であれば、処理が終了する。
[ステップS432]動的データ変更部260は、現在の倍率を下限超指数で示される係数で除算することで、倍率を減少させる。その後、処理が終了する。
[ステップS433]動的データ変更部260は、現在の倍率を上限超指数で示される係数で除算することで、倍率を増加させる。その後、処理が終了する。
このようにして、滞在可能時間が動的に変更される。
たとえば、図10の担当領域テーブル211を持ち、現在550人のユーザを担当しているサーバが、以前にマージン領域にいると判定された移動端末装置から位置情報のプレゼンスを受信した場合を考える。このサーバでは、図10の上限超指数の2行目(「500,0.5」)のように「担当ユーザ数が500人を超えた場合には、マージン領域内の滞在可能時間を0.5倍にする」と記述されているため、通知された位置が再度マージン領域内である場合は滞在可能時間を0.5倍にしてから最初にマージン領域にいると判定された時刻からの経過時間と比較する。
このとき、滞在可能時間が減少することによってそれまで滞在可能時間内のため領域内と判定されていた移動端末装置が滞在可能時間を超えていて領域外となる場合が生じるが、この時点での担当サーバの変更は行わず、次回移動端末装置から位置情報が通知された場合に再度領域外であれば担当サーバの変更を行う。
同様に、図10の担当領域テーブル211を持ち、現在50人のユーザを担当しているサーバが、以前にマージン領域にいると判定された移動端末装置から位置情報のプレゼンスを受信した場合を考える。このサーバでは、図10の下限超指数の2行目(「500,1.5」)のように「担当ユーザ数が50人を下回った場合には、マージン領域内の滞在可能時間を1.5倍にする」と記述されているため、通知された位置が再度マージン領域内である場合は滞在可能時間を1.5倍にしてから最初にマージン領域にいると判定された時刻からの経過時間と比較する。また、上限値と下限値の間の担当ユーザ数の場合は、滞在可能時間の指数は変更しない。
上記は自身の担当ユーザ数について説明したが、マージン領域内のユーザ数、指定領域内のユーザ数でも全く同様である。また、隣接領域の担当ユーザ数ではマージン領域の倍率を指数の逆数とする。これらの倍率は、自身の担当ユーザ数、マージン領域内のユーザ数、指定領域内のユーザ数、隣接領域内のユーザ数のいずれかのみを使って決定してもよいし、複数を組み合わせて決定してもよい。但し、自身の担当ユーザ数とマージン領域内のユーザ数あるいは指定領域内のユーザ数は包含関係にあるので、両方を同時に使って倍率を決定することは出来ない。例えば、図10の担当領域テーブル211で、マージン領域内に550人、指定領域内に550人、隣接領域の担当ユーザが50人の場合、滞在可能時間の倍率は、0.5×0.5×(1÷1.5)=0.17倍となる。
なお、図10の担当領域テーブル211は隣接領域について一律的に上限超指数と下限超指数を設定しているが、例えば上下左右のそれぞれの隣接領域に対して、独立した値を設定できるようにしてもよい。さらに、隣接領域から通知する情報を担当ユーザ数ではなく、滞在可能時間の指数にすることも可能である。また、マージン領域の変更を動的に行った後に、マージン領域の滞在可能時間を動的に変更してもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、マスタサーバ100,ホスト200,200a,200b,・・・、移動端末装置400が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto−Optical disc)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
Claims (5)
- 移動端末装置に対して、前記移動端末装置の位置に応じた情報をコンピュータを用いて提供するための情報提供方法において、
前記コンピュータが、
前記移動端末装置の位置情報を取得し、
担当領域と前記担当領域の外周に沿って設けられたマージン領域とが予め定義されており、前記位置情報に基づいて、前記移動端末装置が前記担当領域と前記マージン領域との何れかに含まれるかどうかを判定し、
前記移動端末装置が前記担当領域内に進入したとき、前記移動端末装置への情報提供を開始し、
情報提供の対象となった前記移動端末装置が前記マージン領域外に出たとき、および滞在可能時間を超えて前記マージン領域に滞在したときに前記移動端末装置への情報提供を終了する、
ことを特徴とする情報提供方法。 - 所定の領域内の移動端末装置数に応じて前記滞在可能時間を増減することを特徴とする請求項1記載の情報提供方法。
- 前記所定の領域は、前記担当領域であることを特徴とする請求項2記載の情報提供方法。
- 前記所定の領域は、前記マージン領域であることを特徴とする請求項2記載の情報提供方法。
- 前記所定の領域は、前記担当領域に隣接する隣接領域であることを特徴とする請求項2記載の情報提供方法。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2003/011326 WO2005025248A1 (ja) | 2003-09-04 | 2003-09-04 | 情報提供方法および情報提供プログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2005025248A1 JPWO2005025248A1 (ja) | 2006-11-16 |
| JP4397375B2 true JP4397375B2 (ja) | 2010-01-13 |
Family
ID=34260132
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2005508789A Expired - Fee Related JP4397375B2 (ja) | 2003-09-04 | 2003-09-04 | 情報提供方法および情報提供プログラム |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US7664514B2 (ja) |
| EP (1) | EP1662814B1 (ja) |
| JP (1) | JP4397375B2 (ja) |
| CN (1) | CN100481970C (ja) |
| WO (1) | WO2005025248A1 (ja) |
Families Citing this family (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7969937B2 (en) | 2004-03-23 | 2011-06-28 | Aruba Networks, Inc. | System and method for centralized station management |
| US9432848B2 (en) | 2004-03-23 | 2016-08-30 | Aruba Networks, Inc. | Band steering for multi-band wireless clients |
| US8289906B2 (en) * | 2004-03-26 | 2012-10-16 | Samsung Electronics Co. Ltd. | Method and system for assigning servers based on server status in a wireless network |
| JP2006197041A (ja) * | 2005-01-12 | 2006-07-27 | Nec Corp | PoCシステム、PoC携帯端末及びそれらに用いるポインタ表示方法並びにそのプログラム |
| JP4659576B2 (ja) * | 2005-09-29 | 2011-03-30 | 株式会社エヌ・ティ・ティ・ドコモ | プレゼンス管理装置およびプレゼンス管理方法 |
| JP4863711B2 (ja) * | 2005-12-23 | 2012-01-25 | パナソニック株式会社 | 電子機器の認証についての識別管理システム |
| CN100426933C (zh) * | 2006-03-14 | 2008-10-15 | 华为技术有限公司 | 区域触发定位方法及装置 |
| JP4966570B2 (ja) * | 2006-03-20 | 2012-07-04 | 日本電気通信システム株式会社 | 情報提供システム、端末、情報取得及び提供サーバ、情報提供方法及びプログラム |
| JP2007323202A (ja) * | 2006-05-30 | 2007-12-13 | Toshiba Corp | 情報配信システムならびにこれに用いる移動端末及び配信サーバ |
| JP2009088995A (ja) * | 2007-09-28 | 2009-04-23 | Ntt Docomo Inc | プレゼンスシステム、プレゼンスサーバ及びプレゼンス管理方法 |
| JP4940113B2 (ja) * | 2007-11-29 | 2012-05-30 | 株式会社日立製作所 | 地域情報配信設定システム、地域情報配信設定方法、および地域情報配信設定プログラム |
| JP2009245234A (ja) * | 2008-03-31 | 2009-10-22 | Denso It Laboratory Inc | コンテンツ配信システム、コンテンツ配信方法、センター装置およびデバイス |
| BRPI0924982A2 (pt) | 2009-04-10 | 2016-01-12 | Huawei Tech Co Ltd | método, aparelho e sistema para handover |
| KR101705279B1 (ko) * | 2010-06-01 | 2017-02-09 | 삼성전자 주식회사 | 단말 관리 서비스를 제공하는 서버 및 방법 그리고 상기 단말 관리 서비스를 제공받는 단말 |
| CN102333287B (zh) * | 2011-09-06 | 2015-03-25 | 京信通信系统(中国)有限公司 | 一种信息传送的方法、设备及系统 |
| KR102020623B1 (ko) * | 2012-04-19 | 2019-09-10 | 삼성전자주식회사 | 무선통신 시스템에서 사용자 분산을 위한 장치 및 방법 |
| JP6237275B2 (ja) * | 2014-01-30 | 2017-11-29 | コニカミノルタ株式会社 | 画像処理装置、情報処理装置、画像処理システム、画像処理装置の制御方法、情報処理装置の制御方法、画像処理装置の制御プログラム、および情報処理装置の制御プログラム |
| US9986375B2 (en) * | 2014-02-12 | 2018-05-29 | Google Llc | Energy-efficient location determination |
| EP2919431B1 (en) | 2014-03-12 | 2017-11-08 | Accenture Global Services Limited | Secure distribution of electronic content taking into account receiver's location |
| AU2017223831B2 (en) * | 2016-02-25 | 2022-04-07 | Intel Corporation | Platform for computing at the mobile edge |
| JP6552752B1 (ja) * | 2018-03-02 | 2019-07-31 | 三菱電機ビルテクノサービス株式会社 | 訪問先判定システムおよび訪問先判定方法 |
| JP6832531B2 (ja) * | 2018-03-15 | 2021-02-24 | パナソニックIpマネジメント株式会社 | 自動運転支援システム、車両接続サーバ、管制サーバ、自動運転支援方法、サーバの制御方法、およびプログラム |
| CN112399411B (zh) | 2019-07-31 | 2022-04-29 | 上海华为技术有限公司 | 一种认证接入网设备的方法以及相关设备 |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5686542A (en) * | 1979-12-18 | 1981-07-14 | Anritsu Corp | Zone switching method in mobile radio communication |
| SE514018C2 (sv) * | 1993-09-23 | 2000-12-11 | Ericsson Telefon Ab L M | Metod för registrering i ett cellindelat mobilradiosystem |
| JPH09298766A (ja) | 1996-04-30 | 1997-11-18 | Nec Eng Ltd | 移動通信システム |
| JP2965007B2 (ja) * | 1997-08-11 | 1999-10-18 | 日本電気株式会社 | 携帯電話システム |
| US6631263B1 (en) | 1998-11-06 | 2003-10-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Cell hand-off border identification using MS positioning and signal strength values |
| FI990488A0 (fi) | 1999-03-05 | 1999-03-05 | Nokia Telecommunications Oy | Menetelmä jakaa liikennettä solukkoradioverkossa |
| JP4299911B2 (ja) | 1999-03-24 | 2009-07-22 | 株式会社東芝 | 情報転送システム |
| US6654608B1 (en) | 1999-04-27 | 2003-11-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Tailored power levels at handoff and call setup |
| JP2001326960A (ja) * | 2000-05-18 | 2001-11-22 | Tomo-Digi Corp | 情報配信システム、情報配信サーバ、携帯端末、情報配信方法及び記録媒体 |
| JP2002009691A (ja) * | 2000-06-20 | 2002-01-11 | Nec Corp | 地域情報配信システム及び地域情報配信方法 |
| NO323907B1 (no) | 2000-07-07 | 2007-07-16 | Ericsson Telefon Ab L M | Personlig mobilt Internett |
| US7035647B2 (en) * | 2002-02-07 | 2006-04-25 | Openwave Systems Inc. | Efficient location determination for mobile units |
| US8311887B2 (en) * | 2001-05-29 | 2012-11-13 | Fujitsu Limited | Methods, devices and systems for real-time instant presence with advertisement (RIPA) |
| JP2003256308A (ja) * | 2002-03-01 | 2003-09-12 | Nippon Telegr & Teleph Corp <Ntt> | コンテンツ配信制御システムと方法およびコンテンツ配信サービス受付制御装置ならびにプログラムと記録媒体 |
-
2003
- 2003-09-04 JP JP2005508789A patent/JP4397375B2/ja not_active Expired - Fee Related
- 2003-09-04 EP EP03818573.2A patent/EP1662814B1/en not_active Expired - Lifetime
- 2003-09-04 CN CNB038270374A patent/CN100481970C/zh not_active Expired - Fee Related
- 2003-09-04 WO PCT/JP2003/011326 patent/WO2005025248A1/ja not_active Ceased
-
2006
- 2006-03-01 US US11/364,546 patent/US7664514B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP1662814A4 (en) | 2009-04-15 |
| EP1662814B1 (en) | 2013-12-25 |
| US20060200540A1 (en) | 2006-09-07 |
| CN1826817A (zh) | 2006-08-30 |
| EP1662814A1 (en) | 2006-05-31 |
| WO2005025248A1 (ja) | 2005-03-17 |
| CN100481970C (zh) | 2009-04-22 |
| US7664514B2 (en) | 2010-02-16 |
| JPWO2005025248A1 (ja) | 2006-11-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4397375B2 (ja) | 情報提供方法および情報提供プログラム | |
| US5812865A (en) | Specifying and establishing communication data paths between particular media devices in multiple media device computing systems based on context of a user or users | |
| US5493692A (en) | Selective delivery of electronic messages in a multiple computer system based on context and environment of a user | |
| US5544321A (en) | System for granting ownership of device by user based on requested level of ownership, present state of the device, and the context of the device | |
| Buchholz et al. | Quality of context: What it is and why we need it | |
| US20160050520A1 (en) | Rf fingerprints for content location | |
| US20130023284A1 (en) | Private networks and spectrum control with rf fingerprinting | |
| JP5952987B1 (ja) | チャットシステム、チャット方法、およびチャットプログラム | |
| JP2003153320A (ja) | 位置情報通知システムおよび位置情報通知方法 | |
| JP2015070424A (ja) | 情報配信システム、情報配信方法、移動体端末およびコンピュータプログラム | |
| CN101426023A (zh) | 用于促进基于位置的分布式待执行列表的方法和装置 | |
| EP1701514B1 (en) | Notification processor that notifies information and position information manager | |
| JP6842207B1 (ja) | 店舗検索装置及び店舗検索アプリケーションプログラム | |
| JP6442587B1 (ja) | 情報管理システム、情報管理方法及びプログラム | |
| JP2013196223A (ja) | サーバ、機器制御プログラム及び機器制御方法 | |
| JP2019082925A (ja) | 電子ファイル共有システム、情報処理装置、情報処理装置の制御方法、およびプログラム | |
| JP2005190063A (ja) | スケジュール調整支援システム | |
| JP2001119761A (ja) | 情報提供システム | |
| JP2009088995A (ja) | プレゼンスシステム、プレゼンスサーバ及びプレゼンス管理方法 | |
| JP5380346B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
| KR20000037198A (ko) | 클라이언트-서버 환경에서의 전자지도 수정방법 | |
| KR101935686B1 (ko) | 다수의 gis 서비스 프로바이더를 위한 지도 컨텐츠 생성 시스템 | |
| JP7208690B2 (ja) | 情報処理装置、情報処理方法、および空席管理システム | |
| JP4371838B2 (ja) | 情報通知装置 | |
| JP7113411B1 (ja) | 情報処理装置、情報処理方法、および空席管理システム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081111 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090113 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20091020 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091020 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121030 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4397375 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121030 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131030 Year of fee payment: 4 |
|
| LAPS | Cancellation because of no payment of annual fees |