SYSTEM AND METHOD FOR WEB MIRRORING

Abstract: An approach for providing mirror servers (101, 103) of a primary server (109) to enhance efficient retrieval of web information is disclosed. A primary server (109) communicates with one or more secondary servers (i.e., mirror servers) (101, 103); the primary server (109) and the secondary servers (101, 103) communicate with each other over a communication network (105), such as the public Internet. A user station (107) initially communicates with the primary server (109) to retrieve information. The primary server (109) determines a particular secondary server (101 or 103) based upon network analysis data. The network analysis data may optionally be stored as a cookie in the user station (107). Thereafter, the primary server (109) instructs the user station (107) to communicate with a particular secondary server (101 or 103) for subsequent requests. The secondary server (101 or 103) is selectively synchronized with the primary server (109).

Description: TITLE OF THE INVENTION SYSTEM AND METHOD FOR WEB MIRRORING The present invention relates to a communication system employing a client-server architecture, and is more particularly related to utilizing mirror servers for storing information. The phenomenal growth of the Internet has presented network service providers (NSPs) with the continual task of responding to the millions of users' demand for reliable and fast access service. The primary role of an NSP is to connect users, which may include residential as well as - 1 - business users, to a larger network for the transport of these users' data. The term Internet Service Provider (ISP) generally pertains to a particular type of network service provider that concentrates on providing access to the global Internet. Undoubtedly the Internet has revolutionized the way personal communication as well as business communication is conducted. With its expansive reach, the Internet has allowed users to communicate freely without geographic boundaries. In fact, businesses have integrated numerous Internet services, which include e-mail, mailing lists, e-commerce (electronic commerce), and the World Wide Web, into their business processes. Performance of the World Wide Web is largely dictated by the speed with which the information from a web server can be retrieved by the client (the user station) over the Internet. Performance concerns are faced by numerous organizations and business entities, such as banks and brokerage houses, which rely on communication networks to transfer massive amounts of critical data, as a necessary part of their daily business tasks. Near real-time access to data is the desirable goal of such institutions; therefore, undue delay pose grave consequences (e.g., degradation of service to clients, lost of revenue, etc.). Factors that impact this performance include the reliability, bandwidth, and congestion level of the communication path, propagation delay stemming from geographical distances, and loading on the web server. The above factors can be mitigated by using a local caching mechanism. That is, popular information objects are stored locally in a cache, as in the "proxy caching" scheme of the convention communication system of Figure 5. However, conventional systems, as described in Figures 5 and 6, possess a number of drawbacks. Figure 5 shows a block diagram of a conventional proxy caching model for accessing a web site. As shown, a web server 501 typically contains a database 503 and is connected to the Internet 505, which employs the TCP IP (Transmission Control Protocol/lntemet Protocol) stack to reliably transport data. A proxy server 507, which is attached to the Internet 505, stores popular requested information objects to a cache. The cache is located in proxy server 507, which provides a gateway service by acting as a server to the user station 509. Further, the proxy server 507 behaves as a client to the web server 501. Because proxy server 507 performs a caching function, the server 507 is referred to as a "proxy cache." Proxy cache 507 essentially intercepts request messages from user station 509 to the web server 501. Proxy cache 507 has a replica of the requested information, the proxy cache 507 sends the requested information to the user station 509. This function is transparent to the user station 509. Accordingly, network latency of the Internet 505 is avoided; the result is that network resources or objects are provided more quickly to the user station 509. In this model, user station 509 retrieves information from the Internet 505 through proxy server 507 using HTTP (Hyper Text Transfer Protocol). Particularly, a large number of HTTP GET messages are submitted by the user station 509 to the web server 501 to retrieve a typical web page, which may be made up of multiple HTML (Hyper Text Markup Language) documents. The HTTP GET messages specify a Uniform Resource Locator (URL), which uniquely identifies each information object stored on or dynamically generated by the web server 501. In effect, the URL serves as an address for the information by identifying the location of information stored in the Internet 505. For each HTTP GET message, a communication session is set-up and tom-down, thereby necessitating the establishment and termination of numerous communication sessions for a single transaction. In other words, a single, continuous communication session is not maintained. Accordingly, network latency of the Internet 505 is amplified. In this conventional system, the - 3 - SUB proxy server 507 seeks to minimize this network latency by servicing some of the requests from the user station 509 without having to relay the requests over the Internet 505 to the web server 501. During operation, the user station 509 requests, as in step 1, a page from the proxy cache 507, which is configured into the browser of the user station 509. If the page is available on the proxy cache 507, the proxy cache 507 returns, per step 2, the requested page to user station 509. In this manner, the user station 509 experiences improved performance over having to wait for the request and response from web server 501 to traverse the Internet 505; this network latency may be significant, depending on the level of congestion on the Internet 505. However, if the requested information is not available on the proxy cache 507, user station 509 must log onto the web server 501 to obtain the information. Accordingly, the user's request, as in step 3, is forwarded to web server 501. Web server 501 retrieves the information from database 503; this information is downloaded, per step 4, to the proxy cache 507. Thereafter, the information is forwarded to the user station 509. This proxy cache model is useful when the users cannot avoid using a cache, such as crossing a boundary between an Intranet and a public Internet 505. However, the drawbacks include time delays when the information (e.g., web page) is not on the proxy cache 507, variable performance occurring within page groups, and users' ability to configure to only one proxy cache 507 utilizing current network browsers. Figure 6 is a diagram of a conventional "transparent (hidden) intercept" caching model for accessing a web site. The transparent interrupt model in the system of Figure 6 provides an improvement over the system of Figure 5. Under this arrangement, two ISP networks 601 and 603 are connected to the Internet 505. ISP 1 network 601 connects to two caches 605 and 607. - 4 - SUBSTΓΠJTE SHEET RULE 26 User stations 609 and 611 utilize cache 605, while user station 613 utilizes cache 607. With respect to ISP 2 network 603, a user station 615 is directly connected to the ISP 2 network 603 without a cache. In this model, the data cache is configured into the ISP network, which intercepts all URL requests entering the ISP network. In this example, ISP 1 network 601 contains caches 605 and 607; accordingly user stations 609, 611 , and 613 correspondingly enjoy the improvements in performance because of the caches 605 and 607. However, ISP 2 network 603 has no configured data cache. Nevertheless, the user in this model is still limited to the data which may be placed on the particular cache to which the users connected. Also, performance is variable, depending on the data contained in a particular cache 605 and 607. Based on the foregoing, there is a clear need for improved approaches for retrieving information from a web site over a communication network. There is also a need to improve user response time in the retrieval of information over a communication network. There is also a need to dynamically adjust to traffic loads to provide consistent network performance. There is also a need to utilize network resources efficiently. There is a further need to minimize network latency. Based on the need to streamline the processes of accessing and retrieving information from a web site, an approach for employing mirror servers that account for network conditions is highly desirable. SUMMARY OF THE INVENTION According to one aspect of the invention, a method is provided for accessing information from a web site over a communication network. The method includes receiving a request message from a user station for information. Additionally, the method includes determining a secondary server based upon network analysis data. The method also includes instructing the user station to communicate with the secondary server for a subsequent request message. Further, the method encompasses selectively synchronizing the secondary server. Under this approach, user response time related to retrieval of information over a communication network is minimized. According to another aspect of the invention, a communication system for interfacing with a communication network for providing web-based information comprises a primary server that is coupled to the communication network and is configured to determine a secondary server based upon network analysis data. The primary server stores information that is specified by a request message received from a user station. A secondary server is coupled to the communication network and is configured to serve as a mirror server to the primary server. The primary server is configured to instruct the user station to communicate with the secondary server for a subsequent request message. The secondary server is selectively synchronized with the primary server. The above arrangement advantageously provides efficient usage of network resources. In another aspect of the invention, a system of accessing information from a web site over a communication network comprises means for receiving a request message from a user station for information. The system also includes means for determining a secondary server based upon network analysis data. A means for instructing the user station to communicate with the - 6 - SUBSTITUTΕ S ET RULE secondary server for a subsequent request message is provided. Further, the system includes means for selectively synchronizing the secondary server. This arrangement advantageously reduces network latency. In another aspect of the invention, a computer-readable medium carrying one or more sequences of one or more instructions accessing information from a web site over a communication network is provided. The one or more sequences of one or more instructions include instructions which, when executed by one or more processors, cause the one or more processors to perform the step of receiving a request message from a user station for information. Other steps include determining a secondary server based upon network analysis data, instructing the user station to communicate with the secondary server for a subsequent request message, and selectively synchronizing the secondary server. Under this approach, traffic congestion is minimized. BRIEF DESCRIPTION OF THE DRAWINGS A more complete appreciation of the invention and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein: Figure 1 is a block diagram of a communication system that includes a web site that utilizes mirror servers, in accordance with an embodiment of the present invention; Figure 2 is a flowchart of the process of retrieving information from the web site in the system of Figure 1 ; Figure 3 is a flowchart of the synchronization process associated with the mirror servers in the system of Figure 1 ; Figure 4 is a diagram of a computer system that can perform in accordance with an embodiment of the present invention; Figure 5 is a diagram of a traditional communication system based on a "proxy caching" model for accessing a web site; and Figure 6 is a diagram of a conventional communication system based on a "transparent (hidden) intercept" caching model for accessing a web site. DESCRIPTION OF THE PREFERRED EMBODIMENTS In the following description, for the purpose of explanation, specific details are set forth in order to provide a thorough understanding of the invention. However, it will be apparent that the invention may be practiced without these specific details. In some instances, well-known structures and devices are depicted in block diagram form in order to avoid unnecessarily obscuring the present invention. The present invention accomplishes improved processing of web traffic to reduce user response time. A communication system utilizes a primary server with one or more secondary servers (i.e., mirror servers) to supply information to a user station. To retrieve information, the user station issues request messages (e.g., HTTP GET messages). The primary server may instruct the user station to a particular secondary server, based upon network analysis data, for processing of subsequent request messages. The network analysis data may optionally be stored as a cookie in the user station. The secondary servers are selectively synchronized with the primary server in response to a determination by the primary server that the ϊϊϊfβfflfirπon has been changed. Although the present invention is discussed with respect to exemplary protocols, computer languages, and operating systems related to the World Wide Web, the system of the present invention can be implemented on any computer system regardless of protocols, languages, or operating system platform. Furthermore, it is recognized by one of ordinary skill in the relevant art that the present invention relates to accessing information resident in any client-server network in general, even though the present invention is discussed with respect to the public Internet. Figure 1 shows a communication system employing multiple mirror servers, according to an embodiment of the present invention. In this example, two mirror servers 101 and 103 have connectivity to an IP (Internet Protocol) network 105. In an exemplary embodiment, the IP network 105 is the public Internet; however, it is recognized by one of ordinary skill in the art that IP network 105 may be any type of IP based network, such as an intranet or an extranet. A user station 107 connects to the IP network 105 to gain access to information that is resident within web server 109. Specifically, the information resides within a database 111 of web server 109. As use herein, the term "web site" refers to the information (e.g., HTML documents) and the associated databases, which may be contained within one or more servers. In this exemplary embodiment, the mirror servers 101 and 103 and the web server 109, along with the information stored therein, constitute the web site. To retrieve the requested information, user station 107 may access the web server 109 using standardized web browsers (e.g., Microsoft Internet Explorer, Netscape Navigator, and etc.). As a web client, user station 107 may employ the Hypertext Transfer Protocol (HTTP) to - 9 - exchange information with web server 109. HTTP is an application-level protocol for distributed, collaborative, hypermedia information systems; IETF (Internet Engineering Task Force) RFC (Request for Comment) 2616 specifies this protocol and is incorporated herein in its entirety. User station 107 submits a URL (Uniform Resource Locator) request to web server 109, which is denoted as the primary server. Mirror servers 101 and 103 are considered secondary servers. Web server 109 delivers the initial data to the user station 107. Concurrently, based upon network analysis data, initiated by web server 109 at the user's request, a decision is made to determine the optimum secondary (mirror or shadow) server 101 and 103 for a particular user/connection/location. Such information may be stored, at the user option, in a "cookie" so that the analysis need not be repeated in each communication session. Web server 109 may trigger a network analysis to be performed by a network management system (not shown). These network analysis data may include traffic statistics, cost metrics, performance metrics, and distance metrics associated with a communication path from the user station 107 to the servers 101, 103, and 109 through IP network 105, the local network (not shown) of user station 107, as well as the local networks (not shown) of the serverslOl, 103, and 109. When the information that was requested by user station 107 is modified on the primary server 109, the primary server 109 bulk updates the designated secondary servers 101 and 103 with the new information that was previously requested by user station 107. Since the secondary servers 101 and 103 are synchronized with the primary web server 109, the user station 107 does not have to connect to the primary server 109 to request the information, resulting in faster and more consistent performance. Figure 2 is a flowchart of the process of retrieving information from the web site in the system of Figure 1. In step 201, user station 107 requests information from web server 109. Next, web server 109, as in step 203, sends the requested information to user station 107. The primary server 109 then determines the optimum mirror server 101 and 103 based upon the network analysis data, per step 205. In step 207, web server 109 directs user station 107 to the selected mirror server 101 and 103; by way of example, the selected mirror server may be the nearest mirror server, which in this case is mirror server 2 103. It should be noted that this determination of the optimum mirror server 101 and 103 may be based on any number of criteria other than geographical location, for example, communication costs, congestion level, server loading, etc. vis-ά-vis the network analysis data. User station 107 may selectively store the network analysis data in a cookie (step 209); storing such data avoids performing the network analysis again, thereby saving processing time. The primary server 109 may initiate the network analysis periodically or upon any number of triggering events (e.g., detected congestion level exceeds a predetermined threshold). For subsequent requests, user station 107 is redirected to send requests to the selected mirror server 103 , per step 211. The process of synchronizing the secondary servers 101 and 103 with primary server 109 is described below with respect to Figure 3. Figure 3 is a flowchart of the synchronization process associated with the mirror servers in the system of Figure 1. The primary server 109, as in step 301, determines whether the information that is stored in database 111 has been modified. If in deed the server 109 finds that the information has been modified in some manner (step 303), then the primary server 109 performs a bulk update of the mirror servers 101 and 103, per step 305. As a result, the mirror servers 101 and 103 are continually synchronized with the primary server 109. Accordingly, the data that is retrieved by user station 107 is the most updated. Figure 4 illustrates a computer system 401 upon which an embodiment according to the present invention may be implemented. Computer system 401 includes a bus 403 or other communication mechanism for communicating information, and a processor 405 coupled with bus 403 for processing the information. Computer system 401 also includes a main memory 407, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 403 for storing information and instructions to be executed by processor 405. In addition, main memory 407 may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 405. Computer system 401 further includes a read only memory (ROM) 409 or other static storage device coupled to bus 403 for storing static information and instructions for processor 405. A storage device 411, such as a magnetic disk or optical disk, is provided and coupled to bus 403 for storing information and instructions. Computer system 401 may be coupled via bus 403 to a display 413, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 415, including alphanumeric and other keys, is coupled to bus 403 for communicating information and command selections to processor 405. Another type of user input device is cursor control 417, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 405 and for controlling cursor movement on display 413. According to one embodiment, the steps of Figures 2 and 3 are provided by computer system 401 in response to processor 405 executing one or more sequences of one or more instructions contained in main memory 407. Such instructions may be read into main memory - 12 - SUBSTΓΓUTE 407 from another computer-readable medium, such as storage device 411. Execution of the sequences of instructions contained in main memory 407 causes processor 405 to perform the process steps described herein. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in main memory 407. In alternative embodiments, hard- wired circuitry may be used in place of or in combination with software instructions. Thus, embodiments are not limited to any specific combination of hardware circuitry and software. Further, the code related to the steps of Figures 2 and 3 may reside on a computer- readable medium. The term "computer-readable medium" as used herein refers to any medium that participates in providing instructions to processor 405 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 411. Volatile media includes dynamic memory, such as main memory 407. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 403. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read. Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 405 for execution. For example, the - 13 - SUBSTΓΓUTE SHEET RULE 26 instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions relating to executing the steps of Figures 2 and 3 remotely into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 401 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector coupled to bus 403 can receive the data carried in the infrared signal and place the data on bus 403. Bus 403 carries the data to main memory 407, from which processor 405 retrieves and executes the instructions. The instructions received by main memory 407 may optionally be stored on storage device 411 either before or after execution by processor 405. Computer system 401 also includes a communication interface 419 coupled to bus 403. Communication interface 419 provides a two-way data communication coupling to a network link 421 that is connected to a local network 423. For example, communication interface 419 may be a network interface card to attach to any packet switched local area network (LAN). As another example, communication interface 419 may be an asymmetrical digital subscriber line (ADSL) card, an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. Wireless links may also be implemented. In any such implementation, communication interface 419 sends and receives electrical, electromagnetic and/or optical signals that carry digital data streams representing various types of information. Network link 421 typically provides data communication through one or more networks to other data devices. For example, network link 421 may provide a connection through local network 423 to a host computer 425 or to data equipment operated by a service provider, which provides data communication services through an IP (Internet Protocol) network 427 (e.g., the - 14 - Internet). LAN 423 and IP network 427 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 421 and through communication interface 419, which carry the digital data to and from computer system 401, are exemplary forms of carrier waves transporting the information. Computer system 401 can transmit notifications and receive data, including program code, through the network(s), network link 421 and communication interface 419. The techniques described herein provide several advantages over prior approaches to accessing information from a web site over a communication network. Primary server 109 stores information that is specified by a request message received from user station 107. Secondary servers 101 and 103 serve as mirror servers to the primary server 109, whereby primary server 109 instructs the user station to communicate with a particular secondary server for subsequent request messages. The above arrangement advantageously provides efficient usage of network resources. Obviously, numerous modifications and variations of the present invention are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the invention may be practiced otherwise than as specifically described herein.

Claims: WHAT IS CLAIMED IS: 1. A method of accessing information from a web site over a communication network, the method comprising: receiving a request message from a user station for information; determining a secondary server based upon network analysis data; instructing the user station to communicate with the secondary server for a subsequent request message; and selectively synchronizing the secondary server. 2. The method according to claim 1, further comprising: selectively storing the network analysis data in form of a cookie in the user station. 3. The method according to claim 1 , further comprising determining whether the requested information has been modified, wherein the synchronizing step comprises bulk updating the secondary server. 4. The method according to claim 1 , wherein the network analysis data in the step of determining the secondary server includes at least one of traffic statistics, cost metrics, performance metrics, and distance metrics corresponding to the communication network. 5. The method according to claim 1, wherein the request message in the receiving step conforms with the Hypertext Transfer Protocol (HTTP). 6. The method according to claim 1 , wherein the communication network is the public Internet. 7. The method according to claim 1 , wherein the communication network is an IP (Internet Protocol) network. 8. A commumcation system for interfacing with a communication network for providing web-based information, comprising: a primary server coupled to the communication network and configured to determine a secondary server based upon network analysis data, the primary server storing information specified by a request message received from a user station; and a secondary server coupled to the communication network and configured to serve as a mirror server to the primary server, wherein the primary server is configured to instruct the user station to communicate with the secondary server for a subsequent request message, the secondary server being selectively synchronized with the primary server. 9. The system according to claim 8, further comprising: selectively storing the network analysis data in form of a cookie in the user station. 10. The system according to claim 8, wherein the primary server is configured to determine whether the requested information has been modified, wherein the synchronization between the primary server and the secondary server is performed by bulk updating the secondary server. 11.» The system according to claim 8, wherein the network analysis data includes at least one of traffic statistics, cost metrics, performance metrics, and distance metrics corresponding to the communication network. 12. The system according to claim 8, wherein the request message conforms with the Hypertext Transfer Protocol (HTTP). 13. The system according to claim 8, wherein the communi cation network is the public Internet. - 17 - 14. The system according to claim 8, wherein the communication network is an IP (Internet Protocol) network. 15. The system according to claim 8, further comprising: another secondary server that is synchronized with the primary server, wherein the user station is directed to the one secondary server that is closer. 16. A system of accessing information from a web site over a communication network, the system comprising: means for receiving a request message from a user station for information; means for determining a secondary server based upon network analysis data; means for instructing the user station to communicate with the secondary server for a subsequent request message; and means for selectively synchronizing the secondary server. 17. The system according to claim 16, further comprising: means for selectively storing the network analysis data in form of a cookie in the user station. 18. The system according to claim 16, further comprising means for determining whether the requested information has been modified, wherein the synchronizing means performs bulk updating with respect to the secondary server. 19. The system according to claim 16, wherein the network analysis data includes at least one of traffic statistics, cost metrics, performance metrics, and distance metrics corresponding to the communication network. 20. The system according to claim 16, wherein the request message conforms with the Hypertext Transfer Protocol (HTTP). - 18 - 21. The system according to claim 16, wherein the communication network is the public Internet. 22. The system according to claim 16, wherein the communication network is an IP (Internet Protocol) network. 23. A computer-readable medium carrying one or more sequences of one or more instructions for accessing information from a web site over a communication network, the one or more sequences of one or more instructions including instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: receiving a request message from a user station for information; determining a secondary server based upon network analysis data; instructing the user station to communicate with the secondary server for a subsequent request message; and selectively synchronizing the secondary server. 24. The computer-readable medium according to claim 23, wherein the one or more processors further perform the step of: selectively storing the network analysis data in form of a cookie in the user station. 25. < The computer-readable medium according to claim 23, wherein the one or more processors further perform the step of: determining whether the requested information has been modified, wherein the synchronizing step comprises bulk updating the secondary server. 26. The computer-readable medium according to claim 23, wherein the network analysis data in the step of determining the secondary server includes at least one of traffic statistics, cost metrics, performance metrics, and distance metrics corresponding to the communication network. 27. The computer-readable medium according to claim 23, wherein the request message in the receiving step conforms with the Hypertext Transfer Protocol (HTTP). 28. The computer-readable medium according to claim 23, wherein the communication network is the public Internet. 29. The computer-readable medium according to claim 23, wherein the communication network is an IP (Internet Protocol) network. 20

Inventors: KLENSIN JOHN C, KLENSIN, JOHN, C.
Applicants: MCI WORLDCOM INC, MCI WORLDCOM, INC.
Application year: 2000
Main classification: G06F11
IPC codes: G06F11, H04L29