← Back to Patent Explorer
US6253228B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for updating and synchronizing information between a client and a server

Assignee: Apple Inc
•
Filing: 1997-03-31
•
Granted: 2001-06-26
•
Expires: 2017-03-31
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Michael Ferris
  • 👤 Nicolas Popp
  • 👤 Scott Forstall
  • 👤 Charles D'Harcourt

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 07:19
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/44; G06F9/445; G06F9/44521; G06F9/44526; G06F40/00; G06F40/10; G06F40/103; G06F9/451; G06F9/46; G06F9/54; H; H04; H04L; H04L67/00; H04L67/01; H04L67/02; H04L67/10; H04L67/1095; H04L67/14; H04L67/142; H04L67/34; H04L9/00; H04L9/40; H04L69/00; H04L69/30; H04L69/32; H04L69/322; H04L69/329; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99952; Y10S707/99953

Claims Analysis

Total Claims: 34
Claim 1
Independent Claim 195 words
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.
Claim 2
Independent Claim 195 words
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.
Claim 3
Dependent Claim 47 words
The method of claim 1 wherein said initializing a communication system step comprises the steps of: 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.
Claim 4
Dependent Claim 43 words
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.
Claim 5
Dependent Claim 46 words
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.
Claim 6
Dependent Claim 20 words
The method of claim 4 further comprising the step of placing a reference to said action in said first package.
Claim 7
Dependent Claim 36 words
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.
Claim 8
Dependent Claim 31 words
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.
Claim 9
Dependent Claim 34 words
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.
Claim 10
Dependent Claim 59 words
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.
Claim 11
Dependent Claim 19 words
The method of claim 1 wherein said synchronizing step further comprises: binding said keys to variables in said server.
Claim 12
Dependent Claim 23 words
The method of claim 1 wherein said synchronizing step further comprises: binding said values from said first package to variables in said server.
Claim 13
Dependent Claim 15 words
The method of claim 11 wherein said synchronization information comprises updated keys and updated values.
Claim 14
Dependent Claim 36 words
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.
Claim 15
Dependent Claim 18 words
The method of claim 1 wherein said first package is further comprised of a reference to said action.
Claim 16
Dependent Claim 341 words
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.
Claim 17
Dependent Claim 341 words
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.
Claim 18
Dependent Claim 116 words
The article of manufacture of claim 15 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 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.
Claim 19
Dependent Claim 71 words
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.
Claim 20
Dependent Claim 73 words
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.
Claim 21
Dependent Claim 29 words
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.
Claim 22
Dependent Claim 52 words
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.
Claim 23
Dependent Claim 53 words
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.
Claim 24
Dependent Claim 73 words
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.
Claim 25
Dependent Claim 106 words
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.
Claim 26
Dependent Claim 27 words
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.
Claim 27
Dependent Claim 32 words
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.
Claim 28
Dependent Claim 17 words
The article of manufacture of claim 25 wherein said synchronization information comprises updated keys and updated values.
Claim 29
Dependent Claim 63 words
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.
Claim 30
Dependent Claim 13 words
The method of claim 1 further comprising the step of invoking a method.
Claim 31
Dependent Claim 22 words
The article of manufacture of claim 15 further comprising computer readable program code configured to cause a computer to invoke a method.
Claim 32
Dependent Claim 20 words
The article of manufacture of claim 15 wherein said first package is further comprised of a reference to said action.
Claim 33
Independent Claim 217 words
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.
Claim 34
Independent Claim 217 words
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.

References Cited (Backward Citations)

US5392400A Cited
US5602992A Cited
US5613124A Cited
US5819251A Cited
US5870742A Cited
US6009457A Cited
US5953005A Cited
US5758355A Cited
US5926816A Cited
US6119167A Cited
US5968121A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-06-25 2004-12-25 2005-06-26 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-06-25 2008-12-25 2009-06-26 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-06-25 2012-12-25 2013-06-26 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag