A user device includes an interface and one or more processors. The interface is configured to communicate over a network. The one or more processors are configured to evaluate a pre-load scheduling condition with respect to a user application installed in the user device, and to schedule pre-loading of the user application depending on the pre-load scheduling condition.
A method includes, in a user device (24) that runs an Operating System (OS-48), deciding to preload at least a User-Interface (UI) display of a user application (26). At least the UI display is preloaded in a simulated-foreground mode in which the UI display is (i) processed in a foreground mode by the user application, but (ii) kept in a background mode by the OS and hidden from a user of the user device.
G06F 3/048 - Interaction techniques based on graphical user interfaces [GUI]
G06F 3/0481 - Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
G06F 3/0487 - Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
G06F 9/48 - Program initiatingProgram switching, e.g. by interrupt
3.
Pre-rendering of application user-interfaces in user devices using off-line pre-render mode
A method includes, in a user device (24) that is configured to communicate over a network (32), preloading an application (26) in a background mode in which content presented by the application is hidden from a user of tire user device. At least part of the content presented by the application is pre-rendered in an off-line pre-render mode in which fetching of content over the network to the user device is not permitted. In response to an action by the user that requests to access the application, a switch is made to presenting at least the pre-rendered content to the user in a foreground mode.
H04L 67/60 - Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
H04L 67/00 - Network arrangements or protocols for supporting network services or applications
G06F 16/957 - Browsing optimisation, e.g. caching or content distillation
G06F 12/0862 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
G06F 9/451 - Execution arrangements for user interfaces
A user device (24) includes an audio output device (58) and one or more processors (44). The one or more processors are configured to run an Operating System (OS—48), including running an OS component for coordinating outputting of audio generated by user applications (26) to the audio output device, to preload a user application, and, while the user application is in a preload state, to inhibit the audio generated by the preloaded user application using the OS component.
G06F 3/0481 - Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
G06F 3/0484 - Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
A user device (24) includes an audio output device (58) and one or more processors (44). The one or more processors are configured to run an Operating System (OS-48), including running an OS component for coordinating outputting of audio generated by user applications (26) to the audio output device, to preload a user application, and, while the user application is in a preload state, to inhibit the audio generated by the preloaded user application using the OS component.
G06F 3/0481 - Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
G06F 3/0484 - Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
A user device (24) includes a display screen (56) and one or more processors (44). The processors are configured to run an Operating System (OS - 48) that runs user applications (26), including sending flows to the user applications, each flow including a series of inputs that are sent over time to a given user application and determines a lifecycle of the given user application, to preload-launch a user application, including preloading the user application in a background mode that is invisible on the display screen, and, upon user access to the preloaded user application, transferring the user application to a foreground mode that is visible on the display screen, and, in response to identifying that preload-launching of the user application includes a flow that is predefined as an uncommon flow, to replace the flow with one or more alternative flows that are not defined as uncommon flows.
A method includes, in a processor of a user device, deciding to preload a user application, which has one or more User Interface (UI) displays whose state is retained by the processor in a memory of the user device. At least part of the user application is preloaded, and a state of the preloaded user application is restored, in a background mode, to match the retained state of the one or more UI displays.
A user device (24) includes an output device (56) and one or more processors (44). The one or more processors are configured to run an Operating System (OS - 48), to query a component of the OS that possesses information indicative of a user application (26) that the user is currently expected to access, and to preload the user application in a background mode that is unnoticeable on the output device.
G06F 3/0484 - Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
A user device includes an output device and one or more processors. The one or more processors are configured to run an Operating System (OS), to query a component of the OS that possesses information indicative of a user application that the user is currently expected to access, and to preload the user application in a background mode that is unnoticeable on the output device.
G06F 12/123 - Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
A user device (24) includes an audio output device (58) and one or more processors (44). The one or more processors are configured to run an Operating System (OS - 48), including running an OS component for coordinating outputting of audio generated by user applications (26) to the audio output device, to preload a user application, and, while the user 5 application is in a preload state, to inhibit the audio generated by the preloaded user application using the OS component.
H04M 1/72442 - User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality for playing music files
11.
Robust application preloading with accurate user experience
A user device includes a display screen and one or more processors. The one or more processors are configured to run an Operating System (OS) that runs user applications, including sending flows to the user applications, each flow including a series of inputs that are sent over time to a given user application and determines a lifecycle of the given user application, to preload-launch a user application, including preloading the user application in a background mode that is invisible on the display screen, and, upon user access to the preloaded user application, transferring the user application to a foreground mode that is visible on the display screen, and, in response to identifying that preload-launching of the user application includes a flow that is predefined as an uncommon flow, to replace the flow with one or more alternative flows that are not defined as uncommon flows.
A user device includes a display screen and one or more processors. The one or more processors are configured to preload one or more user applications in a background mode, in which User Interface (UI) displays associated with preloaded user applications are invisible on the display screen, to detect a launch of a UI display that is associated with a given preloaded user application, to assess whether the UI display is a preload-initiated UI display that is invoked due to preloading of the given user application, or whether the UI display is a user-initiated UI display that is invoked due to an action by the user, to handle the UI display using a first handling scheme if the UI display is assessed to be a preload-initiated UI display, and, if the UI display is assessed to be a user-initiated UI display, to handle the UI display using a second handling scheme, different from the first handling scheme.
A user device includes a memory and one or more processors. The memory is configured to store one or more user applications installed in the user device. The one or more processors are configured to select one or more operations, which are to be performed in normal launching of a user application but not in background pre-loading of the user application, to pre-load the user application before the user application is accessed by a user, including skipping the one or more selected operations, and to complete the one or more skipped operations in response to the user accessing the user application.
A user device includes a memory and one or more processors. The memory is configured to store one or more user applications installed in the user device. The one or more processors are configured to run an Operating System (OS) of the user device, including maintaining a data structure that tracks activity of the user applications, and to pre-load a user application before the user application is accessed by a user, including preventing the data structure from tracking the pre-loaded user application.
A user device includes an interface and one or more processors. The interface is configured to communicate over a network. The one or more processors are configured to evaluate a pre-load scheduling condition with respect to a user application installed in the user device, and to schedule pre-loading of the user application depending on the pre-load scheduling condition.
A user device includes a display screen and one or more processors. The display screen is configured to display content to a user. The one or more processors are configured to pre-load a user application by running at least part of a program code of the user application in a background, including enabling the program code of the user application to pre-render a visual display of the user application in the background, and, in response to the user accessing the user application, to transfer the pre-rendered visual display to a foreground, thereby displaying the visual display to the user on the display screen.
A method includes, in a user device (24) that runs an Operating System (OS - 48), deciding to preload at least a User-Interface (UI) display of a user application (26). At least the UI display is preloaded in a simulated-foreground mode in which the UI display is (i) processed in a foreground mode by the user application, but (ii) kept in a background mode by the OS and hidden from a user of the user device.
A method includes, in a user device (24) that is configured to communicate over a network (32), preloading an application (26) in a background mode in which content presented by the application is hidden from a user of tire user device. At least part of the content presented by the application is pre -rendered in an off-line pre-render mode in which fetching of content over the network to the user device is not permitted. In response to an action by the user that requests to access the application, a switch is made to presenting at least the pre -rendered content to the user in a foreground mode.
A method includes, in a processor (44) of a user device (24), preloading one or more user applications (26) in a background mode, in which activities associated with preloaded user applications are hidden from a user of the user device. An activity, which is invoked in the processor and is associated with a given preloaded user application, is detected. An assessment is made by the processor, whether the activity is a preload-initiated activity that is invoked due to preloading of the given user application, or whether the activity is a user-initiated activity that is invoked due to an action by the user. If the activity is assessed to be a preload-initiated activity, the activity is handled using a first handling scheme. If the activity is assessed to be a user-initiated activity, the activity is handled using a second handling scheme, different from the first handling scheme.
A user device (24) includes a display (56), audio circuitry (58) and a processor (44). The processor is configured to run an application that includes visual content and audio content, by: (i) before a user of the user device invokes the application, running the application in a background mode in which the visual content is not visible on the display, and inhibiting the audio content from being played by the audio circuitry, and (ii) after the user invokes the application, switching to run the application in a foreground mode in which the visual content is visible on the display, and permitting the audio content to be played by the audio circuitry.
H04L 69/329 - Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
H04M 1/72403 - User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
21.
Content prefetching to user devices based on rendering characteristics
An apparatus for content delivery includes a network interface and one or more processors. The network interface is configured for communicating over a communication network. The processors are configured to identify rendering characteristics of a plurality of content items that are to be displayed together as a User-Interface (UI) unit on a user device, to assign the content items to (i) a first subset including one or more content items that are to be prefetched, and (ii) a second subset including one or more content items that are not to be prefetched, to prefetch the content items of the first subset irrespective of any request from a user of the user device to access the UI unit, to fetch the content items of the second subset in response to a request from the user to access the UI unit, and to present the UI unit.
An apparatus for content delivery (20) includes a network interface (64) and one or more processors (44, 68). The network interface is configured for communicating over a communication network (32). The one or more processors are configured to receive from a user of a user device (24) a request to access a User-Interface (UI) unit that includes one or more content items, to initially display, in response to the request, the UI unit to the user with versions of the content items that are available for immediate display in the user device, regardless of whether the initially displayed versions are up-to-date or not, and, for at least a content item whose initially displayed version is not up-to-date, to obtain an up-to-date version of the content item, and merge the up-to-date version of the content item transparently to the user into the UI unit being displayed, to replace the initially displayed version.
Apparatus and methods are described, including a method for use with a first content delivery network (CDN) and a second CDN that are used by a content source. A processor is used to identify that a device is requesting an exchange of content with the content source, identify a property of the requested exchange of content, and based on the property, select one of the first CDN and the second CDN. Subsequently, content is exchanged between the device and the selected CDN. Other embodiments are also described.
A method for content delivery includes selecting one or more time intervals. During each time interval among the selected time intervals, given content is prefetched from a content source to a communication terminal using a guaranteed prefetching mode, by continuously tracking the given content on the content source, so as to detect changes to the given content as they occur during the selected time interval, and maintaining the communication terminal continuously synchronized with the content source with respect to the given content, throughout the selected time interval, notwithstanding the changes that occur during the selected time interval, by continuously prefetching at least part of the given content from the content source to the communication terminal. Outside of the one or more selected time intervals, the given content is prefetched using a best-effort prefetching mode, by tracking the given content less frequently than the guaranteed prefetching mode.
H04L 29/08 - Transmission control procedure, e.g. data link level control procedure
H04W 4/18 - Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
25.
DELIVERY OF LOCATION-DEPENDENT CONTENT IN USER DEVICES
A method for content delivery includes caching, in a cache memory (52) of a user device (24), a content item that is regarded geographically-valid only within a defined geographical validity area. A verification is made, based on a current geographical location of the user device and on the validity area defined for the content item, whether the content item cached in the cache memory is geographically-valid. In response to a request from a user of the user device to access the content item, and provided that the content item is geographically-valid, the content item is served to the user from the cache memory.
H04W 4/02 - Services making use of location information
G06F 15/16 - Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
A method includes, in a processor (44) of a user device (24), preloading one or more user applications (26) in a background mode, in which activities associated with preloaded user applications are hidden from a user of the user device. An activity, which is invoked in the processor and is associated with a given preloaded user application, is detected. An assessment is made by the processor, whether the activity is a preload-initiated activity that is invoked due to preloading of the given user application, or whether the activity is a user-initiated activity that is invoked due to an action by the user. If the activity is assessed to be a preload-initiated activity, the activity is handled using a first handling scheme. If the activity is assessed to be a user-initiated activity, the activity is handled using a second handling scheme, different from the first handling scheme.
A system (20) includes one or more interfaces and multiple processors. The one or more interfaces are configured to communicate over a communication network (40). At least a first processor from among the processors is included in a user device (24) and at least a second processor from among the processors is included in a server (52) external to the user device. The processors are configured to track content items that are provided by one or more content sources (36) and to deliver the content items to one or more applications (32) installed in the user device.
A user device (24) includes a display (56), audio circuitry (58) and a processor (44). The processor is configured to run an application that includes visual content and audio content, by: (i) before a user of the user device invokes the application, running the application in a background mode in which the visual content is not visible on the display, and inhibiting the audio content from being played by the audio circuitry, and (ii) after the user invokes the application, switching to run the application in a foreground mode in which the visual content is visible on the display, and permitting the audio content to be played by the audio circuitry.
An apparatus for content delivery (20) includes a network interface (64) and one or more processors (44, 68). The network interface is configured for communicating over a communication network (32). The one or more processors are configured to receive from a user of a user device (24) a request to access a User-Interface (UI) unit that includes one or more content items, to initially display, in response to the request, the UI unit to the user with versions of the content items that are available for immediate display in the user device, regardless of whether the initially displayed versions are up-to-date or not, and, for at least a content item whose initially displayed version is not up-to-date, to obtain an up-to-date version of the content item, and merge the up-to-date version of the content item transparently to the user into the UI unit being displayed, to replace the initially displayed version.
An apparatus for content delivery includes a network interface (64) and one or more processors (44, 68). The network interface is configured for communicating over a communication network (32). The one or more processors are configured to detect that a content source (28) is conducting an evaluation of reaction of users of user devices (24) to two or more alternative versions (31A, 31B) of a given content item (30), to select from among the multiple alternative versions, based on the detected evaluation, a version of the given content item to be prefetched to a given user device, and to prefetch the selected version to the given user device.
G06F 17/30 - Information retrieval; Database structures therefor
H04W 4/18 - Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
G06Q 30/02 - MarketingPrice estimation or determinationFundraising
G06Q 50/00 - Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
31.
Efficient content delivery over wireless networks using guaranteed prefetching at selected times-of-day
A method for content delivery includes selecting one or more time intervals. During each time interval among the selected time intervals, given content is prefetched from a content source to a communication terminal using a guaranteed prefetching mode, by continuously tracking the given content on the content source, so as to detect changes to the given content as they occur during the selected time interval, and maintaining the communication terminal continuously synchronized with the content source with respect to the given content, throughout the selected time interval, notwithstanding the changes that occur during the selected time interval, by continuously prefetching at least part of the given content from the content source to the communication terminal. Outside of the one or more selected time intervals, the given content is prefetched using a best-effort prefetching mode, by tracking the given content less frequently than the guaranteed prefetching mode.
H04L 29/08 - Transmission control procedure, e.g. data link level control procedure
H04W 4/18 - Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
An apparatus includes a network interface (64) for communicating over a communication network (32), and one or more processors (44, 68). In some embodiments, the processors are configured to identify that multiple different video content items, which are available for consumption over the communication network, contain a common interval having the same content, and to prefetch a single instance of the identified common interval to a cache memory (52) of a user device (24), for display with any of the multiple video content items. In other embodiments, the processors are configured to identify that a video content item, which is available for consumption over the communication network, is restricted from prefetching due to Digital Rights Management protection, but that an initial portion of the video content item is not required to be restricted from prefetching, and to prefetch the initial portion to a cache memory of a user device.
A method includes sending to a user device prefetch notifications, which notify the user device of available prefetch updates. Requests are received from the user device for one or more first prefetch updates, selected by the user device in response to the prefetch notifications. Selected prefetch updates are delivered to the user device, including both (i) one or more of the requested first prefetch updates, and (ii) one or more second prefetch updates selected from among the available prefetch updates not in response to any request from the user device.
G06F 15/16 - Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
H04L 29/08 - Transmission control procedure, e.g. data link level control procedure
G06F 17/30 - Information retrieval; Database structures therefor
34.
PREFETCH CACHE MANAGEMENT USING HEADER MODIFICATION
An apparatus (24, 60) includes a network interface (64) and one or more processors (44, 68). The network interface is configured for communicating over a communication network (32). The one or more processors are configured to prefetch content items over the communication network, from a content source (28) to a cache memory (52) of a user device (24), wherein at least a content item among the content items includes a cache directive specified by the content source, to modify the cache directive specified by the content source, and to serve the content item having the modified cache directive to a user application (36) running in the user device, so as to cause the user application to process the content item responsively to the modified cache directive.
G06F 15/16 - Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
H04L 29/08 - Transmission control procedure, e.g. data link level control procedure
35.
AN OPTIMIZED CONTENT-DELIVERY NETWORK (CDN) FOR THE WIRELESS LAST MILE
A system (20) includes one or more interfaces and multiple processors. The one or more interfaces are configured to communicate over a communication network (40). At least a first processor from among the processors is included in a user device (24) and at least a second processor from among the processors is included in a server (52) external to the user device. The processors are configured to track content items that are provided by one or more content sources (36) and to deliver the content items to one or more applications (32) installed in the user device.
A user device (28) includes an interface and a processor (42). The interface is configured for communicating over a communication network (36, 40) with an electronic- commerce ("e-commerce") server (24). The processor is configured to run within the user device a local instance (44) of the e-commerce server, wherein the local instance (i) stores locally in the user device at least part of data available to the e-commerce server, and (ii) carries out locally in the user device at least part of a business logic of the e-commerce server, to run an e-commerce agent (46), which conducts e-commerce transactions by interacting over the communication network with the e-commerce server, and locally with the local instance of the e-commerce server.
G06Q 30/06 - Buying, selling or leasing transactions
H04W 4/18 - Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
A method includes detecting, by a plurality of user devices (28) that access content on one or more content sources (24), content updates that occurred on the content sources, and reporting the content updates to a content-tracking processor (68). The content updates, which are reported by the plurality of user devices, are collected at the content-tracking processor, and at least some of the collected content updates are distributed to at least some of the user devices. The content is accessed by the user devices responsively to the content updates distributed by the content-tracking processor.
H04L 29/08 - Transmission control procedure, e.g. data link level control procedure
G06F 15/16 - Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
38.
Selective enabling of data services to roaming wireless terminals
A system includes a network interface and one or more processors. The processors are configured to track a first pattern with which a user terminal consumes one or more data services while served by a home network specified for the user terminal, to track a second pattern with which the user terminal consumes the one or more data services while served by one or more networks other than the home network, to estimate a reduction in usage of the one or more data services between the first and second patterns, and to selectively enable at least one data service to the user terminal by the networks other than the home network, based on the estimated reduction in usage.
A method includes caching content items in a cache memory of a communication terminal connected to a communication network. A content item, which is cached in the cache memory, is presented to a user of the communication terminal. An extent of freshness of the cached content item presented to the user is assessed. Presentation of the cached content item is conditionally modified depending on the assessed extent of freshness.
A method includes caching content items in a cache memory (48) of a communication terminal (28) connected to a communication network (36, 40). A content item, which is cached in the cache memory, is presented to a user (32) of the communication terminal. An extent of freshness of the cached content item presented to the user is assessed. Presentation of the cached content item is conditionally modified depending on the assessed extent of freshness.
G06F 13/30 - Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access, cycle steal with priority control
G06F 15/173 - Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star or snowflake
A method includes prefetching to a memory (64) of a user device (24) one or more content segments (88) of a content item (36), which includes multiple content segments and an index (80, 84) that specifies storage locations of the content segments. The index is modified to indicate that the prefetched content segments are to be retrieved from the memory of the user device. At least part of the content item is delivered by retrieving at least some of the content segments in accordance with the modified index.
G06F 15/16 - Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
H04N 21/458 - Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming streamUpdating operations, e.g. for OS modules
G06F 12/08 - Addressing or allocationRelocation in hierarchically structured memory systems, e.g. virtual memory systems
Apparatus and methods are described, including a method for use with a first content delivery network (CDN) and a second CDN that are used by a content source. A processor is used to identify that a device is requesting an exchange of content with the content source, identify a property of the requested exchange of content, and based on the property, select one of the first CDN and the second CDN. Subsequently, content is exchanged between the device and the selected CDN. Other embodiments are also described.
A method for content delivery includes defining a guaranteed prefetching mode, in which content is continuously prefetched from a content source to a communication terminal of a user so as to maintain the communication terminal synchronized with the content source. One or more time-of-day intervals, during which the user is expected to access given content, are identified. During the identified time-of-day intervals, the given content is prefetched from the content source to the communication terminal using the guaranteed prefetching mode.
G06F 15/16 - Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
H04L 29/08 - Transmission control procedure, e.g. data link level control procedure
H04W 4/18 - Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
G06F 17/30 - Information retrieval; Database structures therefor
44.
EFFICIENT CONTENT DELIVERY OVER WIRELESS NETWORKS USING GUARANTEED PREFETCHING AT SELECTED TIMES-OF-DAY
A method for content delivery includes defining a guaranteed prefetching mode, in which content is continuously prefetched from a content source (24) to a communication terminal (28) of a user (32) so as to maintain the communication terminal synchronized with the content source. One or more time-of-day intervals, during which the user is expected to access given content, are identified. During the identified time-of-day intervals, the given content is prefetched from the content source to the communication terminal using the guaranteed prefetching mode.