Cofetching in a command cache
First Claim
1. A software system supporting distributed web applications between a client and a server equipped with a cache, wherein the software system comprises:
- primary and secondary commands, which may be executed in the server in response to a request from the client;
a metadata property, for use in instructing properties by which the commands will be cached;
a pre-execution instruction sequence, which may be invoked when the primary command is executed, to execute one or more secondary commands and then return all the executed primary and secondary commands to the client; and
a post-execution instruction sequence, which may be invoked after the primary command is executed, to place the one or more secondary commands returned by the pre-execution instruction sequence into the cache, along with the primary command.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method are disclosed, according to which, the responsiveness of client/server-based distributed web applications operating in an object-oriented environment may be improved by cofetching read only commands. In an exemplary embodiment, the system and method are implemented by defining special preExecute and postExecute methods of cacheable commands. The preExecute method of a requested command may be invoked to execute secondary commands and then return them to the requesting client. The postExecute method of a requested command may be invoked to place the returned commands in a cache, along with the requested command. In this manner, a single request can be used to execute, retrieve and cache multiple related commands. Cofetched commands are designated by the application developer when the requested command and its associated methods are created, and may be chosen based on their anticipated use in conjunction with the requested command. For example, a log-on command may cofetch other user authentication commands, since they are generally required immediately after the user logs on. Cofetching avoids the need to issue a separate request for every command.
-
Citations
19 Claims
-
1. A software system supporting distributed web applications between a client and a server equipped with a cache, wherein the software system comprises:
-
primary and secondary commands, which may be executed in the server in response to a request from the client;
a metadata property, for use in instructing properties by which the commands will be cached;
a pre-execution instruction sequence, which may be invoked when the primary command is executed, to execute one or more secondary commands and then return all the executed primary and secondary commands to the client; and
a post-execution instruction sequence, which may be invoked after the primary command is executed, to place the one or more secondary commands returned by the pre-execution instruction sequence into the cache, along with the primary command. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
requesting the command from the server;
preparing the metadata for caching the primary and secondary commands;
executing the command in the server;
placing the primary command in the cache of the server; and
conveying the executed command from the server to the client.
-
-
3. The software system as recited in claim 1, wherein the one or more secondary commands executed and returned by the pre-execution instruction sequence are designated when the primary and secondary commands are created.
-
4. The software system as recited in claim 1, wherein the one or more secondary commands executed and returned by the pre-execution instruction sequence are commands that may be needed in conjunction with the primary command.
-
5. The software system as recited in claim 1, further comprising an instruction sequence whereby the primary or secondary command is entered into the cache.
-
6. The software system as recited in claim 1, wherein the metadata property contains a cache ID, and wherein preparing the metadata for caching comprises setting the cache ID in the metadata of the primary or secondary command to designate a specific cache.
-
7. The software system as recited in claim 1, further comprising an object-oriented software system.
-
8. The software system as recited in claim 1, wherein the server comprises a Java Virtual Machine (JVM).
-
9. The software system as recited in claim 1, wherein the metadata property also contains a sharing policy, which defines the manner in which the primary or secondary command in the cache of the server may be accessed by a second server.
-
10. A method for cofetching a plurality of commands in an object-oriented software system supporting web applications between a client and a server equipped with a cache, and the method comprises:
-
receiving a request for a primary command from the client;
preparing a metadata property, which encapsulates information for caching the primary command;
invoking a pre-execution instruction sequence, which, when the primary command is executed, executes one or more secondary commands and then returns the executed primary and secondary commands to the client; and
invoking a post-execution instruction sequence, which, after the primary command is executed, places the one or more secondary commands returned by the pre-execution instruction sequence into the cache, along with the primary command. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A system including processor and memory for cofetching commands in a web application between client and server, comprising:
-
a cache;
means for receiving a request for a primary command from the client;
means for preparing a metadata property, which encapsulates information for caching the primary command;
means for invoking a pre-execution instruction sequence, which, when the primary command is executed, executes one or more secondary commands and then returns the executed primary and secondary commands to the client; and
means for invoking a post-execution instruction sequence, which, after the primary command is executed, places the one or more secondary commands returned by the pre-execution instruction sequence into the cache, along with the primary command.
-
-
19. A computer program product in a computer readable medium for cofetching commands in a web application between client and server, comprising:
-
means for receiving a request for a primary command from the client;
means for preparing a metadata property, which encapsulates information for caching the primary command;
means for invoking a pre-execution instruction sequence, which, when the primary command is executed, executes one or more secondary commands and then returns the executed primary and secondary commands to the client; and
means for invoking a post-execution instruction sequence, which, after the primary command is executed, places the one or more secondary commands returned by the pre-execution instruction sequence into the cache, along with the primary command.
-
Specification