The present invention relates generally to data networks, and more specifically to data transmission and rendering techniques to be implemented in a client-server system.
In most Internet-based client-server systems, when a client process 102 desires specific information from a remote server (such as, for example, a web page), the client process transmits an HTTP request to the server 106 (via Internet 104), and the server responds by transmitting an HTTP response to the client which includes HTML data. A browser on the client machine renders the HTML data and displays it to the user in the form of an HTML (i.e. web) page. This entire process may be initiated by the user at the click of a button, such as, for example, by clicking a mouse button on a URL link. However, the desired information will typically not be displayed instantaneously. Rather, the user typically is required to wait a time interval (referred to as the end-user experienced response time) until the desired information is retrieved from the server system and displayed on the client machine. This delay is undesirable. Accordingly, it will be appreciated that it is generally desirable to reduce the end-user experienced response time.
According to different embodiments of the present invention, a method and computer program product are disclosed for generating formatted information for display on a computer system. The computer system may be configured to include at least one interface for communicating with a server computer system. A request is sent from the computer system to the server system. According to one embodiment, the request may correspond to an HTTP request for information relating to a specific HTML page or web page. A response is then received from the server system. According to one embodiment, the response includes response information comprising embedded instructions and data. The embedded instructions may include instructions for using the data to generate formatted markup information for display on the computer system. The embedded instructions are then executed on the data to thereby generate formatted markup information for display on the computer system. According to a specific embodiment, the formatted markup information corresponds to HTML data to be rendered for display on the computer system.
Other embodiments are directed to a method and computer program product for generating formatted information for display on a computer system. The computer system may be configured to include at least one interface for communicating with a server computer system. A request for desired information is received from the computer system. According to one embodiment, the request may correspond to an HTTP request for information relating to a specific HTML page or web page. A response is then sent to the computer system. According to one embodiment, the response includes response information comprising embedded instructions and data. The embedded instructions may include instructions for using the data to generate formatted markup information for display on the computer system. According to a specific embodiment, the formatted markup information corresponds to HTML data to be rendered for display on the computer system.
An alternate embodiment of the present invention is directed to a system for generating formatted information for display on a computer system. The system comprises at least one CPU, memory, and at least one interface for communicating with a server computer system. The system may be configured to send a request to the server system via the at least one interface. According to one embodiment, the request may correspond to an HTTP request for information relating to a specific HTML page or web page. The system may further be configured to receive a response from the server system, wherein the response includes response information comprising embedded instructions and data. The embedded instructions may include instructions for using the data to generate formatted markup information for display on the computer system. The system may be further configured to execute the embedded instructions on the data to thereby generate formatted markup information for display on the computer system. According to a specific embodiment, the formatted markup information corresponds to HTML data to be rendered for display on the computer system.
Another embodiment of the present invention is directed to a system for generating formatted information for display on a computer system. The system comprises at least one CPU, memory, and at least one interface for communicating with a client computer system. The system may be configured to receive a request for desired information from the client computer. According to one embodiment, the request may correspond to an HTTP request for information relating to a specific HTML page or web page. The system may further be configured or designed to send a response to the client computer, wherein the response includes response information comprising embedded instructions and data. The embedded instructions may include instructions for using the data to generate formatted markup information for display on the client system. According to a specific embodiment, the formatted markup information corresponds to HTML data to be rendered for display on the client system.
Additional objects, features and advantages of the various aspects of the present invention will become apparent from the following description of its preferred embodiments, which description should be taken in conjunction with the accompanying drawings.
This application describes various features associated with data transmission and rendering techniques to be implemented in a client-server system. It will be appreciated, therefore, that the data transmission and rendering techniques described in this application merely define specific embodiments of the data transmission and rendering techniques of the present invention. Alternate embodiments of the data transmission and rendering techniques of the present invention may be derived by modifying various features of the specific embodiment described herein. Such modifications will be apparent to one having ordinary skill in the art.
As described previously in the Background Section of this application, it is generally desirable to reduce the end-user experienced response time as much as possible. In this regard, it will be appreciated that a combination of different factors may contribute to the overall end-user experienced response time, such as, for example, the server response time, communication latency, download time, client processing speed, etc. The server response time indicates how quickly a server is able to respond to a particular request, such as, for example, an HTTP request. The communication latency represents the start up costs associated with the connection between the client and the server. Typically, each time the user clicks on a particular link in a web browser application, a connection to a server is established, which incurs another latency period. The client processing speed corresponds to how quickly the client (or browser machine) is able to render the page as it receives it. The download time represents an amount of time that it takes to download a requested page once the request has been received and processed by the server. This value may be significantly affected by the connection speed that has been established between the client and the server.
With the limited connection speeds that are typically established between the client and the server, one of the more significant factors in the end-user experienced response time is the size of the page being downloaded. Thus, it will be appreciated that, by reducing the amount of bytes to be downloaded from the server process, the end-user experienced response time may also be reduced.
It will be appreciated that the actual number of bytes to be transferred from the server 106 to the client device 102 in
Thus, according to at least one embodiment of the present invention, rather than the server 106 sending the entire HTML source code (as shown in
Referring to
Upon receiving the HTTP response, the client machine may execute (3) the JavaScript on the data provided in the HTTP response to thereby generate HTML code for rendering on the client machine. According to a specific embodiment, this action may be performed by a browser application that has been configured or designed to interpret scripting instruction language such as, for example, JavaScript or JSCRIPT. Alternatively, the embedded instructions may correspond to executable code which is executed on the client system using the data from the HTTP response to generate the HTML code. A web browser or other rendering program on the client machine may than use the generated HTML code to render (4) the HTML page to be displayed on the client machine's display device.
It will be appreciated that, according to a specific embodiment of the present invention, the response transmitted from the server 106 to the client system 102 may not always include both embedded instructions and embedded data. In one implementation, the particular request transmitted by the client system to the server may be used by the server determine whether the response to the client should include only data, or both data and instructions.
By way of illustration, it is assumed that the server 106 has already transmitted a first response to client 102 which includes embedded instructions 222 and data 224 as shown in
Alternatively, if the user clicks on the VIEW CALENDAR link, the client system will send a request to the server to retrieve calendar information (which is assumed to be displayed using a different format than that shown in
From the above description, it will be appreciated that the data transmission and rendering techniques of the present invention may be used to reduce the amount of actual bytes transferred from a server system (e.g., 106,
Generally, the data transmission and rendering techniques of the present invention may be implemented on software and/or hardware. For example, they can be implemented in an operating system kernel, in a separate user process, in a library package bound into network applications, on a specially constructed machine, or on a network interface card. In a specific embodiment of this invention, the technique of the present invention is implemented in software such as an operating system or in an application running on an operating system.
A software or software/hardware hybrid implementation of the data transmission and rendering technique of this invention may be implemented on a general-purpose programmable machine selectively activated or reconfigured by a computer program stored in memory. Such programmable machine may be a computer system or network device such as that shown in
Referring now to
CPU 62 may include one or more processors 63 such as a processor from the Motorola family of microprocessors or the MIPS family of microprocessors. In an alternative embodiment, processor 63 is specially designed hardware for controlling the operations of network device 60. In a specific embodiment, a memory 61 (such as non-volatile RAM and/or ROM) also forms part of CPU 62. However, there are many different ways in which memory could be coupled to the system. Memory block 61 may be used for a variety of purposes such as, for example, caching and/or storing data, programming instructions, etc.
The interfaces 68 are typically provided as interface cards (sometimes referred to as “line cards”). Generally, they control the sending and receiving of data packets over the network and sometimes support other peripherals used with the network device 60. Among the interfaces that may be provided are Ethernet interfaces, frame relay interfaces, cable interfaces, DSL interfaces, token ring interfaces, and the like. In addition, various very high-speed interfaces may be provided such as fast Ethernet interfaces, Gigabit Ethernet interfaces, ATM interfaces, HSSI interfaces, POS interfaces, FDDI interfaces and the like. Generally, these interfaces may include ports appropriate for communication with the appropriate media. In some cases, they may also include an independent processor and, in some instances, volatile RAM. The independent processors may control such communications intensive tasks as packet switching, media control and management. By providing separate processors for the communications intensive tasks, these interfaces allow the master microprocessor 62 to efficiently perform routing computations, network diagnostics, security functions, etc.
Although the system shown in
Regardless of network device's configuration, it may employ one or more memories or memory modules (such as, for example, memory block 65) configured to store data, program instructions for the general-purpose network operations and/or other information relating to the functionality of the data transmission and rendering techniques described herein. The program instructions may control the operation of an operating system and/or one or more applications, for example. The memory or memories may also be configured to include data structures which store data received from other network devices, locally generated HTML data, rendered HTML pages, etc.
Because such information and program instructions may be employed to implement the systems/methods described herein, the present invention relates to machine readable media that include program instructions, state information, etc. for performing various operations described herein. Examples of machine-readable media include, but are not limited to, magnetic storage media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks; magneto-optical media such as floptical disks; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory devices (ROM) and random access memory (RAM). The invention may also be embodied in transmission media such as a carrier wave travelling over an appropriate medium such as airwaves, optical lines, electric lines, etc. Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter.
Although several preferred embodiments of this invention have been described in detail herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to these precise embodiments, and at various changes and modifications may be effected therein by one skilled in the art without departing from the scope of spirit of the invention as described herein.
This application is a continuation of U.S. patent application Ser. No. 09/792,400, filed Feb. 22, 2001 entitled: “Data transmission and rendering techniques implemented over a client-server system,” which is incorporated herein by reference in its entirety for all purposes, and which application claims priority under 35 USC 119(e) from U.S. Provisional Patent Application No. 60/247,392 filed Nov. 10, 2000, the entirety of which is incorporated herein by reference for all purposes. The present application also relates to copending U.S. patent application Ser. No. 09/568,603, filed on May 10, 2000, now U.S. Pat. No. 7,177,825, which is incorporated herein by reference in its entirety for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
2781643 | Fairweather | Feb 1957 | A |
3406532 | Rownd et al. | Oct 1968 | A |
3670867 | Traube | Jun 1972 | A |
4213310 | Buss | Jul 1980 | A |
4455453 | Parasekvakos et al. | Jun 1984 | A |
4656591 | Goldberg | Apr 1987 | A |
4823984 | Ficken | Apr 1989 | A |
4887208 | Schneider et al. | Dec 1989 | A |
4936738 | Brennan | Jun 1990 | A |
5038283 | Caveney | Aug 1991 | A |
5093794 | Howie et al. | Mar 1992 | A |
5105627 | Kurita | Apr 1992 | A |
5113349 | Nakamura et al. | May 1992 | A |
5122959 | Nathanson et al. | Jun 1992 | A |
5235819 | Bruce | Aug 1993 | A |
5237158 | Kern et al. | Aug 1993 | A |
5246332 | Bernard | Sep 1993 | A |
5265006 | Asthana | Nov 1993 | A |
5272638 | Martin et al. | Dec 1993 | A |
5273392 | Bernard | Dec 1993 | A |
5322406 | Pippin et al. | Jun 1994 | A |
5363310 | Haj-AliAhmadi et al. | Nov 1994 | A |
5395206 | Cerny, Jr. | Mar 1995 | A |
5428546 | Shah et al. | Jun 1995 | A |
5450317 | Lu et al. | Sep 1995 | A |
5479530 | Nair et al. | Dec 1995 | A |
5533361 | Halpern | Jul 1996 | A |
5548518 | Dietrich et al. | Aug 1996 | A |
5568393 | Ando et al. | Oct 1996 | A |
5593269 | Bernard | Jan 1997 | A |
5615121 | Babayev et al. | Mar 1997 | A |
5664110 | Green et al. | Sep 1997 | A |
5666493 | Wojcik et al. | Sep 1997 | A |
5694551 | Doyle et al. | Dec 1997 | A |
5710887 | Chelliah et al. | Jan 1998 | A |
5712989 | Johnson et al. | Jan 1998 | A |
5758313 | Shah et al. | May 1998 | A |
5758328 | Giovannoli | May 1998 | A |
5761673 | Bookman et al. | Jun 1998 | A |
5768139 | Pippin et al. | Jun 1998 | A |
5809479 | Martin et al. | Sep 1998 | A |
5826242 | Montulli | Oct 1998 | A |
5826825 | Gabriet | Oct 1998 | A |
5831860 | Foladare et al. | Nov 1998 | A |
5832457 | Cherney | Nov 1998 | A |
5834753 | Danielson et al. | Nov 1998 | A |
5835914 | Brim | Nov 1998 | A |
5839117 | Cameron et al. | Nov 1998 | A |
5848395 | Edgar et al. | Dec 1998 | A |
5878401 | Joseph | Mar 1999 | A |
5880443 | McDonald et al. | Mar 1999 | A |
5884216 | Shah et al. | Mar 1999 | A |
5893076 | Hafner et al. | Apr 1999 | A |
5894554 | Lowery et al. | Apr 1999 | A |
5897622 | Blinn et al. | Apr 1999 | A |
5897629 | Shinagawa et al. | Apr 1999 | A |
5899088 | Purdum | May 1999 | A |
5910896 | Hahn-Carlson | Jun 1999 | A |
5918213 | Bernard et al. | Jun 1999 | A |
5943652 | Sisley et al. | Aug 1999 | A |
5943841 | Wunscher | Aug 1999 | A |
5956709 | Xue | Sep 1999 | A |
5961601 | Iyengar | Oct 1999 | A |
5963919 | Brinkley et al. | Oct 1999 | A |
5974401 | Enomoto et al. | Oct 1999 | A |
5979757 | Tracy et al. | Nov 1999 | A |
5983200 | Slotznick | Nov 1999 | A |
5991739 | Cupps et al. | Nov 1999 | A |
6023683 | Johnson et al. | Feb 2000 | A |
6026378 | Onozaki | Feb 2000 | A |
6058417 | Hess et al. | May 2000 | A |
6061607 | Bradley et al. | May 2000 | A |
6070147 | Harms et al. | May 2000 | A |
6073108 | Peterson | Jun 2000 | A |
6081789 | Purcell | Jun 2000 | A |
6083279 | Cuomo et al. | Jul 2000 | A |
6085170 | Tsukuda | Jul 2000 | A |
6088648 | Shah et al. | Jul 2000 | A |
6101481 | Miller | Aug 2000 | A |
6101486 | Roberts et al. | Aug 2000 | A |
6140922 | Kakou | Oct 2000 | A |
6157945 | Balma et al. | Dec 2000 | A |
6167380 | Kennedy et al. | Dec 2000 | A |
6167382 | Sparks et al. | Dec 2000 | A |
6182053 | Rauber et al. | Jan 2001 | B1 |
6185625 | Tso et al. | Feb 2001 | B1 |
6215952 | Yoshio et al. | Apr 2001 | B1 |
6233543 | Butts et al. | May 2001 | B1 |
6236974 | Kolawa et al. | May 2001 | B1 |
6249773 | Allard | Jun 2001 | B1 |
6249801 | Zisapel et al. | Jun 2001 | B1 |
6260024 | Shkedy | Jul 2001 | B1 |
6275812 | Haq et al. | Aug 2001 | B1 |
6289260 | Bradley et al. | Sep 2001 | B1 |
6289370 | Panarello et al. | Sep 2001 | B1 |
6292784 | Martin et al. | Sep 2001 | B1 |
6324520 | Walker et al. | Nov 2001 | B1 |
6332334 | Faryabi | Dec 2001 | B1 |
6341269 | Dulaney et al. | Jan 2002 | B1 |
6343275 | Wong | Jan 2002 | B1 |
6397246 | Wolfe | May 2002 | B1 |
6405173 | Honarvar et al. | Jun 2002 | B1 |
6424947 | Tsuria et al. | Jul 2002 | B1 |
6445976 | Ostro | Sep 2002 | B1 |
6453306 | Quelene | Sep 2002 | B1 |
6463345 | Peachey-Kountz et al. | Oct 2002 | B1 |
6463420 | Guidice et al. | Oct 2002 | B1 |
6484150 | Blinn et al. | Nov 2002 | B1 |
6490567 | Gregory | Dec 2002 | B1 |
6505093 | Thatcher et al. | Jan 2003 | B1 |
6526392 | Dietrich et al. | Feb 2003 | B1 |
6530518 | Krichilsky et al. | Mar 2003 | B1 |
6549891 | Rauber et al. | Apr 2003 | B1 |
6567786 | Bibelnieks et al. | May 2003 | B1 |
6571213 | Altendahl et al. | May 2003 | B1 |
6578005 | Lesaint et al. | Jun 2003 | B1 |
6594692 | Reisman | Jul 2003 | B1 |
6598027 | Breen, Jr. | Jul 2003 | B1 |
6622127 | Klots et al. | Sep 2003 | B1 |
6654726 | Hanzek | Nov 2003 | B1 |
6697964 | Dodrill et al. | Feb 2004 | B1 |
6741995 | Chen et al. | May 2004 | B1 |
6748418 | Yoshida et al. | Jun 2004 | B1 |
6763496 | Hennings et al. | Jul 2004 | B1 |
6792459 | Elnozahy et al. | Sep 2004 | B2 |
6862572 | de Sylva | Mar 2005 | B1 |
6879965 | Fung et al. | Apr 2005 | B2 |
6904455 | Yen | Jun 2005 | B1 |
6970837 | Walker et al. | Nov 2005 | B1 |
6975937 | Kantarjiev et al. | Dec 2005 | B1 |
6980962 | Arganbright et al. | Dec 2005 | B1 |
6990460 | Parkinson | Jan 2006 | B2 |
7028187 | Rosen | Apr 2006 | B1 |
7035914 | Payne et al. | Apr 2006 | B1 |
7040541 | Swartz et al. | May 2006 | B2 |
7085729 | Kennedy et al. | Aug 2006 | B1 |
7139637 | Waddington et al. | Nov 2006 | B1 |
7139721 | Borders et al. | Nov 2006 | B2 |
7177825 | Borders et al. | Feb 2007 | B1 |
7197547 | Miller et al. | Mar 2007 | B1 |
7222161 | Yen et al. | May 2007 | B2 |
7233914 | Wijaya et al. | Jun 2007 | B1 |
7240283 | Paila et al. | Jul 2007 | B1 |
7251612 | Parker et al. | Jul 2007 | B1 |
7308423 | Woodward et al. | Dec 2007 | B1 |
20010013007 | Tsukuda | Aug 2001 | A1 |
20010037229 | Jacobs et al. | Nov 2001 | A1 |
20010042021 | Matsuo et al. | Nov 2001 | A1 |
20010047285 | Borders et al. | Nov 2001 | A1 |
20010047310 | Russell | Nov 2001 | A1 |
20010049619 | Powell et al. | Dec 2001 | A1 |
20010049672 | Moore | Dec 2001 | A1 |
20020004766 | White | Jan 2002 | A1 |
20020007299 | Florence | Jan 2002 | A1 |
20020010633 | Brotherson | Jan 2002 | A1 |
20020013950 | Tomsen | Jan 2002 | A1 |
20020038224 | Bhadra | Mar 2002 | A1 |
20020038261 | Kargman et al. | Mar 2002 | A1 |
20020050526 | Swartz et al. | May 2002 | A1 |
20020065700 | Powell et al. | May 2002 | A1 |
20020072994 | Mori et al. | Jun 2002 | A1 |
20020188530 | Wojcik et al. | Dec 2002 | A1 |
20030045340 | Roberts | Mar 2003 | A1 |
20030065565 | Wagner et al. | Apr 2003 | A1 |
20030079227 | Knowles et al. | Apr 2003 | A1 |
20030233190 | Jones | Dec 2003 | A1 |
20040107125 | Guheen et al. | Jun 2004 | A1 |
20050027580 | Crici et al. | Feb 2005 | A1 |
20050144641 | Lewis | Jun 2005 | A1 |
20070016463 | Borders et al. | Jan 2007 | A1 |
20071074144 | Borders et al. | Feb 2007 | |
20070055580 | Woodward et al. | Mar 2007 | A1 |
20070112647 | Borders et al. | May 2007 | A1 |
20070136149 | Woodward et al. | Jun 2007 | A1 |
20070162353 | Borders et al. | Jul 2007 | A1 |
20080015959 | Kruglikov et al. | Jan 2008 | A1 |
Number | Date | Country |
---|---|---|
2696722 | Apr 1994 | FR |
2 265 032 | Sep 1993 | GB |
WO9907121 | Feb 1999 | WO |
WO 9909508 | Feb 1999 | WO |
Number | Date | Country | |
---|---|---|---|
20070250572 A1 | Oct 2007 | US |
Number | Date | Country | |
---|---|---|---|
60247392 | Nov 2000 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 09792400 | Feb 2001 | US |
Child | 11821307 | US |