US2001044850A1PendingUtilityA1

Method and apparatus for determining the order of streaming modules

Priority: Jul 22, 1998Filed: Dec 22, 2000Published: Nov 22, 2001
Est. expiryJul 22, 2018(expired)· nominal 20-yr term from priority
H04L 65/613G06F 9/445H04L 65/1101H04L 65/70H04L 65/612H04L 9/40H04L 67/34
42
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method for determining an order in which to stream modules of an application from a server to a client, where the application uses modules in an execution-time dependent order, employs a predictive model to determine which module transitions are most likely to occur in the future in view of the clients present state in the application and then stream the modules to the client in the determined order. Different sets of transition weights can be used for clients falling into different categories, such as time of application use and age of the user at the client. Additional factors which can be used to select the order to stream the modules include cache utilization at the client and customized streaming orders specified by the user.

Claims

exact text as granted — not AI-modified
1 . A method for determining an order in which to stream modules of an application from a server to a client configured to execute the application concurrently with module streaming, the application utilizing the modules in an execution-time dependent order, the method comprising the steps of: 
 identifying potential execution transitions between modules;    associating at least one weighted value with each transition indicating a likelihood relative to other transitions that the particular transitions between modules will occur;    upon notice that the client is executing a particular module, determining a subsequent order of utilization of the modules by the application at the client with reference to the weighted values associated with identified transitions from the particular module; and    indicating that modules should be streamed to the client in the determined order.    
     
     
         2 . The method of    claim 1   , wherein: 
 a plurality of weighted values are associated with each transition, each weight being further associated with a respective category; and    the weighted values used during the determining step are selected in accordance with a specified category.    
     
     
         3 . The method of    claim 2   , wherein the respective categories comprise user age and time of usage.  
     
     
         4 . The method of    claim 1   , further comprising the steps of: 
 identifying a sequence of module transitions having the same weighted transition values; and    grouping the modules in the identified sequence of module transitions into a batch;    wherein, when the determined order includes a particular module in the batch should be streamed, the step of indicating comprises indicating that all module in the batch should be streamed to the client.    
     
     
         5 . The method of    claim 1   , wherein the determining step comprises determining the subsequent order of utilization of the modules with further reference to a projected client cache utilization and a cost to stream particular modules.  
     
     
         6 . The method of    claim 5   , wherein the cost comprises a module size.  
     
     
         7 . A method for determining an order in which to stream modules of an application from a server to a client executing the application concurrently with module streaming, the application utilizing the modules in an execution-time dependent order and comprising a plurality of functions, each function having at least one associated module, the method comprising the steps of: 
 receiving from a user a customized streaming order for modules associated with a specific function;    receiving notice that the user is executing a particular function;    if the particular function has an associated customized streaming order for the user, indicating that modules associated with the particular function should be streamed to the client in the selected streaming order;    otherwise, determining an alternative order of utilization of modules in the particular function; and    indicating that modules should be streamed to the client in the determined order.    
     
     
         8 . The method of    claim 7   , wherein the step of determining comprises predicting an order of usage of the modules in the particular function.  
     
     
         9 . The method of    claim 8   , wherein the step of predicting an order is performed with use of a set of predefined weighted transition values between modules in the function.  
     
     
         10 . The method of    claim 7   , wherein the step of determining comprises selecting a set of modules to maximize cache utilization at the client.  
     
     
         11 . The method of    claim 7   , further comprising the steps of: 
 receiving from a user a customized function streaming sequence; and    indicating that modules should be streamed to the client in accordance with the customized function streaming sequence.    
     
     
         12 . A system for streaming modules of an application from a server to a client executing the application concurrently with module streaming, the application utilizing the modules in an execution-time dependent order, the system comprising: 
 a streaming sever connectable to a client via a network;    a streaming code module database having the application module stored therein;    a streaming control file database having a predictive data stored therein, the predictive data comprising potential execution transitions between modules and at least one weighted value with each transition indicating a likelihood relative to other transitions that the particular transitions between modules will occur;    the streaming server being configured to: 
 receive an indication from the client that the application is in a given state;  
 determine an order of module utilization by the application at the client with reference to weighted values associated with model transitions for the application when in the given state; and  
 stream modules the client in the determined order.  
   
     
     
         13 . The system of    claim 12   , wherein: 
 a plurality of weighted values are associated with each transition, each weight being further associated with a respective category;    the streaming server being further configured to select weighted values for use during order determination in accordance with a specified category for the client.    
     
     
         14 . The system of    claim 13   , wherein the respective categories comprise user age and time of usage.  
     
     
         15 . The system of    claim 12   , wherein the streaming server is further configured to: 
 identify a sequence of module transitions having the same weighted transition values;    group the modules in the identified sequence of module transitions into a batch; and    stream the grouped modules to the client in a batch.    
     
     
         16 . The system of    claim 12   , wherein the streaming server is further configured to: 
 project client cache utilization in response to client receipt of particular sets of modules; and    determine an order of module utilization by the application at the client with further reference to the client cache utilization projections.    
     
     
         17 . The system of    claim 12   , wherein the streaming server is further configured to: 
 receive from a user a customized streaming order specifying at least one of a sequence of functions and a sequence of modules for a specific function and; and    determine an order of module utilization by the application at the client with further reference to the customized streaming order.    
     
     
         18 . A computer program residing on a computer readable medium for configuring a computer to determine an order in which to stream modules of an application from the computer to a client executing the application concurrently with module streaming, the application utilizing the modules in an execution-time dependent order, the computer program comprising computer code to configure the computer to: 
 upon notice that the client is executing a particular module, determine a subsequent order of utilization of the modules by the application at the client with reference to predefined weighted transition values for potential execution transitions between modules by the application, the transition values indicating a likelihood relative to other transitions that the particular transition between modules will occur; and    indicating that modules should be streamed to the client in the determined order.    
     
     
         19 . The computer program product of    claim 18   , wherein a plurality of weighted values are associated with each transition, each weight being further associated with a respective category, the computer program further comprising code to configure the computer to selected weighted values to use in accordance with a specified category.  
     
     
         20 . The computer program product of    claim 18   , the computer program further comprising code to: 
 project client cache utilization in response to receipt by the client of a specific set of modules; and    determine a subsequent order of utilization of the modules by the application at the client with further reference to the project client cache utilization.

Join the waitlist — get patent alerts

Track US2001044850A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.