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

Client/server system with methods for prefetching and managing semantic objects based on object-based prefetch primitive present in client's executing application

Assignee: Sybase Inc
•
Filing: 1996-03-21
•
Granted: 1999-07-20
•
Expires: 2016-03-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A client/server system is described incorporating methods for managing object availability through semantic object "load sets." By associating a particular "load set" with each object which might be requested by a client, improved object fetching and cache management is provided. Methods are described for managing object fetching and discarding on a per object basis, not on a per page basis. Each "semantic object" is packaged in a "storable," which incorporates dependency lists indicating the context in which the object is to be used (i.e., with which dependent objects). Additionally, a program developer can specify that the set of behaviors is defined at runtime, using "prefetch" primitives provided by the system. This allows an executing application to prefetch objects based on the then-existing dynamics of the system. With this approach, object availability in a distributed object environment (e.g., Internet) is improved.

Inventors

  • 👤 Raymond G. Drewry
  • 👤 David George
  • 👤 Dirk Epperson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 22:45
CPC Classifications
H; H04; H04N; H04N21/00; H04N21/40; H04N21/43; H04N21/433; H04N21/4335; G; G06; G06F; G06F9/00; G06F9/06; G06F9/44; G06F9/445; G06F9/44521; H04L; H04L67/00; H04L67/01; H04L67/1396; H04N21/20; H04N21/23; H04N21/231; H04N21/23113; H04N21/24; H04N21/2401; H04N21/4331; H04N7/00; H04N7/16; H04N7/173; H04N7/17309; H04N7/17318

Claims Analysis

