REPLACEMENT OF REQUESTED DATA WITH EQUIVALENT DATA
Background of the Invention
1. Field of the Invention
This invention relates to requesting data from a remote source and replacing that data with locally-stored equivalent data, such as for use in an internetworking environment.
2. Related Art
In the World Wide Web, client devices (also called "web browsers") make requests for information from server devices (also called "web sites"), receive that information from the server devices, and present that information at those client devices to end-users. One problem when using the World Wide Web is that a rate of transfer of information from the server to the client is sometimes much less than desired. This problem is particularly acute when information to be transferred includes real-time data, streaming media, or relatively large data files such as high- resolution pictures.
One known method for attempting to present information more rapidly at the client device is to transfer that information from the server to the client at a time earlier than the request made by the client. In this way, the requested information can be presented at the client device from storage relatively local to the client. Devices and systems using this method include proxy caches and other local storage used as a cache at the client device.
While this known method generally achieves the result of presenting information more rapidly at the client device than that information could be transferred in real-time from the server to the client, it is still subject to the drawback
that it simply substitutes an exact copy of the requested information maintained in local storage in place of the information requested from the server.
Accordingly, it would be advantageous to provide a technique for accelerating transfer of data from a remote source, that is not subject to the drawbacks of the known art. This can be achieved by recognizing when the client requests data from a target server, identifying the nature of the data requested from the server, and presenting equivalent data at the client to the end-user. The equivalent data, which can be either personalized for the end-user, more detailed, or otherwise superior to the requested data, can have been previously transferred from a source of equivalent data. The source of equivalent data can be either different from or the same as the target server to which the client makes the current request.
Summary of the Invention
The invention provides a method and system for substituting preferred content when a request is made for content equivalent to the preferred content, so as to (for example) provide a web browsing experience specific to the particular user. For example, relatively high quality content can be served instead of a request for relatively low quality content (or the reverse), or personalized, specific or tailored content can be served instead of generic content. The method includes recognizing a request for data by a client from a target server, identifying a set of preferred data (equivalent to the requested data) that is preferably (such as for example, more easily) presented at the client, and presenting the equivalent data at the client in lieu of the requested data. In a preferred embodiment, a system for performing the method includes a preferred-data server capable of sending both preferred content and a set of matching rules associated with that preferred content, storage relatively local to the client for maintaining the preferred content, a matching element capable of recognizing requests for data equivalent to the preferred content and satisfying such with the preferred content.
The invention provides an enabling technology for a wide variety of applications for delivery of preferred content from a remote source, so as to obtain substantial advantages and capabilities that are novel and non-obvious in view of the known art. Examples described below primarily relate to the World Wide Web, but the invention is broadly applicable to many different types of systems in which delivery of preferred content is desired.
Brief Description of the Drawings
Figure 1 shows a block diagram of a portion of a system capable of delivery of preferred content from a remote source.
Figure 2 shows a process flow diagram of a method for operating a system as in figure 1.
Detailed Description of the Preferred Embodiment
In the following description, a preferred embodiment of the invention is described with regard to preferred process steps and data structures. Embodiments of the invention can be implemented using general-purpose processors or special purpose processors operating under program control, or other circuits, adapted to particular process steps and data structures described herein. Implementation of the process steps and data structures described herein would not require undue experimentation or further invention.
Lexicography
The following terms refer or relate to aspects of the invention as described below. The descriptions of general meanings of these terms are not intended to be limiting, only illustrative.
• client device, server device - In general, the phrase "client device" includes any device taking on the role of a client in a client-server relationship (such as an HTTP web client and web server). There is no particular requirement that client devices must be individual physical devices; they can each be a single device, a set of cooperating devices, a portion of a device, or some combination thereof. Similarly, the phrase "server device" includes any device taking on the role of a server in a client-server relationship. There is no particular requirement that server devices must be individual physical devices; they can each be a single device, a set of cooperating devices, a portion of a device, or some combination thereof.
• client, seiner - In general, the terms "client" and "server" refer to relationships between the client and the server, not necessarily to particular physical devices. Moreover, any particular device can be considered a client with regard to a first client-server relationship and can be considered a server with regard to a second client-server relationship, even if those relationships are in fact between the same two devices.
• equivalent data, preferred data, requested data — In general, the phrases "equivalent data," "preferred data," and "requested data" refer to information associated with the request by the client and directed to the server. "Requested data" refers to the exact set of network objects literally requested by the client. "Equivalent data" refers to any data that is functionally or intentionally an equivalent of the requested data, such as having substantively identical content. "Preferred data" refers to any data that is preferred to the requested data, such as being easier to deliver, higher-resolution, less expensive, or having some other advantage.
• preferred-data server, target server — In general, the phrases "preferred-data server" and "target server" refer to servers involved in the request for information by the client and servicing that request by the server. A "target
server" refers to any server to which a request for information is actually directed by a client. A "preferred-data server" refers to any server capable of providing equivalent data or preferred data to the client, in lieu of the requested data.
As noted above, these descriptions of general meanings of these terms are not intended to be limiting, only illustrative. Other and further applications of the invention, including extensions of these terms and concepts, would be clear to those of ordinary skill in the art after perusing this application. These other and further applications are part of the scope and spirit of the invention, and would be clear to those of ordinary skill in the art, without further invention or undue experimentation.
System Elements
Figure 1 shows a block diagram of a portion of a system capable of delivery of preferred content from a remote source.
A system 100 includes a communication link 110, one or more clients 120, a replacement server 130, one or more target servers 140, and one or more preferred-data servers 150.
The communication link 110 includes a computer network for transferring information, such as by sending and receiving messages, between devices. The communication link 110 might include an Internet, intranet, extranet, virtual private network, enterprise network, private or public switched network, direct communication pathway, other communication system, or some combination thereof. In a preferred embodiment, the communication link 110 includes the World Wide Web and operates using HTTP (hypertext transfer protocol) or a similar protocol or variant thereof.
The clients 120 include processors, program and data memory, mass storage, and input and output peripherals. In a preferred embodiment, each client 120 includes a workstation such as a desktop or laptop computer, and is coupled to the replacement server 130. In alternative embodiments, each client 120 may include a hand-held computer, a telephone, or other communication device. In further alternative embodiments, clients 120 may be coupled directly to the communication link 110 and communicate with the replacement server 130 to perform functions described herein.
The replacement server 130, similarly to clients 120, includes a processor, program and data memory, mass storage, and input and output peripherals. Among these elements, or in addition thereto, the replacement server 130 includes relatively local storage 131 and a matching element 132. In a preferred embodiment, the relatively local storage 131 includes memory and mass storage operating under control of a processor included in the replacement server 130. In alternative embodiments, the relatively local storage 131 includes any memory or mass storage functionally accessible to the replacement server 130 with relatively superior access (such as with less latency, greater reliability, or some combination thereof) than access to data using the communication link 110.
The target servers 140, similarly to clients 120, include processors, program and data memory, mass storage, and input and output peripherals. In a preferred embodiment, each target server 140 includes relatively local storage 141 having a set of local content 142. In a preferred embodiment, each target server 140 includes a web server and the local content 142 includes network objects such as might be presented by the web server in response to HTTP requests.
The preferred-data servers 150, similarly to clients 120, include processors, program and data memory, mass storage, and input and output peripherals. In a preferred embodiment, each preferred-data server 150 includes
relatively local storage 151 having a set of matching rules 152 associated with a set of preferred content 153.
Method of Operation
Figure 2 shows a process flow diagram of a method for operating a system as in figure 1.
A method 200 includes a set of flow points and a set of steps. The system 100 performs the method 200. Although the method 200 is described serially, the steps of the method 200 can be performed by separate elements in conjunction or in parallel, whether asynchronously, in a pipelined manner, or otherwise. There is no particular requirement that the method 200 be performed in the same order in which this description lists the steps, except where so indicated.
At a flow point 210, one or more of the preferred-data servers 150 is ready to transfer matching rules 152 and associated preferred content 153 to the replacement server 130.
At a step 211, the preferred-data server 150 sends one or more preferred-data messages 154 to the replacement server 130. The preferred-data messages 154 include matching rules 152 and associated preferred content 153 from the relatively local storage 151 at the preferred-data server 150.
At a step 212, the replacement server 130 receives the preferred-data messages 154. As part of this step, the replacement server 130 records at least a portion of the matching rales 152 and associated preferred content 153 in the relatively local storage 131.
After a flow point 220, the replacement server 130 includes at least a portion of the matching rules 152 and associated preferred content 153 in the
relatively local storage 131, and is ready to serve that preferred content 153 to one or more clients 120.
At a flow point 230, one or more of the clients 120 is ready to request information.
At a step 231, the client 120 sends one or more information request messages 124 to the replacement server 130. The information request messages 124 include data identifying the requested information and the target server 140. In a preferred embodiment, the information request messages 124 use an information request protocol such as HTTP or a similar protocol or variant thereof. In a preferred embodiment, the data identifying the requested information includes data identifying the local content 142 at the target server 142.
At a step 232, the replacement server 130 receives the information request messages 124 from the client 120. In a preferred embodiment, the replacement server 130 receives the information request messages 124 directly from the client 120, such as when the replacement server 130 is configured between the client 120 and the communication link 110, similar to a proxy cache. However, in alternative embodiments, the replacement server 130 may receive the information request messages 124 from the client 120 in another way, such as by one or more of the following, or some combination thereof:
• The information request messages 124 are routed from the client 120 to the replacement server 130 using the communication link 110.
• The information request messages 124 are routed from the client 120 to the target server 140, which redirects them to the replacement server 130, using the communication link 110 or otherwise.
• The information request messages 124 are routed from the client 120 to the target server 140, and are intercepted between the client 120 and the target server 140 and redirected to the replacement server 130, using the communication link 110 or otherwise.
At a step 233, the matching element 132 at the replacement server 130 applies the matching rules 152 to the information request messages 124. As part of this step, the matching element 132 determines whether the requested data (from the relatively local storage 141, thus, the local content 142 at the target server 140) is associated with any equivalent data or preferred content 153 (at the relatively local storage 151 at the preferred-data server 150).
As part of this step, if there is no equivalent data for the requested data, the replacement server 130 forwards the information request messages 124 to the target server 140 for service. When the information request messages 124 are directed at the target server 140 for service, the target server 140 provides the requested data (thus, the local content 142 at the target server 140) from its relatively local storage 141. Providing requested information from a server to a client is known in the art of client-server communication within a computer network.
At a step 234, if the matching element 132 determines that there is equivalent data for the requested data, the replacement server 130 retrieves at least a portion of the associated preferred content 153 from the relatively local storage 131 at the replacement server 130. The associated preferred content 153 will have been previously transferred from one or more preferred-data servers 150 between the flow point 210 and the flow point 220.
In a preferred embodiment, the entire associated preferred content 153 would have been recorded in the relatively local storage 131 at the replacement server 130 by the time the information request messages 124 are processed by the matching element 132. However, it may occur that not all of the associated preferred content
153 is present in the relatively local storage 131 at the replacement server 130 by that time. This can occur for one or more of, or some combination of, the following:
• The associated preferred content 153 has not yet been completely transferred between the preferred-data server 150 and the replacement server 130. This can occur if the associated preferred content 153 is relatively large, such as a high-resolution picture.
• The associated preferred content 153 includes real-time information, such as streaming audio or video data, and has not yet been completely served from the preferred-data server 150. This can occur if the associated preferred content 153 is relatively continuous, such as a radio or television show that is still ongoing when the information request messages 124 are processed.
• The associated preferred content 153 includes dynamically generated information, such as real-time news or stock quotes, telemetry data, or responses to querying a dynamic database.
At a step 235, the replacement server 130 serves the associated preferred content 153 from its relatively local storage 131 to the client 120. As part of this step, if the replacement server 130 has only part of the associated preferred content 153, the replacement server 130 serves that part of the associated preferred content 153 from its relatively local storage 131 to the client 120 while substantially simultaneously requesting and retrieving the rest of the associated preferred content 153 from the preferred-data server 150.
In those cases where the associated preferred content 153 includes streaming audio or video information or dynamically generated information, the replacement server 130 buffers at least a portion of the associated preferred content 153 in its relatively local storage 131 so that the associated preferred content 153 can be served at regular presentation rates to the client 120.
In those cases where the replacement server 130 does not have enough buffer memory to serve the associated preferred content 153 smoothly to the client 120, the replacement server 130 might perform the following sub-steps, or a variant thereof:
• The replacement server 130 obtains the original requested data (thus, the local content 142) from the target server 140.
• The replacement server 130 serves that original requested data to the client 120.
• The replacement server 130 obtains the preferred content 153 from the preferred-data server 150.
• The replacement server 130 serves the preferred content 153 to the client 120 as a replacement for the original requested data.
At a step 236, the client 120 receives the preferred content 153 and presents it to the end-user.
At a flow point 240, the preferred content 153 has been served to the client 120 and presented to the end-user.
Generality of the Invention
The invention has general applicability to various fields of use, not necessarily related to the services described above. For example, these fields of use can include one or more of, or some combination of, the following:
• The invention is generally applicable to methods and systems where information to be presented or processed has more than one form, such as a relatively low-resolution form and a relatively high-resolution form. For a first example, the invention is applicable to systems in which relatively high- resolution form is preferred to enhance the user experience. For a second example, the invention is applicable to systems in which relatively low- resolution form is preferred to minimize the communication bandwidth usage (such as in a wireless environment).
• The invention is generally applicable to methods and systems where information or services are requested from more than one device capable of servicing the request, such as a first server having relatively stale information and a second server having relatively fresh information.
• The invention is generally applicable to methods and systems where information is desired to be transferred at a time other than the time that information is requested, so that the information transfer is "time shifted" from the information request.
Other and further applications of the invention in its most general form, will be clear to those skilled in the art after perusal of this application, and are within the scope and spirit of the invention.
Although preferred embodiments are disclosed herein, many variations are possible which remain within the concept, scope, and spirit of the invention, and these variations would become clear to those skilled in the art after perasal of this application.