Abstract:
An intermediate server for sharing data between a sender computer and receiver computer(s)is disclosed. A sender initiates a browsing session by (1) requesting a session setup form from the intermediate server that is returned with a beginning URL or (2) being redirected to the intermediate server. A intermediate server control program retrieves content from a server, modifies the hyperlinks within the content by appending the original URL to the URL of the intermediate server, stores the modified content data for later use, and forwards the modified content data to the sender. In asynchronous playback mode, a receiver connects to the intermediate server using a session identifier associated with sender&#39;s browsing session. An intermediate server playback program retrieves and pushes the stored content to the receiver. Storing the modified content guarantees that sender and receiver view the same content sequence as opposed to the same URL sequence.

Description:
TECHNICAL FIELD OF THE INVENTION 
     The present invention relates generally to computer networks, and more particularly, to an apparatus and method for monitoring information received by a user of a network. 
     RELATED PATENT APPLICATIONS 
     This application is related to U.S. patent application Ser. No. 08/839,237, now U.S. Pat. No. 6,199,104, entitled “Server-Based Host Monitor,” filed on Apr. 28, 1997, which is incorporated herein by reference as if fully set forth, and U.S. patent application Ser. No. 08/840,665, now U.S. Pat. No. 6,286,029, entitled “Server-Based Kiosk Controller,” filed on Apr. 28, 1997, which is incorporated herein by reference as if fully set forth. 
     BACKGROUND OF THE INVENTION 
     In recent years, computer networks have grown very popular with computer users as a means of communicating and exchanging information. Such networks allow personal computer users to connect with each other, either directly or through a central communication point, and to exchange information by using a protocol common to each personal computer in each network. Corporations and businesses now commonly network computers used by their employees in “intranets,” which are networks that have limited access to certain persons and/or computers. Such intranets are often protected by elaborate security systems or “firewalls” which prevent unauthorized users from accessing the intranet or retrieving internal intranet data. By contrast, the term “Internet” has been adopted to describe the publicly available network to which virtually every personal computer in the world has access. Recent improvements in the software available for accessing and searching the Internet have made the Internet a very popular source of information which can even be utilized by novices to computer technology. 
     Computers communicate on intranet and internet networks by the use of a common set of standards for exchanging data known as the Transmission Control Protocol/Internet Protocol (“TCP/IP”). To initiate communication on such a network, a user, known as a “client” contacts another computer on the network, known as the “server” or “host,” by using various publicly available software programs. In public networks such as the Internet, these programs use various protocols to organize information in a manner which allows the user to locate and access files of interest to the user. For instance, some files are organized by a hierarchical menu system known as the “gopher.” A user can search the Internet by linking from an Internet site of interest, or by entering the uniform resource locator (“URL”) of the file on the gopher which the user wants to review. 
     The most popular and user-friendly protocol for organizing information on the Internet has become the World Wide Web (the “Www” or “Web”). The Web links information by associating items of interest through a common scripting language known as Hyper Text Markup Language (“HTML”), and transmits these HTML-based files between servers and clients using a common protocol known as the Hyper Text Transfer Protocol (“HTTP”). A Web user searches the Web by starting at the user&#39;s “home page,” which is created and operated with HTML. From the home page, the Web user searches out and retrieves information by using “web browser” software. Web browsers allow a Web user to retrieve and render images and texts from files of interest to the user&#39;s computer. Web browsers operate by allowing a Web user to identify a “Web link” of interest on a Web page and then execute the Web link to transfer the computer data associated with the Web link from the server or host computer containing that data to the Web user&#39;s computer. Web links perform this transfer of computer data by communicating the URL of the desired file to the host. 
     The introduction of the Web with its easy-to-use browsers and the increasing availability of internet access service providers (“ISP&#39;s”) have each led to an increase in the usage of the Internet because each has made the Internet easier to access and use. Despite these improvements, the Internet remains a technical environment which is often difficult for a user to navigate. Users can easily become lost in “cyberspace,” making them frustrated and either unable or unwilling to use the Internet for commercial purposes. Accordingly, both users of the Internet and commercial businesses seeking to market goods and services through the Internet would benefit from any tool that makes the Internet easier to use and/or easier to learn to use. However, such universal tools are difficult to develop because of the wide array of hardware systems that access the Internet. In addition, the implementation of and instruction in such tools is difficult because Internet users are often geographically located a great distance apart, making face-to-face instruction impractical. This difficulty is compounded further by the variety of protocols and software available to access the Internet, and, when the user is accessing the Internet from an intranet, by the “firewall” security systems in place around intranets. 
     One means for assisting a network user is to post a phone number which the user can call with questions when the user accesses a particular network site. However, a network user who has become confused enough to call for help is also often too confused to explain the problem or problems he is experiencing. To overcome this difficulty, the person trying to help the confused user can access the same network site as the user. However, this only allows the helper to view what the confused user should be viewing, and does not necessarily render the same computer monitor screen display as is rendered on the confused user&#39;s monitor. 
     Known systems, often referred to as remote control systems, may allow a computer, referred to as a “client,” to receive and render the same monitor screen data as is rendered by a separate computer, referred to as a “host;” however, such systems require additional software at the client and host computers, and also require compatibility between the client and host with respect to the hardware and/or software used by the client and host. Thus, in order to use these existing systems, the client and host must first exchange hardware and/or software data, as well as know each other&#39;s network address. In addition to being complicated, these systems require considerable processing by each computer and are thus slow in use. Further, these systems require protocols that are not commonly used on public networks such as the Internet. Thus, corporate intranets that allow access to the Internet through gopher and HTTP protocols may not allow unrecognized system-specific protocols associated with the existing systems to pass through their firewalls. 
     SUMMARY OF THE INVENTION 
     Therefore, a need has arisen for a universal tool which simplifies the use of networks and simplifies the process by which network users learn to navigate networks. 
     The present invention provides an apparatus and method for exchanging data between computers that is a powerful tool for using and teaching the use of networks in a simple and straightforward manner. 
     More specifically, the present invention allows a receiver computer to render the content data presented by a sender computer when the gender computer accesses a content server through an intermediate server. A control program loaded on the intermediate server directs the intermediate server to receive content data from the content server which the sender computer requested. The control program then directs the intermediate server to transfer the content data to the sender computer, thus allowing the sender computer to render the data which the sender computer would have rendered had it contacted the content server directly. Finally, the control program directs the intermediate server to transfer the content data to the receiver computer. The content data allows the receiver computer to render the same data that the sender computer has rendered. 
     The present invention provides an important technical advantage by allowing a receiver computer to render the same data rendered by a sender computer when that sender computer accesses a network through an intermediate server. This allows two geographically separated network users to simultaneously navigate a content server even if the network users have different types of computer systems and software. Further, the sender and receiver can use the present invention through an intermediate server&#39;s domain name without exchanging sender or receiver IP addresses. Further, the present invention enables transmission to take place even if both sender and receiver are behind firewalls which allow transmission of data through widely-accepted protocols such as the Hyper text Transport Protocol (“HTTP”) and the File Transport Protocol (“FTP”), but which commonly prevent transmission of data using other less widely accepted protocols or proprietary protocols. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     A more complete understanding of the present invention and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings in which like reference numbers indicate like features and wherein: 
     FIG. 1 shows a block diagram of the one embodiment of the present invention sharing content data between a sender and receiver computer through the Internet; 
     FIG. 2 shows a block diagram of one embodiment of the present invention interfaced with the sender computer through a re-direct program; and 
     FIG. 3 shows different embodiments of the present invention, including the use of a tunnel across a corporate firewall. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Preferred embodiments of the present invention are illustrated in the FIGURES, like numerals being used to refer to like and corresponding parts of the various drawings. 
     The present invention uses the common protocol of a network to allow a receiver computer to receive the same data as a sender computer. The receiver computer and sender computers interface with an intermediate server through a network. A network is any means of transmitting data between computers, and generally entails the use of a common protocol. The intermediate server has a control program which directs the intermediate server to send selected data to the sender computer and the receiver computer. The selected data can be data that resides in the intermediate server or data which the intermediate server obtains from another computer interfaced with the network. When the data transmitted by the intermediate server comprises screen data, meaning data which causes a computer monitor to render a particular screen display, then both the sender computer and receiver computer have the ability to render an identical screen display. 
     Referring now to FIG. 1, an embodiment of the present invention is depicted as interfaced with the Internet  40  by using the protocol of the World Wide Web. The term Internet as used herein refers to any network to which the public has access. Generally, a computer user can interface with the Internet through any telephone line or equivalent means of communication if the user&#39;s computer can implement TCP/IP or any other compatible protocol. Although FIG. 1 depicts the present invention&#39;s interaction with the Internet  40 , it should be understood that the present invention can interact with an intranet in the same manner. 
     An intermediate server  50  interfaces with Internet  40  at a location code such as a domain name. Typically, servers that interface with any network have a processor, which operates the interface to the network, and at least one storage device. The interface itself is typically accomplished through a modem, although other means are available, such as ISDN or the high speed trunk lines which form part of the Internet. In one embodiment, the intermediate server has a processor with at least the capability of an Intel 386 processor, which is the minimum capability generally required to efficiently run the Web&#39;s HTTP protocol. The interface of this embodiment of the intermediate server  50  may be a modem, but any interface having the ability to receive input from at least two clients will suffice. The memory of this embodiment includes local RAM sufficient to run the HTTP protocol and a local storage device  60  which is a disk storage device having at least enough memory to store an HTML page, although an equal amount of RAM or other memory will also work. Numerous types of single storage devices having adequate size may serve as the storage device for intermediate server  50 . 
     Content server  70  interfaces with the Internet  40  to make the content server  70  accessible to intermediate server  50 . Any computer to which intermediate server  50  has access by a network may act as a content server for the present invention. This means that content server  70  should preferably include at least one interface, the ability to use a protocol common to intermediate server  50 , and some content data of interest to a user stored in an accessible memory storage device at an identifiable location. In one embodiment, the content server contains a Web page stored in HTML at a URL. 
     Sender computer  80  and receiver computer  90  interface with Internet  40 , to be accessible to intermediate server  50 . Any computer which intermediate server  50  may access through a network may serve as either a sender computer or a receiver computer. Sender computer  80  and receiver computer  90  should each include at least one network interface and an ability to use a protocol in common with the intermediate server  50  protocol. In one embodiment, sender computer  80  and receiver computer  90  possess a processor with at least the capability of an Intel 386 processor, which is the minimum capability generally required to run the Web&#39;s HTTP protocol, and render a Web page upon a computer monitor screen. A sender computer monitor screen  85  renders screen data received by sender computer  80  in a viewable format, and a receiver computer monitor screen  95  renders screen data received by receiver computer  90  in a viewable format. 
     Steps  1 - 10  of FIG. 1 illustrate the operation of the intermediate server  50  for sharing data between sender computer  80  and receiver computer  90 . In step  1   a , sender computer  80  interfaces with intermediate server  50 . An identification program loaded in the memory of intermediate server  50  directs intermediate server  50  to send a session setup form to sender computer  80 , as is depicted in step  1   b . In one embodiment, sender computer  80  interfaces with intermediate server  50  by using a standard Web browser, which retrieves the setup form and renders it on sender computer screen  85 . A user can then input sender information to identify himself and to select content data stored at a content identification code which is of interest to him. As is depicted at step  2 , a user can input the URL of the selected content data and send this URL to intermediate server  50 . Other ways of identifying the selected content may also be used. 
     In step  3   a , a control program loaded on intermediate server  50  directs intermediate server  50  to interface with the selected content server  70 , and, as step  3   b  depicts, receive the data identified by the URL which the sender computer user originally input. For instance, if the user input a URL of http://www.content.interest.com into a Web browser, intermediate server  50  would receive this URL and act as an agent for the browser of sender computer  80  by contacting content server  70  and retrieving the HTML data located in the interest subdirectory. 
     At steps  4  and  5 , when intermediate server  50  receives the selected content data, the control program directs it to store this data in local storage device  60  in unmodified form. The control program may then edit the data before storing the data on local storage device  60 . For example, the control program can direct intermediate server  50  to edit HTML data by identifying the Web links within the data and modifying the Web links to point back to intermediate server  50  by appending the original Web link to the location code of intermediate server  50 . At step  6 , modified content data goes to sender computer  80  for its display on monitor screen  85 . The display which screen  85  renders is identical to the display that sender computer  80  otherwise would render upon retrieving the data in unmodified form directly from content computer  70 . An alternative embodiment may modify the content data so that the screen data remains the same, but the linking data changes into modified linking data that points back to intermediate server  50 . 
     At step  8 , a Web browser of receiver computer  90  interfaces with intermediate server  50 , which the identification program directs to send a session connection form to receiver computer  90 . The user of receiver computer  90  may then identify the sender he wishes to monitor by entering an identification code of the sender. In alternative embodiments, if the receiver knows the sender it wishes to monitor, he may bypass this connection process by entering a single identifier, such as a URL, which the identification program will recognize. 
     At step  9 , the control program directs intermediate server  50  to send the unmodified data stored in local storage device  60  to receiver computer  90 . In the preferred embodiment, the browser of receiver computer  90  renders the unmodified HTML content on receiver screen  95  but maintains the TCP/IP connection with intermediate server  50  by means of a server-push technique such as HTTP MIME Type Multipart/X-Mixed-Replace. A server-push technique is used with the Web protocol, since browsers possess the ability to disconnect an Internet interface with a particular server after the user retrieves requested data. An alternative embodiment may include alternative ways of pushing the content data to receiver computer  90 . 
     After step  9 , both sender screen  85  and receiver screen  95  render the same display, but the modified Web links that sender screen  85  display lead back to intermediate server  50 , whereas the original, unmodified Web links on receiver screen  95  lead directly to the content server that has the identified data. The unmodified Web links direct the browser through intermediate server  50 . Thus, if at step  10  the user of sender computer  80  activates a modified Web link, the control program directs intermediate server  50  to retrieve data at the URL corresponding to the original, unmodified Web link as set forth above starting at step  3   a . The control program may then direct intermediate server  50  to retrieve, modify and transfer the data corresponding to the selected URL so that sender screen  85  and receiver screen  95  may each render the screen display associated with the selected data. Essentially, steps  3   a  through  10  of FIG. 1 repeat in order as the sender navigates through the Web, but step  8  is not repeated, thus allowing the receiver to monitor the sender without additional interaction on the part of the receiver. If, on the other hand, the user of receiver computer  90  activates an unmodified Web link, the browser of receiver computer  90  will go directly to the server associated with the Web link, thereby leaving its interface with intermediate server  50 . In an alternative embodiment, receiver computer  90  may receive modified content that would disable all Web links to prevent receiver computer  90  from activating a Web link. 
     Referring now to FIG. 2, by using a re-direct program loaded on a content server, an intermediate server permits monitoring a user&#39;s navigation through a network without the user&#39;s initiation. Sender computer  80  interfaces with content server  70  through the Internet  40  by entering a content data identification code, such as a URL, for content data stored on content server  70 . A re-direct program loaded on content server  70  directs content server  70  to provide sender computer  80  with a modified content data identification code which redirects sender computer  80  to intermediate server  50 . Intermediate server  50  then contacts content server  70  as described in FIG. 1 at step  3   a . The modified content data identification code comprises the unmodified code appended to the location code for intermediate server ( 50 ). Once sender computer  80  establishes an interface with intermediate server  50 , the control program may direct intermediate server  50  to modify the data received by each content server navigated, even if the content servers being navigated do not include a re-direct program. 
     An example based on the Web protocol helps explain how the control program modifies identification information to point to an intermediate server having a domain name of intermediate.com. If an intermediate server, for example, retrieves data from a site having a URL of “http://travelexplorer.com/jamaica”, the control program may modify the name of the site to “http://intermediate.com?http://travelexplorer.com/ jamaica”. The control program may then search out and modify any Web links found in the data. For instance, a Web link of “http://travelexplorer.com/activity” found in the Jamaica subdirectory may be modified into “http://intermediate.com?http://travelexplorer.com/ activity.” Appending the original Web link to the URL of the intermediate server the control program ensures that the sender computer&#39;s activation of the Web link may send the sender computer to the intermediate server, as well as provide the intermediate server with information of the next site which the sender computer wishes to navigate. 
     Although the embodiments herein are set forth in the context of the Internet as the network using the HTTP protocol of the Web, the present invention may allow a sender and receiver to share screen data in any network environment where the sender, receiver, content server and intermediate server interface using compatible network protocols. Thus, intranets operating with non-public protocols may include an intermediate server using the non-public protocol interfaced with the intranet. 
     FIG. 3 illustrates several alternate embodiments of the present invention. Intermediate server  150  having a local storage device  160  interfaces with an intranet  140 . Sender computer  180  interfaces with intermediate server  150  to receive data from content server  170 . A plurality of receiver computers  190  monitor sender computer  180  as sender computer  180  receives data from content server  170  in a synchronous mode. A plurality of receiver computers  191  monitor, in an asynchronous mode, data which sender computer already received but no longer display. The asynchronous mode involves a playback program for directing intermediate server  150  to retrieve data which local storage device  160  stores. The playback program permits transmitting the data to a single receiving computer or a plurality of receiver computers, even though sender computer  180  is not currently receiving this data. 
     Also illustrated in FIG. 3 is an intermediate server  50  having local storage device  60  and interfaced with the Internet  40 . Sender computer  80  interfaces with Internet  40  and may use intermediate server  50  to receive data from content server  70  which interfaces with Internet  40 . Receiver computers  90  share data in a synchronous mode with sender  80  through an interface with Internet  40 . Receiver computers  91  are depicted sharing data in an asynchronous mode as a playback program directs intermediate server  50  to retrieve data stored in local storage device  60 . 
     Firewall  200  protects intranet  140  from unauthorized access by computers or users outside the firewall  200 . Firewall  200  maintains security by preventing outside computers or users from accessing resources and data on intranet  140 . Thus, for instance, sender computer  180  could not use intermediate server  50  to share inside data with any receiver. However, sender computer  180  can share data with receiver computers outside the firewall if internal intermediate server  150  pushes the data through an HTTP tunnel  210  to external intermediate server  50 , which receiver computer  90  can freely access. 
     In operation, the present invention may allow a confused network user to call a help desk having a computer that is interfaced with the user&#39;s network. The help desk directs the confused user to enter in a code, such as a URL or domain name, which sends the user&#39;s computer to an intermediate server. The help desk then contacts the intermediate server with an identification code specific to the confused user. The help desk, in this way, receives the same screen data as the confused user, allowing the help desk to aid the confused user in navigating through the network. 
     In a similar, commercial embodiment, a user contacts a sales desk instead of a help desk, and thereby obtains sales information and guidance to network sites having commercial opportunities. In this way, a sales person may answer questions and provide additional information about goods or services available through the network site or elsewhere. For instance, the sales person may act as a sender and lead the customer through the network sites of competitors to compare products or services. Later, if the customer wants to show a friend these goods and services, the customer may retrieve data using the playback program. 
     The re-direct program also has powerful commercial applications. The intermediate server monitors the navigation path of a network user and store the sites visited by the user. In this way the intermediate server gathers valuable marketing information about the navigation paths of users who visit a content site. Alternatively, parents can use the data saved on the intermediate server to determine the paths navigated by their children. Further, because the disclosed invention requires little additional computer processing, the user being monitored will not have a reduced access speed, and will have no indication of the monitoring. 
     Although the present invention has been described in detail, it should be understood that various changes, substitutions, and alterations can be made hereto without departing from the spirit and scope of the invention as described in the appended claims.