以下、図面に基づいて、本願の開示する割当装置及び割当プログラムの実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。また、以下に示す各実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。
図1は、実施例1のデータ提供システムの一例を示す説明図である。図1に示すデータ提供システム1は、複数のドメインD(D1,D2)と、データセンタ(以下、単にDCと称する)2とを有し、ドメインDとDC2との間をWAN3で接続している。ドメインDは、例えば、地域内の企業拠点ビル内のサブネットアドレス群を管理するグループである。DC2は、DNS(Domain Name System)サーバ11と、中継ルールサーバ12と、複数のアプリサーバ13と、割当制御装置(Proxy Assignment Controller:以下、単にPACと称する)14とを有する。
アプリサーバ13は、アプリを格納し、格納されたアプリを提供する、例えば、格納サーバである。尚、アプリは、例えば、Webプロトコルで動作するアプリだけでなく、Web(HTTP)プロトコル以外のプロトコル等で動作するアプリも含むものである。中継ルールサーバ12は、例えば、DNSサーバ11やアプリサーバ13に対するアクセス可否を制御するアクセス制御/転送制御のルールを提供するサーバである。DNSサーバ11は、複数のアプリサーバ13を管理する、例えば、管理サーバである。PAC14は、ドメインD毎に配置された割当装置(Proxy Assignment executing Node:以下、単にPANと称する)21を管理する、例えば、制御サーバである。
ドメインDは、複数のサブネットN(N1−1、N1−2)と、PAN21と、複数のプロキシサーバ22とを有する。更に、サブネットNは、端末装置31と、DHCP(Dynamic Host Configuration Protocol)サーバ32とを有する。端末装置31は、ユーザが使用する、例えば、パーソナルコンピュータ、スマートフォン、タブレット端末や、通信機能を備えたセンサ機器等である。DHCPサーバ32は、サブネットN内の端末装置31や機器にIPアドレス等の情報を自動的に割当てる、例えば、IP割当サーバである。尚、DHCPサーバ32は、管轄するサブネットN内の端末装置31にIPアドレスを付与し、その付与した端末装置31毎のIPアドレス及びMACアドレスをPAN21に通知する。DHCPサーバ32は、端末装置31に、その端末装置31が使用するDNSサーバ11を割り当てる(通知する)。
ドメインD内のプロキシサーバ22は、端末装置31の代わりに、WAN3内のプロキシサーバ3A経由で端末装置31が要求する要求対象のアプリを格納したアプリサーバ13にアクセスする。更に、プロキシサーバ22は、アプリサーバ13から要求対象のアプリのコンテンツデータを取得してキャッシュする。また、PAN21は、端末装置31からのアプリ要求に応じて、ドメインD内の複数のプロキシサーバ22の内、要求する要求対象のアプリに関わる誘導先プロキシサーバ22をアプリ要求の端末装置31に割当てる。例えば、ドメインD1のPAN21Aは、端末装置31からのアプリ要求に応じてプロキシサーバ22A、22Bの内、要求対象のアプリに関わる誘導先プロキシサーバ22Aを割当てるものとする。また、PAN21は、複数のプロキシサーバ22の内、プロキシサーバ22のCPU負荷量及びキャッシュ量を考慮して誘導先プロキシサーバ22を選定する。その結果、誘導先プロキシサーバ22の負荷が偏らないように調整できる。尚、説明の便宜上、ドメインD1の構成について説明したが、ドメインD2内のPAN21Bについても、ほぼ同様であるため、その重複する説明については省略する。
図2は、PAN21の一例を示す説明図である。図2に示すPAN21は、通信インタフェース41と、記憶部42と、CPU43とを有する。通信インタフェース41は、例えば、ドメインD1内の各DHCPサーバ32や各端末装置31と通信接続すると共に、WAN3と通信接続するインタフェースである。通信インタフェース41は、WAN3経由でDNSサーバ11やPAC14と通信接続する。記憶部42は、端末テーブル51と、候補リストテーブル52と、クエリテーブル53と、割当テーブル54とが格納されている。
図3は、端末テーブル51の一例を示す説明図である。図3に示す端末テーブル51は、例えば、ドメインD1内に在圏する端末装置31のアドレス情報を管理する、例えば、端末記憶部である。端末テーブル51は、DHCPサーバIP51Aと、端末IP51Bと、端末MAC51Cと、開始時間51Dと、終了時間51Eとを対応付けて管理している。DHCPサーバIP51Aは、端末装置31にIPアドレスを割当てたDHCPサーバ32のIPアドレスである。端末IP51Bは、DHCPサーバ32に割当てられた端末装置31のIPアドレスである。端末MAC51Cは、端末装置31単体の装置固有のアドレスである。開始時間51Dは、DHCPサーバ32が当該端末装置31にIPアドレスを割当てたIPリースの開始日時である。終了時間51Eは、DHCPサーバ32が当該端末装置31にIPアドレスを割当てたIPリースの終了予定日時である。
図4は、候補リストテーブル52の一例を示す説明図である。図4に示す候補リストテーブル52は、PAN21が管理する同一ドメインD内のプロキシサーバ22を誘導先候補として管理している。候補リストテーブル52は、プロキシID52A及びプロキシIP52Bを対応付けて管理している。プロキシID52Aは、誘導先候補であるプロシキサーバ22のIDである。プロキシIP52Bは、誘導先候補であるプロキシサーバ22のIPアドレスである。尚、ドメインD1内のPAN21Aの誘導先候補は、例えば、プロキシサーバ22A及び22Bである。
図5は、クエリテーブル53の一例を示す説明図である。図5に示すクエリテーブル53は、例えば、PAN21でDNSクエリを転送する際の転送前クエリ情報及び転送後クエリ情報を対応付けて管理している。クエリテーブル53は、送信元IP53Aと、転送前クエリ情報の問合せID53Bと、転送後クエリ情報の問合せID53Cとを対応付けて管理している。送信元IP53Aは、DNSクエリに格納された送信元のIPアドレスである。転送前クエリ情報の問合せID53Bは、DNSクエリを識別するIDである。転送後クエリ情報の問合せID53Cは、転送するDNSクエリを識別するIDである。PAN21は、クエリテーブル53を参照し、例えば、端末装置31からDNSサーバ11にDNSクエリを転送できる。更に、PAN21は、クエリテーブル53を参照して、例えば、DNSサーバ11から端末装置31に対して、DNSクエリに対応したDNS応答を転送できる。
図6は、割当テーブル54の一例を示す説明図である。図6に示す割当テーブル54は、端末MAC54Aと、アプリサーバ名54Bと、プロキシサーバID54Cとを対応付けて管理する、例えば、割当記憶部である。端末MAC54Aは、アプリ要求した端末装置31のMACアドレスである。アプリサーバ名54Bは、要求対象のアプリを格納したアプリサーバ13を識別するものである。プロキシサーバID54Cは、要求対象のアプリを格納したアプリサーバ13の誘導先のプロキシサーバ22を識別するIDである。PAN21は、割当テーブル54を参照し、アプリ要求の端末装置31のMACアドレス及び要求対象のアプリサーバ名54Bを特定する。PAN21は、特定されたMACアドレス及びアプリサーバ名に対応した割当済みの誘導先プロキシサーバ22のプロキシサーバID54Cを識別する。
図2に示すCPU42は、転送部61と、応答転送部62と、割当部63とを有する。CPU42は、記憶部43に記憶中の図示せぬ割当プログラムを読み出し、読み出された割当プログラムに基づき、これら転送部61、応答転送部62及び割当部63をプロセスとして実行するものである。転送部61は、端末装置31からのDNSクエリを受信した場合、DNSクエリをDNSサーバ11に転送する。この際、転送部61は、DNSクエリ内の送信元IP53A及び問合せID53Bを取得し、送信元IP53A及び問合せID53Bを対応付けてクエリテーブル53に登録する。更に、転送部61は、DNSクエリをDNSサーバ11に転送する際、転送後のDNSクエリ内の問合せID53Cをクリエテーブル53に登録する。
割当部63は、判定部63Aと、制御部63Bとを有する。判定部63Aは、端末装置31からアプリ要求が検出されると、割当テーブル54を参照して、端末装置31のMACアドレス及び要求対象のアプリサーバ名に対応した割当済みの誘導先プロキシサーバ22があるか否かを判定する。制御部63Bは、割当済みの誘導先プロキシサーバ22がある場合に、応答転送部62を通じて、アプリ要求の端末装置31に対して、当該割当済みの誘導先プロキシサーバ22のIPアドレスを付加したDNS応答を送信する。
DNSサーバ11は、PAN21で転送されたDNSクエリの応答としてDNS応答をPAN21に送信する。PAN21は、DNSサーバ11からDNS応答を受信した場合、クエリテーブル53内の転送後クエリ情報の問合せID53Cを参照し、問合せID53Cに対応した送信元IP53AのIPアドレスを特定する。更に、PAN21は、特定された送信元IP53AのIPアドレスの端末装置31に対してDNS応答を転送する。
図7は、パケットのフォーマット構成の一例を示す説明図である。図7に示すパケット71は、例えば、DNSクエリやDNS応答等のパケットである。パケット71は、問合せID71Aと、フラグ71Bと、質問数71Cと、回答数71Dと、オーソリティ数71Eと、追加情報数71Fとを有する。更に、パケット71は、質問セクション71Gと、回答リソースレコード71Hと、オーソリティリソースレコード71Iと、追加情報リソースレコード71Jとを有する。問合せID71Aは、16ビット構成のIDであって、DNSクエリとDNS応答とで同一ID値が使用されるものである。フラグ71Bは、パケット71の種別を16ビット構成で示し、例えば、パケット71がDNSクエリ又はDNS応答を識別するフラグである。質問数71Cは、例えば、DNSクエリ中の質問数である。回答数71Dは、例えば、DNS応答中の回答数である。オーソリティ数71Eは、例えば、DNS応答中の回答を生成したDNSサーバ11の数である。追加情報数71Fは、例えば、DNS応答中の追加した情報の数である。質問セクション71Gは、DNSサーバ11に問い合わせたいアプリサーバ名である。回答リソースレコード71Hは、DNSサーバ11からの回答内容やアプリサーバ名に対応したIPアドレスを格納している。オーソリティリソースレコード71Iは、DNSサーバ11のオーソリティ情報(DNSサーバ名)を格納している。追加情報リソースレコード71Jは、例えば、DNSサーバ11の回答の追加情報である。
DHCPサーバ32は、ドメインD間を端末装置31が移動した場合、端末装置31に新たなIPアドレスを割当てる。また、DHCPサーバ32は、端末装置31のDNSサーバ11として移動先ドメインDにあるPAN21を割り当てる。そして、DHCPサーバ32は、端末装置31のIPアドレス及びMACアドレスをリース情報としてPAN21に通知する。PAN21は、端末装置31のIPアドレスの他に端末固有のMACアドレスを端末テーブル51に管理する。PAN21は、端末テーブル51を参照して、MACアドレスでアプリ要求の端末装置31を識別し、端末装置31からのDNSクエリ内の送信元IPに対応したMACアドレスと、アプリサーバ名とを対応付けて誘導先のプロキシサーバ22を割り当てる。
DC2内のアプリサーバ13は、アプリを格納した格納サーバである。アプリサーバ13は、誘導先プロキシサーバ22経由でアプリを提供するアプリサーバ13Aと、誘導先プロキシサーバ22を使用せずにアプリを提供するアプリサーバ13Bとがある。尚、誘導先プロキシサーバ22経由でアプリを提供するアプリサーバ13Aは、アプリ提供者との契約で決定するものである。アプリサーバ13Bは、アプリ提供者との契約が未契約の場合である。
端末装置31は、PAN21から誘導先プロキシサーバ22のIPアドレスを受信した場合、誘導先プロキシサーバ22経由で要求対象のアプリに関わるキャッシュデータを取得する。尚、キャッシュデータには、要求対象のアプリに関わるコンテンツデータの他に、アクセス制御ルール及び転送制御ルール等を含む。
次に実施例1のデータ提供システム1の動作について説明する。図8は、実施例1のデータ提供システム1の事前準備処理に関わる処理動作の一例を示すシーケンス図である。管理者15は、例えば、DC2内のプロキシサーバ管理者である。管理者15は、例えば、ドメインD1の複数のサブネットNをまとめ、ドメイン名を定義してPAC14に設定する(ステップS11)。更に、管理者15は、ドメインD1内にPAN21Aを設置し(ステップS12)、ドメインD1及びPAN21AのIPアドレスと、ドメインD1内の各プロキシサーバ22A及び22BのIPアドレスを対応付けてPAC14内に登録する(ステップS13)。
更に、PAC14は、誘導先候補設定情報をドメインD1内のPAN21Aに設定する(ステップS14)。尚、誘導先候補設定情報は、ドメインD1内のプロキシサーバ22A及び22Bを誘導先候補として提示する情報である。PAN21Aは、PAC14からの誘導先候補のプロキシサーバ22A及び22Bを候補リストテーブル52内に登録する(ステップS15)。
管理者15は、DHCP設定情報をサブネットN1−1内のDHCPサーバ32Aに通知する(ステップS16)。尚、DHCP設定情報は、端末装置31のDNSクエリ先として在圏するドメインD1内のPAN21AのIPアドレスを設定し、IPアドレスのリース情報をドメインD1内のPAN21Aに通知すべく、DHCPサーバ32Aに指示する情報である。管理者15は、誘導先プロキシサーバ22A及び22Bを使用する要求対象のアプリサーバ名及びアクセス元のドメイン名をPAC14内に登録する(ステップS17)。尚、管理者15は、アプリ提供者との契約等でプロキシサーバ22を使用した要求対象のアプリサーバ名及び、アクセス元のドメイン名を決定するものである。
PAC14は、誘導先プロキシサーバ22を使用する要求対象のアプリサーバ名及び専用IPをDNSサーバ11内に登録する(ステップS18)。尚、専用IPは、誘導先プロキシサーバ22を使用するアプリサーバ名を示すタグ値、例えば、1.1.1.1のIPである。尚、DNSサーバ11は、要求対象のアプリサーバ名及び専用IPを対応付けて一括管理するため、その管理先が1箇所で済む。また、専用IPは、PAN21がDNSクエリの応答メッセージを見てプロキシサーバ22への誘導対象であるか否かを判断するための識別子である。尚、専用IPは、例えば、システム全体で固定で割り出した値でも良い。また、専用IPは、例えば、誘導対象としたアプリサーバのIPアドレスそのものでも良い。また、専用IPは、例えば、DNSのCNAME機能により要求対象のアプリサーバ名(例えば、appll.aa.com)を置換したサーバ名(例えば、appll.dummy.com)でも良い。
尚、図8の例では、ドメインD1内のサブネットN1−1に関わる事前設定処理を例示したが、同一ドメインD1内のサブネットN1−2や他のドメインD2についても、同様の処理動作で事前設定処理を実行するものである。
図9は、実施例1のデータ提供システム1のプロキシサーバ割当処理に関わる処理動作の一例を示すシーケンス図である。図9に示すプロキシサーバ割当処理は、要求対象のアプリサーバ13の誘導先プロキシサーバ22A、22Bを割り当て、端末装置31のMACアドレス及びアプリサーバ名を対応付けて割当済みの誘導先のプロキシサーバ22のIPアドレスを管理する処理である。
図9に示すドメインD1のサブネットN1−1内のDHCPサーバ32Aは、端末装置31の在圏に応じて、端末装置31に対して端末装置31の設定情報を通知する(ステップS21)。尚、端末装置31の設定情報は、DHCPサーバ32Aで割当てられたIPアドレスと、端末装置31のDNSクエリ先であるPAN21AのIPアドレスとを含むものである。更に、DHCPサーバ32Aは、端末装置31のリース情報をPAN21Aに通知する(ステップS22)。尚、リース情報は、例えば、端末IP、端末MAC、開始時間及び終了時間等を含むものである。
PAN21Aは、DHCPサーバ32Aから端末装置31のリース情報を受信した場合、リース情報を端末テーブル51に登録する(ステップS23)。端末装置31は、DHCPサーバ32Aからのリース情報に基づき、アプリ要求のDNSクエリをPAN21Aに送信する(ステップS24)。尚、DNSクエリには、要求対象のアプリサーバ名、例えば、apl1.aa.comを含むものとする。
更に、PAN21Aは、端末装置31からアプリ要求のDNSクエリを受信すると、図10に示すDNSクエリ転送処理を実行する(ステップS25)。PAN21Aは、DNSクエリ転送処理を実行後、DNSクエリをDNSサーバ11に転送する(ステップS26)。
DNSサーバ11は、DNSクエリを受信すると、DNSクエリに対応したDNS応答をPAN21Aに送信する(ステップS27)。尚、DNS応答は、誘導先プロキシサーバ22を使用する要求対象のアプリサーバ名を示す専用IPを含むものである。
PAN21Aは、DNSサーバ11からDNS応答を受信した後、後述する、図11に示すDNS応答転送処理を実行する(ステップS28)。PAN21Aは、DNS応答転送処理を実行後、端末装置31に関わるMACアドレス、要求対象のアクセス先アプリサーバ名及び割当済みのプロキシサーバ22のIPアドレスを含む割当情報の配信依頼をPAC14に通知する(ステップS29)。
PAC14は、割当情報の配信依頼を受信した場合、他のドメインD2のPAN21Bに割当情報を通知する(ステップS30)。尚、PAC14は、ドメインD2以外にも、他のドメインDがある場合、割当情報を他のドメインD内の全PAN21に通知するものである。PAN21Bは、PAC14から割当情報を受信した場合、受信した割当情報を割当テーブル54内に登録する(ステップS31)。尚、PAN21Bは、割当テーブル54を参照して、各端末装置31のMACアドレス、要求対象のアプリサーバ名及び誘導先のプロキシサーバ22AのIPアドレスを識別する。
PAN21Bは、ステップS24のDNSクエリに対応したDNS応答を端末装置31に送信する(ステップS32)。尚、DNS応答は、例えば、アプリ要求に関わる誘導先プロキシサーバ22AのIPアドレスを含むものである。その結果、端末装置31は、ドメインD1内のPAN21AからDNS応答を受信した場合、DNS応答内の誘導先プロキシサーバ22AのIPアドレスを取得する。そして、端末装置31は、誘導先プロキシサーバ22AのIPアドレスに基づき、誘導先プロキシサーバ22Aにアクセスし、誘導先プロキシサーバ22Aから要求対象のアプリを取得する。
図10は、DNSクエリ転送処理に関わるPAN21Aの処理動作の一例を示すフローチャートである。図10においてPAN21Aは、端末装置31からDNSクエリを受信した場合(ステップS41)、DNSクエリ内のクエリ情報をクエリテーブル53に登録する(ステップS42)。尚、クエリ情報は、DNSクエリ内の送信元IPアドレス、転送前クエリ情報の問合せIDを含む。そして、PAN21Aは、端末装置31から受信したDNSクエリをDNSサーバ11に転送し(ステップS43)、図10に示す処理動作を終了する。
図10に示すDNSクエリ転送処理のPAN21Aは、端末装置31からDNSクエリを受信した場合、転送前後のDNSクエリの問合せIDに基づき、DNSクエリをDNSサーバ11に転送できる。
図11は、DNS応答転送処理に関わるPAN21Aの処理動作の一例を示すフローチャートである。図11に示すDNS応答転送処理は、アプリ要求のDNS応答を受信した場合、端末装置31のMACアドレス及び要求対象のアプリサーバ名に対応した、割当済みの誘導先プロキシサーバ22のIPアドレスをDNS応答として端末装置31に転送する処理である。
図11においてPAN21Aは、DNSサーバ11からDNS応答を受信した場合(ステップS51)、DNS応答に対応するDNSクエリを検索する(ステップS52)。PAN21Aは、DNS応答内の回答リソースレコード71H内のIPアドレスを検索する(ステップS53)。PAN21Aは、回答リソースレコード71H内のIPアドレスが専用IPであるか否かを判定する(ステップS54)。PAN21Aは、回答リソースレコード71H内のIPアドレスが専用IPの場合(ステップS54肯定)、アプリ要求が誘導先プロキシサーバ22を使用したアプリ要求と判定する。更に、PAN21Aは、端末テーブル51を参照し、DNSクエリ内の送信元IPアドレスに対応した端末装置31のMACアドレスを検索する(ステップS55)。
PAN21Aは、端末装置31のMACアドレスがヒットしたか否かを判定する(ステップS56)。PAN21Aは、端末装置31のMACアドレスがヒットした場合(ステップS56肯定)、端末テーブル51を参照し、ヒットした端末装置31のMACアドレスの内、開始時間が最新のMACアドレスを特定する(ステップS57)。尚、開始時間が最新のMACアドレスを特定する趣旨は、終了時間経過後も、端末装置31に割当てたIPアドレスが端末テーブル51に残っている場合もある。そこで、端末テーブル51内に同一のIPアドレスが複数ある場合に、最新の開始時間のIPアドレスを用いて、DNSクエリの端末装置31の正確なMACアドレスを特定するものである。
PAN21Aは、割当テーブル54を参照し、特定された端末装置31のMACアドレス及び、要求対象のアプリサーバ名に対応した割当済みの誘導先プロキシサーバ22のIPアドレスを検索する(ステップS58)。PAN21Aは、割当済みの誘導先プロキシサーバ22のIPアドレスがヒットしたか否かを判定する(ステップS59)。
PAN21Aは、割当済みの誘導先プロキシサーバ22のIPアドレスがヒットした場合(ステップS59肯定)、ヒットした誘導先プロキシサーバ22のIPアドレスをDNS応答内に含めて端末装置31に応答転送する(ステップS60)。そして、図11に示す処理動作を終了する。
PAN21Aは、割当済みの誘導先プロキシサーバ22のIPアドレスがヒットしなかった場合(ステップS59否定)、候補リストテーブル52内のプロキシID52Aから最適な誘導先プロキシサーバ22を選定する(ステップS61)。尚、PAN21Aは、誘導先プロキシサーバ22を選定する際、候補リストテーブル52内の各プロキシサーバ22のCPU負荷量及びキャッシュ使用量が最適な誘導先プロキシサーバ22を選定するものである。
PAN21Aは、特定された誘導先プロキシサーバ22のIPアドレスを、当該端末装置31のMACアドレス及びアプリ要求のアプリサーバ名を対応付けた割当情報を割当テーブル54に登録する(ステップS62)。PAN21Aは、割当テーブル54内に割当情報を登録すると、当該PAN21A以外の他のドメインD内のPAN21に対して割当情報を配信する配信依頼をPAC14に通知する(ステップS63)。
更に、PAN21Aは、クエリテーブル53を参照し、DNS応答に対応したDNSクエリ内の送信元IPアドレスを特定する(ステップS64)。尚、PAN21Aは、送信元IPアドレスに基づき、DNS応答先であるDNSクエリ元の端末装置31を特定する。PAN21Aは、特定された送信元IPアドレスに基づき、誘導先プロキシサーバ22のIPアドレスを含むDNS応答を端末装置31に応答転送し(ステップS65)、図11に示す処理動作を終了する。
また、PAN21Aは、DNS応答の回答リソースレコード71H内のIPアドレスが専用IPでない場合(ステップS54否定)、クエリテーブル53を参照し、DNSクエリの送信元のIPアドレスを特定する(ステップS66)。PAN21Aは、DNS応答を送信元のIPアドレスに対応した端末装置31に応答転送し(ステップS67)、図11に示す処理動作を終了する。
また、PAN21Aは、端末装置31のMACアドレスがヒットしなかった場合(ステップS56否定)、DNS応答のパケットを廃棄し(ステップS68)、図11に示す処理動作を終了する。
図11に示すDNS応答転送処理のPAN21Aは、DNSサーバ11からDNS応答内のIPアドレスが専用IPの場合、誘導先プロキシサーバ22経由の端末装置31のアプリ要求と判定する。その結果、PAN21Aは、DNS応答内の専用IPに基づき、誘導先のプロキシサーバ22経由の端末装置31と判定できる。
PAN21Aは、端末テーブル51を参照して、DNS応答に対応したDNSクエリの送信元IPに対応した端末MACからアプリ要求の端末装置31を特定する。その結果、PAN21Aは、DNS応答に対応したDNSクエリの送信元IPに対応したMACアドレスを特定できる。
PAN21Aは、割当テーブル54を参照し、端末MAC及び要求対象のアプリサーバ名に対応した割当済みの誘導先プロキシサーバ22を特定し、誘導先プロキシサーバ22のIPアドレスをDNS応答に付加して端末装置31に応答転送する。その結果、PAN21Aは、複数の誘導先プロキシサーバ22に対する、同一端末装置31の同一要求対象のアプリに関わるキャッシュデータの重複登録を防止できる。
PAN21Aは、割当テーブル54を参照し、端末MAC及び要求対象のアプリサーバ名に対応した割当済みの誘導先プロキシサーバ22がない場合、候補リストテーブル52内のプロキシサーバ22から誘導先プロキシサーバ22を選定する。この際、PAN21Aは、各プロキシサーバ22のCPU負荷量及びキャッシュ使用量に基づき誘導先プロキシサーバ22を選定する。その結果、PAN21Aは、候補リストテーブル52から最適な誘導先プロキシサーバ22を選定できる。
更に、PAN21Aは、新たな割当情報を割当テーブル54内に登録した場合、割当情報の配信依頼をPAC14に通知する。そして、PAC14は、割当情報の配信依頼を受信した場合、割当情報を他のドメインD内のPAN21に報知する。各PAN21は、最新の割当情報を割当テーブル54内に登録している。その結果、各PAN21は、端末装置31がドメインD間を移動した場合でも、複数の誘導先プロキシサーバ22に対する、同一端末装置31の同一要求対象のアプリに関わるキャッシュデータの重複登録を防止できる。
次に端末装置31が誘導先プロキシサーバ22Aからアプリのキャッシュデータを取得する際の動作について説明する。
端末装置31は、PAN21Aから要求対象の誘導先プロキシサーバ22AのIPアドレスを含むDNS応答を受信した場合、IPアドレスに基づき、誘導先プロキシサーバ22Aにアクセスする。誘導先プロキシサーバ22Aは、端末装置31から認証ヘッダ内の端末IDを特定する。尚、端末IDは、例えば、端末装置31の識別IDや利用者ID等である。
また、誘導先プロキシサーバ22Aでは、認証ヘッダがない場合、端末装置31に対して利用者ID及びパスワードを要求する。そして、誘導先プロキシサーバ22Aは、端末装置31からの利用者ID及びパスワードで端末装置31を認証し、認証ヘッダを端末装置31に通知することで、以降、端末装置31発のメッセージには端末IDを含む認証ヘッダが付加する。
そして、誘導先プロキシサーバ22Aは、端末ID及び要求対象のアプリに対応したコンテンツデータを検索する。誘導先プロキシサーバ22Aは、コンテンツデータの検索ミスヒットの場合、端末ID及びアクセス先URLに対応したアクセス制御ルール及び転送ルールを中継ルールサーバ12から取得する。誘導先プロキシサーバ22Aは、アクセス先URLに対応したアプリサーバ13にメッセージを転送し、アプリサーバ13から、コンテンツデータが添付された応答メッセージを受信する。その結果、誘導先プロキシサーバ22Aは、例えば、コンテンツデータ、アクセス制御ルール及び転送ルールを、ユーザIDとアクセス先URLに関連付けてキャッシュする。
また、誘導先プロキシサーバ22Aは、コンテンツデータの検索ヒットの場合、アプリサーバ13を転送せず、端末装置31のDNSクエリに対してコンテンツデータを応答する。その結果、端末装置31は、誘導先プロキシサーバ22A経由からアプリのコンテンツデータを取得できる。
図12は、端末装置31の移動時のDNS応答転送処理に関わる処理動作の一例を示すシーケンス図である。尚、図12では、ドメインD1内のサブネットN1−1から他のドメインD2のサブネットN1−2に端末装置31が移動した場合を例示している。図12において移動後のドメインD2内のサブネットN2−1内のDHCPサーバ32Cは、端末装置31の在圏に応じて、当該端末装置31に対して端末装置31の設定情報を通知する(ステップS71)。尚、設定情報は、端末装置31に付与したIPアドレスの他に、端末装置31のDNSクエリ先であるPAN21BのIPアドレスを含むものとする。更に、DHCPサーバ32Cは、端末装置31のリース情報をPAN21Bに通知する(ステップS72)。尚、リース情報は、端末装置31のIPアドレス、端末装置31のMACアドレス、開始時間及び終了時間等を含む。
PAN21Bは、DHCPサーバ32Cから端末装置31のリース情報を受信した場合、リース情報を端末テーブル51に記憶する(ステップS73)。端末装置31は、DHCPサーバ32Cからの設定情報に基づき、アプリ要求のDNSクエリをPAN21Bに送信する(ステップS74)。尚、DNSクエリには、要求対象のアクセス先アプリサーバ名、例えば、apl1.aa.comを含むものとする。
更に、PAN21Bは、端末装置31からのDNSクエリを受信すると、図10に示すDNSクエリ転送処理を実行する(ステップS75)。PAN21Bは、DNS転送処理を実行後、DNSクエリをDNSサーバ11に転送する(ステップS76)。
DNSサーバ11は、DNSクエリを受信すると、DNSクエリに対応したDNS応答をPAN21Bに送信する(ステップS77)。尚、DNS応答は、誘導先プロキシサーバ22を使用する要求対象のアプリサーバ名に対応した専用IPを含む。
PAN21Bは、DNS応答を受信した後、図11に示すDNS応答転送処理を実行する(ステップS78)。PAN21Bは、DNS応答転送処理を実行した後、ステップS74のDNSクエリに対応したDNS応答を端末装置31に転送する(ステップS79)。尚、DNS応答は、アプリ要求に関わる誘導先のプロキシサーバ22AのIPアドレスを含むものである。その結果、端末装置31は、ドメインD2内のPAN21BからDNS応答を受信した場合、DNS応答内の割当済みの誘導先プロキシサーバ22AのIPアドレスに基づき、誘導先プロキシサーバ22にアクセスする。そして、端末装置31は、誘導先プロキシサーバ22から要求対象のアプリを取得する。つまり、端末装置31は、在圏するドメインD2内のプロキシサーバ22Cを使用するのではなく、割当済みのドメインD1内のプロキシサーバ22Aを使用して要求対象のアプリサーバ13にアクセスする。
図13は、実施例1のデータ提供システム1内の各プロキシサーバ22のキャッシュ状態の一例を示す説明図である。ドメインD1内の端末装置31Aは、URL−X1のアプリサーバ13の誘導先プロキシサーバ22Aとする。ドメインD1内の端末装置31Bは、URL−X2のアプリサーバ13の誘導先プロキシサーバ22Bとする。更に、端末装置31Aは、ドメインD1からドメインD2に移動したとする。
ドメインD1内のプロキシサーバ22A内のキャッシュデータには、コンテンツキャッシュ情報としてアクセス先であるURL−X1のアプリサーバ13に関わるURL及び格納場所が格納されている。更に、プロキシサーバ22A内のキャッシュデータには、アクセス制御ルールとして、端末装置31Aからのアクセスを許可し、端末装置31Aの送信元IP、URL及び転送先可否が格納されている。更に、プロキシサーバ22A内のキャッシュデータには、端末装置31Aからのアクセス転送を許可し、転送制御ルールとしてURL−X1のアプリサーバ13及びURL−X3のアプリサーバ13Bの転送先としてプロキシサーバ3Aが格納されている。
ドメインD1内のプロキシサーバ22B内のキャッシュデータには、コンテンツキャッシュ情報としてアクセス先であるURL−X2のアプリサーバ13に関わるURL及び格納場所が格納されている。更に、プロキシサーバ22B内のキャッシュデータには、アクセス制御ルールとして、端末装置31Bからのアクセスを許可し、端末装置31Bの送信元IP、URL及び転送先可否が格納されている。更に、プロキシサーバ22B内のキャッシュデータには、端末装置31Bからのアクセス転送を許可し、転送制御ルールとしてURL−X2のアプリサーバ13の転送先としてプロキシサーバ3Aが格納されている。
ドメインD2内のプロキシサーバ22C内のキャッシュデータには、コンテンツキャッシュ情報としてアクセス先であるURL−X2のアプリサーバ13及びURL−X3のアプリサーバ13Bに関わるURL及び格納場所が格納されている。更に、プロキシサーバ22C内のキャッシュデータには、アクセス制御ルールとして、端末装置31Aからのアクセスを許可し、端末装置31Aの送信元IP、URL及び転送先可否が格納されている。更に、プロキシサーバ22C内のキャッシュデータには、端末装置31Aからのアクセス転送を許可し、転送制御ルールとしてURL−X2のアプリサーバ13及びURL−X3のアプリサーバ13Bの転送先としてプロキシサーバ3Aが格納されている。
つまり、端末装置31Aは、URL−X1に対するアプリ要求の誘導先プロキシサーバ22Aが割当済みの場合、ドメインD1からドメインD2に移動した場合でも、ドメインD2内のプロキシサーバ22Cを使用せず、誘導先プロキシサーバ22Aにアクセスする。その結果、URL−X1のアプリ要求に関わるキャッシュデータは、誘導先プロキシサーバ22Aに集約されるため、複数のプロキシサーバ22への重複登録を防止できる。
実施例1のPAN21は、端末装置31からアプリ要求が検出されると、端末装置31の端末MAC及び端末装置31が要求するアプリサーバ名に対応した割当済みの誘導先プロキシサーバ22のIPアドレスがあるか否かを判定する。PAN21は、割当済みのプロキシサーバ22のIPアドレスがある場合に、アプリ要求の端末装置31に対して、割当済みの誘導先プロキシサーバ22のIPアドレスを付加してDNS応答する。その結果、端末装置31は、自端末の端末MAC及びアプリサーバ名に対応した割当済みの誘導先プロキシサーバ22のIPアドレスを取得できる。
PAN21は、端末MAC及びアプリサーバ名で割当済みの誘導先プロキシサーバ22を割当テーブル54で管理する。その結果、PAN21は、端末装置31がドメインD間を移動した場合でも、誘導先プロキシサーバ22に対する同一端末装置31及び同一アプリに関わるキャッシュデータの重複登録を防止できる。しかも、キャッシュデータの重複登録を防止することで、プロキシサーバ22の有限なるキャッシュ容量を節減できる。
PAN21は、割当テーブル54を参照し、アプリ要求に関わる端末装置31の端末MAC及びアプリサーバ名に対応した割当済みの誘導先プロキシサーバ22のIPアドレスがない場合、候補リストテーブル52から最適な誘導先プロキシサーバ22を選定する。その結果、PAN21は、端末装置31に対して最適な誘導先プロキシサーバ22を割当てることができる。
PAN21は、候補リストテーブル52から各プロキシサーバ22のCPU負荷量及びキャッシュ使用量が最低の最適な誘導先プロキシサーバ22を選定する。その結果、PAN21は、各プロキシサーバ22の負荷を平準化して負荷の偏りを防止できる。
PAN21は、アプリ要求の端末装置31のMACアドレス、アプリサーバ名及び割当済みの誘導先プロキシサーバ22のIPアドレスを割当情報として割当テーブル54に記憶した場合、各PAN21を管理するPAC14に割当情報の配信依頼を通知する。そして、PAC14は、配信依頼に応じて各PAN21に割当情報を配信する。そして、各PAN21は、割当情報を受信した場合、割当情報を割当テーブル54に記憶する。その結果、各PAN21は、割当テーブル54の内容を共通化することで、同一端末装置31の同一要求対象のアプリに関わるキャッシュデータの誘導先プロキシサーバ22への重複登録を防止できる。
PAN21は、同一サブネットN内の端末装置31にIPアドレスを割り当てるDHCPサーバ32から当該端末装置31のIPアドレス及びMACアドレスを取得すると、端末装置31毎のIPアドレス及びMACアドレスを端末テーブル51に記憶する。その結果、PAN21は、IPアドレスは勿論のこと、MACアドレスで端末装置31を識別できる。
DNSサーバ11は、アプリ要求毎に、当該アプリ要求が、誘導先プロキシサーバ22経由でアプリを取得するアプリ要求であることを示す専用IPを一括管理する。PAN21は、端末装置31のアプリ要求の応答結果としてDNSサーバ11から専用IPを受信し、専用IPの有無に基づき、端末装置31からのアプリ要求が、誘導先プロキシサーバ22を使用するアプリ要求であるか否かを判定する。PAN21は、DNSサーバ11からのDNS応答内の専用IPで誘導先プロキシサーバ22のアプリ要求を識別できる。
データ提供システム1では、端末装置31のMACアドレス及びアクセス先アプリサーバ名に対応したキャッシュデータが、端末装置31のドメインD間の移動に依らずに、1台の誘導先プロキシサーバ22に集約される。その結果、各プロキシサーバ22でキャッシュデータの重複登録を防止し、かつ、各プロキシサーバ22のキャッシュデータ量の偏りを防止できる。
尚、実施例1では、DNSサーバ11が要求対象のアプリサーバ名及び専用IPを対応付けて一括管理する。そして、PAN21は、DNSサーバ11から専用IPを含むDNS応答を受信し、専用IPに基づき、アプリ要求が誘導先プロキシサーバ22を使用するアプリ要求と判定した。しかしながら、各ドメインDのPAN21が誘導先プロキシサーバ22を使用するアプリ要求を識別するアプリサーバ名を管理しても良い。この場合の実施の形態につき、実施例2として以下に説明する。尚、実施例1のデータ提供システム1と同一の構成には、同一符号を付すことで、その重複する構成及び動作の説明については省略する。
図14は、実施例2のデータ提供システムに関わる事前準備処理に関わる処理動作の一例を示すシーケンス図である。図14においてデータ提供システム1A内の管理者15は、ステップS17にて誘導先プロキシサーバ22を用いて要求対象のアプリサーバ名をPAC14内に登録した後、要求対象のアプリサーバ名を各ドメインD内のPAN21に登録する(ステップS18A)。各PAN21は、要求対象のアプリサーバ名を図示せぬ誘導対象テーブル内に登録し(ステップS19A)、図14に示す処理動作を終了する。尚、誘導対象テーブルは、要求対象のアプリサーバ名を管理している。各ドメインD内のPAN21は、要求対象のアプリサーバ名を誘導対象テーブル内に登録している。
図15は、DNSクエリ転送処理に関わるPAN21Aの処理動作の一例を示すフローチャートである。DNSクエリ転送処理は、アプリ要求のDNSクエリを受信した場合、端末装置31のMACアドレス及び要求対象のアプリサーバ名に対応した、割当済みの誘導先プロキシサーバ22のIPアドレスを付加したDNS応答として端末装置31に転送する処理である。
図15においてPAN21Aは、端末装置31からDNSクエリを受信した場合(ステップS101)、DNSクエリ内の質問セクション71G中に格納された問合せ先ホスト名を抽出する(ステップS102)。PAN21Aは、抽出された問合せ先ホスト名が誘導対象テーブル内の要求対象のアプリサーバ名から検索する(ステップS103)。
PAN21は、要求対象のアプリサーバ名がヒットしたか否かを判定する(ステップS104)。PAN21Aは、要求対象のアプリサーバ名がヒットした場合(ステップS104肯定)、端末テーブル51を参照して、DNSクエリの送信元IPのIPアドレスに対応した端末装置31のMACアドレスを検索する(ステップS105)。
PAN21Aは、端末装置31のMACアドレスがヒットしたか否かを判定する(ステップS106)。PAN21Aは、端末テーブル51を参照し、ヒットした端末装置31のMACアドレスの内、開始時間が最新のMACアドレスを特定する(ステップS107)。
PAN21Aは、割当テーブル54を参照し、特定された端末装置31のMACアドレス及び、要求対象のアプリサーバ名に対応した割当済みの誘導先プロキシサーバ22のIPアドレスを検索する(ステップS108)。PAN21Aは、割当済みのプロキシサーバ22のIPアドレスがヒットしたか否かを判定する(ステップS109)。
PAN21Aは、割当済みの誘導先プロキシサーバ22のIPアドレスがヒットした場合(ステップS109肯定)、ヒットしたプロキシサーバ22のIPアドレスをDNS応答内に含めて端末装置31に送信する(ステップS110)。そして、図15に示す処理動作を終了する。
PAN21Aは、割当済みの誘導先プロキシサーバ22のIPアドレスがヒットしなかった場合(ステップS109否定)、候補リストテーブル52から最適な誘導先プロキシサーバ22として選定する(ステップS111)。尚、PAN21Aは、誘導先プロキシサーバ22を選定する際、候補リストテーブル52から各プロキシサーバ22のCPU負荷量及びキャッシュ使用量が最適なプロキシサーバ22を選定する。
PAN21Aは、選定された誘導先プロキシサーバ22のIPアドレスを、当該端末装置31のMACアドレス及びアプリ要求のアプリサーバ名を対応付けた割当情報を割当テーブル54に登録する(ステップS112)。PAN21Aは、割当テーブル54内に割当情報を登録すると、当該PAN21A以外の他のドメインD内のPAN21に対して割当情報を配信する配信依頼をPAC14に通知する(ステップS113)。
更に、PAN21Aは、クエリテーブル53を参照し、DNS応答に対応したDNSクエリ内の送信元IPのIPアドレスを特定する(ステップS114)。尚、PAN21Aは、送信元IPのIPアドレスに基づき、送信元の端末装置31を特定する。PAN21Aは、特定された送信元IPアドレスに基づき、誘導先のプロキシサーバ22のIPアドレスを含むDNS応答を端末装置31に送信する(ステップS115)。そして、図15に示す処理動作を終了する。
また、PAN21Aは、要求対象のアプリサーバ名がヒットしなかった場合(ステップS104否定)、DNSクエリ内の情報をクエリテーブル53に登録する(ステップS116)。PAN21Aは、DNSクエリをDNSサーバ11に転送し(ステップS117)、図15に示す処理動作を終了する。
また、PAN21Aは、端末装置31のMACアドレスがヒットしなかった場合(ステップS106否定)、DNSクエリのパケットを廃棄し(ステップS118)、図15に示す処理動作を終了する。
図15のDNS応答転送処理のPAN21Aは、端末装置31からDNSクエリを受信し、DNSクエリの問合せ先ホスト名が誘導対象テーブル内の要求対象のアプリサーバ名の場合、誘導先プロキシサーバ22経由の端末装置31のアプリ要求と判定する。その結果、PAN21Aは、誘導対象テーブルを参照し、端末装置31のDNSクエリが誘導先プロキシサーバ22経由の要求対象のアプリ要求と判定できる。そして、PAN21Aは、DNSサーバ11に問い合わせることなく、誘導先プロキシサーバ22のアプリ要求と判定できるため、応答速度が向上する。
PAN21Aは、端末テーブル51を参照して、DNSクエリの送信元IPに対応した端末MACからアプリ要求の端末装置31を特定する。その結果、PAN21Aは、DNSクエリの送信元IPに対応したMACアドレスを特定できる。
PAN21Aは、割当テーブル54を参照し、端末MAC及び要求対象のアプリサーバ名に対応した割当済みの誘導先プロキシサーバ22を特定し、誘導先プロキシサーバ22のIPアドレスをDNS応答に付加して端末装置31に応答する。その結果、PAN21Aは、複数の誘導先プロキシサーバ22に対して、同一端末装置31の同一要求対象のアプリに関わるキャッシュデータの重複登録を防止できる。
PAN21Aは、割当テーブル54を参照し、端末MAC及び要求対象のアプリサーバ名に対応した割当済みの誘導先プロキシサーバ22がない場合、候補リストテーブル52内のプロキシサーバ22から誘導先プロキシサーバ22を選定する。この際、PAN21Aは、各プロキシサーバ22のCPU負荷量及びキャッシュ使用量に基づき誘導先プロキシサーバ22を選定する。その結果、PAN21Aは、候補リストテーブル52から最適な誘導先プロキシサーバ22を選定できる。
更に、PAN21Aは、新たな割当情報を割当テーブル54内に登録した場合、割当情報の配信依頼をPAC14に通知する。そして、PAC14は、割当情報の配信依頼に応じて、割当情報を他のドメインD内の各PAN21に配信する。PAN21は、割当情報を受信した場合、当該割当情報を割当テーブル54内に登録する。その結果、各PAN21は、最新の割当情報を割当テーブル54内に登録しているため、端末装置31がドメインD間を移動した場合でも、複数の誘導先プロキシサーバ22へのキャッシュデータの重複登録を防止できる。
図16は、DNS応答転送処理に関わるPAN21Aの処理動作の一例を示すフローチャートである。図16に示すDNS応答転送処理は、DNSサーバ11からDNSクエリに対応したDNS応答を端末装置31に転送する処理である。
図16においてPAN21Aは、DNSサーバ11からDNS応答を受信した場合(ステップS121)、クエリテーブル53を参照し、DNS応答に対応したDNSクエリを検索する(ステップS122)。PAN21Aは、クエリテーブル53を参照し、DNSクエリの送信元IPのIPアドレスを特定する(ステップS123)。PAN21Aは、送信元IPのIPアドレスの端末装置31に対して、DNSサーバ11からのDNS応答を転送し(ステップS124)、図16に示す処理動作を終了する。
実施例2のPAN21は、アプリ要求毎に、当該アプリ要求が、誘導先プロキシサーバ22を使用するアプリ要求を識別する要求対象のアプリサーバ名を管理する誘導対象テーブルを有する。PAN21は、端末装置31からのアプリ要求を受信すると、誘導対象テーブルを参照し、端末装置31からのアプリ要求が、誘導先プロキシサーバ22を使用したアプリ要求であるか否かを判定する。その結果、PAN21は、端末装置31からDNSクエリをDNSサーバ11に転送せずとも、端末装置31のアプリ要求が誘導先プロキシサーバ22を使用したアプリ要求であるか否かを判定できるため、DNSクエリに対する応答速度の向上を図ることができる。
尚、上記実施例1及び2では、ドメインD毎にPAN21を配置し、端末装置31がドメインD間で移動し、端末装置31が要求対象のアプリを要求する場合には割当済みの誘導先プロキシサーバ22を使用した。従って、移動元のドメインD1と移動先のドメインD2とが近隣の場合には有効である。
しかしながら、端末装置31の移動元のドメインD1と移動先のドメインD2との間の距離が長い場合がある。例えば、移動元のドメインD1が神奈川県で、移動先のドメインD2が北海道の場合、端末装置31が北海道からわざわざ神奈川県の誘導先プロキシサーバ22を使用することになるため、DNSクエリに対する応答速度が低下することも考えられる。そこで、このような想定に対処する実施の形態として、以下に実施例3として説明する。尚、実施例1のアプリ提供システム1と同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。
図17は、実施例3のデータ提供システムの一例を示す説明図である。図17に示すデータ提供システム1BのドメインD3は、サブネットN毎にPAN21(21D,21E)を配置している。PAN21は、端末装置31の割当情報をPAC14に通知する。そして、PAC14は、割当情報を受信したPAN21Dが配置された同一ドメインD3内の全PAN21Eに割当情報を配信する。しかし、PAC14は、割当情報を受信したPAN21Eが配置されたドメインD3と異なるドメインD4内のPAN21(21F)への割当情報の配信を禁止する。
例えば、端末装置31がドメインD3内のサブネットN3−1に在圏中にアプリ要求をPAN21Dに通知したとする。この際、PAN21Dは、アプリ要求の端末装置31の誘導先プロキシサーバ22のIPアドレスを端末装置31に提供する際、割当情報を割当テーブル54内に登録する。更に、PAN21Dは、割当情報をPAC14に通知する。
PAC14は、PAN21Dからの割当情報を受信した場合、当該PAN21Dと同一ドメインD3内の他のPAN21Eに割当情報を配信する。尚、PAC14は、割当情報を送信したPAN21Eと異なるドメインD4内の全PAN21に対する割当情報の配信を禁止する。同一ドメインD3内の各PAN21D,21Eは、PAC14からの割当情報を受信した場合、割当情報を割当テーブル54内に登録する。
その結果、同一ドメインD3内の各PAN21D,21Eは、同一ドメインD3内で端末装置31が移動した場合でも、割当テーブル54を参照して、当該端末装置31のアプリ要求に関わる誘導先プロキシサーバ22のIPアドレスを端末装置31に通知する。端末装置31は、誘導先プロキシサーバ22のIPアドレスに基づき、誘導先プロキシサーバ22から要求対象アプリのキャッシュデータを取得できる。
しかしながら、端末装置31がドメインD3からドメインD4に移動した場合、移動先のPAN21Fは、割当テーブル54を参照しても、当該端末装置31のアプリ要求に関わる誘導先プロキシサーバ22を検索できない。従って、PAN21Fは、移動先のドメインD4内で新たな誘導先プロキシサーバ22を割当てる。そして、移動先のPAN21Fは、割当情報をPAC14に通知する。更に、PAC14は、当該割当情報を送信したPAN21Fと同一ドメインD4内の各PAN21に割当情報を配信する。そして、同一ドメインD4内の各PAN21は、受信した割当情報を割当テーブル54に夫々登録する。
例えば、遠隔地のドメインD3,D4間で端末装置31が移動した場合、移動先のPAN21Fは、移動先のドメインD4内の要求対象のアプリに関わる誘導先プロキシサーバ22を用いる。その結果、端末装置31は、移動先ドメインD4から遠隔地のドメインD3内の誘導先プロキシサーバ22を使用せず、移動先ドメインD4の誘導先プロキシサーバ22を使用するため、通信距離の長距離化によるDNSクエリに対する応答速度の低下を防止できる。
尚、上記実施例のPAN21は、プロキシサーバ22と別体としたが、プロキシサーバ22内に内蔵しても良い。
また、上記実施例のDHCPサーバ32は、端末装置31にIPアドレスを割り当てると、PAN21に対して端末装置31のリース情報を送信した。しかしながら、PAN21は、DHCPサーバ32に対して端末装置31のリース情報をPULL方式で定期的に取得するようにしても良い。
また、上記実施例のPAN21は、DNSクエリ内の送信元IPから端末MACを特定したが、DNSクエリ内の送信元MACから端末MACを特定することも考えられる。しかしながら、端末装置31とPAN21との間にルータが配置された場合、DNSクエリ内の送信元MACがルータのMACアドレスとなるため、端末MACを特定できない。従って、PAN21は、端末テーブル51を参照して、DNSクエリ内の送信元IPから端末MACを特定するようにした。
また、上記実施例1では、ドメインD毎にPAN21を配置し、PAN21内で割当テーブル54内の割当情報を登録した場合、他のドメインD内のPAN21に対して割当情報を配信した。しかしながら、遠隔地にあるドメインD間のPAN21では、PAC14による割当情報の配信を禁止しても良い。この場合、PAC14は、PAN21から割当情報の配信依頼を受信した場合、当該PAN21のドメインDから所定距離の遠隔地にある他のドメインDを識別し、当該他のドメインD内のPAN21への割当情報の配信を禁止する。
また、端末装置31を、例えば、センサ機器とし、プロキシサーバ22を、例えば、ゲートウェイ(以下、単にGWと称する)とし、センサ機器に対してGW経由でアプリサーバ13からセンサ機器の測定アプリを提供するシステムにも適用可能である。
また、上記実施例のPAN21は、アプリ要求の端末装置31のMACアドレス及び要求対象のアプリサーバ名に対応した割当済みの誘導先プロキシサーバ22がある場合、アプリ要求の端末装置31に誘導先プロキシサーバ22のIPアドレスを提供する。しかしながら、PAN21は、アプリ要求の端末装置31のMACアドレスに対応した割当済みの誘導先プロキシサーバ22がある場合に、アプリ要求の端末装置31に対して誘導先プロキシサーバ22のIPアドレスを提供しても良い。
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
更に、各装置で行われる各種処理機能は、CPU(Central Processing Unit)(又はMPU(Micro Processing Unit)、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、CPU(又はMPU、MCU等のマイクロ・コンピュータ)で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良いことは言うまでもない。
ところで、本実施例で説明した各種の処理は、予め用意されたプログラムを情報処理装置で実行することで実現できる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行する情報処理装置の一例を説明する。図18は、割当プログラムを実行する情報処理装置100を示す説明図である。
図11において割当プログラムを実行する情報処理装置100では、通信インタフェース110、ROM120、RAM130、CPU140を有する。
そして、ROM120には、上記実施例と同様の機能を発揮する割当プログラムが予め記憶されている。尚、ROM120ではなく、図示せぬドライブで読取可能な記録媒体に割当プログラムが記録されていても良い。また、記録媒体としては、例えば、CD−ROM、DVDディスク、USBメモリ、SDカード等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でも良い。割当プログラムとしては、判定プログラム120A及び制御プログラム120Bである。尚、プログラム120A及び120Bについては、適宜統合又は分散しても良い。
そして、CPU140は、これらのプログラム120A及び120BをROM120から読み出し、これら読み出された各プログラムを実行する。そして、CPU140は、各プログラム120A及び120Bを、判定プロセス140A及び制御プロセス140Bとして機能する。
CPU140は、通信インタフェース110を用いて、複数のプロキシサーバの内、端末装置からのデータ要求に応じて格納サーバからデータを取得し、取得されたデータを保存するプロキシサーバを割当てる。更に、CPU140は、端末装置からデータ要求が検出されると、端末装置のMACアドレスに対応した割当済みのプロキシサーバがあるか否かを判定する。CPU140は、割当済みのプロキシサーバがある場合に、データ要求の端末装置に対して、当該割当済みのプロキシサーバのIPアドレスを通知する。その結果、複数のプロキシサーバに対する同一端末装置の同一データ要求に関わるデータの重複登録を防止できる。
以上、本実施例を含む実施の形態に関し、更に以下の付記を開示する。
(付記1)複数のプロキシサーバの内、端末装置からのデータ要求に応じて格納サーバからデータを取得し、取得されたデータを保存するプロキシサーバを割当てる割当装置であって、
前記端末装置から前記データ要求が検出されると、前記端末装置のMACアドレスに対応した割当済みのプロキシサーバがあるか否かを判定する判定部と、
前記割当済みのプロキシサーバがある場合に、前記データ要求の端末装置に対して、当該割当済みのプロキシサーバのIPアドレスを通知する制御部と
を有することを特徴とする割当装置。
(付記2)前記判定部は、
前記端末装置のMACアドレス及び前記端末装置が要求する前記データに関わるデータ識別情報に対応した前記割当済みのプロキシサーバがあるか否かを判定することを特徴とする付記1に記載の割当装置。
(付記3)前記端末装置毎に、当該端末装置のIPアドレス及びMACアドレスを対応付けて記憶した端末記憶部と、
前記端末装置から前記データ要求が検出されると、前記端末記憶部を参照して、当該データ要求の送信元のIPアドレスに対応したMACアドレスを取得する取得部と、
前記端末装置のMACアドレス、前記端末装置が要求する前記データに関わるデータ識別情報及び、当該データを取得するのに割当済みのプロキシサーバを対応付けて記憶した割当記憶部とをさらに有し、
前記判定部は、
前記割当記憶部を参照して、前記データ要求に関わる前記端末装置のMACアドレス及びデータ識別情報に対応した前記割当済みのプロキシサーバがあるか否かを判定することを特徴とする付記2に記載の割当装置。
(付記4)前記制御部は、
前記判定部によって、前記割当記憶部を参照して、前記データ要求に関わる前記端末装置のMACアドレス及びデータ識別情報に対応した前記割当済みのプロキシサーバがないと判定された場合に、複数のプロキシサーバの内、プロキシサーバを割り当て、当該プロキシサーバ、当該データ要求の前記端末装置のMACアドレス及びデータ識別情報を前記割当記憶部に記憶することを特徴とする付記3に記載の割当装置。
(付記5)前記制御部は、
前記複数のプロキシサーバの内、各プロキシサーバの負荷量に基づき、前記プロキシサーバを割当てることを特徴とする付記2〜4の何れか一つに記載の割当装置。
(付記6)前記制御部は、
前記データ要求の前記端末装置の前記MACアドレス、前記データ識別情報及び前記割当済みのプロキシサーバを割当情報として前記割当記憶部に記憶されると、各割当装置を管理する制御サーバに前記割当情報を通知すると共に、
前記制御サーバから前記割当情報を受信した場合に、前記割当情報を前記割当記憶部に記憶することを特徴とする付記2〜5の何れか一つに記載の割当装置。
(付記7)前記制御部は、
同一グループ内の端末装置にIPアドレスを割り当てるIP割当サーバから当該端末装置のIPアドレス及びMACアドレスを取得すると、当該端末装置毎のIPアドレス及びMACアドレスを前記端末記憶部に記憶することを特徴とする付記1〜6の何れか一つに記載の割当装置。
(付記8)前記データ要求毎に、当該データ要求が、前記プロキシサーバが前記格納サーバからデータを取得するデータ要求を識別する識別子を管理する管理サーバに対して、前記端末装置からのデータ要求を受信した場合に、当該データ要求を転送する転送部をさらに有し、
前記制御部は、
前記管理サーバから前記端末装置のデータ要求の応答結果として前記識別子を受信し、受信された前記識別子に基づき、前記端末装置からのデータ要求が、前記プロキシサーバが前記格納サーバからデータを取得するデータ要求であるか否かを判定することを特徴とする付記1〜7の何れか一つに記載の割当装置。
(付記9)前記データ要求毎に、当該データ要求が、前記プロキシサーバが前記格納サーバからデータを取得するデータ要求を識別する識別子を管理する識別子記憶部をさらに有し、
前記制御部は、
前記端末装置からのデータ要求を受信すると、前記識別子記憶部の前記識別子を参照し、前記端末装置からの前記データ要求が、前記プロキシサーバが前記格納サーバからデータを取得するデータ要求であるか否かを判定することを特徴とする付記1〜7の何れか一つに記載の割当装置。
(付記10)複数のプロキシサーバの内、端末装置からのデータ要求に応じて格納サーバからデータを取得し、取得されたデータを保存するプロキシサーバを割当てる情報処理装置に、
前記端末装置から前記データ要求が検出されると、前記端末装置のMACアドレスに対応した割当済みのプロキシサーバがあるか否かを判定し、
前記割当済みのプロキシサーバがある場合に、前記データ要求の端末装置に対して、当該割当済みのプロキシサーバのIPアドレスを通知する
各処理を実行させることを特徴とする割当プログラム。
(付記11)複数のプロキシサーバの内、端末装置からのデータ要求に応じて格納サーバからデータを取得し、取得されたデータを保存するプロキシサーバを割当てる割当装置の割当方法であって、
前記端末装置から前記データ要求が検出されると、前記端末装置のMACアドレスに対応した割当済みのプロキシサーバがあるか否かを判定し、
前記割当済みのプロキシサーバがある場合に、前記データ要求の端末装置に対して、当該割当済みのプロキシサーバのIPアドレスを通知する
各処理を実行することを特徴とする割当方法。