Patent Publication Number: US-7716282-B2

Title: Proxy server apparatus and method for providing service using the same

Description:
CROSS-REFERENCES TO RELATED APPLICATIONS 
   The present application is a continuation of application Ser. No. 10/233,564, filed Sep. 4, 2002, now U.S. Pat. No. 7,277,914, the contents of which are incorporated herein by reference. 

   BACKGROUND OF THE INVENTION 
   The present invention relates to a communication proxy technology for receiving a request message (an access request) from a client such as a Web browser and providing the response data such as Web data in place of an server such as a Web server. 
   In “Web proxy servers” issued in 1998 by Pearson Education (i.e. a translation of Ari Luotonen, “Web Proxy Servers” (Web Infrastructure Series), Prentice Hall PTR; 1st edition, December 1997), a communication proxy technology for speeding up the access to the Web data of the Web browser is described. 
   According to this technology, a proxy server is provided to receive the request message from the Web browser in place of the Web server, so that this proxy server relays the request message which is received from the Web browser to the Web server and relays the Web data (the response data) which is transmitted from this Web server in response to the request message to the Web browser. 
   At this time, the relayed Web data is cached in the proxy server. Then, if the Web browser requests the access to the Web data that is cached, the proxy server transmits this cached Web data to the Web browser as the response data in place of relaying the request message to the Web server. 
   In this way, it is possible to speed up the access to the Web data from the Web browser, and to prevent the server from being congested by access concentration. 
   Additionally, in 1999, a communication proxy technology capable of providing a value added service (an additional service) was suggested by iCAP (Internet Content Adaptation Protocol) forum. 
   According to this technology, a dedicated application server which is called an iCAP server is provided and this application server is connected to the proxy server by a communication protocol which is called iCAP. Further, this technology makes the proxy server transfer the request message and the response data to the iCAP server. 
   When a content of the request message and/or a content of the response data which was transmitted from the proxy server are modified, is edited or converted into other data by the iCAP server, it is possible to provide the value added service other than high-speed of the access to the Web data. 
   By the way, according to the communication proxy technology using the above described iCAP, the protocol (iCAP) is only used for the communication between the proxy server and the iCAP server and it is taking nothing into consideration with respect to a control policy such as transfer conditions. The conditions are, for example, when and to which server the request or the response message to be transmitted. 
   For example, setting a table in which the control policy is registered for each URL (Uniform Resource Locator) in the proxy server in advance, it is also possible to make the proxy server process the request message based on a content of this table. 
   However, in this case, the above described table needs to be set up ateach of many proxy servers which are located on a network, so that it is difficult. Particularly, in the case that necessity arises to change the control policy, the table that was set in each proxy server should be updated on each time. 
   Additionally, the control policy is applied for each URL, so that it is difficult to perform the delicate control such that different value added services are applied to each data item which is dynamically generated by a CGI (Common Gateway Interface). Further, it is necessary to look up the control policy to be applied from the table using the URL as a key. Since the number of the URL is enormous, it takes a long time till the process is started in accordance with the control policy. 
   In the international publication Number WO 00/46679, a technology is disclosed such that a control policy for controlling the internal processing of the proxy server is included in the response data and the internal processing in the proxy server is carried out based on the control policy. However, this technology relates to the processing control in the proxy server and it does not relate to the control of the data transfer between the proxy server and the application server. 
   SUMMARY OF THE INVENTION 
   The present invention provides a technology capable of controlling data transfer to application servers that connected to a proxy server apparatus. 
   According to the present invention, a request message from a client and/or a response data from a Web server includes a control command which indicates a condition and the application server to which the request message and/or its response data are to be transferred when the condition is satisfied. Then, the proxy server apparatus (referred to as a first proxy apparatus) receives the request message from the client in place of an server, transfers the request message to one of the application servers in accordance with the control command which is included in the request message to apply a value added service and relays the request message to the server. Or, based on the control command which is included in the response data, the first proxy apparatus transfers the response data to one of the application servers to apply a value added service and relays the response data to the client. 
   For example, the first proxy apparatus according to the present invention has the following constitution. 
   Namely, the first proxy apparatus according to the present invention comprises; a control command interpreting unit (a unit that parses control command) that separates a control command from a request message and/or response data and manages it when the request message and/or the response data have the control command which at least indicates an object to which an value added service is applied, a condition of applying the value added service and a content of the value added service; 
   an value added service control unit (unit that controls value added service) that decides the control command to be applied to the request message and/or its response data among the contents which are managed by the control command interpreting unit, transfers the request message and/or its response data to an application server for carrying out the value added service in accordance with the decided control command and obtains the processed request message and/or its processed response data to which the value added service has been applied from the application server; and 
   an request message proxy unit (unit that relays request message) that receives the request message of the client to relay it to the server as the request message transmission destination and receives the response data of this request message from the server to relay this to said client as the request message transmission source. 
   In this case, the request message proxy unit makes the control command interpreting unit process the request message of the client to obtain the request message which does not include the control command, makes the value added service control unit process this request message to obtain the processed request message and relays this request message to the destination server and, the request message proxy unit makes the value added service control unit process the response data of the server to obtain the processed response data and relays this response data to the client. 
   According to the present invention, the request message includes the control command that indicates a condition and the application server to which the request message and/or its response data are to be transferred when the condition is satisfied. And, the first proxy server apparatus extracts the control command which is included in the request message and/or the response data to interpret it, and controls whether or not the request message and/or its response data should be transferred to the application server in accordance with this control command. 
   Therefore, there is no necessity that the table as described above is set in advance in each of proxy servers that are located on a network. Additionally, it is possible to provide the different value added services to each of data items which are dynamically generated by the CGI and has the same destination URL. In this way, according to the present invention, it is possible to control the data transfer to the application server flexibly and delicately. 
   In the present invention, a control command adding unit may be provided to the client or a proxy server apparatus (referred to as a second proxy apparatus) which is located at the client side than the first proxy apparatus. The control command adding unit adds the control command to the request message from the client to relay it to the first proxy apparatus. 
   In the same way, in the present invention, a control command adding unit may be provided to the server or a proxy server apparatus (referred to as a third proxy apparatus) which is located at the server side than the first proxy apparatus. The control command adding unit adds the control command to the response data from the server to relay it to the first proxy apparatus. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  is a block diagram for illustrating a schematic constitution of a network system to which a first embodiment of the present invention is applied; 
       FIG. 2  is a block diagram for illustrating a schematic constitution of a Web browser  4  shown in  FIG. 1 ; 
       FIG. 3A  illustrates a data constitutional example of a request message; 
       FIG. 3B  illustrates a data constitutional example of a request message; 
       FIG. 4  is a block diagram for illustrating a schematic constitution of a Web browser  6  shown in  FIG. 1 ; 
       FIG. 5A  illustrates a data constitutional example of the response data; 
       FIG. 5B  illustrates a data constitutional example of the response data; 
       FIG. 6  is a block diagram for illustrating a schematic constitution of a first proxy server  1   a  shown in  FIG. 1 ; 
       FIG. 7  illustrates an example of a content that is registered in a data cache unit  113  shown in  FIG. 6 ; 
       FIG. 8  illustrates an example of a content that is registered in a control command interpreting unit  115  shown in  FIG. 6 ; 
       FIG. 9  illustrates a data constitutional example of an value added service control command; 
       FIG. 10  is an operational flow view of a first proxy server  1   a  shown in  FIG. 6 ; 
       FIG. 11  is a block diagram for illustrating a schematic constitution of a second proxy server  1   b  shown in  FIG. 1 ; 
       FIG. 12  is an operational flow chart of a second proxy server  1   b  shown in  FIG. 11 ; 
       FIG. 13  is a block diagram for illustrating a schematic constitution of a third proxy server  1   c  shown in  FIG. 1 ; 
       FIG. 14  is an operational flow chart of a third proxy server  1   c  shown in  FIG. 13 ; 
       FIG. 15  illustrates a hardware constitutional example of respective devices which constitute a network system shown in  FIG. 1 ; and 
       FIG. 16  illustrates an example of a flow of a request message and its response data that are exchanged on the network system shown in  FIG. 1 . 
   

   DESCRIPTION OF THE PREFERRED EMBODIMENTS 
   An embodiment according to the present invention will be described below. 
     FIG. 1  is a block diagram for illustrating a schematic constitution of a network system to which a first embodiment of the present invention is applied. In  FIG. 1 , data channels connecting respective devices comprise data channels. One data channel may be realized on a multiple physical communication lines via at least one rooter device. On the contrary, multiple data channels may be realized on one physical communication line. Further, networks  21  to  23  represent an aggregation of the data channel. 
   Web browsers  31  to  3   n  (also referred to as a Web browser  3 ) are connected to the network  21  via a second proxy server  1   b . As the Web browser  3 , the existing Web browser device can be used as it is. Namely, the Web browser  3  has a function to generate a request message including identification information of the Web data a user wants to browse For example, according to the instruction by the user, the Web browser  3  transmit this request message to the second proxy server  1   b , and receive response data (Web data) from the second proxy server  1   b  and display it on a screen. 
   A Web server  5  is connected to the network  22  via a third proxy server  1   c . As the Web server  5 , the existing Web sever device can be used. Namely, the Web server  5  has a function to read Web data, which is indicated by a request message which was received from a third proxy server  1   c , from a database and transmit this as response data to a transmission source of the request message via the third proxy server  1   c.    
   Application servers  71  to  7   n  (also referred to as an application server  7 ) are connected to the first proxy server  1   a  via the network  23 . The application server  7  is a server device for making the proxy server provide the value added service such as (process, modification, conversion and check of the request message and the response data) other than speeding up access to Web data. For example, an iCAP server is employed for the application server  7 . In this case, the iCAP is used for the communication between the first proxy server  1   a  and the application server  7 . 
   Web browsers  41  to  4   n  (also referred to as a Web browser  4 ) are connected to the network  21 . In addition to the above described function provided to the Web browser  3  (i.e. a function provided to the existing Web browser), the Web browser  4  further has a function (i.e. an request message command adding function) to add an value added service control command which indicates the application server  7  and the value added service information to this request message and/or its response data. 
     FIG. 2  illustrates a schematic constitution of the Web browser  4 . 
   As shown in  FIG. 2 , the Web browser  4  has an instruction receiving unit  41  for receiving the instruction by the user, a network IF (interface)  42  for communicating with the network  21 , a Web browsing unit  43  for generating the request message including the identification information of the Web data, for example, according to the instruction which is received by the instruction receiving unit  41  to output it and receiving the Web data as the response data to display it on a screen, and a control command adding unit  44 . 
   The control command adding unit  44  adds the value added service control command for indicating the application server  7  to which the request message and/or its response data are to be transmitted and the value added service which is to be applied to the request message and/or its response data, to the request message outputted from the Web browsing unit  43  based on the instruction which was received by the instruction receiving unit  41  or a content which has been set in advance. As the content which has been set in advance, for example, it is considered that the value added service control command to be added is set in advance for each period of time of generating the request message. 
     FIG. 3A  illustrates a data constitutional example of the request message, to which the value added service control command is not added and  FIG. 3B  illustrates a data constitutional example of the request message, to which the value added service control command is added. As shown in  FIGS. 3A ,  3 B, in an IP header of an IP packet showing the request message, the communication control information  431  including a transmission source IP address and a destination IP address of this IP packet is stored. An HTTP (Hypertext Transfer Protocol) packet is stored in the payload of this IP packet. In this HTTP packet, the request message transmission source information  432  including the identification information (i.e. the identification information on the HTTP) of the transmission source of this HTTP packet (i.e. the request message), and the certification information or the like for using the proxy server  1 , the attribute information  433  showing that the HTTP packet is the request message and the identification information  434  of the Web data are stored. As shown in  FIG. 3B , in the request message to which the value added service control command is added, the value added service control command  435  is further stored in this HTTP packet. 
   A Web server  6  is connected to the network  22 . In addition to the above described function provided to the Web browser  6  (i.e. a function provided to the existing Web browser), the Web server  6  further has a function (i.e. a response data command adding function) to add the value added service control command for indicating the application server  7  to which the response data is to be transmitted and the value added service which is to be applied to the response data to this response data. 
     FIG. 4  illustrates a schematic constitution of the Web browser  6 . 
   As shown in  FIG. 4 , the Web server  6  has an instruction receiving unit  61  for receiving the instruction by the user, a network IF  62  for communicating with the network  22 , a Web DB (database)  63  for holding the Web data, a Web server unit  64  for reading the Web data from the Web DB  63  based on the request message to output it as the response data and a control command adding unit  65 . 
   The control command adding unit  65  adds the value added service control command for indicating the application server  7  to which the response data to be transmitted and the value added service which is to be added to the response data, to the response data outputted from the Web server unit  64  based on the instruction which was received by the instruction receiving unit  61  or a content which has been set in advance to this response data. As the content which has been set in advance, for example, it is considered that the value added service control command to be added is set in advance for each period of time of generating the response data. 
     FIG. 5A  illustrates a data constitutional example of the response data, to which the value added service control command is not added and  FIG. 5B  illustrates a data constitutional example of the response data, to which the value added service control command is added. As shown in  FIG. 5A ,  FIG. 5B , in an IP header of an IP packet showing the response data, the communication control information  641  including a transmission source IP address and a destination IP address. In the payload of this IP packet, an HTTP (Hypertext Transfer Protocol) packet is stored. In this HTTP packet, the request message transmission source information  642  including the identification information (the identification information on the HTTP) of an request message transmission source and the certification information for using the proxy server  1 , the attribute information  643  showing that this HTTP packet is the response data and the web data  644  are stored. As shown in  FIG. 5B , according to the response data to which the value added service control command is added, an value added service control command  645  is further stored in this HTTP packet. The attribute information  643  also includes cache/uncache information, cache expiration date information and class(type) information of the Web data  644  or the like. 
   The first proxy server  1   a  is connected to the network  21 , the network  22  and the network  23 . 
   The first proxy server  1   a  receives the request message of the Web data which is transmitted from the Web browsers  3 , 4  through the network  21  and relays this request message to the Web servers  5 ,  6  and the first proxy server  1   a  relays the Web data (the response data) which is transmitted from the transmission destination of this request message to the transmission source of the request message (a relay function). Additionally, the first proxy server  1   a  caches the relayed Web data and then, if the request message of the cached Web data is transmitted from the Web browsers  3  and  4 , the first proxy server  1   a  transmits this cached Web data to the transmission origin of the request message as the response data of this request message instead of relaying the request message to the Web servers  5 ,  6 , (a cache function). Further, the first proxy server  1   a  transfers the request message and/or its response data to the application server  7  and relays it to the transmission destination after performing the value added service such as process, modification, conversion and check or the like at the application server  7  based on the value added service control command which is included in the request message and/or its response data (an value added service function). 
     FIG. 6  illustrates a schematic constitution of the first proxy server  1   a.    
   As shown in  FIG. 6 , the first proxy server  1   a  has a network IF  110  for communicating with the network  21 , a network IF  111  communicating with the network  22 , network IF  112  for communicating with the network  23 , a data cache unit  113 , an request message proxy unit  114 , a control command interpreting unit  115  and an value added service control unit  116 . 
   The network IF  110  receives an IP packet from the network  21 , extracts an HTTP packet (the request message) from its payload and passes it to the request message proxy unit  114 . And, the network IF  110  receives an HTTP packet (the response data) from the request message proxy unit  114  stores it in an IP packet to and transmit the IP packet to the network  21 . 
   The network IF  111  receives an IP packet from the network  22 , extracts an HTTP packet (the response data) from its payload and passes it to the request message proxy unit  114 . And, the network IF  111  receives an HTTP packet (the request message) from the request message proxy unit  114  and stores it in an IP packet to transmit the IP packet to the network  22 . 
   The network IF  112  receives a packet complying with a communication protocol (for example, iCAP) to be adopted by the network  23  from this network  23 , extracts an HTTP packet from its payload and passes it to the request message proxy unit  114 . And, the network IF  112  receives an HTTP packet from the request message proxy unit  114  and stores it in an packet complying with a communication protocol adopted by the network  23  to transmits this packet to the network  23 . 
   In the data cache unit  113 , the response data (the Web data) is stored by the request message proxy unit  114 . 
     FIG. 7  illustrates an example of a content that is registered in the data cache unit  113 . As shown in  FIG. 7 , the response data  1134  is registered in the data cache unit  113  with being associated with a Web data identification information  1131  such as URL which has been stored in the HTTP packet of this response data  1134 , a service type/service name  132  showing a class (type) of the value added service and name of the application server  7  applying this value added service when the value added service is applied to this response data and an expiration date  1133 . 
   The control command interpreting unit  115  receives an HTTP packet from the request message proxy unit  114  and checks whether or not the value added service control command (in the case of the request message, the value added service control command  435  shown in  FIG. 3B  and in the case of the response data, the value added service control command  644  shown in  FIG. 5B ) is stored in this HTTP packet. Then, if the value added service control command is stored, the control command interpreting unit  115  separates this from the HTTP packet. Then, the control command interpreting unit  115  registers the value added service control command  435  to manage it. 
     FIG. 8  illustrates an example of a content that is registered in the control command interpreting unit  115 . As shown in  FIG. 8 , in the control command interpreting unit  115 , a record consists of a policy managing information field  1151  for registering the policy managing information, a transmission source condition registering field  1152  for registering the condition of the request message transmission source and an value added service information registering field  1153  for registering the content of the value added service. 
   The policy managing information field  1151  includes a field  11511  for registering an execution object representing a class(type) of a control command (a control command to be applied to the request message or a control command to be applied to the response data), a field  11512  for registering a rule ID for identifying each of the control commands among the control commands (execution) having the same objects, a filed  11513  for registering a priority (a order to be applied) of the control command among the control command having the same object and a field  11514  for registering an expiration date of the control command. 
   The transmission source condition registering field  11512  includes fields  11521  and  11522  for registering the identification information and the User ID which are included in the request message transmission source information. 
   Then, the value added service information registering field  1153  includes a field  11531  for registering a service type showing a class and a type of the value added service to be applied to the request message and/or the response data, a field  11532  for registering an application server name for identifying application servers  71  to  7   n  which apply the value added services in liaison with the first proxy server  1   a  and a field  11533  for registering a scheme representing a protocol to be used for a communication with the application servers  71  to  7   n  which apply the value added services in liaison with the first proxy server  1   a.    
   For example, in  FIG. 8 , the control command registered in a first record  1154  is an execution object “the response data”, the priority “001” and the expiration date “none”. In the case that the request message transmission source information stored in the target HTTP packet satisfies the request message transmission source condition stored in the transmission source condition registering field  1152  and this HTTP packet is the response data, the control command registered in this record  1154  (i.e. the service type “filtering”, the server name “AP1” and the scheme “iCAP”) is applied preferentially. 
   A data constitutional example of the value added service control command (refer to  FIG. 3B  and  FIG. 5B ) to be added to the request message and the response data will be explained below.  FIG. 9  illustrates a data constitutional example of the value added service control command. In the example of  FIG. 9 , the value added service control command is shown by a tag system that is used in XML (Extensible Markup Language) or the like. 
   The area circled by a tag  1161  represents a content of the value added service control command. The tag  1161  includes a tag  1162 , a tag  1163  and a tag  1164 . 
   The area circled by a tag  1162  represents the policy managing information. The tag  1162  includes a tag  1165  for storing the execution object, a tag  1166  for storing the rule ID, a tag  1167  for storing the priority and a tag  1168  for storing the expiration date. 
   The area circled by the tag  1163  represents the request message transmission source condition. The tag  1163  includes a tag  1169  and a tag  1170  for storing the identification information and the user ID of the request message transmission source. 
   Further, the area circled by a tag  1164  represents the value added service information. The tag  1164  includes a tag  1171  for storing the service type, a tag  1172  for storing the application server name and a tag  1173  for storing the scheme. 
   Returning to  FIG. 6 , the explanation of the first proxy server  1   a  will be continued. The value added service control unit  116  decides the value added service control command to be applied to the HTTP packet which is received from the request message proxy unit  114  with reference to the control command interpreting unit  115  and transmits this HTTP packet to the application server  7  based on the selected value added service control command to apply the value added service. Then, the value added service control unit  116  returns the HTTP packet to which the value added service is applied to the request message proxy unit  114 . On the other hand, in the case that there is no value added service control command to be applied, the value added service control unit  116  returns the HTTP packet which is received from the request message proxy unit  114  as it is. 
   The request message proxy unit  114  applies the value added service specified by the value added service control command to the request message (HTTP packet) received from the network  21  via the network IF  110  by the use of the value added service control unit  116  when necessity arises. Then, the request message proxy unit  114  relays this request message to the transmission destination. On this occasion, if the Web data as the object of the request message is cached in the data cache unit  113 , in stead of relaying the request message to the transmission destination, the request message proxy unit  114  reads this Web data and transmits it to the request message transmission source as the response data to the request message. 
   The request message proxy unit  114  applies the value added service specified by the value added service control command to the response data (HTTP packet) received from the network  22  via the network IF  111  by the use of the value added service control unit  116  when necessity arises. Then, the request message proxy unit  114  relays this response data to the transmission destination. On this occasion, the Web data included in this response data is cached in the data cache unit  113 . 
     FIG. 10  shows an operational flow of the first proxy server  1   a.    
   At first, when the request message proxy unit  114  receives the HTTP packet from the network IF  110  and  111  (S 1001 ) and then, the request message proxy unit  114  passes this HTTP packet to the control command interpreting unit  115 . The control command interpreting unit  115  checks whether or not the value added service control command is stored in the HTTP packet received from the request message proxy unit  114 . If the value added service control command is stored in the received HTTP packet, the control command interpreting unit  115  separates it from the HTTP packet. Then, the control command interpreting unit  115  registers the value added service control command  435  to manage this (S 1002 ). Further, the control command interpreting unit  115  returns the HTTP packet from which the value added service control command is separated to the request message proxy unit  114 . In the case that the value added service control command is not stored in the HTTP packet, the control command interpreting unit  115  returns the HTTP packet to the request message proxy unit  114  without doing any operation. 
   Next, the request message proxy unit  114  passes the HTTP packet received from the control command interpreting unit  115  to the value added service control unit  116 . The value added service control unit  116  checks the request message transmission source information (refer to  FIG. 3B  and  FIG. 5B ) stored in the HTTP packet received from the request message proxy unit  114 . Then, the value added service control unit  116  retrieves the value added service control command, whose execution object satisfies a class(type) of this HTTP packet (request message/response data), whose request message transmission source condition is satisfied by the request message transmission source information thus checked and further, which is not expired, among the value added service control commands which are held in the control command interpreting unit  115 . Then, the value added service control unit  116  selects the detected value added service control command as the value added service control command to be applied to this HTTP packet. In this case, if there are some detected value added service control commands, the value added service control unit  116  selects the value added service control command having the highest priority among them as that to be applied to the HTTP packet. 
   When the value added service control command to be applied to this HTTP packet is selected in this way, the value added service control unit  116  communicates with the application server  7  specified by the application server name which is included in this value added service control command by the use of a communication protocol specified by the scheme which is included in this value added service control command and transmits the data of the HTTP packet which is received from the request message proxy unit  114 , and requests for the value added service specified by the service type which is included in this value added service control command. Then, the value added service control unit  116  receives result of the value added service and returns it to the request message proxy unit  114 . On this occasion, if the HTTP packet is the response data, the value added service control unit  116  notifies the request message proxy unit  114  of the service type of the applied value added service and the name of the application server together with the HTTP packet. On the other hand, in the case that there is no value added service control command to be applied, the value added service control unit  116  returns the HTTP packet which is received from the request message proxy unit  114  without doing any operation (S 1003 ). 
   Next, when the request message proxy unit  113  receives the HTTP packet from the value added service control unit  116 , the request message proxy unit  114  checks the class (request message/response data) of this packet (S 1004 ). 
   As a result, if it is found that the HTTP packet is the request message the request message proxy unit  114  with reference to the control command interpreting unit  115  retrieves the value added service control command whose execution object is “the response data”, whose request message transmission source condition is satisfied by the request message transmission source information included in this request message and further, which is not expired. Then, the request message proxy unit  114  decides this value added service control command as the value added service control command to be applied to the response data to this request message. If there are some of the detected value added service control commands, the request message proxy unit  114  selects the value added service control command having the highest priority among them as that to be applied to the response data of this request message (S 1005 ). 
   When the value added service control command to be applied to the response data of the request message is decided in this way, the request message proxy unit  114  retrieves the Web data which is registered in the data cache unit  113  as associating it with the Web data identification information included in this request message and the service type and the application server name which are included in this value added service control command. On the other hand, in the case that there is no value added service control command to be applied to the response data of the request message, the request message proxy unit  114  retrieves the Web data which is registered in the data cache unit  113  as associating it with the Web data identification information included in this request message and the service type as blank (none) and the application server name as a blank (none) (S 1006 ). 
   If the request message proxy unit  114  has been able to detect such Web data (S 1007 ), it transmits this Web data to the request message transmission source via the network IF  110  as the response data to the request message (S 1008 ). On the other hand, if the request message proxy unit  114  has not been able to detect such Web data (S 1007 ), it transmits this request message to the Web server  6  which holds the Web data as the object of the request message or the third proxy server  1   c  which accommodates the Web server  5  which holds the Web data as the object of the request message via the network IF  111  (S 1009 ). 
   On the other hand, in the case that the HTTP packet is the response data in S 1004 , the request message proxy unit  114  transmits this response data to the Web browser  4  specified by the request message source information which is included in the response data or the third proxy server  1   b  which accommodates the Web browser  3  specified by the request message source information which is included in the response data via the network IF  110  (S 1010 ). 
   Then, the request message proxy unit  114  registers the Web data included in the response data in the data cache unit  113  by associating it with the Web data identification information which is included in this response data (S 1011 ). On this occasion, if the request message proxy unit  114  receives the service type and the application server name together with the response data from the value added service control unit  116 , the request message proxy unit  114  also registers these in the data cache unit  113  by associating them with the Web data. 
   Returning to  FIG. 1 , the explanation of the second proxy server  1   b  will be continued. The second proxy server  1   b  is connected to the network  21  and the Web browser  3 . The second proxy server  1   b  further has the above described request message command adding function in addition to the above described relaying function and cache function. 
     FIG. 11  illustrates a schematic constitution of the second proxy server  1   b.    
   As shown in  FIG. 11 , the second proxy server  1   b  has an instruction receiving unit  120  for receiving the instructions by the user, a network IF  121  communicating with the Web browser  3 , a network IF  122  communicating with the network  21 , a data cache unit  123 , an request message proxy unit  124  and a control command adding unit  125 . 
   The network IF  121  receives the IP packet from the Web browser  3 , extracts the HTTP packet (the request message) from its payload and passes this HTTP packet to the request message proxy unit  124 . Further, the network IF  121  receives the HTTP packet (the response data) from the request message proxy unit  124 , stores it in the IP packet and transmits it to the Web browser  3 . 
   The network IF  122  receives the IP packet from the network  21 , extracts the HTTP packet (the response data) from its payload and passes this HTTP packet to the request message proxy unit  124 . Further, the network IF  122  receives the HTTP packet (the request message) from the request message proxy unit  124 , stores it in the IP packet and transmits it to the network  21 . 
   In the data cache unit  123 , the response data (the Web data) is stored by the request message proxy unit  124 . A content registered in the data cache unit  123  is basically the same as the example of a content that is registered in the data cache unit  113  shown in  FIG. 7 . 
   The control command adding unit  125  adds the value added service control command which indicates the application server  7  to which the request message and/or its response data are to be transmitted and the value added service which is to be applied to the request message and/or its response data to this request message outputted from the Web browser  3  in accordance with the instruction received by the instruction receiving unit  120  or a content set in advance. As the content set in advance, for example, it is considered that the value added service control command to be added is set in advance for each period of time of receiving the request message. 
   The request message proxy unit  124  adds the value added service control command to the request message (HTTP packet) received from the Web browser  3  via the network IF  121  in liaison with the control command adding unit when necessity arises. Then, the request message proxy unit  124  relays this request message to the first proxy server  1   a  via the network IF unit  122 . On this occasion, if the Web data as the object of the request message is cached in the data cache unit  123 , in stead of relaying the request message to the transmission destination thereof, the request message proxy unit  124  reads this Web data and transmits it to the request message transmission source as the response data of the request message. 
   Additionally, the request message proxy unit  124  relays the response data (HTTP packet) received from the network  21  to the transmission destination via the network IF unit  122 . On this occasion, the request message proxy unit  124  caches the Web data included in this response data in the data cache unit  123 . 
     FIG. 12  shows an operational flow view of the second proxy server  1   b.    
   At first, when the request message proxy unit  124  receives the HTTP packet from the network IF  121  and  122  (S 2001 ) and then, it checks the type (request message/response data) of this packet (S 2002 ). 
   As a result, if it is found that the HTTP packet is the request message, the request message proxy unit  124  passes this HTTP packet to the control command adding unit  125 . The control command adding unit  125  adds the value added service control command to the request message which is received from the request message proxy unit  124  based on the instruction received by the instruction receiving unit  61  and a content which set in advance. Then, the control command adding unit  125  returns this request message to the request message proxy unit  124  (S 2003 ). 
   Next, when the request message proxy unit  124  receives the request message from the control command adding unit  125 , the request message proxy unit  124  checks whether or not the value added service control command whose execution object “the response data” is added to this request message. If the value added service control command whose execution object “the response data” is added, the request message proxy unit  124  retrieves the Web data registered in the data cache unit  123  by associating it with the Web data identification information included in this request message and the service type and the application server name which are included in this value added service control command added to this request message. On the other hand, in the case that no value added service control command whose execution object “the response data” is not added to this request message, the request message proxy unit  124  retrieves the Web data which is registered in the data cache unit  123  by associating it with the Web data identification information included in this request message and the service type as a blank (none) and the application server name of as a blank (none) (S 2004 ). 
   If the request message proxy unit  124  has been able to detect such Web data (S 2005 ), it transmits this Web data to the request message transmission source (i.e. the Web browser  3 ) via the network IF  121  as the response data of the request message (S 2006 ). On the other hand, if the request message proxy unit  124  has not been able to detect such Web data (S 2005 ), it transmits this request message to the first proxy server  1   a  via the network IF  122  (S 2007 ). On this occasion, in the case that the value added service control command whose execution object “the response data” is added to this request message, the request message proxy unit  124  holds the service type and the application server name which are included in this value added service control command and the identification information of this request message till the response data of this request message is transmitted. 
   On the other hand, in S 2002 , if the HTTP packet is the response data, the request message proxy unit  124  transmits this response data to the Web browser  2  specified by the request message source information included in the response data via the network IF  121  (S 2008 ). 
   Then, the request message proxy unit  124  registers the Web data included in the response data in the data cache unit  123  The Web data is associated with the Web data identification information which is included in this response data (S 2009 ). On this occasion, if the service type and the application server name are held by being associated with the identification information of the request message paired with this response data, the request message proxy unit  124  also registers these associated with the Web data in the data cache unit  123 . 
   Returning to  FIG. 1 , the explanation of the third proxy server  1   c  will be continued. The third proxy server  1   c  is connected to the network  22  and the Web server  5 . The third proxy server  1   c  further has the above described response data command adding function in addition to the above described relaying function and cache function. 
     FIG. 13  illustrates a schematic constitution of the third proxy server  1   c.    
   As shown in  FIG. 13 , the third proxy server  1   c  has an instruction receiving unit  130  for receiving the instructions by the user, a network IF  131  communicating with the network  22 , a network IF  132  communicating with the Web server  5 , a data cache unit  133 , an request message proxy unit  134  and a control command adding unit  135 . 
   The network IF  131  receives the IP packet from the network  22 , extracts the HTTP packet (the request message) from its payload and passes this HTTP packet to the request message proxy unit  134 . Further, the network IF  131  receives the HTTP packet (the response data) from the request message proxy unit  134 , stores it in the IP packet and transmits it to the network  22 . 
   The network IF  132  receives the IP packet from the Web server  5 , extracts the HTTP packet (the response data) from its payload and passes this HTTP packet to the request message proxy unit  134 . Further, the network IF  132  receives the HTTP packet (the request message) from the request message proxy unit  134 , stores it in the IP packet and transmits it to the Web server  5 . 
   The response data (the Web data) is stored in the data cache unit  133  by the request message proxy unit  134 . A content registered in the data cache unit  133  is basically the same as an example of the content registered in a data cache unit  113  shown in  FIG. 7  except for the field  1132  for registering the service type and the application server name being omitted. 
   The control command adding unit  135  adds the value added service control command which indicates the application server  7  to which response data outputted from the web server  5  and/or response data storing the web data cached in data cache unit  133  and the value added service which is to be applied to these response data items to these response data items based on the instruction received by the instruction receiving unit  61  and a content which has been set in advance. As the content set in advance, for example, it is considered that the value added service control command to be added is set in advance for each period of time of receiving and generating the response data. 
   The request message proxy unit  134  relays this request message (the HTTP packet) received from the network  22  via the network IF  131  to the Web server  5  via the network IF unit  132 . On this occasion, if the Web data as the object of the request message is cached in the data cache unit  133 , in stead of relaying the request message to the transmission destination thereof, the request message proxy unit  134  reads this Web data as the response data of the request message. The request message proxy unit  134  adds the value added service control command to this response data in liaison with the control command adding unit  135  when necessity arises. Then the request message proxy unit  134  transmits this response data of the request message transmission source. 
   Additionally, the request message proxy unit  134  adds the value added service control command to the response data (HTTP packet) received from the Web server  5  via the network IF unit  132  in liaison with the control command adding unit  135  when necessity arises. Then the request message proxy unit  134  transmits this response data to the request message transmission source. On this occasion, the request message proxy unit  134  caches the Web data included in this response data in the data cache unit  133 . 
     FIG. 14  shows an operational flow view of the third proxy server  1   c.    
   At first, the request message proxy unit  134  receives the HTTP packet from the network IF  131  and  132  (S 3001 ) and then, it checks a type (request message/response data) of this packet (S 3002 ). 
   As a result, if it is found that the HTTP packet is the request message, the request message proxy unit  134  retrieves the Web data registered in the data cache unit  133  by associating it with the Web data identification information included in this request message (S 3003 ). 
   If the request message proxy unit  134  has been able to detect such Web data (S 3004 ), this Web data is handled as the response data of the request message (S 3005 ). Then, the request message proxy unit  134  passes this response data to the control command adding unit  135 . The control command adding unit  135  adds the value added service control command to the response data received from the request message proxy unit  134  in accordance with the instruction received by the instruction receiving unit  130  or a content set in advance when necessity arises. Then, the control command adding unit  135  returns this response data to the request message proxy unit  134  (S 3006 ). The request message proxy unit  134  transmits this response data to the first proxy server  1   a  via the network IF  131  (S 3007 ). On the other hand, if the request message proxy unit  134  has not been able to detect such Web data (S 3004 ), it transmits this request message to the Web server  5  via the network IF  132  (S 3008 ). 
   On the other hand, in S 3002 , if the HTTP packet is the response data, the request message proxy unit  134  passes this response data to the control command adding unit  135 . The control command adding unit  135  adds the value added service control command to the response data received from the request message proxy unit  134  based on the instruction received by the instruction receiving unit  130  and a content set in advance when necessity arises. Then, the control command adding unit  135  returns this response data to the request message proxy unit  134  (S 3009 ). The request message proxy unit  134  transmits this response data to the first proxy server  1   a  via the network IF  131  (S 3010 ). On this occasion, the request message proxy unit  134  registers the Web data included in this response data in the data cache unit  133 . The Web data is associated with the Web data identification information included in this response data (S 3011 ). 
   By the way, respective devices shown in  FIG. 1  can be realized in a general computer system which is provided with, for example, a CPU  901 , a memory  902 , an external storage device  903  such as an HDD or the like, a reading device  905  for reading the information from a storage medium  904  such as a CD-ROM and a DVD-ROM or the like, an input device  906  such as a key board and a mouse or the like, an output device  907  such as a display or the like and a communication device  908  for communicating with a communicating party&#39;s device via a network shown in  FIG. 15  when the CPU  901  executes a predetermined program which is loaded on the memory  902 . 
   Next, a flow of the request message and the response data which are exchanged on the network system constituted as described above will be explained below as taking a case such that the Web browser  3  accesses the Web data held by the Web server  5  and virus check is carried out for the request message and its response data, respectively, as the value added service as an example. 
     FIG. 16  illustrates an example of a flow of the request message and its response data that are exchanged on the network system constituted as described above. 
   At first, the request message transmitted from the Web browser  3  arrives at the second proxy server  1   b  (S 4001 ). 
   The second proxy server  1   b  checks whether or not the Web data as the object of this request message is cached. If it is cached, the second proxy server  1   b  transmits the response data including this Web data to the Web browser  3  of the request message transmission source (S 4002 ). On the other hand, if it is no cached, the second proxy server  1   b  adds the value added service control command for applying the virus check to this request message to this request message. Therefore, the request message added with the value added service control command is transmitted from the second proxy server  1   b  to the first proxy server  1   a  (S 4003 ). 
   The first proxy server  1   a  separates the value added service control command from the request message received from the second proxy server  1   b . Then, in accordance with the separated value added service control command, the first proxy server  1   a  transmits this request message to the application server  7  for the virus check (S 4004 ). The application server  7  carries out the virus check so as to check whether or not the request message received from the first proxy server  1   a  tries to access the data which has been found to be infected with a virus (S 4005 ). After that, the request message thus virus checked is returned to the first proxy server  1   a  (S 4006 ). 
   The first proxy server  1   a  checks whether or not the Web data as the object of the request message thus virus checked is cached. Then, if it is cached, the first proxy server  1   a  transmits the response data including this Web data to the second proxy server  1   b  (S 4007 ). The second proxy server  1   b  transmits the response data received from the first proxy server  1   a  to the Web browser  3  as the request message transmission source (S 4008 ) and caches it (S 4009 ). 
   On the other hand, in the case that the Web data as the object of the request message thus virus checked is not cached, the first proxy server  1   a  transmits this request message to the third proxy server  1   c  (S 4010 ). 
   The third proxy server  1   c  checks whether or not the Web data as the object of the request message received from the first proxy server  1   a  is cached. If it is cached, the third proxy server  1   c  generates the response data including this Web data. Then, the third proxy server  1   c  adds the value added service control command for applying the virus check to this response data to this response data. Therefore, the response data added to the value added service control command is transmitted from the third proxy server  1   c  to the first proxy server  1   a  (S 4011 ). 
   The first proxy server  1   a  separates the value added service control command from the response data received from the third proxy server  1   c . Then, in accordance with the separated value added service control command, the first proxy server  1   a  transmits this response data to the application server  7  for the virus check (S 4012 ). The application server  7  carries out the virus check to the response data received from the first proxy server  1   a  (S 4013 ). After that, the response data thus virus checked is returned to the first proxy server  1   a  (S 4014 ). 
   The first proxy server  1   a  transmits the response data thus virus checked to the second proxy server  1   b  (S 4015 ) and caches it (S 4016 ). The second proxy server  1   b  transmits the response data thus virus checked which is received from the first proxy server  1   a  to the Web browser  3  as the request message transmission source (S 4017 ) and caches it (S 4018 ). 
   On the other hand, in the case that the Web data as the object of the request message thus virus checked is not cached in the third proxy server  1   c , the third proxy server  1   c  transmits this request message to the Web server  5  (S 4019 ). 
   The Web server  5  generates the response data in which the Web data as the object of the request message received from the third proxy server  1   c  is stored and passes it to the third proxy server  1   c  (S 4020 ). 
   The third proxy server  1   c  caches the response data received from the Web data  5  (S 4021 ) and adds the value added service control command for applying the virus check to this response data to this response data. Therefore, the response data to which the value added service control command is added is returned from the third proxy server  1   c  to the first proxy server  1   a  (S 4022 ). 
   The first proxy server  1   a  separates the value added service control command from the response data received from the third proxy server  1   c . Then, based on the separated value added service control command, the first proxy server  1   a  transmits this response data to the application server  7  for the virus check (S 4023 ). The application server  7  carries out the virus check for the response data received from the first proxy server  1   a  (S 4024 ). After that, the response data thus virus checked is returned to the first proxy server  1   a  (S 4025 ). 
   The first proxy server  1   a  transmits this response data thus virus checked to the second proxy server  1   b  (S 4026 ) and caches it (S 4027 ). The second proxy server  1   b  transmits the response data thus virus checked received from the first proxy server  1   a  to the Web browser  3  as the request message transmission source (S 4028 ) and caches it (S 4029 ). 
   As described above, an embodiment according to the present invention has been explained. 
   According to the present embodiment, it is possible to add the value added service control command that indicates the condition and the application server  7 &#39;s service to be applied to the request message and/or its response data when it satisfies the condition. 
   Then, the first proxy server  1   a , based on the value added service control command which is included in this request message, relays this request message to the request message transmission destination or transfers this request message to the application server  7  to make the application server  7  apply the value added service such as process, modification, conversion and check or the like then relays this request message to the request message transmission source. Alternatively, the first proxy server  1   a  relays the response data to the request message transmission source or transfers this response data to the application server  7  to make the application server apply the value added service such as process, modification, conversion and check or the like, then relays this response data to the request message transmission source. 
   Additionally, the first proxy server  1   a , in accordance with the value added service control command included in the response data, relays this response data to the request message transmission source or transfers this response data to the application server  7  to make the application  7  apply the value added service such as process, modification, conversion and check or the like, then relays this response data to the request message transmission destination. 
   In this way, according to the present embodiment, the value added service control command is included in the request message itself and/or the response data itself. Then, according to the present embodiment, the first proxy server  1   a  extracts and interprets the value added service control command included in the request message and/or the response data, and judges whether or not the request message and/or the response data are to be transferred to the application server  7  for applying the value added service to them in accordance with this value added service control command. 
   Therefore, it is not necessary to set a table which is explained in the prior art in advance to each of many proxy servers located on the network. Further, it is possible to provide different value added services to each data dynamically generated by a CGI or the like having the same destination URL. In this way, according to the present embodiment, it is possible to control the data transfer to the application server  4  flexibly and delicately. 
   Additionally, according to the present embodiment, the second proxy server  1   b  accommodating the Web browser  3  adds the value added service control command to the request message received from the Web browser  3  to relay it to the first proxy server  1   a . Therefore, it is not necessary to set up a particular mechanism (a mechanism owned by the Web browser  4 ) to the Web browser  3 . 
   In the same way, according to the present embodiment, the third proxy server  1   c  accommodating the Web server  5  adds the value added service control command to the response data received from the Web server  5  to relay it to the first proxy server  1   a . Therefore, it is not necessary to set up a particular mechanism (a mechanism owned by the Web browser  6 ) to the Web server  5 . 
   The present invention is not limited to the above described embodiment and various modifications will become possible without departing from the scope thereof. 
   For example, according to the above described embodiment, the exchange of the request message and the response data is performed by using IP and HTTP. However, the present invention is not limited to this case. For example, exchange of the request message and the response data may be performed using IP and FTP (File Transfer Protocol). Further, in the present invention, the object of the request message or the Web data stored in the response data is not limited to an HTML (Hypertext Markup Language) document, but a program and other file data may be included in the Web data according to the present invention. 
   As described above, according to the present invention, it is possible to control the data transfer to the application server connected to the proxy server apparatus.