Method and apparatus for enabling location-independent and location-transparent interaction between a program and a user
First Claim
1. In a network comprising a plurality of servers and at least one client device, a method for enabling location independent and location transparent interaction between a program and a user of said at least one client device, said program having been launched at a first location server and having a program state data structure for storing at least the program state, the method comprising the steps of:
- initiating, by said user, a program status request for said program to said network;
determining, by at least one of said plurality of servers, a current location server within which said program resides;
checking, in said current location server, said program state to ascertain program status; and
enabling interaction between said user and said program based upon said program status.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method wherein a mobile user, or a user interacting with a mobile program, can at any time initiate a program status request. The program status request initiates the sequence of events whereby the current location of the program is determined and/or the current user location is made available to the program without the necessity of either entity changing location. Further, the agent script for the program maintains a composite data structure which includes an input buffer for storing input variables, an output buffer for storing output values to be displayed to the user, a program state data structure, and an optional bag buffer for temporarily storing input variables which the program will need in the course of future execution. By maintaining such a composite data structure, it is assured that all necessary information can be provided at a program location regardless of whether the program or the user has relocated.
20 Citations
17 Claims
-
1. In a network comprising a plurality of servers and at least one client device, a method for enabling location independent and location transparent interaction between a program and a user of said at least one client device, said program having been launched at a first location server and having a program state data structure for storing at least the program state, the method comprising the steps of:
-
initiating, by said user, a program status request for said program to said network;
determining, by at least one of said plurality of servers, a current location server within which said program resides;
checking, in said current location server, said program state to ascertain program status; and
enabling interaction between said user and said program based upon said program status. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
retrieving, from said program for provision to said at least one client device, output contents for display to the user; and
displaying, on said at least one client device, said output contents to said user.
-
-
3. The method of claim 1 wherein said enabling step comprises:
-
requesting input variables from said user;
sending any received input values to said current location server; and
incorporating said received input values into said program state data structure.
-
-
4. The method of claim 1 wherein the program is a mobile agent.
-
5. The method of claim 1 wherein the program is a mobile script.
-
6. The method of claim 1 where the user is a mobile user.
-
7. The method of claim 2 further comprising the step of maintaining an output buffer in said program and wherein said retrieving comprises the step of retrieving said output contents from said output buffer.
-
8. The method of claim 1 wherein the initiating step comprises the steps of:
-
initiating said status request at said at least one client device; and
forwarding said status request to said first location server.
-
-
9. The method of claim 8 wherein said program comprises a mobile program which executes a portion of its code at each of a plurality of execution servers within said plurality of servers and wherein the determining step comprises the steps of:
-
transmitting said status request to each execution server at which said program has executed a portion of its code; and
determining, at each execution server, whether said program is currently running locally.
-
-
10. The method of claim 9 wherein each of said plurality of execution servers maintains routing information for said program and wherein said determining further comprises the step, if said program is not currently running locally, of consulting said routing information to ascertain at least one successive execution server to which said program has been routed.
-
11. The method of claim 1 further comprising the steps of:
-
maintaining a bag buffer of variable/value pairs in said program;
optionally receiving, from said user, a communication including input values; and
temporarily storing said input values in said bag buffer before they are needed by said program.
-
-
12. The method of claim 11 wherein said program subsequently searches through contents of said bag buffer to locate needed input values before attempting to request input from said user.
-
13. The method of claim 1 further comprising the step of maintaining a bag buffer of variable/value pairs in said program and wherein said enabling step comprises the steps of:
-
searching, in the bag buffer, for input values associated with input variables requested by said program;
updating, if found, said input variables with said input values;
disposing, in an input buffer, said input variables, if not found; and
optionally notifying said user via electronic means if no suitable values are found in the bag buffer.
-
-
14. The method of claim 13 wherein the electronic means is a pager.
-
15. The method of claim 13 wherein the electronic means is a beeper.
-
16. The method of claim 13 wherein the electronic means is electronic mail.
-
17. The method of claim 13 wherein the electronic means is a smart telephone.
Specification