INTERNET SYSTEM WITH SPEED ENHANCER AND OFF-LINE ENABLER
1. Reference To Pending Prior Patent Application This patent application claims benefit of pending prior U.S. Provisional Patent Application Serial No. 60/119,395, filed 02/10/99 by Kenneth Green et al . for INTERNET SYSTEM WITH SPEED ENHANCER AND OFF-LINE ENABLER, which patent application is hereby incorporated herein by reference.
2. Field Of The Invention
This invention relates to computers in general, and more particularly to Internet systems.
3. Background Of The Invention
3.1 Speed Enhancer
In Internet systems, a server generally talks to a plurality of clients so as to provide information to, and receive information from, those clients.
For example, the server might be maintained by a commercial food vendor to host a wholesale food order
system, and a particular client might be maintained by a food customer to purchase food in bulk from the food vendor .
In World Wide Web (WWW) Internet systems, the server typically talks to the client through a server application program, and the client typically talks to the server through a browser. See Fig. 1. The dialogue between the server and the browser typically takes place in HyperText Markup Language (HTML) .
HTML is generally considered to be a convenient computer language for WWW dialogues, since formatting information and data are presented together. This architecture facilitates variations in format with each data presentation. However, HTML is also relatively "fat", in the sense that it incorporates formatting information along with the data. This can be very inefficient in information transmissions where the format remains fairly constant and it is primarily the data which is varying. Such inefficiencies can tie up precious system resources and slow down the transfer of important information.
3.2 Off-Line Enabler
In WWW Internet systems, a communications connection must be established between the client and server in order for the client to access the information stored on the server.
This can present a number of problems.
For one thing, the client must be connected to the server through an Internet Service Provider (ISP) the entire time that the client is interacting with the server. This can result in substantial ISP charges for an organization.
For another thing, in the usual case, the client is connected to the ISP (and hence the server) through a telephone connection. This typically means that a telephone line must be continuously tied up while the client is interacting with the server. This can tax the available telephone lines within an organization.
Furthermore, these telephone connections are generally relatively slow (e.g., 33K or 56K) and can severely limit the speed of the dialogue between the client and server.
3.3 Other Considerations
In addition to the foregoing, in many cases a particular server may be simultaneously hosting a substantial number of different clients, and each client may be making substantial demands on the server. In this situation, the server may not be able to keep up with demand and the system may slow.
4. Objects Of The Invention
4.1 Speed Enhancer
As a result, one object of the present invention is to improve the speed with which information can be transmitted across WWW Internet systems.
Another object of the present invention is to reduce the load on a server in a WWW Internet system by improving the efficiency with which the server can transmit data to a client.
4.2 Off-Line Enabler
Another object of the present invention is to reduce the load on a server in a WWW Internet system by transferring some of the server's work to a client.
And another object of the present invention is to permit some of the work to be done at the client while the client is off-line from the server.
Still another object of the present invention is to improve the overall efficiency of the system by reducing the amount of information which must be transmitted between the server and a client through the relatively slow Internet bottleneck.
4.3 Other Objects
And another object of the present invention is to reduce the ISP and telephone connection time for a given client.
Still another object of the present invention is to improve overall system response time.
Yet another object of the present invention is to provide an improved WWW Internet system which is seamless to the end user.
And another object of the present invention is to provide an improved WWW Internet system which is compatible with existing browser architectures.
5. Summary Of The Invention
These and other objects are addressed by the present invention, which comprises an improved WWW Internet system.
5.1 Speed Enhancer
In one form of the present invention, the server may send information packages to the client in two different forms and, depending on the form used, the client may process the information packages differently.
More particularly, in one instance, the server sends the information package to the client in standard HTML format, and the client routes the information package directly to its browser for display to the user.
In another instance, the server first sends formatting instructions to the client, and then sends the information package to the client as raw unformatted data, not HTML. In this instance, the client first recasts the raw unformatted data into proper HTML format, and then pushes the HTML package to the browser for display to the user.
In this form of the invention, the server instructs the client as to whether the client should send the information package directly to the browser for display, or whether the client should recast the information package in HTML form prior to being sent to the browser for display.
In situations where the format of the information being transmitted remains fairly constant and it is primarily the data which is varying, a system incorporating the foregoing Speed Enhancer feature of the present invention has provided up to a 15 fold improvement in response time compared to a conventional WWW Internet system.
For convenience, the foregoing Speed Enhancer feature of the present invention is sometimes referred to in this application as simply "the Speed Enhancer".
5.2 Off-Line Enabler
In another form of the present invention, the system may be configured so that, during the client/server session, the server sends the client the information needed to create a surrogate server at the client. Thereafter, when the user uses the client's
browser to talk to the server, the client directs the browser' s request to the surrogate server, which is actually located on the client. The surrogate server then directs the response back to the browser for display to the user. This arrangement permits the user to work on the client even where the client is no longer actively connected to the server. Of course, if the client thereafter needs to interact further with the server, the client can reconnect to the server.
A system incorporating the foregoing Off-Line Enabler feature of the present invention has provided up to a 22 fold decrease in server load compared to a conventional WWW Internet system.
For convenience, the foregoing Off-Line Enabler feature of the present invention is sometimes referred to in this application as simply "the Off-Line Enabler".
5.3 Other Features
Preferably, a WWW Internet system is configured so as to utilize both of the foregoing configurations (i.e., both the Speed Enhancer feature of the present invention and the Off-Line Enabler feature of the
present invention) so as to provide greatly enhanced system operation.
6. Brief Description Of The Drawings
These and other objects and features of the present invention will be more fully disclosed or rendered obvious by the following detailed description of the invention, which is to be considered together with the accompanying drawings wherein:
Fig. 1 is schematic diagram showing a prior art WWW Internet system;
Fig. 2 is schematic diagram showing a WWW Internet system incorporating the present invention;
Fig. 3 is a flowchart showing operation of the Speed Enhancer feature of the present invention;
Figs. 4-6 are exemplary screen displays showing various ways of requesting and displaying data in connection with the present invention;
Fig. 7 is a schematic representation showing the difference between a typical HTML transmission and a typical raw, unformatted data transmission;
Fig. 8 is a flowchart showing operation of the Off-Line Enabler feature of the present invention;
Fig. 9 is a schematic representation showing the traditional way of operating a WWW Internet system without the Off-Line Enabler feature of the present invention;
Fig. 10 is a schematic representation showing a new way of operating a WWW Internet system using the Off-Line Enabler feature of the present invention; and
Fig. 11 is a flowchart showing operation of a WWW Internet system incorporating a combination of the Speed Enhancer and Off-Line Enabler features of the present invention.
For convenience, the combination of the aforementioned Speed Enhancer and Off-Line Enabler features of the present invention is sometimes referred to in this application as simply "the Combined Speed Enhancer And Off-Line Enabler".
7. Detailed Description Of The Invention
Looking now at Fig. 2, there is shown a WWW Internet system incorporating the present invention. In particular, it will be seen that the client includes novel software which runs on the client computer and
interacts with both the client's browser and the server's application program.
For purposes of illustration but not limitation, the present invention may sometimes hereinafter be discussed in the context of an Internet food order system. However, it should be appreciated that the present invention may also be advantageously employed in a wide range of other Internet systems as well, e.g., other types of product ordering systems, information accessing systems, etc.
7.1 Speed Enhancer
In one form of the present invention, the novel software comprises the aforementioned Speed Enhancer.
Fig. 3 illustrates operation of the system with the Speed Enhancer both enabled and disabled.
7.1.1 Speed Enhancer Disabled
More particularly, operation of the system with the Speed Enhancer disabled (or missing) will first be discussed.
In this mode of operation, the client first connects to the Internet and starts the browser. Then,
using the browser and HTML, the client logs in to the server's application program. During this login procedure, the server determines whether the client has the Speed Enhancer enabled or, conversely, whether the Speed Enhancer is disabled (or missing) . Thus, for the purposes of the first part of this discussion, the server will recognize at login that the client's Speed Enhancer is disabled (or missing) .
At the end of the login procedure, the server's application program will provide the user, via the browser and HTML, with various options. See, for example, Fig. 4. Next, the user can indicate to the system that information is required. In the context of the present example of an Internet food order system, this might involve selecting food items. Thus, to indicate to the system that information is required, the user can click on the "Select Items" button (Fig. 4) and the client, using the browser and HTML, will request the "Items Request Page" from the server. The server sends the "Items Request Page" to the client's browser in HTML and it is displayed to the user. See, for example, Fig. 5. This "Items Request Page" allows the user to specify selected search criteria, which is
generally necessary in the case of large databases. After the user specifies the desired search criteria, the user can click the "Go" button (Fig. 5) and the client sends the information request to the server using the browser and HTML.
The server responds by sending the required information back to the client's browser in HTML format. The server's HTML response includes the requested data along with embedded formatting information; in many cases, identical formatting information must be repeated for each piece of data. The browser receives the server' s HTML response and displays the response to the user. See, for example, Fig. 6.
Each request for additional information typically requires another client/server communication exchange of the type described above.
7.1.2 Speed Enhancer Enabled
With the Speed Enhancer present and enabled, the system operates as follows. First, the client connects to the Internet and starts the browser. Then, using the browser and HTML, the client logs in to the
server's application program. Again, during this login procedure, the server determines whether the client has the Speed Enhancer enabled or, conversely, whether the Speed Enhancer is disabled (or missing) . Thus, for the purposes of the second part of this discussion, the server will recognize at login that the client's Speed Enhancer is enabled.
At the end of the login procedure, the server's application program will provide the user, via the browser and HTML, with various options. See, for example, Fig. 4. Next, the user can indicate to the system that various information is required. To do this, the user can click on the "Select Items" button (Fig. 4) , and the client, using the browser and HTML, requests the "Items Request Page" from the server. The server sends the "Items Request Page" to the client's browser in HTML and it is displayed to the user (Fig. 5) .
Significantly, in addition to providing the user with a way of specifying selected search criteria, the "Items Request Page" also provides the browser with (i) the instructions to talk to the server through the Speed Enhancer, and (ii) the instructions for
formatting the data which will be arriving from the server.
The user then uses the browser to enter the desired search criteria in the "Items Request Page" (Fig. 5) and, when the user clicks "Go", the browser passes the search criteria to the client's Speed Enhancer .
The Speed Enhancer then requests the data directly from the server, and the server responds with the raw, unformatted data. The Speed Enhancer receives this raw, unformatted data and requests formatting information from the browser. The browser responds by sending the necessary formatting information, which was previously received from the server, to the Speed Enhancer. The Speed Enhancer, using this formatting information, recasts the data and formatting instructions into HTML. The Speed Enhancer then pushes this HTML package to the browser for display to the user (Fig. 6) .
When the user thereafter makes another information request, the foregoing process is repeated.
In a typical HTML transmission, the proportion of formatting instructions to raw data may be substantial.
See, for example, Fig. 7. Thus, overall transmission time may be greatly reduced by eliminating repetitive data formatting information in the dialog between server and client, which can be constrained by bandwidth problems.
Thus it will be seen that, with the Speed Enhancer aspect of the present invention, the server may send information packages to the client in two different forms and, depending on the form used, the client may process the information packages differently.
More particularly, in one instance, the server sends the information package to the client in standard HTML format, and the client routes the information package directly to its browser for display to the user.
In another instance, the server first sends formatting instructions to the client, and then sends the data in a raw, unformatted form to the client. In this instance, the client first recasts the raw unformatted data into proper HTML format, and then pushes the HTML package to the browser for display to the user.
In this form of the invention, the server instructs the client as to whether the client should send the information package directly to the browser for display, or whether the client should recast the information package in HTML form prior to being sent to the browser for display.
In situations where the format of the information being transmitted remains fairly constant and it is primarily the data which is varying, a system incorporating the foregoing Speed Enhancer feature can provide significant improvements over the response time of a conventional WWW Internet system.
7.2 Off-Line Enabler
In another form of the present invention, the novel software comprises the aforementioned Off-Line Enabler.
Fig. 8 illustrates operation of the system with the Off-Line Enabler both activated and deactivated.
7.2.1 Off-Line Enabler Disabled
More particularly, operation of the system with the Off-Line Enabler disabled (or missing) will first be discussed.
In this mode of operation, the client first connects to the Internet and starts the browser. Then, using the browser and HTML, the client logs in to the server's application program. During this login procedure, the server determines whether the client has the Off-Line Enabler enabled or, conversely, whether the Off-Line Enabler is disabled (or missing) . Thus, for the purposes of the third part of this discussion, the server will recognize at login that the client's Off-Line Enabler is disabled (or missing) .
At the end of the login procedure, the server's application program will provide the user, via the browser and HTML, with various options. See, for example, Fig. 4. Next, the user can indicate to the system that information is required. To do this, the user can click on the "Select Items" button (Fig. 4) and the client, using the browser and HTML, will request the "Items Request Page" from the server. The
server sends the "Items Request Page" to the client's browser in HTML and it is displayed to the user (Fig. 5) . This page allows the user to specify selected search criteria. After the user specifies the desired search criteria, the user can click the "Go" button (Fig. 5) and the client sends the information request to the server using the browser and HTML. The server responds by sending the required information back to the client's browser in HTML format. The browser then displays the response to the user. See Fig. 6.
Thereafter, when the user requests more information from the system, the foregoing operation is repeated.
Thus, with the Off-Line Enabler disabled (or missing) , the client must remain connected to the server the entire time that the client is interacting with the server.
7.2.2 Off-Line Enabler Enabled
With the Off-Line Enabler present and enabled, the system operates as follows. First, the client connects to the Internet and starts the browser. Then, using the browser and HTML, the client logs in to the
server's application program. Again, during this login procedure, the server determines whether the client has the Off-Line Enabler enabled or, conversely, whether the Off-Line Enabler is disabled (or missing) . Thus, for the purposes of the fourth part of this discussion, the server will recognize at login that the client's Off-Line Enabler is enabled.
At the end of the login procedure, the server's application program will provide the user, via the browser and HTML, with various options. See, for example, Fig. 4. Next, the user can indicate to the system that various information is required. To do this, the user can click on the "Select Items" button (Fig. 4), and the client, using the browser and HTML, requests the "Items Request Page" from the server. The server sends the "Items Request Page" to the client's browser in HTML and it is displayed to the user (Fig. 5) .
Significantly, in addition to providing the user with a way of specifying selected search criteria, the "Items Request Page" also provides the browser with instructions to talk to the server through the Off-Line Enabler.
The user then uses the browser to enter the desired search criteria in the "Items Request Page" (Fig. 5) and, when the user clicks "Go", the browser passes the search criteria to the client's Off-Line Enabler.
The Off-Line Enabler then requests data from the server so that the Off-Line Enabler can effectively act as a surrogate server at the client. The server sends the data to the Off-Line Enabler, and the surrogate server is established at the client.
The Off-Line Enabler, acting as the surrogate server, then sends the appropriate response to the browser for display to the user (Fig. 6) .
When the user thereafter makes another information request, the foregoing process is repeated.
This process continues until no more requests are made.
Thus, with this form of the invention, at the outset of the request, the server sends the client the information needed to create a surrogate server at the client. Thereafter, when the customer uses the client's browser to talk to the server, the client directs the browser' s request to the surrogate server
located on the client. The surrogate server then directs the response back to the browser for display to the user. This arrangement permits the user to work on the client even where the client is no longer actively connected to the server so long as the server has downloaded all of the necessary information to the client. Of course, if the client thereafter needs to interact further with the server, the client can reconnect to the server.
Figs. 9 and 10 show the difference between operating without the Off-Line Enabler (Fig. 9) and with the Off-Line Enabler (Fig. 10) .
A system incorporating the foregoing Off-Line Enabler can provide significant improvements in response time, and significant decreases in server load, over a conventional WWW Internet System.
7.3 Combined Speed Enhancer And Off-Line Enabler In still another form of the present invention, the novel software comprises both the aforementioned Speed Enhancer and the aforementioned Off-Line Enabler, i.e., the novel software comprises the Combined Speed Enhancer And Off-Line Enabler.
Looking next at Fig. 11, operation of the system will now be described with the Combined Speed Enhancer And Off-Line Enabler both enabled and disabled.
7.3.1 Combined Speed Enhancer And
Off-Line Enabler Disabled
More particularly, operation of the system with the Combined Speed Enhancer And Off-Line Enabler disabled (or missing) will first be discussed.
In this mode of operation, the client first connects to the Internet and starts the browser. Then, using the browser and HTML, the client logs in to the server's application program. During this login procedure, the server determines whether the client has the Combined Speed Enhancer And Off-Line Enabler enabled or, conversely, whether the Combined Speed Enhancer And Off-Line Enabler is disabled (or missing) . Thus, for the purposes of the fifth part of this discussion, the server will recognize at login that the client's Combined Speed Enhancer And Off-Line Enabler is disabled (or missing) .
At the end of the login procedure, the server's application program will provide the user, via the
browser and HTML, with various options. See, for example, Fig. 4. Next, the user can indicate to the system that information is required. To do this, the user can click on the "Select Items" button (Fig. 4) and the client, using the browser and HTML, will request the "Items Request Page" from the server. The server sends the "Items Request Page" to the client's browser in HTML and it is displayed to the user (Fig. 5) . This page allows the user to specify selected search criteria. After the user specifies the desired search criteria, the user can click the "Go" button and the client sends the information request to the server using the browser and HTML.
The server responds by sending the required information back to the client's browser in HTML format. The server's HTML response includes the requested data along with embedded formatting information. The browser receives the server's HTML response and displays the response to the user. See Fig. 6.
Each request for additional information typically requires another client/server communication exchange of the type described above.
7.3.2 Combined Speed Enhancer And
Off-Line Enabler Enabled
With the Combined Speed Enhancer And Off-Line Enabler present and enabled, the system operates as follows. First, the client connects to the Internet and starts the browser. Then, using the browser and HTML, the client logs in to the server's application program. Again, during this login procedure, the server determines whether the client has the Combined Speed Enhancer And Off-Line Enabler enabled or, conversely, whether the Combined Speed Enhancer And Off-Line Enabler is disabled (or missing) . Thus, for the purposes of the sixth part of this discussion, the server will recognize at login that the client's Combined Speed Enhancer And Off-Line Enabler is enabled.
At the end of the login procedure, the server's application program will provide the user, via the browser and HTML, with various options. See, for example, Fig. 4. Next, the user can indicate to the system that various information is required. To do this, the user can click on the "Select Items" button
(Fig. 4) and the client, using the browser and HTML, requests the "Items Request Page" from the server. The server sends the "Items Request Page" to the client's browser in HTML and it is displayed to the user (Fig. 5) .
Significantly, in addition to providing the user with a way of specifying selected search criteria, the "Items Request Page" also provides the browser with (i) instructions to talk to the server through the Combined Speed Enhancer And Off-Line Enabler, and (ii) the instructions for formatting the data which will be arriving from the server. The user then uses the browser to enter the desired search criteria in the "Items Request Page" (Fig. 5) and, when the user clicks "Go", the browser passes the search criteria to the Combined Speed Enhancer And Off-Line Enabler.
The Combined Speed Enhancer And Off-Line Enabler then requests data from the server, so that the Combined Speed Enhancer And Off-Line Enabler can effectively act as a surrogate server at the client. The server sends the data to the Combined Speed Enhancer And Off-Line Enabler as raw, unformatted data. The Combined Speed Enhancer And Off-Line Enabler then
requests formatting information from the browser. The browser responds by sending the necessary formatting information, which was previously received from the server, to the Combined Speed Enhancer And Off-Line Enabler. The Combined Speed Enhancer And Off-Line Enabler, using this formatting information, recasts the data and formatting instructions into HTML. The Combined Speed Enhancer And Off-Line Enabler then pushes this HTML package to the browser for display to the user (Fig. 6) .
When the user thereafter makes another information request, the foregoing process is repeated. So long as the user requests information already received by the surrogate server, the client does not need to be on-line with the server.
Thus it will be seen that, by combining the Speed Enhancer and Off-Line Enabler features of the present invention, a substantial portion of the server' s load can be transferred to the client and data transmission can be greatly facilitated.
8 . Additional Concepts
It should also be appreciated that, while the foregoing discussion was conducted in the context of the HTML language, the invention may also be applied to extensions of HTML, e.g., XTML, and/or to similar types of languages, i.e., those combining formatting and data information within a single communication. For the purposes of this patent application, computer languages of this type may sometimes be referred to herein as "a data-plus-format language".
9. Advantages Of The Invention
Numerous advantages are obtained through the provision and use of the present invention.
9.1 Speed Enhancer
For one thing, the present invention improves the speed with which information can be transmitted across WWW Internet systems.
For another thing, the present invention reduces the load on a server in a WWW Internet system by improving the efficiency with which the server can transmit data to a client.
9.2 Off-Line Enabler
In addition, the present invention reduces the load on a server on a WWW Internet system by transferring some of the server's work to a client.
Also, the present invention permits some of the work to be done while the client is off-line from the server.
Furthermore, the present invention improves the overall efficiency of the system by reducing the quantity of information which must be transmitted through the relatively slow Internet bottleneck.
9.3 Other Advantages
Also, the present invention provides a way to reduce ISP and telephone connection time for a given client.
Furthermore, the present invention provides a way to improve overall system response time.
And the present invention provides an improved WWW Internet system which is seamless to the end user.
And the present invention provides an improved WWW Internet system which is compatible with existing browser architectures.