Abstract:
A proxy assignment apparatus includes a processor or wired logic hardware configured to detect a first data request issued from a terminal apparatus for requesting first data. The processor or wired logic hardware is configured to determine whether a first proxy server that satisfies a condition exists, wherein the first proxy server corresponds to a media access control address of the terminal apparatus. The processor or wired logic hardware is configured to report a first internet protocol address of the first proxy server to the terminal apparatus when it is determined that the first proxy server exists.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
       [0001]    This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2013-059084 filed on Mar. 21, 2013, the entire contents of which are incorporated herein by reference. 
       FIELD 
       [0002]    The embodiments discussed herein are related to a proxy assignment apparatus and a method for assigning a proxy. 
       BACKGROUND 
       [0003]    When corporate users and so on at their corporate location obtain application programs (which may hereinafter be referred to simply as “applications”) by using their terminal apparatuses, they obtain the applications from application servers storing the applications through an in-house local area network (LAN) or a wide area network (WAN), such as the Internet. In this case, proxy servers that serve as relay apparatuses in an application layer are provided between the terminal apparatuses and the WAN, and the terminal apparatuses use the proxy servers to obtain the applications from the application servers. 
         [0004]    When one terminal apparatus issues a request (application request) for an application to an application server, a proxy assignment apparatus assigns a guide-target proxy server from among the proxy servers to the terminal apparatus. The guide-target proxy server serves to guide the application request destined for an application uniform resource locator (URL) of the application server to be accessed. The application URL indicates a location where the requested application is stored. The guide-target proxy server, in place of the terminal apparatus, accesses the application URL to obtain and cache content data of the requested application. Thus, by accessing the guide-target proxy server to obtain the cache data in the guide-target proxy server, the terminal apparatus may obtain the requested application. 
         [0005]    Related technique is disclosed in, for example, Japanese Laid-open Patent Publication No. 2010-130604. 
         [0006]    The proxy assignment apparatus identifies a terminal apparatus that issues an application request by using an internet protocol (IP) address assigned to the terminal apparatus, and assigns a guide-target proxy server for the requested application to the terminal apparatus. 
         [0007]    However, for example, in a system in which different IP addresses are assigned to the same terminal apparatus for respective domains, when the terminal apparatus moves from one domain to another, the IP address before the movement and the IP address after the movement differ from each other. Thus, even when the same terminal apparatus issues requests for the same application, the proxy assignment apparatus may assign different guide-target proxy servers to the same terminal apparatus, since the IP address of the terminal apparatus before the movement and the IP address of the terminal apparatus after the movement differ from each other. Consequently, cache data of the same application for the same terminal apparatus is redundantly registered in both of the guide-target proxy server before the movement and the guide-target proxy server after the movement. 
       SUMMARY 
       [0008]    According to an aspect of the present invention, provided is a proxy assignment apparatus including a processor or wired logic hardware. The processor or wired logic hardware is configured to detect a first data request issued from a terminal apparatus. The first data request is for requesting first data. The processor or wired logic hardware is configured to determine whether a first proxy server that satisfies a condition exists. The condition is that the first proxy server corresponds to a media access control (MAC) address of the terminal apparatus. The processor or wired logic hardware is configured to report a first internet protocol (IP) address of the first proxy server to the terminal apparatus when it is determined that the first proxy server exists. 
         [0009]    The objects and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims. 
         [0010]    It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed. 
     
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0011]      FIG. 1  is a block diagram illustrating an example of a data providing system according to a first embodiment; 
           [0012]      FIG. 2  is a block diagram illustrating an example of a PAN; 
           [0013]      FIG. 3  illustrates an example of a terminal table; 
           [0014]      FIG. 4  illustrates an example of a candidate-list table; 
           [0015]      FIG. 5  illustrates an example of a query table; 
           [0016]      FIG. 6  illustrates an example of an assignment table; 
           [0017]      FIG. 7  illustrates an example of a format structure of a packet; 
           [0018]      FIG. 8  is a sequence diagram illustrating an example of a processing operation for preparation processing performed in a data providing system according to the first embodiment; 
           [0019]      FIG. 9  is a sequence diagram illustrating an example of a processing operation for proxy-server assignment processing performed in a data providing system according to the first embodiment; 
           [0020]      FIG. 10  is a flowchart illustrating an example of a processing operation for DNS-query transfer processing performed by a PAN; 
           [0021]      FIG. 11  is a flowchart illustrating an example of a processing operation for DNS-response transfer processing performed by a PAN; 
           [0022]      FIG. 12  is a sequence diagram illustrating an example of a processing operation for DNS-response transfer processing when a terminal apparatus is moved; 
           [0023]      FIG. 13  illustrates an example of cache states of proxy servers in a data providing system according to the first embodiment; 
           [0024]      FIG. 14  is a sequence diagram illustrating an example of a processing operation for preparation processing performed in a data providing system according to a second embodiment; 
           [0025]      FIG. 15  is a flowchart illustrating an example of a processing operation for DNS-query transfer processing performed by a PAN; 
           [0026]      FIG. 16  is a flowchart illustrating an example of a processing operation for DNS-response transfer processing performed by a PAN; 
           [0027]      FIG. 17  is a block diagram illustrating an example of a data providing system according to a third embodiment; and 
           [0028]      FIG. 18  is a block diagram illustrating an information processing apparatus that executes a proxy assignment program. 
       
    
    
     DESCRIPTION OF EMBODIMENTS 
       [0029]    Embodiments of a proxy assignment apparatus and a method for assigning a proxy disclosed herein will be described below in detail with reference to the accompanying drawings. The embodiments described hereinafter are not intended to limit the technology disclosed herein. The embodiments may also be combined together, as appropriate, within a range in which no contradiction occurs. 
       First Embodiment 
       [0030]      FIG. 1  is a block diagram illustrating an example of a data providing system according to a first embodiment. A data providing system  1  illustrated in  FIG. 1  includes a plurality of domains D (D 1  and D 2 ) and a data center (hereinafter simply referred to as a “DC”)  2 . The domains D and the DC  2  are connected through a WAN  3 . Each domain D is, for example, a group for managing a collection of subnet addresses in corporate buildings in a region. The DC  2  includes a domain name system (DNS) server  11 , a relay-rule server  12 , a plurality of application servers  13  ( 13 A and  13 B), and a proxy assignment controller (hereinafter simply referred to as a “PAC”)  14 . 
         [0031]    Each application server  13  is, for example, a storage server for storing applications and supplying the stored applications. The applications include, for example, not only applications that run according to a web protocol (Hypertext Transfer Protocol: HTTP), but also applications that run according to a protocol other than a web protocol, and so on. The relay-rule server  12  provides, for example, access control rules and transfer control rules for controlling whether or not access to the DNS server  11  or each application server  13  is permitted. The DNS server  11  is, for example, a management server for managing the plurality of application servers  13 . The PAC  14  is, for example, a control server for managing proxy assignment apparatuses (proxy assignment executing nodes, hereinafter simply referred to as “PANs”)  21  placed in the respective domains D. 
         [0032]    The domain D 1  has a plurality of subnets N (N 1 - 1  and N 1 - 2 ), the PAN  21  ( 21 A), and a plurality of proxy servers  22  ( 22 A and  22 B). In addition, each subnet N includes a terminal apparatus  31  and a dynamic host configuration protocol (DHCP) server  32  ( 32 A or  32 B). The terminal apparatus  31  is used by a user and is, for example, a personal computer, a smartphone, a tablet terminal, or sensor equipment having a communication function. The DHCP server  32  is, for example, an IP-address assignment server for automatically assigning information, such as an IP address, to the terminal apparatus  31  and equipment in the subnet N. The DHCP server  32  assigns an IP address to the terminal apparatus  31  in the subnet N managed by the DHCP server  32  and reports the assigned IP address and a media access control (MAC) address of the terminal apparatus  31  to the PAN  21 . The DHCP server  32  assigns (reports), to the terminal apparatus  31 , the DNS server  11  to be used by the terminal apparatus  31 . 
         [0033]    In place of the terminal apparatus  31 , the proxy server  22  in the domain D accesses, via a proxy server  3 A in the WAN  3 , the application server  13  in which an application requested by the terminal apparatus  31  is stored. The proxy server  22  then obtains content data of the requested application from the application server  13  and caches the content data. In response to an application request from the terminal apparatus  31 , the PAN  21  assigns, from among plurality of proxy servers  22  in the domain D, a guide-target proxy server  22  handling the requested application to the terminal apparatus  31  that issued the application request. For example, in response to an application request from the terminal apparatus  31 , the PAN  21 A in the domain D 1  is assumed to assign, from among the proxy servers  22 A and  22 B, the guide-target proxy server  22 A for the requested application. The PAN  21  selects the guide-target proxy server  22  from among the plurality of proxy servers  22 , considering the amount of central processing unit (CPU) load and the amount of cache of each proxy server  22 . As a result, it is possible to perform adjustment so that the loads of the guide-target proxy servers  22  may not become unbalanced. Although the configuration of the domain D 1  has been described above for convenience of description, a PAN  21 B in the domain D 2  also has substantially the same configuration and thus redundant descriptions are not given hereinafter. The domain D 2  has a subnet N (N 2 - 1 ), the PAN  21  ( 21 B), and a proxy server  22  ( 22 AC). The subnet N 2 - 1  includes a terminal apparatus  31  and a DHCP server  32  ( 32 C). 
         [0034]      FIG. 2  is a block diagram illustrating an example of the PAN  21 . The PAN  21  illustrated in  FIG. 2  includes a communication interface  41 , a storage unit  42 , and a CPU  43 . The communication interface  41 , for example, connects to and communicates with the DHCP servers  32  and terminal apparatuses  31  in the domain D 1  and also communicates and connects to the WAN  3 . The communication interface  41  connects to and communicates with the DNS server  11  and the PAC  14  through the WAN  3 . The storage unit  42  stores therein a terminal table  51 , a candidate-list table  52 , a query table  53 , and an assignment table  54 . 
         [0035]      FIG. 3  illustrates an example of the terminal table  51 . The terminal table  51  illustrated in  FIG. 3  is, for example, a terminal storage unit for managing address information of the terminal apparatuses  31  that are located in the domain D 1 . The terminal table  51  manages a DHCP-server IP  51 A, a terminal IP  51 B, a terminal MAC  51 C, start time  51 D, and end time  51 E in association with each other. The DHCP-server IP  51 A is an IP address of the DHCP server  32  that has assigned an IP address to the terminal apparatus  31 . The terminal IP  51 B is an IP address assigned to the terminal apparatus  31  by the DHCP server  32 . The terminal MAC  51 C is an apparatus-unique address of the terminal apparatus  31 . The start time  51 D indicates the date and time of starting of an IP-address lease in which the DHCP server  32  assigns an IP address to the terminal apparatus  31 . The end time  51 E is the scheduled date and time of ending of the IP-address lease in which the DHCP server  32  assigns the IP address to the terminal apparatus  31 . 
         [0036]      FIG. 4  illustrates an example of the candidate-list table  52 . The candidate-list table  52  illustrated in  FIG. 4  manages, as guide-target candidates, the proxy servers  22  in the same domain D managed by the PAN  21 . The candidate-list table  52  manages a proxy identifier (ID)  52 A and a proxy IP  52 B in association with each other. Each proxy ID  52 A is an ID of the proxy server  22  that is a guide-target candidate. Each proxy IP  52 B is an IP address of the proxy server  22  that is a guide-target candidate. Guide-target candidates in the domain D 1  managed by the PAN  21 A are, for example, proxy servers  22 A and  22 B. 
         [0037]      FIG. 5  illustrates an example of the query table  53 . In the query table  53  illustrated in  FIG. 5 , for example, pre-transfer query information and post-transfer query information in transferring a DNS query by the PAN  21  are managed in association with each other. The query table  53  manages a transmission-source IP  53 A, an inquiry ID  53 B in the pre-transfer query information, and an inquiry ID  53 C in the post-transfer query information in association with each other. The transmission-source IP  53 A is a transmission-source IP address included in a DNS query. The inquiry ID  53 B in the pre-transfer query information is an ID for identifying a DNS query. The inquiry ID  53 C in the post-transfer query information is an ID for identifying a DNS query to be transferred. By referring to the query table  53 , the PAN  21  may transfer, for example, a DNS query from the terminal apparatus  31  to the DNS server  11 . In addition, by referring to the query table  53 , the PAN  21  may transfer, from the DNS server  11  to the terminal apparatus  31 , for example, a DNS response corresponding to the DNS query. 
         [0038]      FIG. 6  illustrates an example of the assignment table  54 . The assignment table  54  illustrated in  FIG. 6  is, for example, an assignment storage unit for managing a terminal MAC  54 A, an application server name  54 B, and a proxy ID  54 C in association with each other. The terminal MAC  54 A is a MAC address of a terminal apparatus  31  that issues an application request. The application server name  54 B is used to identify an application server  13  in which a requested application is stored. The proxy ID  54 C is an ID for identifying a guide-target proxy server  22  for the application server  13  in which the requested application is stored. The PAN  21  identifies the MAC address of the terminal apparatus  31  that has issued an application request and the name of an application server (requested-application server) to be requested. By referring to the assignment table  54 , the PAN  21  determines the ID of an already-assigned guide-target proxy server  22  corresponding to the MAC address of a terminal apparatus  31  that has issued an application request and the name of the requested-application server. 
         [0039]    The CPU  43  illustrated in  FIG. 2  includes a transfer unit  61 , a response transfer unit  62 , and an assigning unit  63 . The CPU  43  reads a proxy assignment program (not illustrated) stored in the storage unit  42  and performs the transfer unit  61 , the response transfer unit  62 , and the assigning unit  63  as processes in accordance with the read proxy assignment program. Upon receiving a DNS query from the terminal apparatus  31 , the transfer unit  61  transfers the DNS query to the DNS server  11 . During the transfer, the transfer unit  61  obtains the transmission-source IP  53 A and the inquiry ID  53 B in the DNS query and registers the transmission-source IP  53 A and the inquiry ID  53 B in the query table  53  in association with each other. In addition, during the transfer of the DNS query to the DNS server  11 , the transfer unit  61  registers, in the query table  53 , the inquiry ID in the post-transfer DNS query as the inquiry ID  53 C in the post-transfer query information. 
         [0040]    The assigning unit  63  includes a determination unit  63 A and a control unit  63 B. Upon detecting an application request transmitted from the terminal apparatus  31 , the determination unit  63 A refers to the assignment table  54  to determine whether or not there is an already-assigned guide-target proxy server  22  corresponding to the MAC address of the terminal apparatus  31  and the name (requested-application-server name) of the requested-application server. When there is the already-assigned guide-target proxy server  22 , the control unit  63 B transmits via the response transfer unit  62 , to the terminal apparatus  31  that has issued the application request, a DNS response to which the IP address of the already-assigned guide-target proxy server  22  is attached. 
         [0041]    The DNS server  11  transmits a DNS response to the PAN  21  as a response to the DNS-query transferred by the PAN  21 . Upon receiving the DNS response from the DNS server  11 , the PAN  21  refers to the inquiry ID  53 C in the post-transfer query information in the query table  53  to identify the IP address in the transmission-source IP  53 A corresponding to the inquiry ID  53 C. In addition, the PAN  21  transfers the DNS response to the terminal apparatus  31  having the identified IP address in the transmission-source IP  53 A. 
         [0042]      FIG. 7  illustrates an example of a format structure of a packet. A packet  71  illustrated in  FIG. 7  is a packet of, for example, a DNS query or a DNS response. The packet  71  has an inquiry ID  71 A, a flag  71 B, a question count  71 C, an answer count  71 D, an authority count  71 E, and an additional-information count  71 F. The packet  71  further has a question section  71 G, an answer resource record  71 H, an authority resource record  71 I, and an additional-information resource record  71 J. The inquiry ID  71 A is an ID with a 16 bit structure, and the same ID value is used for a DNS query and a DNS response thereof. The flag  71 B indicates the type of the packet  71  by using a 16 bit structure, and is, for example, a flag identifying whether the packet  71  is a DNS query or a DNS response. The question count  71 C indicates, for example, the number of questions in the DNS query. The answer count  71 D indicates, for example, the number of answers in the DNS response. The authority count  71 E indicates, for example, the number of DNS servers  11  that have generated the answers in the DNS response. The additional-information count  71 F indicates, for example, the number of pieces of added information in the DNS response. The question section  71 G indicates an application server name about which the DNS server  11  is to be queried. The answer resource record  71 H includes the details of an answer from the DNS server  11  and an IP address corresponding to the application server name. The authority resource record  71 I includes authority information (a DNS server name) of the DNS server  11 . The additional-information resource record  71 J is, for example, additional information of an answer of the DNS server  11 . 
         [0043]    When one terminal apparatus  31  moves from one domain D to another, the DHCP server  32  assigns a new IP address to the terminal apparatus  31 . The DHCP server  32  also assigns, as a PAN  21  associated with the DNS server  11  for the terminal apparatus  31 , the PAN  21  located in the domain D to which the terminal apparatus  31  has moved. The DHCP server  32  then reports the IP address and the MAC address of the terminal apparatus  31  to the PAN  21  as lease information. The PAN  21  manages, in the terminal table  51 , the MAC address unique to the terminal apparatus  31 , as well as the IP address thereof. The PAN  21  refers to the terminal table  51  and uses the MAC address to identify the terminal apparatus  31  that has issued the application request, associates the MAC address corresponding to the transmission-source IP address in the DNS query transmitted from the terminal apparatus  31  with the application server name, and assigns the guide-target proxy server  22  to the terminal apparatus  31 . 
         [0044]    The application servers  13  in the DC  2  are storage servers in which applications are stored. The application servers  13  include an application server  13 A that supplies an application via the guide-target proxy server  22  and an application server  13 B that supplies an application without using the guide-target proxy server  22 . The application server  13 A that supplies an application via the guide-target proxy server  22  is determined by a contract with an application provider. The application server  13 B is used when there is no contract with the application provider. 
         [0045]    Upon receiving the IP address of the guide-target proxy server  22  from the PAN  21 , each terminal apparatus  31  obtains cache data related to a requested application via the guide-target proxy server  22 . The cache data includes access control rules, transfer control rules, and so on in addition to the content data related to the requested application. 
         [0046]    Next, a description will be given on an operation of the data providing system  1  according to the first embodiment.  FIG. 8  is a sequence diagram illustrating an example of a processing operation for preparation processing in the data providing system  1  according to the first embodiment. An administrator  15  is, for example, a proxy server administrator in the DC  2 . The administrator  15  aggregates, for example, the plurality of subnets N in the domain D 1 , defines a domain name, and sets the domain name in the PAC  14  (S 11 ). In addition, the administrator  15  further installs the PAN  21 A in the domain D 1  (S 12 ). The administrator  15  associates the domain D 1  with IP addresses of the PAN  21 A and the proxy servers  22 A and  22 B in the domain D 1  and registers the associated IP addresses in the PAC  14  (S 13 ). 
         [0047]    The PAC  14  sets guide-target candidate setting information in the PAN  21 A in the domain D 1  (S 14 ). The guide-target candidate setting information is information for presenting the proxy servers  22 A and  22 B in the domain D 1  as guide-target candidates. The PAN  21 A registers the guide-target candidate proxy servers  22 A and  22 B, set by the PAC  14 , in the candidate-list table  52  (S 15 ). 
         [0048]    The administrator  15  reports DHCP setting information to a DHCP server  32 A in the subnet N 1 - 1  (S 16 ). The DHCP setting information is used to instruct the DHCP server  32 A so as to set, as the destination (DNS query destination) of a DNS query transmitted from the terminal apparatus  31 , the IP address of the PAN  21 A in the domain D 1  in which the terminal apparatus  31  is located and so as to report the lease information of the IP address to the PAN  21 A in the domain D 1 . The administrator  15  registers, in the PAC  14 , the domain name of an access source and the names of the requested-application servers  13  that use the guide-target proxy servers  22 A and  22 B (S 17 ). Through a contract with the application provider or the like, the administrator  15  sets the domain name of an access source and the names of the requested-application servers  13  that use the proxy servers  22 . 
         [0049]    The PAC  14  registers, in the DNS server  11 , dedicated IP addresses and the names of the requested-application servers  13  that use the guide-target proxy servers  22  (S 18 ). Each dedicated IP address has a tag value indicating the name of the corresponding requested-application server  13  that uses the guide-target proxy server  22 . The dedicated IP address is, for example, 1.1.1.1. Since the DNS server  11  centrally manages the names of the requested-application servers  13  (that is, the requested-application-server names) and dedicated IP addresses in association with each other, they may be managed at one location. Each dedicated IP address is also an identifier with which the PAN  21  refers to a response message for a DNS query and determines whether or not the application server  13  uses the guide-target proxy server  22 . The dedicated IP address may have, for example, a fixed value common to the entire system. The dedicated IP address may be, for example, the IP address itself of the application server  13  for which the application request to be guided is destined. The dedicated IP address may also be, for example, a server name (for example, appll.dummy.com) obtained by replacing a requested-application-server name (for example, appll.aa.com) through use of CNAME function of the DNS. 
         [0050]    Although the pre-setting processing on the subnet N 1 - 1  in the domain D 1  has been described in the example in  FIG. 8 , pre-setting processing with similar processing operation is also executed on the subnet N 1 - 2  in the same domain D 1  and the subnet N 2 - 1  in the other domain D 2 . 
         [0051]      FIG. 9  is a sequence diagram illustrating an example of a processing operation for proxy-server assignment processing performed in the data providing system  1  according to the first embodiment. The proxy-server assignment processing illustrated in  FIG. 9  is processing in which the guide-target proxy server  22 A or  22 B for the requested-application server  13  is assigned and the IP address of the already-assigned guide-target proxy server  22  is managed in association with the MAC address of the terminal apparatus  31  and the application server name. 
         [0052]    The DHCP server  32 A in the subnet N 1 - 1  in the domain D 1  illustrated in  FIG. 9  reports setting information of the terminal apparatus  31  to the terminal apparatus  31  (S 21 ), when the terminal apparatus  31  is located in the subnet N 1 - 1 . The setting information of the terminal apparatus  31  includes the IP address assigned by the DHCP server  32 A and the IP address of the PAN  21 A that is the DNS query destination transmitted from the terminal apparatus  31 . In addition, the DHCP server  32 A reports the lease information of the terminal apparatus  31  to the PAN  21 A (S 22 ). The lease information includes, for example, the terminal IP address, the terminal MAC address, start time, and end time. 
         [0053]    Upon receiving the lease information of the terminal apparatus  31  from the DHCP server  32 A, the PAN  21 A registers the lease information in the terminal table  51  (S 23 ). Based on the lease information received from the DHCP server  32 A, the terminal apparatus  31  transmits a DNS query for an application request to the PAN  21 A (S 24 ). The DNS query includes a requested-application-server name, for example, apl1.aa.com. 
         [0054]    In addition, upon receiving the DNS query for the application request from the terminal apparatus  31 , the PAN  21 A starts DNS-query transfer processing illustrated in  FIG. 10  (S 25 ). By executing the DNS-query transfer processing, the DNS query is transferred to the DNS server  11  (S 26 ). 
         [0055]    Upon receiving the DNS query, the DNS server  11  transmits a DNS response corresponding to the DNS query to the PAN  21 A (S 27 ). The DNS response includes a dedicated IP address indicating the name of the requested-application server  13  that uses the guide-target proxy server  22 . 
         [0056]    Upon receiving the DNS response from the DNS server  11 , the PAN  21 A starts DNS-response transfer processing (described below) illustrated in  FIG. 11  (S 28 ). During the DNS-response transfer processing, the PAN  21 A reports, to the PAC  14 , a distribution request for assignment information including the MAC address of the terminal apparatus  31 , the name of the requested-application server  13  to be accessed, and the IP address of the already-assigned guide-target proxy server  22  (S 29 ). 
         [0057]    Upon receiving the distribution request for the assignment information, the PAC  14  reports the assignment information to the PAN  21 B in another domain D 2  (S 30 ). When any domains D other than the domain D 2  exist, the PAC  14  also reports the assignment information to all PANs  21  in the other domains D. Upon receiving the assignment information from the PAC  14 , the PAN  21 B registers the received assignment information in the assignment table  54  (S 31 ). By referring to the assignment table  54 , the PAN  21 B identifies the MAC address of each terminal apparatus  31 , the requested-application-server name, and the IP address of the guide-target proxy server  22 A. 
         [0058]    By executing the DNS-response transfer processing, a DNS response corresponding to the DNS query transmitted in S 24  is transmitted to the terminal apparatus  31  (S 32 ). The DNS response includes, for example, the IP address of the guide-target proxy server  22 A for the application request. Thus, upon receiving the DNS response from the PAN  21 A in the domain D 1 , the terminal apparatus  31  obtains the IP address of the guide-target proxy server  22 A, which is included in the DNS response. Based on the IP address of the guide-target proxy server  22 A, the terminal apparatus  31  accesses the guide-target proxy server  22 A to obtain a requested application therefrom. 
         [0059]      FIG. 10  is a flowchart illustrating an example of a processing operation for the DNS-query transfer processing performed by the PAN  21 A. In  FIG. 10 , upon receiving a DNS query from the terminal apparatus  31  (S 41 ), the PAN  21 A registers the query information, included in the DNS query, in the query table  53  (S 42 ). The query information includes the transmission-source IP address in the DNS query and the inquiry ID in the pre-transfer query information. The PAN  21 A transfers the DNS query, received from the terminal apparatus  31 , to the DNS server  11  (S 43 ) and ends the processing operation illustrated in  FIG. 10 . 
         [0060]    Upon receiving the DNS query from the terminal apparatus  31 , the PAN  21 A that performs the DNS-query transfer processing illustrated in  FIG. 10  may transfer the DNS query to the DNS server  11 , based on the inquiry IDs in the DNS queries before and after the transfer. 
         [0061]      FIG. 11  is a flowchart illustrating an example of processing operation for the DNS-response transfer processing performed by the PAN  21 A. The DNS-response transfer processing illustrated in  FIG. 11  is processing in which the PAN  21 A transfers, upon receiving a DNS response to an application request from the DNS server  11 , the IP address of the already-assigned guide-target proxy server  22  to the terminal apparatus  31  as a DNS response. The IP address corresponds to the MAC address of the terminal apparatus  31  and the requested-application-server name. 
         [0062]    In  FIG. 11 , upon receiving a DNS response from the DNS server  11  (S 51 ), the PAN  21 A searches for a DNS query corresponding to the DNS response (S 52 ). The PAN  21 A searches for an IP address in the answer resource record  71 H in the DNS response (S 53 ). The PAN  21 A determines whether or not the IP address in the answer resource record  71 H is a dedicated IP address (S 54 ). When the IP address in the answer resource record  71 H is a dedicated IP address (YES in S 54 ), the PAN  21 A determines that the application request is an application request that uses the guide-target proxy server  22 . In addition, the PAN  21 A refers to the terminal table  51  to search for the MAC address of the terminal apparatus  31  corresponding to the transmission-source IP address in the DNS query (S 55 ). 
         [0063]    The PAN  21 A determines whether or not any MAC address corresponding to the transmission-source IP address is found (S 56 ). When any MAC address corresponding to the transmission-source IP address is found (YES in S 56 ), the PAN  21 A refers to the terminal table  51  to identify, from among the found MAC addresses of the terminal apparatuses  31 , the MAC address having a most-recent start time (S 57 ). The reason why the MAC address having the most-recent start time is identified is that, an IP address assigned to the terminal apparatus  31  may remain in the terminal table  51  after the end time passes, and thus, when a plurality of same IP addresses remain in the terminal table  51 , the IP address having the most-recent start time is used to identify the correct MAC address of the terminal apparatus  31  for the DNS query. 
         [0064]    The PAN  21 A refers to the assignment table  54  to search for the IP address of the already-assigned guide-target proxy server  22  corresponding to the identified MAC address of the terminal apparatus  31  and the requested-application-server name (S 58 ). The PAN  21 A determines whether or not the IP address of the already-assigned guide-target proxy server  22  is found (S 59 ). 
         [0065]    When the IP address of the already-assigned guide-target proxy server  22  is found (YES in S 59 ), the PAN  21 A attaches the found IP address of the guide-target proxy server  22  to a DNS response and transfers the resulting DNS response to the terminal apparatus  31  (S 60 ). The PAN  21 A then ends the processing operation illustrated in  FIG. 11 . 
         [0066]    When the IP address of the already-assigned guide-target proxy server  22  is not found (NO in S 59 ), the PAN  21 A selects an optimum one of the guide-target proxy servers  22 , from among proxy ID  52 A in the candidate-list table  52  (S 61 ). In the selection of the optimum guide-target proxy server  22 , the PAN  21 A selects, from among the proxy servers  22  in the candidate-list table  52 , the guide-target proxy server  22  in which the amount of CPU load and the amount of cache used are optimum, for example, smallest. 
         [0067]    The PAN  21 A registers, in the assignment table  54 , assignment information in which the IP address of the selected guide-target proxy server  22  is associated with the MAC address of the terminal apparatus  31  and the name of the application server  13  for which the application request has been issued (S 62 ). Upon registering the assignment information in the assignment table  54 , the PAN  21 A reports, to the PAC  14 , a distribution request for distributing the assignment information to the PANs  21  in the domains D other than the domain D of the PAN  21 A (S 63 ). 
         [0068]    In addition, the PAN  21 A refers to the query table  53  to identify a transmission-source IP address in a DNS query corresponding to the DNS response (S 64 ). Based on the transmission-source IP address, the PAN  21 A identifies the terminal apparatus  31  that is a destination (DNS response destination) of the DNS response and is a source (DNS query source) of the DNS query. Based on the identified transmission-source IP address, the PAN  21 A transfers a DNS response including the IP address of the guide-target proxy server  22  to the terminal apparatus  31  (S 65 ), and then ends the processing operation illustrated in  FIG. 11 . 
         [0069]    When the IP address in the answer resource record  71 H in the DNS response is not a dedicated IP address (NO in S 54 ), the PAN  21 A refers to the query table  53  to identify the IP address of the DNS query source (S 66 ). The PAN  21 A transfers the DNS response to the terminal apparatus  31  corresponding to the IP address of the DNS query source (S 67 ), and then ends the processing operation illustrated in  FIG. 11 . 
         [0070]    When the MAC address of the terminal apparatus  31  is not found (NO in S 56 ), the PAN  21 A discards the packet of the DNS response (S 68 ), and then ends the processing operation illustrated in  FIG. 11 . 
         [0071]    When the IP address in the DNS response received from the DNS server  11  is a dedicated IP address, the PAN  21 A that performs the DNS-response transfer processing illustrated in  FIG. 11  may determine that the application request has been made by the terminal apparatus  31  via the guide-target proxy server  22 . Thus, based on the dedicated IP address in the DNS response, the PAN  21 A may determine the terminal apparatus  31  that has been made the application request via the guide-target proxy server  22 . 
         [0072]    By referring to the terminal table  51 , the PAN  21 A identifies a MAC address corresponding to the transmission-source IP address in the DNS query corresponding to the DNS response. Thus, by using the terminal MAC address corresponding to the transmission-source IP address in the DNS query corresponding to the DNS response, the PAN  21 A may identify the terminal apparatus  31  that has issued the application request. 
         [0073]    The PAN  21 A refers to the assignment table  54  to identify the already-assigned guide-target proxy server  22  corresponding to the terminal MAC address and the requested-application-server name, attaches the IP address of the guide-target proxy server  22  to a DNS response, and transfers the resulting DNS response to the terminal apparatus  31 . As a result, the PAN  21 A may ensure that cache data related to the same application requested by the same terminal apparatus  31  is not redundantly registered in the plurality of guide-target proxy servers  22 . 
         [0074]    When the PAN  21 A refers to the assignment table  54  and the already-assigned guide-target proxy server  22  corresponding to the terminal MAC address and the requested-application-server name does not exist, the PAN  21 A selects a guide-target proxy server  22  from the proxy servers  22  in the candidate-list table  52 . In this case, the PAN  21 A selects the guide-target proxy server  22 , based on the amount of CPU load of each proxy servers  22  and the amount of cache used thereby. As a result, the PAN  21 A may select an optimum one of the guide-target proxy servers  22  from the candidate-list table  52 . 
         [0075]    In addition, when new assignment information is registered in the assignment table  54 , the PAN  21 A reports a distribution request for the assignment information to the PAC  14 . Upon receiving the distribution request for the assignment information, the PAC  14  reports the assignment information to the PANs  21  in other domains D. As a result, most-recent assignment information is registered in the assignment table  54  in each PAN  21 . Thus, even when the terminal apparatus  31  moves from one domain D to another, each PAN  21  may ensure that cache data related to the same application requested by the same terminal apparatus  31  is not redundantly registered in the plurality of guide-target proxy servers  22 . 
         [0076]    Next, a description will be given on an operation when the terminal apparatus  31  obtains cache data of an application from the guide-target proxy server  22 A. 
         [0077]    Upon receiving a DNS response including the IP address of the guide-target proxy server  22 A to be requested from the PAN  21 A, the terminal apparatus  31  accesses the guide-target proxy server  22 A, based on the IP address. The guide-target proxy server  22 A identifies the terminal ID in the authentication header received from the terminal apparatus  31 . The terminal ID is, for example, an apparatus ID, a user ID, or the like of the terminal apparatus  31 . 
         [0078]    When no authentication header exists, the guide-target proxy server  22 A issues a request for a user ID and a password to the terminal apparatus  31 . The guide-target proxy server  22 A then authenticates the terminal apparatus  31  by using the user ID and the password received from the terminal apparatus  31  and reports an authentication header to the terminal apparatus  31 . Thus, the authentication header including the terminal ID is attached to a message subsequently issued from the terminal apparatus  31 . 
         [0079]    The guide-target proxy server  22 A then searches for content data corresponding to the terminal ID and the requested application. When the content data is not found during the search, the guide-target proxy server  22 A obtains, from the relay-rule server  12 , an access control rule and a transfer control rule corresponding to the terminal ID and a URL (access-destination URL) to be accessed. The guide-target proxy server  22 A transfers a message to the application server  13  corresponding to the access-destination URL and receives a response message accompanying the content data from the application server  13 . As a result, the guide-target proxy server  22 A, for example, associates the content data, the access control rule, and the transfer control rule with the user ID and the access-destination URL and caches the associated information. 
         [0080]    When the content data is found during the search, the guide-target proxy server  22 A does not transfer the message to the application server  13  and transmits the content data as a response to the DNS query from the terminal apparatus  31 . As a result, the terminal apparatus  31  may obtain the content data of the application from the guide-target proxy server  22 A. 
         [0081]      FIG. 12  is a sequence diagram illustrating an example of a processing operation for DNS-response transfer processing when the terminal apparatus  31  is moved.  FIG. 12  illustrates a case in which the terminal apparatus  31  is moved from the subnet N 1 - 1  in the domain D 1  to the subnet N 2 - 1  in the domain D 2 . In  FIG. 12 , when the terminal apparatus  31  is located in the subnet N 2 - 1  to which it has moved, a DHCP server  32 C in the subnet N 2 - 1  in the domain D 2  reports the setting information of the terminal apparatus  31  to the terminal apparatus  31  (S 71 ). The setting information is assumed to include, in addition to the IP address assigned to the terminal apparatus  31 , the IP address of the PAN  21 B that is a DNS query destination of the terminal apparatus  31 . In addition, the DHCP server  32 C reports the lease information of the terminal apparatus  31  to the PAN  21 B (S 72 ). The lease information includes the IP address of the terminal apparatus  31 , the MAC address of the terminal apparatus  31 , the start time, the end time, and so on. 
         [0082]    Upon receiving the lease information of the terminal apparatus  31  from the DHCP server  32 C, the PAN  21 B stores the lease information in the terminal table  51  (S 73 ). Based on the setting information received from the DHCP server  32 C, the terminal apparatus  31  transmits a DNS query for an application request to the PAN  21 B (S 74 ). The DNS query is assumed to include the name of the requested-application server  13  to be accessed, for example, apl1.aa.com. 
         [0083]    In addition, upon receiving the DNS query from the terminal apparatus  31 , the PAN  21 B starts the DNS-query transfer processing illustrated in  FIG. 10  (S 75 ). By executing the DNS transfer processing, the DNS query is transferred to the DNS server  11  (S 76 ). 
         [0084]    Upon receiving the DNS query, the DNS server  11  transmits a DNS response to the DNS query to the PAN  21 B (S 77 ). The DNS response includes a dedicated IP address corresponding to the name of the requested-application server  13  that uses the guide-target proxy server  22 . 
         [0085]    Upon receiving the DNS response, the PAN  21 B starts the DNS-response transfer processing illustrated in  FIG. 11  (S 78 ). By executing the DNS-response transfer processing, a DNS response to the DNS query transmitted in S 74  is transferred to the terminal apparatus  31  (S 79 ). The DNS response includes the IP address of the guide-target proxy server  22 A for the application request. As a result, upon receiving a DNS response from the PAN  21 B in the domain D 2 , the terminal apparatus  31  accesses the guide-target proxy server  22 , based on the IP address of the already-assigned guide-target proxy server  22 A. The IP address is included in the DNS response. The terminal apparatus  31  then obtains the requested application from the guide-target proxy server  22 . That is, the terminal apparatus  31  accesses the requested-application server  13  by using the assigned proxy server  22 A in the domain D 1 , rather than using a proxy server  22 C in the domain D 2  in which the terminal apparatus  31  is located. 
         [0086]      FIG. 13  illustrates an example of cache states of the proxy servers  22  in the data providing system  1  according to the first embodiment. A terminal apparatus  31 A in the domain D 1  is assumed to use the guide-target proxy server  22 A corresponding to the application server  13 A at URL-X 1 . URL-X 1  is a URL of the application server  13 A to be accessed by the terminal apparatus  31 A. A terminal apparatus  31 B in the domain D 1  is assumed to use the guide-target proxy server  22 B corresponding to the application server  13 A at URL-X 2 . URL-X 2  is a URL of the application server  13 A to be accessed by the terminal apparatus  31 B. In addition, it is assumed that the terminal apparatus  31 A has moved from the domain D 1  to the domain D 2 . 
         [0087]    Cache data in the proxy server  22 A in the domain D 1  includes, as content cache information, the URL and a storage location regarding the application server  13 A at URL-X 1  to be accessed. In addition, the cache data in the proxy server  22 A includes, as access control rules, the transmission-source IP address of the terminal apparatus  31 A, the URL, and transfer-destination availability, to permit access from the terminal apparatus  31 A. In addition, the cache data in the proxy server  22 A includes, as a transfer control rule, the proxy server  3 A that serves as the transfer destination of the application server  13 A at URL-X 1  and the application server  13 B at URL-X 3  to permit transfer of access from the terminal apparatus  31 A. 
         [0088]    Cache data in the proxy server  22 B in the domain D 1  includes, as content cache information, the URL and a storage location regarding the application server  13 A at URL-X 2  to be accessed. In addition, the cache data in the proxy server  22 B includes, as access control rules, the transmission-source IP address of the terminal apparatus  31 B, the URL, and transfer-destination availability, to permit access from the terminal apparatus  31 B. In addition, the cache data in the proxy server  22 B includes, as a transfer control rule, the proxy server  3 A that serves as the transfer destination of the application server  13 A at URL-X 2  to permit transfer of access from the terminal apparatus  31 B. 
         [0089]    Cache data in the proxy server  22 C in the domain D 2  includes, as content cache information, the URLs and storage locations regarding the application server  13 A at URL-X 2  and the application server  13 B at URL-X 3  to be accessed. In addition, the cache data in the proxy server  22 C includes, as access control rules, the transmission-source IP address of the terminal apparatus  31 A, the URLs, and transfer-destination availability to permit access from the terminal apparatus  31 A. In addition, the cache data in the proxy server  22 C includes, as a transfer control rule, the proxy server  3 A that serves as the transfer destination of the application server  13 A at URL-X 2  and the application server  13 B at URL-X 3  to permit transfer of access from the terminal apparatus  31 A. 
         [0090]    That is, when the guide-target proxy server  22 A for the application request to URL-X 1  is already assigned, the terminal apparatus  31 A accesses the guide-target proxy server  22 A without using the proxy server  22 C in the domain D 2  even if the terminal apparatus  31 A moves from the domain D 1  to the domain D 2 . As a result, since cache data related to the application request to URL-X 1  are aggregated in the guide-target proxy server  22 A, it is possible to ensure that the cache data are not redundantly registered in the plurality of proxy servers  22 . 
         [0091]    Upon detecting an application request transmitted from the terminal apparatus  31 , the PAN  21  according to the first embodiment determines whether or not there is the IP address of the already-assigned guide-target proxy server  22  corresponding to the terminal MAC address of the terminal apparatus  31  and an application server name requested by the terminal apparatus  31 . When there is the IP address of the already-assigned guide-target proxy server  22 , the PAN  21  attaches the IP address of the already-assigned guide-target proxy server  22  to a DNS response and transfers the resulting DNS response to the terminal apparatus  31  that has issued the application request. As a result, the terminal apparatus  31  may obtain the IP address of the already-assigned guide-target proxy server  22  corresponding to the terminal MAC address of the terminal apparatus  31  and the application server name. 
         [0092]    By using the terminal MAC and the application server name, the PAN  21  manages the already-assigned guide-target proxy server  22  in the assignment table  54 . As a result, the PAN  21  may ensure that, even when the terminal apparatus  31  moves from one domain D to another, cache data related to the same terminal apparatus  31  and the same application is not redundantly registered in the guide-target proxy servers  22 . Furthermore, since no redundant registration of cache data is ensured, it is possible to save or reduce the finite cache capacity of the proxy server  22 . 
         [0093]    When the PAN  21  refers to the assignment table  54  and determines that there is no IP address of the already-assigned guide-target proxy server  22  corresponding to the application server name and the terminal MAC address of the terminal apparatus  31  that has issued the application request, the PAN  21  selects an optimum one of the guide-target proxy servers  22  from the candidate-list table  52 . As a result, the PAN  21  may assign the optimum guide-target proxy server  22  to the terminal apparatus  31 . 
         [0094]    During the above-described selection of the optimum guide-target proxy server  22 , the PAN  21  selects, from the candidate-list table  52 , a guide-target proxy server  22  in which the amount of CPU load and the amount of cache are the smallest. As a result, the PAN  21  may equalize the loads of the proxy servers  22  to inhibit imbalance. 
         [0095]    When the MAC address of the terminal apparatus  31  that has issued the application request, the application server name, and the IP address of the already-assigned guide-target proxy server  22  are stored in the assignment table  54  as assignment information, the PAN  21  issues a distribution request for the assignment information to the PAC  14  that manages the PANs  21 . In response to the distribution request, the PAC  14  distributes the assignment information to the PANs  21 . Upon receiving the assignment information, the PANs  21  store the assignment information in the respective assignment tables  54 . As a result, since the contents of the assignment tables  54  in the PANs  21  become equal to each other, it is possible to ensure that cache data related to the same application requested by the same terminal apparatus  31  is not redundantly registered in the guide-target proxy servers  22 . 
         [0096]    Upon receiving the IP address and the MAC address of the terminal apparatus  31  from the DHCP server  32  that assigns IP addresses to respective terminal apparatuses  31  in the same subnet N, the PAN  21  stores the IP address and the MAC address of the terminal apparatus  31  in the terminal table  51 . As a result, the PAN  21  may identify the terminal apparatus  31  by using not only the IP address but also the MAC address. 
         [0097]    The DNS server  11  centrally manages, for each application request, a dedicated IP address indicating that the application request obtains an application via the guide-target proxy server  22 . The PAN  21  receives a dedicated IP address from the DNS server  11  as a response result for an application request from the terminal apparatus  31 , and based on the presence/absence of a dedicated IP address, the PAN  21  determines whether or not the application request transmitted from the terminal apparatus  31  is an application request that uses the guide-target proxy server  22 . The PAN  21  may identify an application request for the guide-target proxy server  22  by using the dedicated IP address in a DNS response received from the DNS server  11 . 
         [0098]    In the data providing system  1 , cache data corresponding to the MAC address of the terminal apparatus  31  and the name of the application server to be accessed are aggregated in a single guide-target proxy server  22 , regardless of movement of the terminal apparatus  31  from one domain D to another. As a result, it is possible to ensure that cache data is not redundantly registered in the proxy servers  22 , and it is also possible to ensure that the amounts of cache data in the proxy servers  22  do not become unbalanced. 
         [0099]    In the first embodiment, the DNS server  11  centrally manages the requested-application-server name and the dedicated IP address in association with each other. The PAN  21  receives the DNS response including the dedicated IP address from the DNS server  11  and determines, based on the dedicated IP address, that the application request uses the guide-target proxy server  22 . However, the PAN  21  in each domain D may manage application server names for identifying application requests that use the guide-target proxy server  22 . A second embodiment will be described below as an embodiment in such a case. Elements that are the same as or similar to those in the data providing system  1  in the first embodiment are denoted by the same reference numerals, and descriptions of redundant elements and operations are not given hereinafter. 
       Second Embodiment 
       [0100]      FIG. 14  is a sequence diagram illustrating an example of a processing operation for preparation processing in a data providing system according to the second embodiment. Each PAN  21  in each domain D registers the requested-application-server names in a guide-target table (not illustrated). The guide-target table manages the requested-application-server name. After the administrator  15  in a data providing system  1 A in  FIG. 14  registers the requested-application-server names that use the guide-target proxy server  22  in the PAC  14  in S 17 , the PAC  14  reports the requested-application-server names to the PANs  21  in each domain D (S 18 A). Each PAN  21  in each domain D registers the requested-application-server names in the guide-target table (S 19 A) and ends the processing operation illustrated in  FIG. 14 . 
         [0101]      FIG. 15  is a flowchart illustrating an example of a processing operation for the DNS-query transfer processing performed by the PAN  21 A. The DNS-query transfer processing is processing in which, when a DNS query for an application request is received, a DNS response to which the IP address of the already-assigned guide-target proxy server  22  which corresponds to the MAC address of the terminal apparatus  31  and the requested-application-server name is attached is transferred to the terminal apparatus  31 . 
         [0102]    In  FIG. 15 , upon receiving a DNS query from the terminal apparatus  31  (S 101 ), the PAN  21 A extracts an inquiry-destination host name stored in the question section  71 G in the DNS query (S 102 ). The PAN  21 A searches the guide-target table for a requested-application-server name that matches the extracted inquiry-destination host name (S 103 ). 
         [0103]    The PAN  21 A determines whether or not a requested-application-server name is found (S 104 ). When a requested-application-server name is found (YES in S 104 ), the PAN  21 A refers to the terminal table  51  to search for the MAC address of the terminal apparatus  31  corresponding to the transmission-source IP address in the DNS query (S 105 ). 
         [0104]    The PAN  21 A determines whether or not there is any MAC address that matches the MAC address of the terminal apparatus  31  (S 106 ). By referring to the terminal table  51 , the PAN  21 A identifies, from among found MAC addresses that match the MAC address of the terminal apparatus  31 , the MAC address having a most-recent start time (S 107 ). 
         [0105]    By referring to the assignment table  54 , the PAN  21 A searches for the IP address of the already-assigned guide-target proxy server  22  corresponding to the identified MAC address of the terminal apparatus  31  and the requested-application-server name (S 108 ). The PAN  21 A determines whether or not the IP address of the assigned proxy server  22  is found (S 109 ). 
         [0106]    When the IP address of the already-assigned guide-target proxy server  22  is found (YES in S 109 ), the PAN  21 A attaches the found IP address of the guide-target proxy server  22  to a DNS response and transmits the resulting DNS response to the terminal apparatus  31  (S 110 ). Thereafter, the PAN  21 A ends the processing operation illustrated in  FIG. 15 . 
         [0107]    When the IP address of the already-assigned guide-target proxy server  22  is not found (NO in S 109 , the PAN  21 A selects an optimum one of the guide-target proxy servers  22  from the candidate-list table  52  ( 5111 ). In the selection of the optimum guide-target proxy server  22 , the PAN  21 A selects, from the candidate-list table  52 , the proxy server  22  in which the amount of CPU load and the amount of cache used are optimum, for example, smallest. 
         [0108]    The PAN  21 A registers, in the assignment table  54 , assignment information in which the IP address of the selected guide-target proxy server  22  is associated with the MAC address of the terminal apparatus  31  and the application server name for which the application request has been issued (S 112 ). Upon registering the assignment information in the assignment table  54 , the PAN  21 A reports, to the PAC  14 , a distribution request for distributing the assignment information to the PANs  21  in the domains D other than the domain D of the PAN  21 A (S 113 ). 
         [0109]    In addition, the PAN  21 A refers to the query table  53  to identify a transmission-source IP address in a DNS query corresponding to the DNS response (S 114 ). Based on the identified transmission-source IP address, the PAN  21 A identifies the terminal apparatus  31  that is the DNS query source. Based on the identified transmission-source IP address, the PAN  21 A transmits a DNS response including the IP address of the guide-target proxy server  22  to the terminal apparatus  31  (S 115 ). Thereafter, the PAN  21 A ends the processing operation illustrated in  FIG. 15 . 
         [0110]    When the requested-application-server name is not found (NO in S 104 ), the PAN  21 A registers the information, included in the DNS query, in the query table  53  (S 116 ). The PAN  21 A transfers the DNS query to the DNS server  11  (S 117 ) and then ends the processing operation illustrated in  FIG. 15 . 
         [0111]    When the MAC address of the terminal apparatus  31  is not found (NO in S 106 ), the PAN  21 A discards the packet of the DNS query (S 118 ) and then ends the processing operation illustrated in  FIG. 15 . 
         [0112]    The PAN  21 A that performs the DNS-response transfer processing illustrated in  FIG. 15  receives a DNS query from the terminal apparatus  31 , and determines that, when the inquiry-destination host name in the DNS query is the requested-application-server name in the guide-target table, the application request transmitted from the terminal apparatus  31  is to be made via the guide-target proxy server  22 . Thus, by referring to the guide-target table, the PAN  21 A may determine that the DNS query transmitted from the terminal apparatus  31  is to be made via the guide-target proxy server  22 . Therefore, the PAN  21 A may determine that the application request is for the guide-target proxy server  22 , without querying the DNS server  11 . As a result, the response speed is increased. 
         [0113]    By referring to the terminal table  51 , the PAN  21 A identifies a MAC address corresponding to the transmission-source IP address in the DNS query. Thus, by using a terminal MAC address corresponding to the transmission-source IP address in the DNS query, the PAN  21 A may identify the terminal apparatus  31  that has issued the application request. 
         [0114]    The PAN  21 A refers to the assignment table  54  to identify the already-assigned guide-target proxy server  22  corresponding to the terminal MAC address and the requested-application-server name, attaches the IP address of the guide-target proxy server  22  to a DNS response, and transmits the resulting DNS response to the terminal apparatus  31 . As a result, the PAN  21 A may ensure that cache data related to the same application requested by the same terminal apparatus  31  is not redundantly registered in the plurality of guide-target proxy servers  22 . 
         [0115]    When the PAN  21 A refers to the assignment table  54  and the already-assigned guide-target proxy server  22  corresponding to the terminal MAC address and the requested-application-server name does not exist, the PAN  21 A selects a guide-target proxy server  22  from the proxy servers  22  in the candidate-list table  52 . In this case, the PAN  21 A selects the guide-target proxy server  22 , based on the amount of CPU load of each proxy server  22  and the amount of cache used thereby. As a result, the PAN  21 A may select an optimum one of the guide-target proxy servers  22  from the candidate-list table  52 . 
         [0116]    In addition, when new assignment information is registered in the assignment table  54 , the PAN  21 A reports a distribution request for the assignment information to the PAC  14 . Upon receiving the distribution request for the assignment information, the PAC  14  distributes the assignment information to PANs  21  in other domains D. Upon receiving the assignment information, PANs  21  register the received assignment information in the respective assignment tables  54 . As a result, the most-recent assignment information is registered in the assignment table  54  in each PAN  21 . Thus, even when the terminal apparatus  31  moves from one domain D to another, each PAN  21  may ensure that cache data is not redundantly registered in the plurality of guide-target proxy servers  22 . 
         [0117]      FIG. 16  is a flowchart illustrating an example of a processing operation for the DNS-response transfer processing performed by the PAN  21 A. The DNS-response transfer processing illustrated in  FIG. 16  is processing in which the PAN  21 A transfers a DNS response to a DNS query to the terminal apparatus  31 . The DNS response has been transmitted from the DNS server  11 . 
         [0118]    In  FIG. 16 , upon receiving a DNS response from the DNS server  11  (S 121 ), the PAN  21 A refers to the query table  53  to search for a DNS query corresponding to the DNS response (S 122 ). By referring to the query table  53 , the PAN  21 A identifies a transmission-source IP address in the DNS query (S 123 ). The PAN  21 A transfers the DNS response, which has been received from the DNS server  11 , to the terminal apparatus  31  having the transmission-source IP address (S 124 ) and then ends the processing operation illustrated in  FIG. 16 . 
         [0119]    The PAN  21  in the second embodiment has a guide-target table for managing requested-application-server names to identify whether or not each application request uses the guide-target proxy server  22 . Upon receiving an application request from the terminal apparatus  31 , the PAN  21  refers to the guide-target table to determine whether or not the application request transmitted from the terminal apparatus  31  uses the guide-target proxy server  22 . Thus, without transferring a DNS query received from the terminal apparatus  31  to the DNS server  11 , the PAN  21  may determine whether or not an application request transmitted from the terminal apparatus  31  uses the guide-target proxy server  22 . This makes it possible to enhance the speed of response to a DNS query. 
         [0120]    In the first and second embodiments described above, the PANs  21  are provided for the respective domains D, and when the terminal apparatus  31  moves from one domain D to another and issues a request for an application, the already-assigned guide-target proxy server  22  is used. Accordingly, this approach is effective when the domain D 1  from which the terminal apparatus  31  moves and the domain D 2  to which it moves are located close to each other. 
         [0121]    However, there are cases in which the distance between the domain D 1  from which the terminal apparatus  31  moves and the domain D 2  to which it moves is large. For example, when the movement-source domain D 1  is in California and the movement-destination domain D 2  is in New York, the terminal apparatus  31  uses the guide-target proxy server  22  in California all the way from New York, which may lead to a reduction in the speed of response to a DNS query. Accordingly, an embodiment for dealing with such a situation will be described below as a third embodiment. Configurations that are the same as or similar to those in the data providing system  1  according to the first embodiment are denoted by the same reference numerals, and descriptions of redundant configurations and operations are not given hereinafter. 
       Third Embodiment 
       [0122]      FIG. 17  is a block diagram illustrating an example of a data providing system according to the third embodiment. As illustrated in  FIG. 17 , in a domain D 3  in a data providing system  1 B, PANs  21  ( 21 D and  21 E) are placed in respective subnets N (N 3 - 1 , N 3 - 2 ). The PAN  21 D reports assignment information of a terminal apparatus  31  to the PAC  14 . The PAC  14  then distributes the assignment information to all PANs (including the PAN  21 E) in the domain D 3  in which the PAN  21 D that has transmitted the assignment information is placed. The PAC  14 , however, prohibits distribution of the assignment information to a PAN  21  ( 21 F) in a domain D 4  that is different from the domain D 3  in which the PAN  21 D that has transmitted the assignment information is placed. 
         [0123]    It is assumed that, for example, when the terminal apparatus  31  is located in a subnet N 3 - 1  in the domain D 3 , the terminal apparatus  31  issues an application request to the PAN  21 D. In this case, when the IP address of a guide-target proxy server  22  for the terminal apparatus  31  that has issued the application request is supplied to the terminal apparatus  31 , the PAN  21 D registers assignment information in the assignment table  54 . In addition, the PAN  21 D reports the assignment information to the PAC  14 . 
         [0124]    Upon receiving the assignment information from the PAN  21 D, the PAC  14  distributes the assignment information to the other PAN  21  ( 21 E) in the same domain D 3  as that of the PAN  21 D. The PAC  14  prohibits distribution of the assignment information to all of the PANs  21  in the domain D 4  that is different from that of the PAN  21 D that has transmitted the assignment information. Upon receiving the assignment information from the PAC  14 , the PANs  21 D and  21 E in the same domain D 3  register the assignment information in the respective assignment tables  54 . 
         [0125]    As a result, even when the terminal apparatus  31  moves in the same domain D 3 , the PANs  21 D and  21 E in the domain D 3  refer to the assignment tables  54  to report, to the terminal apparatus  31 , the IP address of the guide-target proxy server  22  for the application request from the terminal apparatus  31 . Based on the IP address of the guide-target proxy server  22 , the terminal apparatus  31  may obtain cache data of a requested application from the guide-target proxy server  22 . 
         [0126]    However, when the terminal apparatus  31  moves from the domain D 3  to the domain D 4 , even if the PAN  21 F in the movement-destination domain D 4  refers to the assignment table  54 , the PAN  21 F fails to find the guide-target proxy server  22  for the application request from the terminal apparatus  31 . Thus, the PAN  21 F assigns a new guide-target proxy server  22  ( 22 F) in the movement-destination domain D 4 . The PAN  21 F in the movement-destination domain D 4  then reports the assignment information to the PAC  14 . Additionally, the PAC  14  distributes the assignment information to PANs  21  in the same domain D 4  as that of the PAN  21 F that has reported the assignment information. The PANs  21  in the same domain D 4  register the received assignment information in the respective assignment tables  54 . 
         [0127]    For example, when the terminal apparatus  31  moves a large distance from the domain D 3  to the domain D 4 , the PAN  21 F in the movement-destination domain D 4  uses the guide-target proxy server  22  for a requested application in the domain D 4 . As a result, since the terminal apparatus  31  uses the guide-target proxy server  22  in the movement-destination domain D 4  without using the guide-target proxy server  22  in the domain D 3  distant from the movement-destination domain D 4 , it is possible to inhibit a reduction in the speed of response to a DNS query, which is caused by the increase of the communication distance. 
         [0128]    Although each PAN  21  in the above-described embodiments is separately provided from each proxy server  22 , the PAN  21  may also be built into the proxy server  22 . 
         [0129]    Upon assignment of an IP address to the terminal apparatus  31 , the DHCP server  32  in the above-described embodiments transmits the lease information of the terminal apparatus  31  to the PAN  21 . However, the PAN  21  may periodically obtain the lease information of the terminal apparatus  31  from the DHCP server  32  by a pull approach. 
         [0130]    Although the PAN  21  in the above-described embodiments identifies the terminal MAC address by using the transmission-source IP address in the DNS query, it is also conceivable to identify the terminal MAC address by using the transmission-source MAC address in the DNS query. However, when a router is provided between the terminal apparatus  31  and the PAN  21 , the transmission-source MAC address in the DNS query serves as the MAC address of the router and thus the terminal MAC address is not identifiable. Thus, the PAN  21  is adapted to refer to the terminal table  51  to identify the terminal MAC address by using the transmission-source IP address in the DNS query. 
         [0131]    In the first embodiment, the PANs  21  are provided for the respective domains D, and when assignment information is registered in the assignment table  54  in one PAN  21 , the assignment information is distributed to the PANs  21  in other domains D. However, the assignment-information distribution performed by the PAC  14  may also be prohibited between the PANs  21  in the domains D far away from each other. In this case, upon receiving a distribution request for the assignment information from one PAN  21 , the PAC  14  identifies another domain D located at a remote place at a predetermined distance or more from the domain D of the PAN  21  and prohibits distribution of the assignment information to the PANs  21  in the other domain D at that remote location. 
         [0132]    The embodiments may be applied to a system in which the terminal apparatus  31  is, for example, sensor equipment, the proxy server  22  is, for example, a gateway, and a measurement application for the sensor equipment is supplied from the application server  13  to the sensor equipment via the gateway. 
         [0133]    When there is an already-assigned guide-target proxy server  22  corresponding to the MAC address of the terminal apparatus  31  that has issued an application request and a requested-application-server name, the PAN  21  in the above-described embodiments supplies the IP address of the guide-target proxy server  22  to the terminal apparatus  31  that has issued the application request. However, when there is an already-assigned guide-target proxy server  22  corresponding to the MAC address of the terminal apparatus  31  that has issued an application request, the PAN  21  may supply the IP address of the guide-target proxy server  22  to the terminal apparatus  31  that has issued the application request. 
         [0134]    The elements of the illustrated apparatuses may or may not be physically configured as illustrated. That is, specific forms of distribution/integration of the elements are not limited to those illustrated, and all or a portion thereof may be functionally or physically distributed or integrated in an arbitrary manner, depending on various loads, usage states, and so on. 
         [0135]    In addition, by analyzing and executing a program, a CPU or a microcomputer, such as a micro processing unit (MPU) or a micro controller unit (MCU), may perform all or an arbitrary one of the various processing functions to be executed by each apparatus. Needless to say, wired logic hardware may perform all or an arbitrary one of the various processing functions. 
         [0136]    The various types of processing described in the above embodiments may be performed by causing an information processing apparatus to execute a prepared program. Accordingly, a description below will be given on an example of an information processing apparatus that executes a program having functions that are the same as or similar to those of the above-described embodiments.  FIG. 18  is a block diagram illustrating an information processing apparatus  100  that executes the proxy assignment program. 
         [0137]    As illustrated in  FIG. 18 , the information processing apparatus  100  that executes the proxy assignment program includes a communication interface  110 , a read-only memory (ROM)  120 , a random access memory (RAM)  130 , and a CPU  140 . 
         [0138]    The proxy assignment program that realizes functions that are the same as or similar to those of the above-described embodiments is stored in the ROM  120 . The proxy assignment program may also be stored in a recording medium that is readable via a drive (not illustrated), rather than in the ROM  120 . Examples of the recording medium include portable recording media, such as a compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a Universal Serial Bus (USB) memory, and a Secure Digital (SD) card, and semiconductor memories such as a flash memory. The proxy assignment program may include a determination program  120 A and a control program  120 B. The determination program  120 A and the control program  120 B may be integrated together or distributed as appropriate. 
         [0139]    The CPU  140  reads the determination program  120 A and the control program  120 B from the ROM  120  and executes the determination program  120 A and the control program  120 B. Based on the determination program  120 A and the control program  120 B, the CPU  140  serves as a determination process  140 A and a control process  140 B. 
         [0140]    By using the communication interface  110 , the CPU  140  obtains data from a storage server in response to a data request from a terminal apparatus and assigns, from among a plurality of proxy servers, a proxy server in which the obtained data is to be stored. In addition, upon detecting a data request transmitted from a terminal apparatus, the CPU  140  determines whether or not an already-assigned proxy server corresponding to the MAC address of the terminal apparatus exists. When an already-assigned proxy server exists, the CPU  140  reports the IP address of the assigned proxy server to the terminal apparatus from which the data request has been received. As a result, it is possible to ensure that data related to the same data request from the same terminal apparatus is not redundantly registered in a plurality of proxy servers. 
         [0141]    All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.