Total Claims: 32
Claim 1
Independent Claim 159 words
In a system comprising a client connected to a server through a network, a method for sending objects from the server to the client, the method comprising: receiving a request from a client for a particular object of interest, in response to user input received at an application executing at said client; determining at runtime dependent objects for the particular object, said dependent objects comprising those objects which are required for use of the particular object by the client; determining prefetch objects for the particular object, said prefetch objects comprising those objects which are likely to be used by the client upon use of the particular object and which are determined, based at least in part, on an object-based prefetch primitive present in said application, which operates in response to said user input occurring at runtime; sending to the client said particular object requested and said determined dependent objects; and selectively sending to the client said determined prefetch objects.
Claim 2
Dependent Claim 159 words
In a system comprising a client connected to a server through a network, a method for sending objects from the server to the client, the method comprising: receiving a request from a client for a particular object of interest, in response to user input received at an application executing at said client; determining at runtime dependent objects for the particular object, said dependent objects comprising those objects which are required for use of the particular object by the client; determining prefetch objects for the particular object, said prefetch objects comprising those objects which are likely to be used by the client upon use of the particular object and which are determined, based at least in part, on an object-based prefetch primitive present in said application, which operates in response to said user input occurring at runtime; sending to the client said particular object requested and said determined dependent objects; and selectively sending to the client said determined prefetch objects.
Claim 3
Dependent Claim 44 words
The method of claim 1, wherein said particular object comprises an object which is viewed on screen by a user, and wherein said dependent objects comprise those objects which must be present at the client in order to display the particular object on screen.
Claim 4
Dependent Claim 29 words
The method of claim 2, wherein said particular object comprises a page of an interactive application program and wherein said dependent objects comprise individual objects displayed on said page.
Claim 5
Dependent Claim 36 words
The method of claim 1, wherein said particular object requested is stored on the server as a storable, said storable including a list of dependent objects and a list of prefetch objects for said particular object.
Claim 6
Dependent Claim 29 words
The method of claim 4, wherein said selectively sending step includes: determining at the client from the list of prefetch objects which prefetch objects to request from the server.
Claim 7
Dependent Claim 32 words
The method of claim 5, wherein said determining which prefetch objects to request step includes: monitoring user input at the client for determining which prefetch objects are most likely to be required.
Claim 8
Dependent Claim 25 words
The method of claim 5, wherein said determining which prefetch objects to request step includes: monitoring memory available at the client for storing additional objects.
Claim 9
Dependent Claim 31 words
The method of claim 1, wherein said prefetch objects which are sent to the client remain packaged in a form in which said prefetch objects were originally sent to the client.
Claim 10
Dependent Claim 39 words
The method of claim 8, wherein at least some of said prefetch objects comprise code objects and wherein said method further comprises: unpacking prefetch objects into a form in which said prefetch objects are directly executable by the client.
Claim 11
Dependent Claim 42 words
The method of claim 8, wherein at least some of said prefetch objects comprise code objects and wherein said method further comprises: maintaining said prefetch objects in a package form in which said prefetch objects cannot be directly executable by the client.
Claim 12
Dependent Claim 33 words
The method of claim 1, wherein said prefetch objects which are sent to the client are swapped out to a non-volatile storage device on the client when the client experiences low memory conditions.
Claim 13
Dependent Claim 25 words
The method of claim 1, wherein said request for a particular object of interest comprises a request from a user to launch an interactive application.
Claim 14
Dependent Claim 34 words
The method of claim 1, wherein said particular object comprises an executable application and wherein said method further comprises: receiving a command from the application to expressly prefetch certain objects stored on the server.
Claim 15
Dependent Claim 33 words
The method of claim 1, wherein said particular object comprises an executable application and wherein said method further comprises: receiving a command from the application for explicitly removing certain objects from client memory.
Claim 16
Dependent Claim 31 words
The method of claim 1, further comprising: experiencing a low memory condition at the client; and freeing up memory at the client by discarding from client memory least-recently used prefetch objects.
Claim 17
Dependent Claim 21 words
The method of claim 15, wherein objects which are discarded from client memory are swapped to disk storage of the client.
Claim 18
Dependent Claim 25 words
The method of claim 1, wherein said determining prefetch objects step occurs at the client after the particular object has been sent to the client.
Claim 19
Dependent Claim 164 words
In a system comprising a client connected to a server, a method for object-based caching of objects on the client, the method comprising: establishing at the client a hierarchy of objects to preferentially keep in memory, said objects being received from the server, in response to user input received at an application executing at said client; experiencing a low memory condition at the client; and in response to said low memory condition and based at least in part on an object-based prefetch primitive present in said application that operates in response to said user input occurring at runtime, performing a selected one of: if an object is not likely to be used at the client, discarding the object from memory, if an object is likely to be used at the client, swapping the object out to a mass storage device local to the client, and if an object is certain to be used at the client, maintaining the object in memory at the client.
Claim 20
Dependent Claim 164 words
In a system comprising a client connected to a server, a method for object-based caching of objects on the client, the method comprising: establishing at the client a hierarchy of objects to preferentially keep in memory, said objects being received from the server, in response to user input received at an application executing at said client; experiencing a low memory condition at the client; and in response to said low memory condition and based at least in part on an object-based prefetch primitive present in said application that operates in response to said user input occurring at runtime, performing a selected one of: if an object is not likely to be used at the client, discarding the object from memory, if an object is likely to be used at the client, swapping the object out to a mass storage device local to the client, and if an object is certain to be used at the client, maintaining the object in memory at the client.
Claim 21
Dependent Claim 27 words
The method of claim 18, wherein said hierarchy comprises objects which are required, objects which might be required, and objects which are not known to be required.
Claim 22
Dependent Claim 26 words
The method of claim 19, wherein said objects which are required comprise only those objects necessary for rendering a current view on screen to a user.
Claim 23
Dependent Claim 18 words
The method of claim 20, further comprising: providing page-level physical memory management in addition to said object-based caching.
Claim 24
Dependent Claim 36 words
The method of claim 20, wherein said server has a high latency, such that said client can access objects swapped to said mass storage device faster than the client can receive the objects from the server.
Claim 25
Dependent Claim 159 words
An interactive television system comprising: a television device having a set top box connected to a host, in response to user input received at an application executing at said client; means for requesting that a particular object be sent from the host to the set top box, said particular object including a list of dependent objects and a list of prefetch objects, said dependent objects comprising those objects required for use of said particular object, said prefetch objects comprising objects likely to be required upon use of the particular object; means for sending said particular object from the host to the set top box, said means sending dependent objects together with the requested particular objects; and means for selectively sending said prefetch objects from said host to said set top box, said means operating based at least in part on an object-based prefetch primitive present in said application that operates in response to said user input occurring at runtime.
Claim 26
Dependent Claim 159 words
An interactive television system comprising: a television device having a set top box connected to a host, in response to user input received at an application executing at said client; means for requesting that a particular object be sent from the host to the set top box, said particular object including a list of dependent objects and a list of prefetch objects, said dependent objects comprising those objects required for use of said particular object, said prefetch objects comprising objects likely to be required upon use of the particular object; means for sending said particular object from the host to the set top box, said means sending dependent objects together with the requested particular objects; and means for selectively sending said prefetch objects from said host to said set top box, said means operating based at least in part on an object-based prefetch primitive present in said application that operates in response to said user input occurring at runtime.
Claim 27
Dependent Claim 30 words
The method of claim 23, wherein said particular object comprises a storable, said storable maintaining a list of dependent objects in a list of prefetch objects for the particular object.
Claim 28
Dependent Claim 36 words
The method of claim 23, wherein said means for selectively sending said prefetch objects includes: means responsive to user input for determining which ones of said prefetch objects should be sent to the set top box.
Claim 29
Dependent Claim 41 words
The method of claim 23, wherein said means for selectively sending said prefetch objects includes: means for monitoring how a user navigates among objects and determining based on said user navigation which objects should be prefetched for the set top box.
Claim 30
Dependent Claim 22 words
The system of claim 23, wherein objects present in the system comprise program code objects, data objects, and mixed program code/data objects.
Claim 31
Dependent Claim 156 words
In a system comprising a client connected to a server through a network, a method for sending objects from the server to the client, the method comprising: receiving a request from a client for a particular object of interest, in response to user input received at an application executing at said client; determining related objects for the particular object based at least in part on an object-based prefetch primitive present in said application that operates in response to said user input occurring at runtime, said related objects comprising those objects which are required or which may be required upon use of the particular object by the client; sending to the client a name identifying said particular object requested and names identifying said determined related objects; determining, based on said names, which objects currently reside at the client; and selectively sending from the server to the client of those objects determined to not reside at the client.
Claim 32
Dependent Claim 156 words
In a system comprising a client connected to a server through a network, a method for sending objects from the server to the client, the method comprising: receiving a request from a client for a particular object of interest, in response to user input received at an application executing at said client; determining related objects for the particular object based at least in part on an object-based prefetch primitive present in said application that operates in response to said user input occurring at runtime, said related objects comprising those objects which are required or which may be required upon use of the particular object by the client; sending to the client a name identifying said particular object requested and names identifying said determined related objects; determining, based on said names, which objects currently reside at the client; and selectively sending from the server to the client of those objects determined to not reside at the client.

References Cited (Backward Citations)

US5305389A Cited
US5396614A Cited
US5765159A Cited
US5721865A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-07-19 2003-01-18 2003-07-20 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-07-19 2007-01-18 2007-07-20 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-07-19 2011-01-18 2011-07-20 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag