The present invention relates generally to a method of running a computer application, and more particularly to a system and method for incrementally executing a client/server application.
In a local computing environment, such as a personal computer containing a hard disk drive and internal cache, the time required for the loading and execution of a computer application is generally not an issue. In this environment there are sufficient resources connected by high bit rate pathways for program loading and executing within a period of time acceptable to most users.
However, this is not the case for client/server applications in which the bulk of the application is run remotely on a server. Even in a communications system in which a client computer is connected and in communication with a server computer over high bit rate communication links, network bit rates typically do not compare with those found between components of a local system.
Attempts using distinct “quick-viewing” programs running separately from the main application have been made to reduce execution times for client/server applications running in the Windows environment. For Web-based environments, characteristically more sensitive to loading and execution delays, browser applets have been employed, involving a heavily coded client requiring a virtual machine separate from the browser.
The problem with these methods is that they use separate components that are large and resource intensive relative to the limited return of functionality they provide. What is needed is a method of providing a reduction in execution times for client/server applications without the requirement for separate, resource intensive components.
For the foregoing reasons, there is a need for an improved method of executing a client/server application.
The present invention is directed to a system and method for incrementally executing a client/server application. Both the system and method leverage existing communications network infrastructure having at least one client computer and at least one server computer, wherein the at least one client computer and the at least one server computer are in communications with each other over one or more communications links within the network infrastructure.
The system includes a server component comprising a plurality of portions, and provided on the at least one server computer and a client component provided on the at least one client computer, the client component including one or more command selectors. Each of the one or more command selectors has associated code for selecting a function available from the plurality of portions of the server component. Further, each of the one or more command selectors has an associated parameter for use by the server component in determining the appropriate portion of the plurality of portions to execute to provide the selected function.
The method includes the steps of providing a server component comprising a plurality of portions on the at least one server computer, providing a client component on the at least one client computer, and executing an appropriate portion from the plurality of portions of the server component applicable to and upon an initial request from the client component for an application function. The method further includes the steps of executing an applicable additional portion of the plurality of portions of the server component for each request received from the client component for an application function not available from any running portion or portions of the server component, and running all executed portions until an end session command is received.
In an aspect of the invention, one portion of the plurality of portions is a compact portion initially executed upon receipt of a first application function request from the client component, the compact portion delivering a streamlined subset of functions applicable to commands most commonly requested to provide a fast executing initial portion of the application. Should the function requested lie outside of the function set of the compact portion, an applicable additional portion is loaded and executed, combining its functions with the first portion's functions, with minimal overlap, to provide enhanced functionality. Both portions, and any additional portions, will continue to run for the remainder of the session.
The invention provides improved response times for access to client/server applications, and in particular to Web-based client/server applications, which are characteristically more sensitive to loading and execution delays.
Other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures.
These and other features, aspects, and advantages of the present invention will become better understood with regard to the following description, appended claims, and accompanying drawings where:
The present invention is directed to a system and method for incrementally executing a client/server application. Both the system and method leverage existing communications network infrastructure 11 having at least one client computer 10 and at least one server computer 12, wherein the at least one client computer 10 and the at least one server computer 12 are in communications with each other over one or more communications links 14 within the network infrastructure 11.
As illustrated in
As illustrated in
The network infrastructure 11 can be any appropriate network that includes both a client computer and a server computer connected to and in communications with each other over one or more communication links appropriate for the network, as would be known to one skilled in the art.
As illustrated in
As an example, the compact portion 28 of the application can be limited to providing document viewing functions to the client computer 10. The compact portion 28 will continue to run alone until such time as the user selects a function not available from the streamlined subset of functions of the compact portion 28. All executed portions will continue to run for the remainder of the session.
In an embodiment of the present invention, the system and method are Web-based, whereby HTML and scripting or another similar language are employed, allowing for a thinner client when compared to a browser applet. As illustrated in
The selection of a link 34 forwards script 24 and an appended parameter 26 to the server component 16, which reads the value of the appended parameter 26 associated with the link 34 to determine the appropriate portion of the server component 16 to invoke to provide that function. When a user selects a link 34 on the client computer 10 associated with a function not provided by a running portion or portions of the server component 16, the applicable portion is determined, loaded and executed, with the script 24 directing which command to execute.
The application runs script with limited “crossover”. As additional portions are executed, the only thing noticeable to the user is a slight delay as the original view page is replaced with a new page. As well, the invention enables a large decrease in the number of lines of script at initial runtime when compared with a full version of an application, enabling preview pages to be viewed very quickly. Where appropriate, an application can be further divided into additional portions for execution for improved efficiency as would be known to one skilled in the art.
By initially executing a compact version of the application, the invention provides improved response times for access to client/server applications, and in particular to Web-based client/server applications, which are characteristically more sensitive to loading and execution delays.
Although the present invention has been described in considerable detail with reference to certain preferred embodiments thereof, other versions are possible. Therefore, the spirit and scope of the appended claims should not be limited to the description of the preferred embodiments contained herein.
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 60/261,994 filed Jan. 16, 2001.
Number | Name | Date | Kind |
---|---|---|---|
5029282 | Ito | Jul 1991 | A |
5097303 | Taguchi | Mar 1992 | A |
5136716 | Harvey et al. | Aug 1992 | A |
5204960 | Smith et al. | Apr 1993 | A |
5783934 | Tran | Jul 1998 | A |
5893113 | McGrath et al. | Apr 1999 | A |
5955874 | Zhou et al. | Sep 1999 | A |
5956509 | Kevner | Sep 1999 | A |
6052531 | Waldin et al. | Apr 2000 | A |
6279030 | Britton et al. | Aug 2001 | B1 |
6282542 | Carneal et al. | Aug 2001 | B1 |
6430607 | Kavner | Aug 2002 | B1 |
20020032754 | Logston et al. | Mar 2002 | A1 |
Number | Date | Country |
---|---|---|
1312144 | Dec 1992 | CA |
2207746 | Dec 1998 | CA |
WO9858478 | Dec 1998 | WO |
Number | Date | Country | |
---|---|---|---|
20040015951 A1 | Jan 2004 | US |
Number | Date | Country | |
---|---|---|---|
60261994 | Jan 2001 | US |