(57)【特許請求の範囲】
【請求項１】
一以上のクライアント装置から送信されるリクエストを、複数のサーバに振り分ける振り分け処理装置を備える計算機システムにおける振り分け処理装置であって、
前記複数のサーバは、要求された地図データを応答する地図アプリケーションサーバであり、
プロセッサと、前記プロセッサに接続されるメモリとを備え、
前記メモリは、前記各サーバが地図データ上で担当する地域の代表位置を示す第１の位置情報を格納し、
前記リクエストは、地図データを要求し、当該リクエストを前記複数のサーバに振り分けるために用いられる第２の位置情報を含み、
前記プロセッサは、
前記クライアント装置から前記リクエストを受信した場合、前記受信したリクエストに含まれる第２の位置情報を抽出し、
前記第１の位置情報と前記抽出された第２の位置情報とに基づいて、前記第１の位置情報に示された代表位置と、前記第２の位置情報に示された位置との距離である第１の距離を算出し、
前記算出された第１の距離が最小となる前記サーバを、前記受信したリクエストの振り分け先サーバに決定し、
前記決定された振り分け先サーバに前記受信したリクエストを送信することを特徴とする振り分け処理装置。
【請求項２】
前記メモリは、前記リクエストが振り分けられた結果を示す履歴を格納し、
前記プロセッサは、
前記履歴を参照して、前記各サーバに振り分けられたリクエスト数を算出し、
前記算出されたリクエスト数に基づいて、前記各サーバの負荷を算出し、
前記算出された各サーバの負荷に基づいて、前記第１の位置情報を変更することを特徴とする請求項１に記載の振り分け処理装置。
【請求項３】
前記メモリは、前記サーバが処理を担当する地域の範囲を調整するための重みを格納し、
前記プロセッサは、
前記第１の位置情報に示された位置と、前記第２の位置情報に示された位置との距離を算出する場合に、前記算出された第１の距離に前記重みを乗算して第２の距離を算出し、
前記算出された第２の距離が最小となる前記サーバを、前記振り分け先サーバに決定することを特徴とする請求項１に記載の振り分け処理装置。
【請求項４】
前記メモリは、前記リクエストが振り分けられた結果を示す履歴を格納し、
前記プロセッサは、
前記履歴を参照して、前記各サーバに振り分けられたリクエスト数を算出し、
前記算出されたリクエスト数に基づいて、前記各々のサーバの負荷を算出し、
前記算出された各サーバの負荷に基づいて、前記重みを変更することを特徴とする請求項３に記載の振り分け処理装置。
【請求項５】
前記メモリは、時間範囲ごとに異なる複数の前記第１の位置情報を格納し、
前記プロセッサは、
現在の時間を示す時間情報を取得し、
前記取得された時間情報に示された時間の前記第１の位置情報を特定し、
前記特定された第１の位置情報に基づいて、前記振り分け先サーバを決定することを特徴とする請求項１に記載の振り分け処理装置。
【請求項６】
前記計算機システムに、新たに前記サーバが追加された場合、前記新たなサーバが追加される前に前記計算機システムに備わる前記サーバの前記第１の位置情報に基づいて、前記新たに追加されたサーバの前記第１の位置情報を決定し、前記決定された第１の位置情報を前記メモリに格納し、
前記計算機システムから前記サーバが削除される場合、前記削除されるサーバの第１の位置情報を前記メモリから削除することを特徴とする請求項１に記載の振り分け処理装置。
【請求項７】
前記第２の位置情報は、前記クライアント装置が配置された位置を示す情報であることを特徴とする請求項１に記載の振り分け処理装置。
【請求項８】
前記第２の位置情報は、前記クライアント装置を操作するユーザが所望する地域を示す情報であることを特徴とする請求項１に記載の振り分け処理装置。
【請求項９】
複数のサーバと、一以上のクライアント装置から送信されるリクエストを前記複数のサーバに振り分ける振り分け処理装置とを備える計算機システムであって、
前記複数のサーバは、要求された地図データを応答する地図アプリケーションサーバであり、
前記振り分け処理装置は、第１のプロセッサと、前記第１のプロセッサに接続される第１のメモリとを備え、
前記サーバは、第２のプロセッサと、前記第２のプロセッサに接続される第２のメモリとを備え、
前記第１のメモリは、前記各サーバが地図データ上で担当する地域の代表位置を示す第１の位置情報を格納し、
前記リクエストは、地図データを要求し、当該リクエストを前記複数のサーバに振り分けるために用いられる第２の位置情報を含み、
前記振り分け処理装置は、
前記クライアント装置から前記リクエストを受信した場合、前記受信したリクエストに含まれる第２の位置情報を抽出し、
前記第１の位置情報と前記抽出された第２の位置情報とに基づいて、前記第１の位置情
報に示された代表位置と、前記第２の位置情報に示された位置との距離である第１の距離を算出し、
前記算出された第１の距離が最小となる前記サーバを、前記受信したリクエストの振り分け先サーバに決定し、
前記決定された振り分け先サーバに前記受信したリクエストを送信することを特徴とする計算機システム。
【請求項１０】
前記第１のメモリは、前記リクエストが振り分けられた結果を示す履歴を格納し、
前記振り分け処理装置は、
前記履歴を参照して、前記各サーバに振り分けられたリクエスト数を算出し、
前記算出されたリクエスト数に基づいて、前記各サーバの負荷を算出し、
前記算出された各サーバの負荷に基づいて、前記第１の位置情報を変更することを特徴とする請求項９に記載の計算機システム。
【請求項１１】
前記第１のメモリは、前記サーバが処理を担当する地域の範囲を調整するための重みを格納し、
前記振り分け処理装置は、
前記第１の位置情報に示された位置と、前記第２の位置情報に示された位置との距離を算出する場合に、前記算出された第１の距離に前記重みを乗算して第２の距離を算出し、
前記算出された第２の距離が最小となる前記サーバを、前記振り分け先サーバに決定することを特徴とする請求項９に記載の計算機システム。
【請求項１２】
前記第１のメモリは、前記リクエストが振り分けられた結果を示す履歴を格納し、
前記振り分け処理装置は、
前記履歴を参照して、前記各サーバに振り分けられたリクエスト数を算出し、
前記算出されたリクエスト数に基づいて、前記各サーバの負荷を算出し、
前記算出された各サーバの負荷に基づいて、前記重みを変更することを特徴とする請求項１１に記載の計算機システム。
【請求項１３】
前記第１のメモリは、時間範囲ごとに異なる複数の前記第１の位置情報を格納し、
前記振り分け処理装置は、
現在の時間を示す時間情報を取得し、
前記取得された時間情報に示された時間の前記第１の位置情報を特定し、
前記特定された第１の位置情報に基づいて、前記振り分け先サーバを決定することを特徴とする請求項９に記載の計算機システム。
【請求項１４】
前記計算機システムは、前記計算機システムへの前記サーバの追加及び削除を管理する管理装置を備え、
前記計算機システムに新たに前記サーバが追加された場合、前記管理装置は、前記新たなサーバが追加される前に前記計算機システムに備わる前記サーバの前記第１の位置情報に基づいて、前記新たに追加されたサーバの前記第１の位置情報を決定し、
前記決定された第１の位置情報を前記振り分け処理装置に送信し、
前記振り分け処理装置は、前記管理装置によって決定された第１の位置情報を前記第１のメモリに格納し、
前記計算機システムから前記サーバが削除される場合、前記管理装置は、前記削除されるサーバの第１の位置情報を前記第１のメモリから削除するための命令を前記振り分け処理装置に送信し、
前記振り分け処理装置は、前記受信した命令に基づいて、前記第１のメモリから前記削除されるサーバの第１の位置情報を削除することを特徴とする請求項９に記載の計算機システム。
【請求項１５】
前記第２の位置情報は、前記クライアント装置が配置された位置を示す情報であることを特徴とする請求項９に記載の計算機システム。
【請求項１６】
前記第２の位置情報は、前記クライアント装置を操作するユーザが所望する地域を示す情報であることを特徴とする請求項９に記載の計算機システム。
【請求項１７】
複数のサーバと、一以上のクライアント装置から送信される地図データのリクエストを前記複数のサーバに振り分ける振り分け処理装置とを備える計算機システムにおけるリクエスト振り分け方法であって、
前記振り分け処理装置は、第１のプロセッサと、前記第１のプロセッサに接続される第１のメモリとを備え、
前記複数のサーバは、要求された地図データを応答する地図アプリケーションサーバであり、
第２のプロセッサと、前記第２のプロセッサに接続される第２のメモリとを備え、
前記第１のメモリは、前記各サーバが地図データ上で担当する地域の代表位置を示す第１の位置情報を格納し、
前記リクエストは、当該リクエストを前記複数のサーバに振り分けるために用いられる第２の位置情報を含み、
前記方法は、
前記振り分け処理装置が、前記クライアント装置から前記リクエストを受信した場合、前記受信したリクエストに含まれる第２の位置情報を抽出するステップと、
前記振り分け処理装置が、前記第１の位置情報と前記抽出された第２の位置情報とに基づいて、前記第１の位置情報に示された代表位置と、前記第２の位置情報に示された位置との距離である第１の距離を算出するステップと、
前記振り分け処理装置が、前記算出された第１の距離が最小となる前記を、前記受信したリクエストの振り分け先に決定するステップと、
前記振り分け処理装置が、前記決定された振り分け先に前記受信したリクエストを送信するステップと、を含むことを特徴とするリクエスト振り分け方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ネットワークによって接続された一以上のコンピュータと一以上のサーバによって構成された計算機システムにおいて、コンピュータが実行するクライアントプログラムから送信されるリクエストの振り分け先のサーバを特定する振り分け方法に関する。
【０００２】
特に、地図やＰＯＩ情報等の地域情報を扱う計算機システムにおいて、ユーザに情報を提供するサーバが地域情報提供サーバから取得した地域情報をキャッシュするときに、キャッシュが効果的に利用されるように、振り分け先のサーバを特定する方法に関する。
【背景技術】
【０００３】
複数のクライアント端末に対して、地図やＰＯＩ（Ｐｏｉｎｔ  Ｏｆ  Ｉｎｔｅｒｅｓｔ：レストラン及びガソリンスタンド等を表す情報）情報等の地域情報を用いたアプリケーション（以下、地図アプリケーションともいう）を提供するシステムがある。地図アプリケーションの一例として、Ｗｅｂを介して世界の地図を提供するＧｏｏｇｌｅ（登録商標）マップが広く知られている。
【０００４】
Ｗｅｂシステムに代表される計算機システムでは、性能を向上するために、サーバを多重化し、負荷分散装置がクライアントからのリクエストを振り分ける方法が適用される。負荷分散方法として、リクエストが到来するたびに順番に振り分けるラウンドロビン方式、又はレスポンスタイムの長さに応じて振り分けるサーバを決定する方法等がある（例えば、特許文献１参照）。
【０００５】
特許文献１には、地図アプリケーションを提供するシステムが地図データ配信サーバと地図データ合成サーバから構成され、地図データ合成サーバがクライアント端末からの地図要求を受け付けると、地図データ配信サーバから必要な地図データを取得し、クライアント端末が要求する地図を合成して返すという処理を行うときに、地図データ合成サーバが地図データ配信サーバから取得した地図データをキャッシュしておき、再度クライアント端末から同様のリクエストが発生したときに地図データ配信サーバを利用せずにキャッシュの地図データを利用することで処理負荷を軽減する方法を開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−２８８００４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般的にキャッシュの容量は全地図データの大きさに比べて少ないため、サーバはキャッシュ容量に余裕がなくなると利用頻度の少ないデータを削除する等して十分な容量を確保する。そのため、全国の地図データが偏りなく利用されるような地図アプリケーションではキャッシュ内に蓄積された地図データにヒットする確率が小さくなる。
【０００８】
特許文献１に記載の発明を組み合わせて地図データ合成サーバを多重化した場合、地図データ合成サーバの数だけキャッシュ容量は増加するが、キャッシュがデータを蓄える条件は同一であるため、全国の地図データが偏りなく利用されるような場合におけるキャッシュ率向上はできない。
【課題を解決するための手段】
【０００９】
本発明の代表的な一例を示せば以下の通りである。すなわち、一以上のクライアント装置から送信されるリクエストを複数のサーバに振り分ける振り分け処理装置を備える計算機システムにおける振り分け処理装置であって、前記複数のサーバは、要求された地図データを応答する地図アプリケーションサーバであり、プロセッサと、前記プロセッサに接続されるメモリとを備え、前記メモリは、前記各サーバが地図データ上で担当する代表位置を示す第１の位置情報を格納し、前記リクエストは、地図データを要求し、当該リクエストを前記複数のサーバに振り分けるために用いられる第２の位置情報を含み、前記プロセッサは、前記クライアント装置から前記リクエストを受信した場合、前記受信したリクエストに含まれる第２の位置情報を抽出し、前記第１の位置情報と前記抽出された第２の位置情報とに基づいて、前記第１の位置情報に示された代表位置と、前記第２の位置情報に示された位置との距離である第１の距離を算出し、前記算出された第１の距離が最小となる前記サーバを、前記受信したリクエストの振り分け先サーバに決定し、前記決定された振り分け先サーバに前記受信したリクエストを送信することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、サーバごとに設定された第１の位置情報付近の地域に関する情報がサーバのメモリに蓄積される。したがって、特定の地域に対するリクエストは、当該地域を担当するサーバに割り振られるため、サーバが格納する情報へのヒット率が高まり処理性能を向上することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態の計算機システムの構成例を示すブロック図である。
【図２】本発明の第１の実施形態の周辺ＰＯＩ検索アプリケーションを実行した場合に表示部に表示される処理画像の一例を示す説明図である。
【図３】本発明の第１の実施形態の地図アプリケーションサーバ管理テーブルの一例を示す説明図である。
【図４】本発明の第１の実施形態の地図アプリケーションサーバが備える地図データキャッシュの一例を示す説明図である。
【図５】本発明の第１の実施形態の地図アプリケーションサーバが備えるＰＯＩデータキャッシュの一例を示す説明図である。
【図６】本発明の第１の実施形態の地図アプリケーションが実行された場合の各装置の処理を説明するシーケンス図である。
【図７】本発明の第１の実施形態の地図アプリケーションサーバが実行する地図取得手段の処理の詳細を説明するフローチャートである。
【図８】本発明の第１の実施形態における端末装置の位置情報と地図アプリケーションサーバの代表位置情報との距離の算出式を示す図である。
【図９】本発明の第３の実施形態の地図アプリケーションサーバ管理テーブルの一例を示す説明図である。
【図１０】本発明の第３の実施形態における端末装置の位置情報と地図アプリケーションサーバの代表位置情報との距離の算出式を示す図である。
【図１１】本発明の第４の実施形態の計算機システムの構成例を示すブロック図である。
【図１２】本発明の第４の実施形態の振り分け履歴テーブルの一例を示す説明図である。
【図１３】本発明の第４の実施形態の地図アプリケーションが実行された場合の各装置の処理を説明するシーケンス図である。
【図１４】本発明の第４の実施形態の振り分け処理装置が実行するテーブル更新手段の処理内容の一例を示すフローチャートである。
【図１５】本発明の第４の実施形態の代表位置の算出式を示す図である。
【図１６】本発明の第５の実施形態の振り分け処理装置が実行するテーブル更新手段の処理内容の一例を示すフローチャートである。
【図１７】本発明の第５の実施形態の重みの算出式を示す図である。
【図１８】本発明の第６の実施形態の地図アプリケーションサーバ管理テーブルの一例を示す説明図である。
【図１９】本発明の第７の実施形態の計算機システムの構成例を示すブロック図である。
【発明を実施するための形態】
【００１２】
［第１の実施形態］
地図アプリケーションを提供する計算機システムにおいて、アプリケーションの性能を向上するために、キャッシュを効果的に利用可能にする方法を示す。
【００１３】
図１は、本発明の第１の実施形態の計算機システムの構成例を示すブロック図である。
【００１４】
本発明の第１の実施形態の計算機システムは、端末装置１１０−１〜１１０−ｍ、振り分け処理装置１２０、地図アプリケーションサーバ１３０−１〜１３０−ｎ、地図配信サーバ１５０、及びＰＯＩ配信サーバ１６０を備え、ネットワーク１７０を介して互いに接続される。
【００１５】
なお、複数のネットワークを介して互いに接続してもよい。
【００１６】
以下、端末装置１１０−１〜１１０−ｍを区別しない場合、端末装置１１０と記載し、また、地図アプリケーションサーバ１３０−１〜１３０−ｎを区別しない場合、地図アプリケーションサーバ１３０と記載する。
【００１７】
端末装置１１０は、地図アプリケーションを利用するユーザが操作する端末装置である。端末装置１１０は、ＣＰＵ１１２、メモリ１１６、表示部１１３、ＨＤＤ１１４、通信部１１１及び入力部１１５を備える。
【００１８】
ＣＰＵ１１２は、メモリ１１６上に展開されたプログラムを実行する。
【００１９】
メモリ１１６は、ＣＰＵ１１２によって実行されるプログラム及び処理に必要となる情報を格納する。メモリ１１６は、クライアントプログラム１１７及び位置情報取得手段１１８を格納する。
【００２０】
クライアントプログラム１１７は、地図アプリケーションを利用するためのプログラムである。なお、クライアントプログラム１１７は、ＨＤＤ１１４に格納されてもよく、地図アプリケーションを利用するときに、メモリ１１６に読み出されＣＰＵ１１２によって実行される。
【００２１】
クライアントプログラム１１７を実行する端末装置１１０は、表示部１１３を用いてユーザに処理結果を示し、入力部１１５を用いてユーザからの入力を受け付ける。Ｗｅｂシステムの場合、クライアントプログラム１１７として、Ｗｅｂブラウザを用いることが考えられる。
【００２２】
位置情報取得手段１１８は、端末装置１１０が設定されている場所を特定するための手段である。位置情報取得手段１１８は、一つのプログラムで実現してもよいし、複数のプログラムで実現してもよい。
【００２３】
位置情報の取得方法としては、予めＨＤＤ１１４に格納された位置情報を読み出す方法、又は、ＧＰＳデバイス等を利用して現在場所を逐次取得する方法が考えられる。本実施形態では、位置情報として緯度及び経度が用いられる場合について説明する。
【００２４】
ＨＤＤ１１４は、端末装置１１０が備える機能を実現するためのプログラム及び情報を格納する。なお、端末装置１１０は、ＨＤＤ１１４以外の記憶媒体を備えていてもよい。
【００２５】
通信部１１１は、ネットワーク１７０を介して他の装置と通信するための装置である。表示部１１３は、ユーザに処理結果等を表示する装置である。表示部１１３は、例えば、ディスプレイ等が考えられる。入力部１１５は、ユーザからの入力を受け付けるための装置である。入力部１１５は、例えば、キーボード等が考えられる。
【００２６】
振り分け処理装置１２０は、端末装置１１０が実行するクライアントプログラム１１７によって送信されたリクエストを受信し、当該リクエストを適切な地図アプリケーションサーバ１３０に振り分ける。振り分け処理装置１２０は、ＣＰＵ１２２、メモリ１２６、表示部１２３、ＨＤＤ１２４、通信部１２１及び入力部１２５を備える。
【００２７】
ＣＰＵ１２２は、メモリ１２６上に展開されたプログラムを実行する。
【００２８】
メモリ１２６は、ＣＰＵ１２２によって実行されるプログラム及び処理に必要となる情報を格納する。メモリ１２６は、距離最短サーバ検索手段１２７及び地図アプリケーションサーバ管理テーブル１２８を格納する。
【００２９】
距離最短サーバ検索手段１２７は、受信したリクエストの送信元の端末装置１１０から最短の距離にある地図アプリケーションサーバ１３０を検索し、当該地図アプリケーションサーバ１３０に受信したリクエストを振り分けるための手段である。距離最短サーバ検索手段１２７は、一つのプログラムで実現してもよいし、複数のプログラムで実現してもよい。
【００３０】
地図アプリケーションサーバ管理テーブル１２８は、地図アプリケーションサーバ１３０に関する位置情報を格納する。地図アプリケーションサーバ管理テーブル１２８の詳細については、図３を用いて後述する。
【００３１】
ＨＤＤ１２４は、振り分け処理装置１２０が備える機能を実現するためのプログラム及び情報を格納する。なお、振り分け処理装置１２０は、ＨＤＤ１２４以外の記憶媒体を備えていてもよい。
【００３２】
通信部１２１は、ネットワーク１７０を介して他の装置と通信するための装置である。表示部１２３は、振り分け処理装置１２０の操作者に処理結果等を表示する装置である。表示部１２３は、例えば、ディスプレイ等が考えられる。入力部１２５は、振り分け処理装置１２０の操作者からの入力を受け付けるための装置である。入力部１２５は、例えば、キーボード等が考えられる。
【００３３】
地図アプリケーションサーバ１３０は、地図配信サーバ１５０、ＰＯＩ配信サーバ１６０から必要なデータを取得して、地図アプリケーションが実行される端末装置１１０を操作する提供する。地図アプリケーションの例については、図２を用いて後述する。
【００３４】
地図アプリケーションサーバ１３０は、ＣＰＵ１３２、メモリ１３６、表示部１３３、ＨＤＤ１３４、通信部１３１及び入力部１３５を備える。
【００３５】
ＣＰＵ１３２は、メモリ１３６上に展開されたプログラムを実行する。
【００３６】
メモリ１３６は、ＣＰＵ１３２によって実行されるプログラム及び処理に必要となる情報を格納する。メモリ１３６は、メッシュコード取得手段１３７、地図取得手段１３８、ＰＯＩ取得手段１３９、画面構成手段１４０、地図データキャッシュ１４１、及びＰＯＩデータキャッシュ１４２を格納する。
【００３７】
メッシュコード取得手段１３７は、メッシュコードを取得するための手段である。メッシュコード取得手段１３７は、一つのプログラムで実現してもよいし、複数のプログラムで実現してもよい。
【００３８】
ここで、メッシュとは全国の地域を網目上に分けたものであり、メッシュコード４０１とは一つのメッシュを一意に識別するための識別子である。すなわち、メッシュコード４０１は、各地域を識別するための識別子である。本実施形態では地域を識別するためにメッシュコードを用いるが、他の手段を用いてもよい。
【００３９】
地図取得手段１３８は、地図配信サーバ１５０から地図データを取得するための手段である。地図取得手段１３８は、一つのプログラムで実現してもよいし、複数のプログラムで実現してもよい。
【００４０】
ＰＯＩ取得手段１３９は、ＰＯＩ配信サーバ１６０からＰＯＩデータを取得するための手段である。ＰＯＩ取得手段１３９は、一つのプログラムで実現してもよいし、複数のプログラムで実現してもよい。
【００４１】
ここで、ＰＯＩは、Ｐｏｉｎｔ  Ｏｆ  Ｉｎｔｅｒｅｓｔの略であり、レストランやガソリンスタンド等のユーザが関心を持つことが予想される地点を表す。
【００４２】
画面構成手段１４０は、地図データ及びＰＯＩデータを組み合わせて端末装置１１０の表示部１１３に表示する画面を構成するための手段である。画面構成手段１４０は、一つのプログラムで実現してもよいし、複数のプログラムで実現してもよい。
【００４３】
地図データキャッシュ１４１は、地図配信サーバ１５０から取得した地図データを格納するキャッシュである。なお、地図データキャッシュ１４１は、実行されるアプリケーションに必要なデータのみを格納してもよいし、地図データの全てを格納してもよい。
【００４４】
ＰＯＩデータキャッシュ１４２は、ＰＯＩ配信サーバ１６０から取得したＰＯＩデータを格納するキャッシュである。なお、ＰＯＩデータキャッシュ１４２は、実行されるアプリケーションに必要なデータのみを格納してもよいし、ＰＯＩデータの全てを格納してもよい。
【００４５】
ＨＤＤ１３４は、地図アプリケーションサーバ１３０が備える機能を実現するためのプログラム及び情報を格納する。なお、地図アプリケーションサーバ１３０は、ＨＤＤ１３４以外の記憶媒体を備えていてもよい。
【００４６】
通信部１３１は、ネットワーク１７０を介して他の装置と通信するための装置である。表示部１３３は、地図アプリケーションサーバ１３０の操作者に処理結果等を表示する装置である。表示部１２３は、例えば、ディスプレイ等が考えられる。入力部１３５は、地図アプリケーションサーバ１３０の操作者からの入力を受け付けるための装置である。入力部１３５は、例えば、キーボード等が考えられる。
【００４７】
本実施形態では、各地図アプリケーションサーバ１３０は、各々担当する地域を示す位置情報が設定される。振り分け処理装置１２０は、各々の地図アプリケーションサーバ１３０に設定された位置情報に基づいて、各地図アプリケーションサーバ１３０に端末装置１１０から送信されたリクエストを適切に振り分ける。
【００４８】
地図配信サーバ１５０は、地図アプリケーションサーバ１３０から送信されるリクエストに応じて、地域情報である地図データを地図アプリケーションサーバ１３０に返信する。地図配信サーバ１５０は、ＣＰＵ（図示省略）、メモリ（図示省略）、及び記憶媒体（図示省略）を備える。
【００４９】
ＣＰＵ（図示省略）は、メモリ（図示省略）上に展開されたプログラムを実行する。メモリ（図示省略）は、ＣＰＵ（図示省略）によって実行されるプログラム及び処理に必要となる情報を格納する。記憶媒体（図示省略）は、地図配信サーバ１５０が備える機能を実現するためのプログラム及び情報を格納する。記憶媒体（図示省略）は、例えば、地図データを格納する。
【００５０】
なお、図１に示す例では、地図配信サーバ１５０は一つのみであるが、複数あってもよい。
【００５１】
ＰＯＩ配信サーバ１６０は、地図アプリケーションサーバ１３０から送信されるリクエストに応じて地域情報であるＰＯＩデータを地図アプリケーションサーバ１３０に返信する。ＰＯＩ配信サーバ１６０は、ＣＰＵ（図示省略）、メモリ（図示省略）、及び記憶媒体（図示省略）を備える。
【００５２】
ＣＰＵ（図示省略）は、メモリ（図示省略）上に展開されたプログラムを実行する。メモリ（図示省略）は、ＣＰＵ（図示省略）によって実行されるプログラム及び処理に必要となる情報を格納する。記憶媒体（図示省略）は、ＰＯＩ配信サーバ１６０が備える機能を実現するためのプログラム及び情報を格納する。記憶媒体（図示省略）は、例えば、ＰＯＩデータを格納する。
【００５３】
なお、図１に示す例では、ＰＯＩ配信サーバ１６０は一つのみであるが、複数あってもよい。
【００５４】
各装置を配置方法としては、振り分け処理装置１２０、地図アプリケーションサーバ１３０、地図配信サーバ１５０、及びＰＯＩ配信サーバ１６０はデータセンタ内に配置し、端末装置１１０は、全国の各地に配置する方法が考えられる。例えば、店舗等に固定して端末装置１１０を配置する方法、又は携帯電話若しくはカーナビ等の移動端末として端末装置１１０を実現する方法が考えられる。
【００５５】
また、各処理装置及びサーバは各々一台の計算機として実現してもよいし、仮想化ソフトウェアを用いて一つのコンピュータ内に複数の処理装置及びサーバを実現してもよい。
【００５６】
図２は、本発明の第１の実施形態の周辺ＰＯＩ検索アプリケーションを実行した場合に表示部１１３に表示される処理画像の一例を示す説明図である。
【００５７】
周辺ＰＯＩ検索アプリケーションは、地図アプリケーションに含まれる一つのアプリケーションである。周辺ＰＯＩ検索アプリケーションが実行されることによって、端末装置１１０の周辺に存在するＰＯＩが検索され、表示部１１３に、ＰＯＩ一覧と地図上にＰＯＩの位置が表示される。
【００５８】
端末装置１１０を操作するユーザは、表示部１１３に表示される検索条件入力画面２１０を用いてＰＯＩの検索条件を設定する。
【００５９】
図２に示すように、検索条件入力画面２１０には、検索条件として、範囲、カテゴリ、サブカテゴリ、日時及び時間が表示される。また、検索条件入力画面２１０には、検索ボタン２１１が表示される。検索ボタン２１１を操作することによって、周辺ＰＯＩ検索アプリケーションは検索条件に基づいて検索対象を検索し、検索結果画面２２０を出力する。
【００６０】
ここで、範囲は、端末装置１１０を基点とした検索範囲を指定するための条件である。カテゴリは、検索範囲上の検索対象を指定する条件である。サブカテゴリは、検索対象をさらに詳細に指定する条件である。日時は、検索対象の営業日等を指定する条件である。時間は、対象検索の営業時間等を指定する条件である。
【００６１】
図２に示す例では、範囲に「５Ｋｍ四方」、カテゴリに「飲食店」、サブカテゴリに「イタリアン」、日時に「今日」、及び時間に「１２：００−１４：００」が設定されている。
【００６２】
前述した検索条件に基づいて周辺ＰＯＩ検索アプリケーションが実行された場合、端末装置１１０の現在の位置を中心に５ｋｍ四方の範囲にある、今日の１２：００−１４：００の間に営業しているイタリア料理の飲食店が検索される。
【００６３】
検索結果画面２２０は、表示部１１３に表示される周辺ＰＯＩ検索アプリケーションの実行結果である。
【００６４】
図２に示す例では、検索された飲食店のＰＯＩ一覧２２２が検索結果画面２２０の左側に表示され、検索結果画面２２０の右側に地図２２３上で検索された飲食店の位置が表示される。戻るボタン２２１を操作すると、検索条件入力画面２１０に戻り、再度検索条件を入力可能となる。
【００６５】
図３は、本発明の第１の実施形態の地図アプリケーションサーバ管理テーブル１２８の一例を示す説明図である。
【００６６】
地図アプリケーションサーバ管理テーブル１２８は、地図アプリケーションサーバＩＰ３０１、及び代表位置情報３０２を含む。
【００６７】
地図アプリケーションサーバＩＰ３０１は、地図アプリケーションサーバ１３０に割り当てられたＩＰアドレスである。代表位置情報３０２は、地図アプリケーションサーバ１３０が担当する場所を示す位置情報である。なお、各地図アプリケーションサーバ１３０は、予め担当する場所が設定される。
【００６８】
地図アプリケーションサーバ管理テーブル１２８は、ＨＤＤ１２４に格納され、ＣＰＵ１２２によってメモリ１２６に読み出されて用いられる。振り分け処理装置１２０は、地図アプリケーションサーバ管理テーブル１２８を参照することによって、地図アプリケーションサーバ１３０が担当する地域を把握することができる。
【００６９】
図４は、本発明の第１の実施形態の地図アプリケーションサーバ１３０が備える地図データキャッシュ１４１の一例を示す説明図である。
【００７０】
地図データキャッシュ１４１は、メッシュコード４０１、地図画像データ４０２、及び地図名称データ４０３を格納する。
【００７１】
メッシュコード４０１は、各地域を識別するための識別子である。
【００７２】
地図画像データ４０２は、地図の画像データである。
【００７３】
地図名称データ４０３は、地図上に表示する名称データである。一つのメッシュコード４０１に対して複数の名称データを含めることができる。地図名称データ４０３は、地図上に表示する名称であるｎａｍｅ、及び地図上で表示する位置を表す座標（ｘ，ｙ）から構成される。
【００７４】
地図データキャッシュ１４１は、地図取得手段１３８が実行されることによって地図配信サーバ１５０に送信されたリクエストの処理結果として取得される地図データを格納する。これによって、地図アプリケーションサーバ１３０は、地図データキャッシュ１４１を用いることによって、同一の検索範囲であるリクエストを地図配信サーバ１５０に送信しなくともよい。
【００７５】
したがって、地図配信サーバ１５０へのリクエスト送信、地図配信サーバ１５０からの応答、及び地図配信サーバ１５０が実行する処理に要する時間を削除することができる。すなわち、地図アプリケーションサーバ１３０は、地図配信サーバ１５０を介すことなく処理を実行できるため、処理性能の向上を実現できる。
【００７６】
なお、地図画像データ４０２は、ポリゴンデータであってもよい。また、地図データキャッシュ１４１は、地図画像データ４０２と地図名称データ４０３とを一つのデータとして格納してもよい。また、地図データキャッシュ１４１は、実行されるアプリケーションに応じて格納するデータを変更することができる。
【００７７】
図５は、本発明の第１の実施形態の地図アプリケーションサーバ１３０が備えるＰＯＩデータキャッシュ１４２の一例を示す説明図である。
【００７８】
ＰＯＩデータキャッシュ１４２は、メッシュコード５０１、検索条件５０２、及びＰＯＩデータ５０３を格納する。
【００７９】
メッシュコード５０１は、メッシュコード４０１と同一のものである。
【００８０】
検索条件５０２は、ＰＯＩを検索するための条件である。例えば、図２に示す検索条件入力画面２１０においてユーザが入力するデータに対応する。
【００８１】
ＰＯＩデータ５０３は、メッシュコード５０１に対応するメッシュの範囲に含まれ、検索条件５０２に一致するＰＯＩデータである。一つのメッシュコード５０１に対して複数のＰＯＩデータを含めることができる。ＰＯＩデータ５０４は、レストラン等の名称を表すｎａｍｅ、地図上に表示する位置を表す座標（ｘ，ｙ）、定休日を表すｈｏｌｉｄａｙ、開始時間ｏｐｅｎ、及び終了時間ｃｌｏｓｅから構成される。
【００８２】
ＰＯＩデータキャッシュ１４２は、ＰＯＩ取得手段１３９が実行されることによってＰＯＩ配信サーバ１６０に送信されたリクエストの処理結果として取得されるＰＯＩデータを格納する。これによって、地図アプリケーションサーバ１３０は、ＰＯＩデータキャッシュ１４２を用いることによって、同一の検索範囲であるリクエストをＰＯＩ配信サーバ１６０に送信しなくともよい。
【００８３】
したがって、ＰＯＩ配信サーバ１６０へのリクエスト送信、ＰＯＩ配信サーバ１６０からの応答、及びＰＯＩ配信サーバ１６０が実行する処理に要する時間を削除することができる。すなわち、地図アプリケーションサーバ１３０は、ＰＯＩ配信サーバ１６０を介すことなく処理を実行できるため、処理性能の向上を実現できる。
【００８４】
地図アプリケーションサーバ１３０が与えられた検索キーに基づいて所定の値を迅速に取得するため、地図データキャッシュ１４１及びＰＯＩデータキャッシュ１４２は、一般的にハッシュテーブルを用いてメモリ１３６上に実現されるが、他の方法を用いても実現されてもよい。
【００８５】
ハッシュテーブルを用いる場合、地図データキャッシュ１４１では、検索キーとしてメッシュコード４０１が用いられ、値として地図画像データ４０２及び地図名称データ４０３が出力される。また、ＰＯＩデータキャッシュ１４２では、検索キーとしてメッシュコード５０１と検索条件５０２との組み合わせが用いられ、値としてＰＯＩデータ５０３が出力される。
【００８６】
図６は、本発明の第１の実施形態の地図アプリケーションが実行された場合の各装置の処理を説明するシーケンス図である。
【００８７】
まず、端末装置１１０がＰＯＩ検索リクエストを振り分け処理装置１２０に送信する（ステップ６０１）。なお、ＰＯＩ検索リクエストには、ユーザが指定した検索条件及び位置情報取得手段１１８によって取得された端末装置１１０の位置情報が含まれる。
【００８８】
ＰＯＩ検索リクエストを受信した振り分け処理装置１２０は、距離最短サーバ検索手段１２７を実行し、受信したＰＯＩ検索リクエストを送信する地図アプリケーションサーバ１３０を決定する（ステップ６０２）。受信したＰＯＩ検索リクエストを送信する地図アプリケーションサーバ１３０の決定方法については、後述する。
【００８９】
振り分け処理装置１２０は、決定された地図アプリケーションサーバ１３０にＰＯＩ検索リクエストを送信する（ステップ６０２）。なお、振り分け処理装置１２０が送信するＰＯＩ検索リクエストは、端末装置１１０から送信されるＰＯＩ検索リクエストと同一のものである。
【００９０】
ＰＯＩ検索リクエストを受信した地図アプリケーションサーバ１３０は、メッシュコード取得手段１３７を実行し、ＰＯＩ検索リクエストに含まれる位置情報及び検索条件によって決定される検索範囲を含むメッシュのメッシュコードを取得する（ステップ６０４）。なお、メッシュコードは複数取得されてもよい。
【００９１】
メッシュコードの取得方法としては、振り分け処理装置１２０がＰＯＩ検索リクエストに含まれる位置情報から緯度及び経度の情報を抽出し、抽出された緯度及び経度を用いて所定の数式を算出することによってメッシュコードを取得する方法が考えられる。
【００９２】
地図アプリケーションサーバ１３０は、取得されたメッシュコードを用いて、地図取得手段１３８を実行して地図データを取得する。地図取得手段１３８では、以下で説明するような処理が実行される。
【００９３】
まず、地図取得手段１３８を実行する地図アプリケーションサーバ１３０は、地図データキャッシュ１４１を参照し、必要な地図データのメッシュコードと一致するエントリが格納されているか否かを判定する。
【００９４】
地図データキャッシュ１４１に、必要な地図データのメッシュコードと一致するエントリが格納されていると判定された場合、地図アプリケーションサーバ１３０は、当該エントリから地図データを取得する。
【００９５】
地図データキャッシュ１４１に、必要な地図データのメッシュコードと一致するエントリが格納されていないと判定された場合、地図アプリケーションサーバ１３０は、地図配信サーバ１５０に地図取得リクエスト６０５を送信し、地図配信サーバ１５０から地図データを取得する。なお、取得した地図データは地図データキャッシュ１４１に格納し、次回同じメッシュコードの地図データが要求されたときの負荷軽減を実現する。
【００９６】
以上が地図取得手段１３８において実行される処理の一例である。なお、地図取得手段１３８における処理の詳細については、図７を用いて後述する。
【００９７】
地図データを取得した地図アプリケーションサーバ１３０は、ＰＯＩ取得手段１３９を実行して、ＰＯＩ検索リクエストに含まれる検索条件と一致するＰＯＩデータを取得する。ＰＯＩ取得手段１３９では、以下で説明するような処理が実行される。
【００９８】
まず、ＰＯＩ取得手段１３９を実行する地図アプリケーションサーバ１３０は、ＰＯＩデータキャッシュ１４２を参照し、必要なＰＯＩデータのメッシュコード及び検索条件と一致するエントリが格納されているか否かを判定する。
【００９９】
ＰＯＩデータキャッシュ１４２に、必要なＰＯＩデータのメッシュコード及び検索条件と一致するエントリが格納されていると判定された場合、地図アプリケーションサーバ１３０は、当該エントリからＰＯＩデータを取得する。
【０１００】
ＰＯＩデータキャッシュ１４２に、必要なＰＯＩデータのメッシュコード及び検索条件と一致するエントリが格納されていないと判定された場合、地図アプリケーションサーバ１３０は、ＰＯＩ配信サーバ１６０にＰＯＩ取得リクエスト６０６を送信し、ＰＯＩ配信サーバ１６０からＰＯＩデータを取得する。なお、取得したＰＯＩデータはＰＯＩデータキャッシュ１４２に格納し、次回同じメッシュコードのＰＯＩデータが要求されたときの負荷軽減を実現する。
【０１０１】
以上がＰＯＩ取得手段１３９において実行される処理の一例である。
【０１０２】
次に、地図アプリケーションサーバ１３０は、画面構成手段１４０を実行し、取得された地図データ及びＰＯＩデータを組み合わせて検索結果（例えば、検索結果画面２２０）を表示するための情報を生成し（ステップ６０７）、生成された情報を端末装置１１０に送信する（ステップ６０８）。
【０１０３】
地図アプリケーションサーバ１３０が画面構成手段１４０を実行することによって生成された情報を受信した端末装置１１０は、当該受信した情報に基づいて、表示部６０５に検索結果を表示する（ステップ６０９）。
【０１０４】
図７は、本発明の第１の実施形態の地図アプリケーションサーバ１３０が実行する地図取得手段１３８の処理の詳細を説明するフローチャートである。
【０１０５】
ＣＰＵ１３２は、メモリ１３６上に地図取得手段１３８を読み出し、必要なメッシュ分のデータを取得するまで地図取得手段１３８を繰り返し実行する。ここで、必要なメッシュ分のデータを取得するとは、検索する範囲が複数のメッシュにまたがっている場合、各々のメッシュから必要な地図データを取得することを示す。
【０１０６】
最初に、地図アプリケーションサーバ１３０は、地図データキャッシュ１４１を参照し、地図取得リクエストに含まれるメッシュコードに対応する地図データの取得処理を実行する（ステップ７０１）。
【０１０７】
地図アプリケーションサーバ１３０は、取得処理を実行した結果、地図取得リクエストに含まれるメッシュコードに対応する地図データが取得できたか否かを判定する（ステップ７０２）。すなわち、地図データキャッシュ１４１にメッシュコードに対応する地図データが格納されているか否かが判定される。
【０１０８】
地図取得リクエストに含まれるメッシュコードに対応する地図データが取得できたと判定された場合、地図アプリケーションサーバ１３０は、ステップ７０７に進む。
【０１０９】
地図取得リクエストに含まれるメッシュコードに対応する地図データが取得できないと判定された場合、地図アプリケーションサーバ１３０は、地図配信サーバ１５０に地図取得リクエストを送信し、地図データを取得する（ステップ７０４）。
【０１１０】
次に、地図アプリケーションサーバ１３０は、取得された地図データを地図データキャッシュ１４１に格納し（ステップ７０４）、地図データキャッシュ１４１に格納されるデータ数が上限値以上であるか否かを判定する（ステップ７０５）。
【０１１１】
地図データキャッシュ１４１に格納されるデータ数が上限値より小さいと判定された場合、地図アプリケーションサーバ１３０は、ステップ７０７に進む。
【０１１２】
地図データキャッシュ１４１に格納されるデータ数が上限値以上であると判定された場合、地図アプリケーションサーバ１３０は、地図データキャッシュ１４１に格納されるデータを削除する（ステップ７０６）。
【０１１３】
地図データキャッシュ１４１に格納されるデータを削除する方法としては、例えば、地図データキャッシュ１４１に格納されるデータが利用された時刻を記録しておき、利用されてから最も時間が経過したデータを削除する方法が考えられる。また、地図データキャッシュ１４１に格納されるデータに有効期間を付加しておき、当該有効期間が経過したらデータを自動的に削除する方法も考えられる。
【０１１４】
地図アプリケーションサーバ１３０は、取得された地図データを、検索結果を出力するために用いる地図データとして確定する（ステップ７０７）。
【０１１５】
ステップ６０６において実行される処理の流れは、前述した図７において地図データキャッシュ１４１をＰＯＩデータキャッシュ１４２に、地図配信サーバ１５０をＰＯＩ配信サーバ１６０に変更した場合と同様であるため説明は省略する。
【０１１６】
次に、ステップ６０２において、振り分け処理装置１２０によって実行される距離最短サーバ検索手段１２７の処理について説明する。
【０１１７】
距離最短サーバ検索手段１２７を実行する振り分け処理装置１２０は、ステップ６０１において端末装置１１０から送信されたＰＯＩ検索リクエストを受信する。
【０１１８】
振り分け処理装置１２０は、受信したＰＯＩ検索リクエストに含まれる端末装置１１０と、地図アプリケーションサーバ１３０との距離を算出する。
【０１１９】
具体的には、受信したＰＯＩ検索リクエストに含まれる端末装置１１０の位置情報と、地図アプリケーションサーバ管理テーブル１２８に格納された各エントリの代表位置情報３０２とを用いて距離が算出される。
【０１２０】
図８は、本発明の第１の実施形態における端末装置１１０の位置情報と地図アプリケーションサーバ１３０の代表位置情報３０２との距離の算出式を示す図である。
【０１２１】
図８に示すように、端末装置１１０の位置と地図アプリケーションサーバ１３０の代表位置情報３０２に示された位置との距離は、代表位置情報３０２に示された経度と端末装置１１０が配置された位置の経度との差の自乗、及び、代表位置情報３０２に示された緯度と端末装置１１０が配置された位置の緯度との差の自乗の和の平方根で算出される。
【０１２２】
振り分け処理装置１２０は、受信したＰＯＩ検索リクエストに含まれる端末装置１１０と、地図アプリケーションサーバ１３０との距離が最も小さい地図アプリケーションサーバ１３０（以下、距離最短サーバともいう）を、ＰＯＩ検索リクエストを送信する地図アプリケーションサーバ１３０として決定する。
【０１２３】
振り分け処理装置１２０は、距離最短サーバに対応する地図アプリケーションサーバＩＰ３０１を取得する。
【０１２４】
そして、振り分け処理装置１２０は、取得された地図アプリケーションサーバＩＰ３０１に基づいて、距離最短サーバにＰＯＩ検索リクエストを送信する。
【０１２５】
なお、第１の実施形態では、地図アプリケーションサーバ１３０は、地図データキャッシュ１４１とＰＯＩデータキャッシュ１４２とを別々に備えているが、一つのキャッシュにまとめてよい。この場合、ステップ６０５及びステップ６０６における処理は同時に実行される。
【０１２６】
なお、第１の実施形態では、計算機システムは、地図配信サーバ１５０とＰＯＩ配信サーバ１６０とを別々に備えているが、地図配信サーバ１５０及びＰＯＩ配信サーバ１６０が備える機能を一つのサーバで実現してもよい。
【０１２７】
第１の実施形態によれば、振り分け処理装置が、各地図アプリケーションサーバ１３０が配置される位置に基づいて、任意の地域からのリクエストを特定の地図アプリケーションサーバ１３０に割り当てることが可能となる。これによって、各地図アプリケーションサーバ１３０には特定地域の地図データ及びＰＯＩ情報が地図データキャッシュ１４１及びＰＯＩデータキャッシュ１４２に蓄積される。したがって、地図アプリケーションサーバ１３０におけるキャッシュヒット率が向上し、地図アプリケーションの性能向上を実現できる。
【０１２８】
［第２の実施形態］
第２の実施形態では、検索条件入力画面２１０に、中心位置情報（緯度及び経度）の入力欄を新たに設け、ステップ６０１において送信されるＰＯＩ検索リクエストに、検索条件入力画面２１０においてユーザが指定した中心位置情報を含める点が異なる。
【０１２９】
第２の実施形態は、システム構成及び各装置構成は第１の実施形態と同一であるため説明を省略する。以下、第１の実施形態との差異を中心に説明する。
【０１３０】
検索条件入力画面２１０に新たに設けられた中心位置情報（緯度及び経度）の入力欄を用いた検索を実行した場合、中心位置情報を用いて距離最短サーバ検索手段１２７が実行されるため、ユーザが検索したい地域に配置された地図アプリケーションサーバ１３０にＰＯＩ検索リクエストが送信される。
【０１３１】
したがって、端末装置１１０が存在する場所を用いる検索よりもキャッシュヒット率を向上できる。
【０１３２】
なお、検索処理を実行するたびにＰＯＩ検索リクエストが送信される地図アプリケーションサーバ１３０が異なる場合が考えられるため、地図アプリケーションサーバ１３０にセッション情報を格納する機能を備え、各地図アプリケーションサーバ１３０間でセッション情報を共有する等の仕組みを用いることが考えられる。
【０１３３】
具体的には、複数の地図アプリケーションサーバ１３０が一以上のグループを構成し、グループ内のいずれかの地図アプリケーションサーバ１３０との通信のために用いられるセッション情報を当該グループ内で共有する。グループの分け方としては、地図アプリケーションサーバ１３０が担当する地域に基づいて構成する方法が考えられる。例えば、東京を担当する地図アプリケーションサーバ１３０を一つのグループとして構成し、大阪を担当する地図アプリケーションサーバ１３０を他のグループとして構成する方法が考えられる。
【０１３４】
これによって、異なる地図アプリケーションサーバ１３０にＰＯＩ検索リクエストが振り分けられることによって生じる問題点を解決できる。例えば、Ｗｅｂアプリケーションが提供される計算機システムおいて、ログイン情報の入力を毎回要求されるような問題点を解決できる。
【０１３５】
［第３の実施形態］
第３の実施形態は、振り分け処理装置１２０によって実行される距離最短サーバ検索手段１２７の処理において、重みを用いて各地図アプリケーションサーバ１３０が担当する地域の広さを調整する点が異なる。
【０１３６】
第３の実施形態は、システム構成及び各装置構成は第１の実施形態と同一であるため説明を省略する。以下、第１の実施形態との差異を中心に説明する。
【０１３７】
図９は、本発明の第３の実施形態の地図アプリケーションサーバ管理テーブル１２８の一例を示す説明図である。
【０１３８】
地図アプリケーションサーバ管理テーブル１２８は、新たに重み９０１のカラムを含む。重み９０１は、地図アプリケーションサーバ１３０が担当する地域を調整するために用いられる値である。本実施形態では、予め各地図アプリケーションサーバ１３０に重み９０１の値が設定される。
【０１３９】
振り分け処理装置１２０によって実行される距離最短サーバ検索手段１２７の処理では、受信したＰＯＩ検索リクエストに含まれる端末装置１１０と、地図アプリケーションサーバ１３０との距離が最も小さい地図アプリケーションサーバ１３０にリクエストを振り分ける処理は同一であるが、受信したＰＯＩ検索リクエストに含まれる端末装置１１０と、地図アプリケーションサーバ１３０との距離を算出する方法が異なる。
【０１４０】
図１０は、本発明の第３の実施形態における端末装置１１０の位置情報と地図アプリケーションサーバ１３０の代表位置情報３０２との距離の算出式を示す図である。
【０１４１】
図１０に示す算出式は、図８の示す算出式によって算出された距離に重みを乗算している点が異なる。重みが大きければ距離が長くなるため、重みが大きいほど担当する地域の範囲は狭くなる。
【０１４２】
第３の実施形態によれば、例えば、特定の地図アプリケーションサーバ１３０に負荷が偏っている場合、当該地図アプリケーションサーバ１３０の重み９０１を予め大きい値に設定しておくことによって、当該地図アプリケーションサーバ１３０が担当する範囲を狭くすることができる。したがって、特定の地図アプリケーションサーバ１３０に負荷が集中することを防止することが可能となる。
【０１４３】
［第４の実施形態］
第１の実施形態では、地図アプリケーションサーバ管理テーブル１２８の代表位置情報３０２は予め設定されていたが、第４の実施形態では、代表位置情報３０２を動的に変更する点が異なる。
【０１４４】
適切な代表位置情報３０２を設定するには、多くのリクエストが到来する位置、又は検索される頻度が高い位置等を事前に予測する必要があった。しかし、前述した予測を事前に行うことは難しく、正しく予測が設定されない場合、特定の地図アプリケーションサーバ１３０にアクセスが集中すること等によって、適切な負荷分散が実現できない。
【０１４５】
以下、地図アプリケーションの利用状況に応じて動的に代表位置情報を最適化する方法について、第１の実施形態との差異を中心に説明する。
【０１４６】
図１１は、本発明の第４の実施形態の計算機システムの構成例を示すブロック図である。
【０１４７】
図１１に示すように、計算機システムは、端末装置１１０−１〜１１０−ｍ、振り分け処理装置１２０、地図アプリケーションサーバ１３０−１〜１３０−ｎ、地図配信サーバ１５０、及びＰＯＩ配信サーバ１６０を備え、ネットワーク１７０を介して互いに接続される。端末装置１１０−１〜１１０−ｍ、地図アプリケーションサーバ１３０−１〜１３０−ｎ、地図配信サーバ１５０、及びＰＯＩ配信サーバ１６０の構成は第１の実施形態と同一であるため説明を省略する。
【０１４８】
第４の実施形態の振り分け処理装置１２０は、新たにテーブル更新手段１１０１及び振り分け履歴テーブル１１０２を備える。
【０１４９】
テーブル更新手段１１０１は、振り分け履歴テーブル１１０２を参照して、地図アプリケーションサーバ管理テーブル１２８の代表位置情報３０２を更新するための手段である。テーブル更新手段１１０１は、一つのプログラムで実現してもよいし、複数のプログラムで実現してもよい。
【０１５０】
振り分け履歴テーブル１１０２は、地図アプリケーションサーバ１３０に振り分けられたリクエストに関する情報を格納する。振り分け履歴テーブル１１０２は、地図アプリケーションサーバ１３０に振り分けられたリクエスト数等を格納する。振り分け履歴テーブル１１０２の詳細については図１２を用いて後述する。
【０１５１】
図１２は、本発明の第４の実施形態の振り分け履歴テーブル１１０２の一例を示す説明図である。
【０１５２】
振り分け履歴テーブル１１０２は、時刻１２０１、位置情報１２０２、及び地図アプリケーションサーバＩＰ１２０３を含む。
【０１５３】
時刻１２０１は、振り分け処理装置１２０がリクエストを振り分けた時刻を示す。位置情報１２０２は、振り分けられたリクエストを送信した端末装置１１０の位置（第１の実施形態参照）又はＷｅｂアプリケーションを用いて検索された位置（第２の実施形態参照）を示す。地図アプリケーションサーバＩＰ１２０３は、リクエストが振り分けられた地図アプリケーションサーバ１３０のＩＰアドレスを示す。
【０１５４】
なお、距離最短サーバ検索手段１２７が距離最短サーバを検索されるたびに、振り分け履歴テーブル１１０２にエントリが追加されることによって、振り分け履歴テーブル１１０２が作成される。
【０１５５】
図１３は、本発明の第４の実施形態の地図アプリケーションが実行された場合の各装置の処理を説明するシーケンス図である。
【０１５６】
図６と異なる点は、ＰＯＩ検索リクエストを地図アプリケーションサーバ１３０に送信した後（ステップ６０３）、振り分け処理装置１２０がテーブル更新手段１１０１を実行する（ステップ１３０１）点である。振り分け処理装置１２０が実行するテーブル更新手段１１０１の処理内容の詳細は、図１４を用いて後述する。
【０１５７】
なお、図１３に示す例では、地図アプリケーションサーバ１３０にＰＯＩ検索リクエストを送信した後（ステップ６０３）、地図アプリケーションサーバ１３０からのレスポンスを待たずに非同期にテーブル更新手段１１０１が実行されているが、地図アプリケーションサーバ１３０からのレスポンスと同期して実行されてもよいし、ステップ６０２の前に実行されてもよい。
【０１５８】
また、各リクエストが到来する毎に振り分け処理装置１２０はテーブル更新手段１１０１を実行するが、本実施形態ではこれに限定されず、特定のリクエストを処理するたびにテーブル更新手段１１０１が実行されてもよいし、周期的にテーブル更新手段１１０１が実行されてもよい。
【０１５９】
図１４は、本発明の第４の実施形態の振り分け処理装置１２０が実行するテーブル更新手段１１０１の処理内容の一例を示すフローチャートである。
【０１６０】
ステップ１３０１において、振り分け処理装置１２０は、リクエスト状況に応じて地図アプリケーションサーバ管理テーブル１２８の代表位置情報３０２を更新する。
【０１６１】
振り分け処理装置１２０は、振り分け履歴テーブル１１０２から、現在の時刻から単位時間内のエントリ（以下、履歴という）を取得する（ステップ１７０１）。ここで、単位時間とは、例えば、６時間以内、又は２４時間以内、１週間以内等が考えられる。
【０１６２】
振り分け処理装置１２０は、地図アプリケーションサーバ管理テーブル１２８から、一つのエントリを取得する（ステップ１７０２）。エントリの取得方法としては、例えば、地図アプリケーションサーバ管理テーブル１２８に格納されている順に取得する方法が考えられる。
【０１６３】
ステップ１７０１において取得された履歴のうち、ステップ１７０２において取得されたエントリに対応する地図アプリケーションサーバ１３０に関する履歴のみを抽出する（ステップ１７０３）。つまり、現在の時刻から単位時間内に当該地図アプリケーションサーバ１３０に振り分けられたリクエストを抽出する。
【０１６４】
具体的には、ステップ１７０２において取得されたエントリに対応する地図アプリケーションサーバ１３０の地図アプリケーションサーバＩＰ１３０１と一致する地図アプリケーションサーバＩＰ１２０３の履歴が取得される。
【０１６５】
振り分け処理装置１２０は、抽出された履歴に含まれる位置情報を用いて新たな代表位置を算出する（ステップ１７０４）。
【０１６６】
具体的には、振り分け処理装置１２０は、抽出された履歴の位置情報１２０２の緯度及び経度に基づいて、各々の平均を算出する。具体的には、図１５に示す代表位置の算出式を用いて平均が算出される。
【０１６７】
図１５は、本発明の第４の実施形態の代表位置の算出式を示す図である。
【０１６８】
図１５に示すように、地図アプリケーションサーバ１３０の代表位置情報３０２における経度は、当該地図アプリケーションサーバ１３０にリクエストを送信した全ての端末装置１１０が配置された位置の経度を加算したものを、当該地図アプリケーションサーバ１３０に振り分けられた全履歴数（リクエストの総数）で除算して算出される。また、地図アプリケーションサーバ１３０の代表位置情報３０２における緯度は、当該地図アプリケーションサーバ１３０にリクエストを送信した全ての端末装置１１０が配置された位置の緯度を加算したものを、当該地図アプリケーションサーバ１３０に振り分けられた全履歴数（リクエストの総数）で除算して算出される。
【０１６９】
図１５の式を用いることによって、各地図アプリケーションサーバ１３０の負荷が考慮された代表位置情報３０２を決定することが可能となる。
【０１７０】
次に、振り分け処理装置１２０は、ステップ１７０４において算出された代表位置を、地図アプリケーションサーバ管理テーブル１２８の対応するエントリの代表位置情報３０２に格納する（ステップ１７０５）。
【０１７１】
振り分け処理装置１２０は、地図アプリケーションサーバ管理テーブル１２８の全てのエントリについて処理が実行されたか否かを判定する（ステップ１７０６）。
【０１７２】
地図アプリケーションサーバ管理テーブル１２８の全てのエントリについて処理が実行されていないと判定された場合、振り分け処理装置１２０は、ステップ１７０２に戻り、次の取得されたエントリに対して同様の処理（ステップ１７０２〜ステップ１７０６）を実行する。
【０１７３】
地図アプリケーションサーバ管理テーブル１２８の全てのエントリについて処理が実行されたと判定された場合、振り分け処理装置１２０は処理を終了する（ステップ１７０７）。
【０１７４】
第４の実施形態によれば、リクエスト発生が多い地域、又は地図アプリケーションによって検索される頻度が多い地域に地図アプリケーションサーバ１３０の代表位置情報が動的に設定される。これによって、地図アプリケーションサーバ１３０の負荷分散が適切になるように地図アプリケーションサーバ１３０間の距離を動的に調整できる。
【０１７５】
［第５の実施形態］
第３の実施形態では、地図アプリケーションサーバ管理テーブル１２８の重み９０１は予め設定されていたが、第５の実施形態では、重み９０１を動的に変更する点が異なる。
【０１７６】
計算機システムの構成は、図１１と同一であるため説明を省略する。また、各装置の構成も第４の実施形態と同一であるため説明を省略する。
【０１７７】
第５の実施形態のテーブル更新手段１１０１が実行されることによって、重み９０１が動的に更新される。
【０１７８】
第５の実施形態の地図アプリケーションが実行された場合の各装置の処理を説明するシーケンスは、図１３と同一であるため省略する。
【０１７９】
以下、振り分け処理装置１２０が実行するテーブル更新手段１１０１の処理内容について説明する。
【０１８０】
図１６は、本発明の第５の実施形態の振り分け処理装置１２０が実行するテーブル更新手段１１０１の処理内容の一例を示すフローチャートである。
【０１８１】
まず、振り分け処理装置１２０は、振り分け履歴テーブル１１０２から、現在の時刻から単位時間内の履歴を取得する（ステップ１８０１）。ここで、単位時間とは、例えば、６時間以内、２４時間以内、又は１週間以内等が考えられる。
【０１８２】
次に、振り分け処理装置１２０は、地図アプリケーションサーバ管理テーブル１２８から一つのエントリを取得し（ステップ１８０２）、現在の時刻から単位時間内の履歴のうち、取得されたエントリに対応する地図アプリケーションサーバに関する履歴の一覧を取得する（ステップ１８０３）。
【０１８３】
振り分け処理装置１２０は、取得された履歴における履歴数を、最近の単位時間以内における全地図アプリケーションサーバ１３０へ振り分けた履歴数で除算することによって重みを算出する（ステップ１８０４）。具体的には、図１７に示す算出式が用いて、重みが算出される。
【０１８４】
図１７は、本発明の第５の実施形態の重みの算出式を示す図である。
【０１８５】
図１７に示すように、地図アプリケーションサーバ１３０の重み９０１は、当該アプリケーションサーバ１３０に振り分けられた履歴数（リクエスト数）を全地図アプリケーションサーバ１３０に振り分けられた履歴数（リクエスト数）で除算することによって算出される。
【０１８６】
図１７の式を用いることによって、各地図アプリケーションサーバ１３０における負荷が考慮された重み９０１を決定することが可能となる。これによって、地図アプリケーションサーバ１３０が担当する地域の範囲を変更することができ、適切な負荷分散が可能となる。
【０１８７】
次に、振り分け処理装置１２０は、取得したエントリの重み９０１に、算出された重みを格納する（ステップ１８０５）。
【０１８８】
振り分け処理装置１２０は、地図アプリケーションサーバ管理テーブル１２８の全てのエントリについて処理が実行されたか否かを判定する（ステップ１８０６）。
【０１８９】
地図アプリケーションサーバ管理テーブル１２８の全てのエントリについて処理が実行されていないと判定された場合、振り分け処理装置１２０は、ステップ１８０２に戻り、次の取得されたエントリに対して同様の処理（ステップ１８０２〜ステップ１８０６）を実行する。
【０１９０】
地図アプリケーションサーバ管理テーブル１２８の全てのエントリについて処理が実行されたと判定された場合、振り分け処理装置１２０は処理を終了する（ステップ１８０７）。
【０１９１】
第５の実施形態によれば、リクエスト状況に応じて重みを動的に調整できる。これによって、各地図アプリケーションサーバ１３０が担当する地域の範囲を広げたり又は狭めたりできる。
【０１９２】
具体的には、リクエスト送信が多い地域、又は地図アプリケーションによる検索頻度が多い地域を担当する地図アプリケーションサーバ１３０の重みを大きくし（担当する地域の範囲を狭くし）、リクエスト送信が少ない地域、又は地図アプリケーションによる検索頻度が少ない地域を担当する地図アプリケーションサーバ１３０の重みは小さくする（担当する地域の範囲を広くする）ことで負荷を動的に調整できる。
【０１９３】
また、第４の実施形態と第５の実施形態とを組み合わせると、地図アプリケーションサーバ１３０の代表位置情報と重みとの両方を動的に調整できる。この場合、図１４に示す処理と図１６に示す処理とを並列して実行してもよい、いずれかの処理を実行した後に、他の処理を実行してもよい。
【０１９４】
［第６の実施形態］
第６の実施形態は、時間に応じて地図アプリケーションサーバ管理テーブル１２８の内容を瞬時に切り替える点が異なる。
【０１９５】
地図アプリケーションによっては、季節、日付、又は時間帯等に応じてリクエストの送信元地域又は検索される地域が変わることがある。例えば、春であれば、花見場所からのリクエストが多くなり、花見スポットが検索されることが多くなる。また、花火大会が開催される日の前後では花火大会の開催場所が検索されることが多くなる。
【０１９６】
第６の実施形態では、予め、時間に応じてリクエスト元の地域及び検索地域の傾向が分かる場合、当該傾向に合わせて地図アプリケーションサーバ管理テーブル１２８に格納される値を切り替える。
【０１９７】
例えば、振り分け処理装置１２０が、花火大会前に、複数台の地図アプリケーションサーバ１３０に花火大会の開催場所近辺を代表位置情報に設定し、かつ重みを大きく設定し、それ以外の地図アプリケーションサーバ１３０については適切に代表位置をばらつかせる。花火大会の前日等に地図アプリケーションサーバ管理テーブル１２８の内容を入れ替える。
【０１９８】
第６の実施形態の計算機システムの構成は、図１１と同一であるため説明を省略する。また、各装置の構成についても第１の実施形態と同一であるため説明を省略する。以下、他の実施形態との差異を中心に説明する。
【０１９９】
第６の実施形態では、地図アプリケーションサーバ管理テーブル１２８の構成が異なる。
【０２００】
図１８は、本発明の第６の実施形態の地図アプリケーションサーバ管理テーブル１２８の一例を示す説明図である。
【０２０１】
地図アプリケーションサーバ管理テーブル１２８は、新たに、適用時間１９０１を含む。
【０２０２】
適用時間１９０１は、地図アプリケーションサーバ管理テーブル１２８の内容を適用する期間等を示す。なお、適用時間１９０１は、期間であってもよいし、時間であってもよい。
【０２０３】
第６の実施形態の距離最短サーバ検索手段１２７は、現在時刻を取得する手段を備えており、適用時間１９０１を参照し、現在の時刻が適用時間１９０１に示された提供時間に含まれるエントリ（複数）の中から、受信したリクエストに含まれる位置情報とエントリの代表位置情報との距離が最短となるエントリを特定する。
【０２０４】
以上の処理によって、現在時刻に応じて、地図アプリケーションサーバ１３０の代表位置情報３０２及び重み９０１を変更することが可能となる。
【０２０５】
なお、地図アプリケーションサーバ１３０の代表位置情報３０２及び重み９０１の変更方法は、これに限定されず、振り分け処理装置１２０が、適用時間ごとに異なる地図アプリケーションサーバ管理テーブル１２８を備え、適用時間ごとに地図アプリケーションサーバ管理テーブル１２８を入れ替える方法であってもよい。
【０２０６】
なお、切り替え時に用いられる代表位置情報及び重みは、第４の実施形態及び第５の実施形態でしめした方法を用いて生成された値を利用する方法が考えられる。
【０２０７】
第６の実施形態によれば、地図アプリケーションサーバ１３０の担当地域及び担当範囲を時間に応じて切り替えることが可能となる。
【０２０８】
［第７の実施形態］
第７の実施形態は、地図アプリケーションサーバ１３０を追加又は削除する点が他の実施形態と異なる。
【０２０９】
以下、他の実施形態との差異を中心に第７の実施形態について説明する。
【０２１０】
図１９は、本発明の第７の実施形態の計算機システムの構成例を示すブロック図である。
【０２１１】
計算機システムは、新たに管理装置１６００を備える。なお、管理装置１６００は、データセンタに配置する。他の装置については、第１の実施形態と同一であるため説明を省略する。
【０２１２】
管理装置１６００は、ＣＰＵ（図示省略）、メモリ（図示省略）、記憶媒体及び通信部１６０１を備える。
【０２１３】
ＣＰＵ（図示省略）は、メモリ（図示省略）上に展開されたプログラムを実行する。メモリ（図示省略）は、ＣＰＵ（図示省略）によって実行されるプログラム及び処理に必要となる情報を格納する。メモリ（図示省略）は、地図アプリケーションサーバ追加手段１６０２及び地図アプリケーションサーバ削除手段１６０３を備える。
【０２１４】
地図アプリケーションサーバ追加手段１６０２は、地図アプリケーションサーバ１３０を追加するための手段である。地図アプリケーションサーバ追加手段１６０２は、一つのプログラムで実現してもよいし、複数のプログラムで実現してもよい。
【０２１５】
地図アプリケーションサーバ削除手段１６０３は、地図アプリケーションサーバ１３０を削除するための手段である。地図アプリケーションサーバ削除手段１６０３は、一つのプログラムで実現してもよいし、複数のプログラムで実現してもよい。
【０２１６】
記憶媒体（図示省略）は、管理装置１６００が備える機能を実現するためのプログラム及び情報を格納する。
【０２１７】
通信部１６０１は、ネットワーク１７０を介して他の装置と通信するための装置である。
【０２１８】
地図アプリケーションサーバ１３０の追加時の処理を説明する。なお、予め、追加される地図アプリケーションサーバ１３０はネットワーク１７０に接続する。
【０２１９】
管理装置１６００は、地図アプリケーションサーバ追加手段１６０２を実行する。具体的には、以下の処理が実行される。
【０２２０】
管理装置１６００は、地図アプリケーションサーバ管理テーブル１２８に新たなエントリを追加し、追加された地図アプリケーションサーバ１３０の地図アプリケーションサーバＩＰ３０１、代表位置情報３０２及び重み９０１を設定する。各値は、管理装置の操作者が設定してもよいし、自動で設定してもよい。
【０２２１】
地図アプリケーションサーバ管理テーブル１２８の各値を自動で設定する一例を説明する。
【０２２２】
動的に代表位置情報３０２又は重み９０１を調整する場合（第４の実施形態及び第５の実施形態参照）、太平洋上等の、どの端末装置１１０からも近い位置になり得ない場所が代表位置として選択されると、追加した地図アプリケーションサーバ１３０が利用できない。
【０２２３】
そこで、例えば、管理装置１６００は、既存の地図アプリケーションサーバ１３０の代表位置情報の平均位置（各位置情報の緯度及び経度を各々平均した値）を設定したり、端末装置１１０の平均位置を設定したり、ＰＯＩ配信サーバ１６０に含まれるＰＯＩ情報の平均位置を設定したりする方法が考えられる。
【０２２４】
管理装置１６００は、決定した各値を振り分け処理装置１２０に送信する。振り分け処理装置１２０は、管理装置１６００によって決定された値を地図アプリケーションサーバ管理テーブル１２８に反映させる。
【０２２５】
地図アプリケーションサーバ１３０を削除時の処理を説明する。
【０２２６】
管理装置１６００は、地図アプリケーションサーバ削除手段１６０３を実行する。具体的には、以下の処理が実行される。
【０２２７】
管理装置１６００は、地図アプリケーションサーバ管理テーブル１２８から削除対象の地図アプリケーションサーバ１３０に対応するエントリを削除する。
【０２２８】
具体的には、管理装置１６００は、振り分け処理装置１２０に地図アプリケーションサーバ管理テーブル１２８から削除対象の地図アプリケーションサーバ１３０に対応するエントリを削除するように命令を発行する。当該命令を受信した振り分け処理装置１２０は、地図アプリケーションサーバ管理テーブル１２８から削除対象の地図アプリケーションサーバ１３０に対応するエントリを削除する。
【０２２９】
次に、管理装置１６００の操作者は、削除対象の地図アプリケーションサーバ１３０をネットワーク１７０から取り除く。
【０２３０】
なお、管理装置１６００が備える機能を、振り分け処理装置１２０が備えていてもよい。
【０２３１】
第７の実施形態によれば、地図アプリケーションサーバ１３０を自由に追加又は削除することが可能となる。特に、地図アプリケーションサーバ１３０を追加する場合、適切な位置情報を設定して、ネットワーク１７０に追加することが可能となる。
【符号の説明】
【０２３２】
１１０  端末装置
１１１  通信部
１１２  ＣＰＵ
１１３  表示部
１１４  ＨＤＤ
１１５  入力部
１１６  メモリ
１１７  クライアントプログラム
１１８  位置情報取得手段
１２０  振り分け処理装置
１２１  通信部
１２２  ＣＰＵ
１２３  表示部
１２４  ＨＤＤ
１２５  入力部
１２６  メモリ
１２７  距離最短サーバ検索手段
１２８  地図アプリケーションサーバ管理テーブル
１３０  地図アプリケーションサーバ
１３１  通信部
１３２  ＣＰＵ
１３３  表示部
１３４  ＨＤＤ
１３５  入力部
１３６  メモリ
１３７  メッシュコード取得手段
１３８  地図取得手段
１３９  ＰＯＩ取得手段
１４０  画面構成手段
１４１  地図データキャッシュ
１４２  ＰＯＩデータキャッシュ
１５０  地図配信サーバ
１６０  ＰＯＩ配信サーバ
１７０  ネットワーク
２１０  検索条件入力画面
２１１  検索ボタン
２２０  検索結果画面
２２１  戻るボタン
２２２  ＰＯＩ一覧
２２３  地図
３０１  地図アプリケーションサーバＩＰ
３０２  代表位置情報
４０１  メッシュコード
４０２  地図画像データ
４０３  地図名称データ
５０１  メッシュコード
５０２  検索条件
５０３  ＰＯＩデータ
５０４  ＰＯＩデータ
６０５  表示部
９０１  重み
１１０１  テーブル更新手段
１１０２  振り分け履歴テーブル
１２０１  時刻
１２０２  位置情報
１２０３  地図アプリケーションサーバＩＰ
１３０１  地図アプリケーションサーバＩＰ
１６００  管理装置
１６０１  通信部
１６０２  地図アプリケーションサーバ追加手段
１６０３  地図アプリケーションサーバ削除手段
１９０１  適用時間
【図１】
0005493223.tif 000002
【図２】
0005493223.tif 000003
【図３】
0005493223.tif 000004
【図４】
0005493223.tif 000005
【図５】
0005493223.tif 000006
【図６】
0005493223.tif 000007
【図７】
0005493223.tif 000008
【図８】
0005493223.tif 000009
【図９】
0005493223.tif 000010
【図１０】
0005493223.tif 000011
【図１１】
0005493223.tif 000012
【図１２】
0005493223.tif 000013
【図１３】
0005493223.tif 000014
【図１４】
0005493223.tif 000015
【図１５】
0005493223.tif 000016
【図１６】
0005493223.tif 000017
【図１７】
0005493223.tif 000018
【図１８】
0005493223.tif 000019
【図１９】
0005493223.tif 000020