Method and apparatus for updating and synchronizing information between a client and a server
First Claim
1. A method for synchronizing information between a client and a server comprising the steps of:
- initializing a communication system between said client and said server, said communication system comprising a plurality of objects, said objects capable of;
maintaining keys and values;
accepting user input; and
determining when to invoke an action;
wherein said initializing a communication system further comprises creating a server dictionary of said values on said server;
said client constructing a first package, wherein said first package is comprised of said keys and values;
said client transmitting said first package to said server;
synchronizing information between said server and said client comprising the steps of;
said server using said first package;
updating said server dictionary with said keys and values from said first package;
binding said server dictionary'"'"'s values to variables in said server;
said server constructing synchronization information based on said first package, wherein said constructing synchronization information comprises the steps of;
comparing said bound variables with said server dictionary'"'"'s values;
placing said keys and said values that have changed in said synchronization information;
said server transmitting said synchronization information to said objects;
said objects updating said client with said synchronization information.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides a method and apparatus for integrating applets running on a client with the application logic for applications running on a server. The mechanism of the present invention provides two significant advantages over the prior art: the synchronization of state, and the recognition of user actions in the browser including the invocation of the appropriate application logic in the server. Instead of using the FORM element available in HTML, individual active applets are available and may be created that obtain user input (e.g. a checkbox, textbox, button, etc.). A hidden applet called the Applet Group Controller is created which handles communication between the applets on the browser and the application logic on the server. The Applet Group Controller maintains an association with each applet that maintains the keys and values of any parameters and variables for the applet. In a preferred embodiment, upon the invocation of an event, the association instructs an Action Coordinator to invoke an action. The Action Coordinator obtains and transmits a list of all of the keys and their values to the server. The server invokes the appropriate application logic and transmits the keys and their values (as updated during the execution of the application logic) back to the Action Coordinator. The Action Coordinator then pushes the updated values out to the applets (through their Associations) at which time the browser'"'"'s display is updated with the new values.
-
Citations
31 Claims
-
1. A method for synchronizing information between a client and a server comprising the steps of:
-
initializing a communication system between said client and said server, said communication system comprising a plurality of objects, said objects capable of;
maintaining keys and values;
accepting user input; and
determining when to invoke an action;
wherein said initializing a communication system further comprises creating a server dictionary of said values on said server;
said client constructing a first package, wherein said first package is comprised of said keys and values;
said client transmitting said first package to said server;
synchronizing information between said server and said client comprising the steps of;
said server using said first package;
updating said server dictionary with said keys and values from said first package;
binding said server dictionary'"'"'s values to variables in said server;
said server constructing synchronization information based on said first package, wherein said constructing synchronization information comprises the steps of;
comparing said bound variables with said server dictionary'"'"'s values;
placing said keys and said values that have changed in said synchronization information;
said server transmitting said synchronization information to said objects;
said objects updating said client with said synchronization information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 28)
creating a controlling object;
surveying said plurality of objects;
creating associations;
connecting said associations to said plurality of objects;
creating an action coordinator; and
connecting said associations to said action coordinator.
-
-
3. The method of claim 2 wherein said initializing a communication system step further comprises the steps of:
-
extracting said keys and said values from said plurality of objects; and
creating a client dictionary of said extracted keys and extracted values on said client.
-
-
4. The method of claim 3 wherein said step of constructing a first package comprises the steps of:
-
comparing said keys and said values to said dictionary keys and said dictionary values; and
placing said keys and their corresponding values that have changed in said first package.
-
-
5. The method of claim 4 further comprising the step of placing a reference to said action in said first package.
-
6. The method of claim 3 wherein said step of synchronizing information between said client and said server further comprises the step of updating said client dictionary with said keys and said values from said synchronization information.
-
7. The method of claim 2 further comprising:
-
transmitting said first package from said action coordinator to a communications channel; and
transmitting said first package from said communications channel to said server.
-
-
8. The method of claim 7 further comprising the steps of:
-
transmitting said synchronization information from said server to said communications channel; and
transmitting said synchronization information from said communications channel to said action coordinator.
-
-
9. The method of claim 2 wherein said step of synchronizing information between said server and said client further comprises the steps of:
-
transmitting updated values from said synchronization information to said action coordinator;
transmitting said updated values from said action coordinator to said associations;
distributing said updated values from said associations to said objects; and
displaying said updated values.
-
-
10. The method of claim 1 wherein said synchronizing step further comprises:
binding said keys to variables in said server.
-
11. The method of claim 1 wherein said synchronizing step further comprises:
binding said values from said first package to variables in said server.
-
12. The method of claim 11 wherein said synchronization information comprises updated keys and updated values.
-
13. The method of claim 12 wherein said step of synchronizing information between said client and said server comprises the steps of:
-
transmitting said keys and said updated values to said objects; and
displaying said updated values.
-
-
14. The method of claim 1 wherein said first package is further comprised of a reference to said action.
-
28. The method of claim 1 further comprising the step of invoking a method.
-
15. An article of manufacture comprising:
-
a computer usable medium having computer readable program code embodied therein for synchronizing information between a client and a server, the computer readable program code in said article of manufacture comprising;
computer readable program code configured to cause a computer to initialize a communication system, said communication system comprising a plurality of objects, said objects containing computer readable program code configured to cause said computer to;
maintain keys and values;
accept user input; and
determine when to invoke an action;
wherein said computer readable program code configured to cause said computer to initialize a communications system further comprises computer readable program code configured to cause said computer to create a server dictionary of said keys and said values on said server;
computer readable program code configured to cause said computer to construct a first package, wherein said first package is comprised of said keys and values;
computer readable program code configured to cause said computer to transmit said first package to said server;
computer readable program code configured to cause said computer to synchronize information between said server and said client, said code comprising;
code configured to cause said server to use said first package;
computer readable program code configured to cause said computer to update said server dictionary with said keys and said values from said package;
computer readable program code configured to cause said computer to bind said server dictionary'"'"'s values to variables in said server;
code configured to cause said server to construct synchronization information, wherein said computer readable program code configured to cause said computer to construct synchronization information further comprises;
computer readable program code configured to cause said computer to compare said bound variables with said server dictionary'"'"'s values;
computer readable program code configured to cause said computer to place said keys and said values that have changed in said synchronization information;
code configured to cause said server to transmit said synchronization information to said objects; and
code configured to cause said objects to update said client with said synchronization information. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30)
computer readable program code configured to cause said computer to create a controlling object;
computer readable program code configured to cause said computer to survey said plurality of objects;
computer readable program code configured to cause said computer to create associations;
computer readable program code configured to cause said computer to connect said associations to said plurality of objects;
computer readable program code configured to cause said computer to create an action coordinator; and
computer readable program code configured to cause said computer to connect said associations to said action coordinator.
-
-
17. The article of manufacture of claim 16 wherein said computer readable program code configured to cause said computer to initialize a communication system further comprises:
-
computer readable program code configured to cause said computer to extract said keys and said values from said plurality of objects; and
computer readable program code configured to cause said computer to create a client dictionary of said extracted keys and extracted values on said client.
-
-
18. The article of manufacture of claim 17 wherein said computer readable program code configured to cause said computer to construct a first package comprises:
-
computer readable program code configured to cause said computer to compare said keys and said values to said dictionary keys and said dictionary values; and
computer readable program code configured to cause said computer to place said keys and their corresponding values that have changed in said first package.
-
-
19. The article of manufacture of claim 18 further comprising computer readable program code configured to cause a computer to place a reference to said action in said first package.
-
20. The article of manufacture of claim 17 wherein said computer readable program code configured to cause said computer to synchronize information between said server and said client comprises:
computer readable program code configured to cause said computer to update said client dictionary with said keys and said values from said synchronization information.
-
21. The article of manufacture of claim 16 further comprising:
-
computer readable program code configured to cause said computer to transmit said first package from said action coordinator to a communications channel; and
computer readable program code configured to cause said computer to transmit said first package from said communications channel to said server.
-
-
22. The article of manufacture of claim 21 wherein said computer readable program code configured to cause said computer to synchronize information between said server and said client further comprises:
-
computer readable program code configured to cause said computer to transmit said synchronization information from said server to said communications channel; and
computer readable program code configured to cause said computer to transmit said synchronization information from said communications channel to said action coordinator.
-
-
23. The article of manufacture of claim 16 wherein said computer readable program code configured to cause said computer to synchronize information between said server and said client further comprises:
-
computer readable program code configured to cause said computer to transmit updated values from said synchronization information to said action coordinator;
computer readable program code configured to cause said computer to transmit said updated values from said action coordinator to said associations;
computer readable program code configured to cause said computer to distribute said updated values from said associations to said objects; and
computer readable program code configured to cause said computer to display said updated values.
-
-
24. The article of manufacture of claim 15 further comprising:
computer readable program code configured to cause said computer to bind said keys to variables in said server.
-
25. The article of manufacture of claim 15 further comprising computer readable program code configured to cause said client computer to bind said values from said first package to variables in said server.
-
26. The article of manufacture of claim 25 wherein said synchronization information comprises updated keys and updated values.
-
27. The article of manufacture of claim 26 wherein said computer readable program code configured to cause said computer to synchronize information between said server and said client comprises:
-
computer readable program code configured to cause said computer to transmit said keys and said updated values to said object; and
computer readable program code configured to cause said computer to display said updated values.
-
-
29. The article of manufacture of claim 15 further comprising computer readable program code configured to cause a computer to invoke a method.
-
30. The article of manufacture of claim 15 wherein said first package is further comprised of a reference to said action.
-
31. A method for updating and synchronizing information comprising:
-
initializing a communication system having a client and a server, said client comprising a browser and an object invisibly coupled to said browser, said browser capable of accepting input from a user, said object capable of interpreting said input, maintaining keys and values based on said input, and determining when to invoke an action based on said input;
wherein said initializing a communication system further comprises creating a server dictionary of said values on said server;
said object constructing a first package, wherein said first package is comprised of said keys and values;
said object transmitting said first package from said client to said server; and
synchronizing said server and said browser comprising;
said server using said first package;
updating said server dictionary with said keys and values from said first package;
binding said server dictionary'"'"'s values to variables in said server;
said server constructing a second package based on said first package, wherein said constructing a second package comprises the steps of;
comparing said bound variables with said server dictionary'"'"'s values;
placing said keys and said values that have changed in said second package;
said server returning said second package to said object; and
said object updating said browser by pushing said second package through to said browser.
-
Specification