WO2001057673A1 - Coordinated and personalized application and data management - Google Patents

Coordinated and personalized application and data management Download PDF

Info

Publication number
WO2001057673A1
WO2001057673A1 PCT/US2001/003594 US0103594W WO0157673A1 WO 2001057673 A1 WO2001057673 A1 WO 2001057673A1 US 0103594 W US0103594 W US 0103594W WO 0157673 A1 WO0157673 A1 WO 0157673A1
Authority
WO
WIPO (PCT)
Prior art keywords
files
update
application
local cache
logic code
Prior art date
Application number
PCT/US2001/003594
Other languages
French (fr)
Inventor
Luosheng Peng
Original Assignee
Doongo Technologies, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Doongo Technologies, Inc. filed Critical Doongo Technologies, Inc.
Priority to AU2001233303A priority Critical patent/AU2001233303A1/en
Publication of WO2001057673A1 publication Critical patent/WO2001057673A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/58Message adaptation for wireless communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Definitions

  • This invention relates to apparatus and methods for providing coordinated and personalized application and data management.
  • this invention relates to apparatus and methods for providing coordinated and personalized application and data management in mobile devices.
  • Computer devices connected by a network are typically capable of sharing information.
  • client computers or devices connected to the network are capable of accessing information stored in virtually any server computers connected to the network.
  • server computers provide rich media that are accessible across the Internet. Examples of rich media are audio, video, image, software, applications, games, data, and other multimedia information.
  • wireless/mobile devices include a user interface, such as a micro- browser, pre-installed on a wireless/mobile device and a set of fixed applications and hierarchical menus for Internet access.
  • a user Using the micro-browser, a user typically browses the Internet via one or more gateways using the fixed menus or by manually entering specific uniform resource locators (URLs).
  • URLs uniform resource locators
  • a user Through the micro-browser, a user typically performs a search for an application or data on a network by entering keywords into an input area. Based on the keywords, a search engine, which typically resides in the gateway, performs a search and returns a set of search results. Often, hundreds or thousands of search results are returned. The user then has a choice to narrow the search by entering more keywords or browse through the entire search results for the application or data he/she is looking for. This latter option is especially problematic in wireless/mobile devices where the output device (e.g., screen) and caching memory are typically small and connection to the network is costly.
  • the output device e.g., screen
  • the mobile device typically has to download the application/data set from a server via one or more gateways in order for the user at the mobile device to actually execute or access the application/data set. Repeated downloading of a frequently selected application/data set is inefficient and time-consuming. Further, the mobile device might not be able to access the application/data set at all if it fails to maintain a connection with the servers via one or more gateways during a downloading process.
  • An object of this invention is to provide apparatus and methods for coordinated and personalized application and data management in mobile devices.
  • An exemplary method for managing information in a mobile device comprises the steps of downloading a first set of files, determining whether a local cache has enough space to store the set of files, storing the set of files into the local cache if the local cache has enough space, selecting an out-dated record and removing a second set of files corresponding to the out-dated record from the local cache if the local cache does not have enough space, and repeating the determining step until the first set of files is stored into the local cache.
  • a record for the downloaded first set of files is stored in a database even though the first set of files is not stored in the local cache.
  • the selecting step includes the step of selecting an application selection record associated to a least recently executed application or a least frequently executed application based on parameter values in each application selection record. In another exemplary embodiment, the selecting step includes the step of selecting a data access record associated to a least recently accessed data set or a least frequently accessed data set based on parameter values in each data access record.
  • Another exemplary method for managing information in a mobile device comprises the steps of receiving a set of update files, updating a set of original files in a local cache with the set of update files if the set of update files is smaller than or equal to the size of the set of original files, determining whether the local cache has enough space to store the set of update files if the set of update files is larger than the size of the set of original files, updating the set of original files in the local cache in accordance with the set of update files if the local cache has enough space, selecting an out-dated record and removing a set of files corresponding to the out-dated record from the local cache if the local cache does not have enough space, and repeating the determining step until the set of original files is updated in the local cache.
  • the set of update files is a set of update application files or a set of update data set files.
  • Yet another method for managing information in a mobile device comprises the steps of receiving an update notification to update a set of files stored in a local cache, the update notification including an update version identification, dynamically generating an original version identification for the set of files, comparing the update version identification to the original version identification, marking the set of files as out-dated if the update version identification is different than the original version identification, and automatically updating the set of files prior to processing a loading or execution command.
  • the set of files is a set of application files or a set of data set files.
  • An exemplary method for managing information on a mobile device when the mobile device is disconnected from a gateway during an operation comprises the steps of maintaining an active communication state if the disconnection is short-lived, saving a transaction status in a local cache if the disconnection is long-lived, periodically attempting to reestablish connection, and resuming communication at a point of failure when connection is reestablished.
  • An exemplary computer program product for managing information in a mobile device comprises logic code for downloading a first set of files, logic code for determining whether a local cache has enough space to store the set of files, logic code for storing the set of files into the local cache if the local cache has enough space, logic code for selecting an out-dated record and removing a second set of files corresponding to the out-dated record from the local cache if the local cache does not have enough space, and logic code for repeating the determining until the first set of files is stored into the local cache.
  • the exemplary computer program product further comprises logic code for creating a record for the downloaded first set of files and storing the record in a database even though the first set of files is not stored in the local cache.
  • the logic code for selecting includes logic code for selecting an application selection record associated to a least recently executed application or a least frequently executed application based on parameter values in each application selection record. In another exemplary embodiment, the logic code for selecting includes logic code for selecting a data access record associated to a least recently accessed data set or a least frequently accessed data set based on parameter values in each data access record.
  • Another computer program product for managing information in a mobile device comprises logic code for receiving a set of update files, logic code for updating a set of original files in a local cache with the set of update files if the set of update files is smaller than or equal to the size of the set of original files, logic code for determining whether the local cache has enough space to store the set of update files if the set of update files is larger than the size of the set of original files, logic code for updating the set of original files in the local cache in accordance with the set of update files if the local cache has enough space, logic code for selecting an out-dated record and removing a set of files corresponding to the out-dated record from the local cache if the local caches does not have enough space, and logic code for repeating the determining until the set of original files is updated in the local cache.
  • the set of update files is a set of update application files or a set of update data set files.
  • Yet another computer program product for managing information in a mobile device comprises logic code for receiving an update notification to update a set of files stored in a local cache, the update notification including an update version identification, logic code for dynamically generating an original version identification for the set of files, logic code for comparing the update version identification to the original version identification, logic code for marking the set of files as out-dated if the update version identification is different than the original version identification, and logic code for automatically updating the set of files prior to processing a loading or execution command.
  • the set of files is a set of application files or a set of data set files.
  • An exemplary computer program product for managing information on a mobile device when the mobile device is disconnected from a gateway during an operation comprises logic code for maintaining an active communication state if the disconnection is short-lived, logic code for saving a transaction status in a local cache if the disconnection is long-lived, logic code for periodically attempting to reestablish connection, and logic code for resuming communication at a point of failure when connection is reestablished.
  • FIGURE 1 schematically illustrates an exemplary prior art communications system.
  • FIGURE 2A schematically illustrates an exemplary mobile device in accordance with an embodiment of the invention.
  • FIGURE 2B schematically illustrates an exemplary application selection table in accordance with an embodiment of the invention.
  • FIGURE 2C schematically illustrates an exemplary data access table in accordance with an embodiment of the invention.
  • FIGURE 3 schematically illustrates an exemplary gateway in accordance with an embodiment of the invention.
  • FIGURE 4A illustrates an exemplary process in accordance with an embodiment of the invention.
  • FIGURE 4B illustrates another exemplary process in accordance with an embodiment of the invention.
  • FIGURES 5A-5C illustrate an exemplary application management process in accordance with an embodiment of the invention.
  • FIGURES 6A-B illustrate another exemplary application management process in accordance with an embodiment of the invention.
  • FIGURE 7 illustrates another exemplary process in accordance with an embodiment of the invention.
  • FIGURES 8A-8C illustrate an exemplary data management process in accordance with an embodiment of the invention.
  • FIGURES 9A-B illustrate another exemplary data management process in accordance with an embodiment of the invention.
  • FIGURE 10 illustrates another exemplary process in accordance with an embodiment of the invention.
  • FIGURE 11 illustrates another exemplary process in accordance with an embodiment of the invention.
  • FIGURE 12 illustrates another exemplary process in accordance with an embodiment of the invention.
  • Figure 1 illustrates an exemplary prior art system 100.
  • the system 100 includes multiple servers connected to multiple gateways that service multiple mobile devices. For ease of explanation, only a representative number of servers, gateways, and mobile devices are shown in Figure 1.
  • the system 100 includes servers 102-106, gateways 108A-108B, and mobile devices 1 lOA-1 IOC.
  • FIG. 2 A schematically illustrates an exemplary mobile device 110 in accordance with an embodiment of the invention.
  • the mobile device 110 includes a communications interface 202 for communicating with a network, a microprocessor 204, a user interface, and a memory 208.
  • the user interface includes a user input device (e.g., keyboard) and an output device (e.g., screen).
  • the memory 208 includes an operating system 210, a micro-browser application 212, a user operation history tracking module 214 for tracking user operation history, a smart connectivity module 216, a files database 218 for storing downloaded applications and data sets, an application selection table 220, a data access table 222, a local cache 224, and a communications transport protocol module 226 for adapting to different transport protocols in the network.
  • the micro-browser application 212 provides a user interface and may display a list of applications for user selection.
  • the user can select an application in the list of applications displayed.
  • each item in the list of applications includes a uniform resource locator (URL) and a brief description of the application.
  • the brief description includes a function description, product promotion, or URLs to other related web pages.
  • the user can select an application by browsing the list and highlighting the application or by entering an application number.
  • an application is selected, it is either loaded from the files database 218, downloaded from the gateway 108, or downloaded from an original server of the application.
  • the application selection information is tracked by the user operation history tracking module 214 and recorded in the application selection table 220.
  • data access information is tracked by the user operation history tracking module 214 and recorded in the data access table 222.
  • the smart connectivity module 216 defines and maintains the application selection table 220 and the data access table 222.
  • the application selection table 220 includes application selections records that are dynamically updated based on user operation history.
  • each application selection record includes various parameters, such as the name of the selected application (name), the number of times that application was executed (nExec), the time of the last execution (lastExecTime), a flag that indicates whether the application is stored in the files database 218 (isStored), the directory in the files database 218 where the application is stored (root), the size of the application (size), the number of files needed to compose the application (nfiles), the array or file names (files), an estimated time of a next version release of the application (nextRelease), the language used to implement the application (language), a flag that indicates whether the application is current (isStale), a flag that indicates whether the application selection record is validated (valid/not valid), and other parameters.
  • An exemplary application selection table 220 is illustrated in Figure 2B.
  • the number of application selection records in the application selection table 220 is configurable/reconfigurable, depending on device capacity.
  • an initial set of application selection records are loaded from the gateway 108. This initial set of application selection records in the application selection table 220 is initially set to be not validated because a user has not yet selected an application. As the user begins to download applications and the system begins to track user operation histories, the corresponding application selection records are validated, initialized, and updated.
  • the data access table 224 includes data access records that are dynamically updated based on user operation history.
  • each data access record corresponds to a remote data set which has been recently accessed by the mobile device (e.g., via executed applications).
  • each data access record includes various parameters, such as the database or data URL (name), the number of times the data was accessed (nAccs), the time of the last data access (lastAccsTime), a flag that indicates whether the data is stored in the files database 218 (isStored), the directory in the files database 218 where the data is stored (root), the data size in byte (size), the name of an object store that maintains the data set (objStoreName), a flag that indicates whether the data is current (isStale), a flag that indicates whether the data access record is validated (valid/not valid), and other parameters.
  • An exemplary data access table 222 is illustrated in Figure 2C.
  • An object store is a container of data set that also manages and updates the data set.
  • each object store is capable of supporting data synchronization with an original data set in a server. Further, each object store is capable of comparing its data set with the original data set maintained by the server and determining any differences among the two data sets. Storage of data into each object store and data synchronization among object stores are described in more detail in a related application entitled, "Apparatus and Methods for Providing Universal Data Synchronization Algorithms by Facilitating Data Synchronization System Design," filed on bearing the serial number . This application is hereby incorporated by reference for all purposes.
  • the number of data access records in the data access table 222 is configurable depending on the device capacity.
  • an initial set of data access records are loaded from the gateway 108.
  • This initial set of data access records in the data access table 222 is initially set to be not validated because a user has not yet accessed any data set.
  • the applications executed by the user begin to request access to remote data sets, the corresponding data access records are validated, initialized, and updated.
  • bandwidth utilization policies are implemented to allow continuous operations even when the mobile device 110 is disconnected from the gateway 108.
  • the smart connectivity module 216 remains in an active state and will retry periodically to re-connect with the gateway 108. If a connection is established before a time out, the communication between the mobile device 110 and the gateway 108 will resume at the point of previous failure to minimize bandwidth usage.
  • the smart connectivity module 216 terminates the current communication transaction and saves the status of the transaction in the local cache 224.
  • the communication between the mobile device 110 and the gateway 108 will resume at the point of previous failure based on the transaction status saved in the local cache 224.
  • FIG. 3 schematically illustrates an exemplary gateway 108 in accordance with an embodiment of the invention.
  • the gateway 108 includes a communications interface 302 for communicating with a network, a CPU 304, a user interface 306, and a memory 308.
  • the memory 308 includes an operating system 310, gateway applications 312, an application registration module 316, a smart connectivity module 318, a gateway synchronization module 320, an application registry database 322, a subscriber registry database 324, a gateway information database 326, an application selection table 328, a data access table 330, a transaction manager module 332, a subscriber manager module 334, a local cache for storing applications and data 336, and a communications transport and protocol module 338.
  • an operating system 310 gateway applications 312, an application registration module 316, a smart connectivity module 318, a gateway synchronization module 320, an application registry database 322, a subscriber registry database 324, a gateway information database 326, an application selection table 328, a data access table 330, a transaction manager module 332, a subscriber manager module 334, a local cache for storing applications and data 336, and a communications transport and protocol module 338.
  • the communications transport and protocol module 338 includes transport protocols for communicating with other gateways (e.g., HTTP, file transfer protocol (FTP), simple mail transfer protocol (SMTP), etc.) and with mobile devices (e.g., wireless application protocol (WAP), TCP/IP, HTTP, SMTP, etc.).
  • transport protocols for communicating with other gateways (e.g., HTTP, file transfer protocol (FTP), simple mail transfer protocol (SMTP), etc.) and with mobile devices (e.g., wireless application protocol (WAP), TCP/IP, HTTP, SMTP, etc.).
  • the gateway applications 312 include standard gateway applications that are known in the art for performing gateway functions.
  • the application registration module 316 collects application registration information from servers or application service providers connected to the network, such as the Internet.
  • the registration includes an application URL, a brief description of the application, and any assigned keywords for identifying the application.
  • Such registration information is stored in the application registry database 322 via the application registration module 316.
  • Contents in the application registry database 322 in each gateway 108 is synchronized periodically with contents in other gateways.
  • such gateway-to-gateway synchronization is triggered and facilitated by the application registration module 316 and the gateway synchronization module 320.
  • the gateway information database 326 includes information about other gateways that is useful for achieving gateway-to-gateway synchronization.
  • the transaction manager module 332 prevents violations of transaction semantics and data integrity. In one embodiment, the transaction manager module 332 tracks and logs the progress of each transaction, including application download/re- download, application status check, application update, data download/re-download, and data synchronization transactions. Transaction tracking also facilitates billing by providing a detailed record of each user's billable activities.
  • the subscriber manager module 334 facilitates registration of user/subscriber IDs into the subscriber registry database 324. In an exemplary embodiment, user requests to the gateway 108 typically includes the user's subscriber ID. That subscriber ID is checked by the subscriber manager module 324 against the subscriber registry database 324 before requested the services are performed.
  • the application selection table 328 is a database table maintained on gateways 108. Contents of each application selection table 328 is synchronized with application selection tables in other gateways. Generally, the application selection table 328 contains information similar to the mobile application selection table 220, except the gateway application selection table 328 includes an additional column for the associated subscriber IDs. Further, in an exemplary embodiment, the gateway application selection table 328 maintains selective application information from all users serviced by the gateway 108 and for a longer period of time relative to information stored on mobile devices. The period of maintenance on the gateway application selection table 328 can be an automatic default time or a manually configured time.
  • the data access table 330 is a database table maintained on gateways 108. Contents of each data access table 330 is synchronized with data access tables in other gateways. Contents in the data access table 330 are substantially the same as in the mobile data access table 222 except an additional column for the associated subscriber IDs is included.
  • Figure 4A illustrates an exemplary process to load a set of files (such as an application or a data set) in accordance with an embodiment of the invention.
  • a user interface application such as the micro-browser 212 calls a function to get a set of files.
  • the called set of files may be located in the files database 218, the mobile local cache 224, the gateway local cache 336, or at a remote server.
  • a file URL indicates the path to the set of files.
  • a file name e.g., an URL
  • a remote server address is determined (step 404). If there is no remote server address, whether the set of files is recorded in the application selection table in the database and cached in the local cache is determined (step 406).
  • step 406 If the set of files is cached in the local cache, then the set of files is loaded file-by-file or as needed to the working memory (step 408) and a pointer to a first loaded file is returned (step 410).
  • step 412 If the set of files is not located in the local cache, whether it is located in a local file system is determined (step 412). If the set of files is located in the local file system, then the set of files is loaded file-by-file or as needed to the working memory (step 408) and a pointer to a first loaded file is returned (step 410). Otherwise, an error code is returned (step 414).
  • a command to get the set of files is issued (step 416). If the set of files is located in a local cache (step 418), then the set of files is loaded file-by-file or as needed to the working memory (step 408) and a pointer to a first loaded file is returned (step 410). If the set of files is not located in a local cache (step 418), the set of files is downloaded from the server using the server address (step 420). Next, whether to cache the downloaded set of files is determined (step 422).
  • step 424 If the set of files is to be cached, the files are cached and the application selection table is appropriately updated (step 424), then the set of files is loaded file-by-file or as needed to the working memory (step 408) and a pointer to a first loaded file is returned (step 410). Referring back to step 422, if the set of file does not need to be cached, the set of files is loaded file-by-file or as needed to the working memory (step 408) and a pointer to a first loaded file is returned (step 410).
  • Figure 4B illustrates an exemplary process for determining whether to update an application in accordance with an embodiment of the invention.
  • a request to execute a cached application is received. Whether the application is marked out-of-date in its corresponding application selection record is determined (step 428). If the application selection record is marked out-of-date, the application is updated as described in Figure 12 below (step 430) and the updated application is executed (step 432). Referring back to step 428, if the application is not marked out-of-date, whether the application's corresponding application selection record's nextRelease parameter is less than or equal to the current time is determined (step 434). If so, the application is updated as described in Figure 12 below (step 430) and the updated application is executed (step 432). Otherwise, the application is not updated (step 438) and the application is executed (step 432).
  • FIGS 5A-5C illustrate an exemplary application management process in accordance with an embodiment of the invention.
  • an application is downloaded to the mobile device 110.
  • Whether a corresponding application selection record for the downloaded application already exists in the application selection table is determined (step 504). If not, a new application selection record for the downloaded application is created (step 506) and the process continues in Figure 5B. If there already exists an application selection record for the downloaded application, the process continues in Figure 5C.
  • step 508 whether there is any invalid application selection record in the application selection table is determined (step 508). If so, the process continues in Figure 5C. If not, whether there is any out-of-date application selection record in the application selection table is determined (step 510). If so, the application selection record whose lastExecTime parameter is the oldest (least recent) is selected (step 512) and the process continues at step 516. If there are multiple application selection records having the same oldest lastExecTime, the record whose nExec parameter is the smallest is selected.
  • step 510 if there is no out-of-date application selection records in the application selection table, the application selection record whose nExec parameter is the smallest is selected (step 514). If multiple application selecton records have the same smallest nExec value, the record whose lastExecTime parameter is the oldest is selected.
  • step 516 whether there is a cached application corresponding to the selected application selection record is determined. If so, that application is removed from the local cache (step 518) and the process continues in Figure 5C. If there is no such cached application, the process continues in Figure 5C.
  • step 520 whether there is enough free space in the local cache for caching the current downloaded application is determined (step 520). If there is enough free space, the downloaded application is saved into the local cache (step 522) and a created or updated application selection record for the downloaded application is accordingly saved or updated in the application selection table (step 524). If there is not enough free space, whether there is any out-of-date application selection record corresponding to a cached application is determined (step 526). If not, the process continues at step 536. If so, all such application selection records are found and sorted in the increasing order of the lastExecTime parameter, the increasing order of the nExec parameter, then the increasing order of size (step 528).
  • step 530 whether there is enough space in the local cache if some or all of the out-of-date applications are removed from the local cache is determined (step 530). If so, some or all of the out- of-date applications in the sorted order are removed to create just enough space in the local cache for caching the downloaded application (step 532).
  • the isStore flags in the removed applications 's corresponding application selection records are turned off (see Figure 2B).
  • the downloaded application is stored into the local cache (step 534) and a created or updated application selection record for the downloaded application is accordingly saved or updated in the application selection table (step 524).
  • step 536 whether there is any application selection record corresponding to a cached application has its nExec parameter less than or equal to the nExec of the downloaded application and its lastExecTime less than the lastExecTime of the downloaded application is determined (step 536). If not, the downloaded application is not stored in the local cache and a created or updated application selection record for the downloaded application is saved or updated in the application selection table (step 524).
  • step 538 if any such application selection record exists, all of such application selection records are found and sorted in the increasing order of the nExec parameter, the increasing order of the lastExecTime, then the increasing order of size (step 538).
  • step 540 whether there is enough space to store the downloaded application in the local cache if all of the out-of- date applications plus some or all of the applications found and sorted in step 538 are removed is determined (step 540). If not, the downloaded application is not stored in the local cache and a created or updated application selection record for the downloaded application is saved or updated in the application selection table (step 524).
  • step 540 if there is going to be enough space, all of the out- of-date applications and some or all of the applications found and sorted in step 538 are removed to create just enough space for the downloaded application (step 542).
  • the downloaded application is saved into the local cache (step 544) and a created or updated application selection record for the downloaded application is saved or updated in the application selection table (step 524).
  • FIGS 6A-B illustrate another exemplary application management process in accordance with an embodiment of the invention.
  • an update for an application is received.
  • the updated application size (new size) is less than or equal to the original application size (old size) is determined (step 604). If so, the original application in the local cache is updated (step 606).
  • a corresponding application selection record is updated (step 608). Referring back to step 604, if the new size is greater than the old size, the process continues in Figure 6B.
  • step 610 whether there is enough space in the local cache for updating the application is determined. If so, the application is updated in the local cache and the corresponding application selection record is also updated (step 612). If not, whether there is any out-of date application selection record corresponding to a cached application is determined (step 614). If not, the process continues at step 624. If so, all such application selection records are found and sorted in the increasing order of the lastExecTime parameter, the increasing order of the nExec parameter, then the increasing order of size (step 616). Next, whether there is enough space to update the application if some or all of the out-of-date applications are removed from the local cache is determined (step 618).
  • step 620 If so, some or all of the out-of-date applications are removed from the local cache in the sorted order to create just enough space in the local cache for updating the application (step 620).
  • the isStored flags in the application selection records of the removed out-of-date applications are turned off.
  • the application is updated in the local cache and its corresponding application selection record is also updated (step 622).
  • step 624 whether there is any application selection record corresponding to a cached application that has its nExec parameter less than or equal to the current application's nExec parameter and its lastExecTime parameter less than the current application's lastExecTime parameter is determined (step 624). If not, the current application is not updated and is marked as out-of-date (step 626). If so, all such application selection records are found and sorted in the increasing order of the lastExecTime parameter, the increasing order of the nExec parameter, then the increasing order of size (step 628).
  • step 630 whether there is enough space to update the application in the local cache if all of the out-of-date applications plus some or all of the applications found and sorted in step 628 are removed is determined (step 630). If not, the application is not updated and is marked as out-of-date (step 632). Otherwise, all of the out-of-date applications plus some or all of the applications found in step 628 are removed in the sorted order to create just enough space in the local cache for updating the application (step 634). The isStored flags of the application selection records corresponding to the removed applications are turned off. Next, the application is updated in the local cache and its corresponding application selection record is also updated (step 636).
  • an application is stored in the local cache, its status is checked via one or more of the following methods: (1) initiated in response to a (multicast) notification from the original server; (2) automatically initiated by the mobile device 110 based on the nextReleaseTime parameter for the application; (3) automatically initiated by the mobile device 110 just before an execution of the application; (4) automatically initiated by the mobile device 1 10 after a failed function to communicate with a remote server or to read data; or (5) automatically initiated by the mobile device 110 while the mobile device 110 is idle.
  • a multicast notification sent by an original server is received by all gateways 108.
  • the notification includes a URL and an update application version ID for an application.
  • the update application version ID is dynamically generated based on the contents of the updated application.
  • the update application version ID is a message digest of the binary or text code of the application. For example, if message digest (e.g., MD4 or MD5) is used, the update application version ID should have a length of 16 bytes.
  • message digest e.g., MD4 or MD5
  • the set of mobile devices 110 is determined based on the latest uploads of user operation history that indicates the mobile device 110 that may still have a copy of the original application in its local cache. Once the set of mobile devices 110 is determined, the notification is sent to those mobile devices when the mobile device 1 10 is connected to the gateway 108.
  • FIG. 7 illustrates an exemplary process for a mobile device 110 to process a received notification in accordance with an embodiment of the invention.
  • the mobile device 110 receives an update notification from a gateway 108. Whether the original application to be updated is stored in the local cache is determined (step 704). If not, the update notification is ignored (step 706). If the original application is stored in the local cache (step 704), an original application version ID for the original application is dynamically generated (step 708). Next, the dynamically generated original application version ID is compared to the update application version ID provided in the notification (step 710). If the version IDs are the same (step 712), the process ends (step 714). Otherwise, the original application is marked "out-of-date" (step 716).
  • FIGS 8A-8C illustrate an exemplary data set management process in accordance with an embodiment of the invention.
  • a data set is downloaded to the mobile device 110. Whether a corresponding data access record for the downloaded data set already exists in the data access table is determined (step 804). If not, a new data access record for the downloaded data set is created (step 806) and the process continues in Figure 8B. If there already exists an data access record for the downloaded data set, the process continues in Figure 8C.
  • step 808 whether there is any invalid data access record in the data access table is determined (step 808). If so, the process continues in Figure 8C. If not, whether there is any out-of-date data access record in the data access table is determined (step 810). If so, the data access record whose lastAccsTime parameter is the oldest (least recent) is selected (step 812) and the process continues at step 816. If there are multiple data access records having the same oldest lastAccsTime, the record whose nAccs parameter is the smallest is selected.
  • step 814 the data access record whose nAccs parameter is the smallest is selected (step 814). If multiple data access records have the same smallest nAccs value, the record whose lastAccsTime parameter is the oldest is selected.
  • step 816 whether there is a cached data set corresponding to the selected data access record is determined. If so, that data set is removed from the local cache (step 818) and the process continues in Figure 8C. If there is no such cached data set, the process continues in Figure 8C.
  • step 820 whether there is enough free space in the local cache for caching the current downloaded data set is determined (step 820). If there is enough free space, the downloaded data set is saved into the local cache (step 822) and a created or updated data access record for the downloaded data set is accordingly saved or updated in the data access table (step 824). If there is not enough free space, whether there is any out-of-date data access record corresponding to a cached data set is determined (step 826). If not, the process continues at step 836. If so, all such data access records are found and sorted in the increasing order of the lastAccsTime parameter, the increasing order of the nAccs parameter, then the increasing order of size (step 828).
  • step 830 whether there is enough space in the local cache if some or all of the out-of-date data sets are removed from the local cache is determined (step 830). If so, some or all of the out-of-date data sets in the sorted order are removed to create just enough space in the local cache for caching the downloaded data set (step 832).
  • the isStore flags in the removed data sets' s corresponding data access records are turned off (see Figure 2C).
  • the downloaded data set is stored into the local cache (step 834) and a created or updated data access record for the downloaded data set is accordingly saved or updated in the data access table (step 824).
  • step 836 whether there is any data access record corresponding to a cached data set has its nAccs parameter less than or equal to the nAccs of the downloaded data set and its lastAccsTime less than the lastAccsTime of the downloaded data set is determined (step 836). If not, the downloaded data set is not stored in the local cache and a created or updated data access record for the downloaded data set is saved or updated in the data access table (step 824).
  • step 836 if any such data access record exists, all of such data access records are found and sorted in the increasing order of the nAccs parameter, the increasing order of the lastAccsTime, then the increasing order of size (step 838).
  • step 840 whether there is enough space to store the downloaded data set in the local cache if all of the out-of-date data sets plus some or all of the data sets found and sorted in step 838 are removed is determined (step 840). If not, the downloaded data set is not stored in the local cache and a created or updated data access record for the downloaded data set is saved or updated in the data access table (step 824). Referring back to step 840,.
  • step 838 all of the out-of-date data sets and some or all of the data sets found and sorted in step 838 are removed to create just enough space for the downloaded data set (step 842).
  • the downloaded data set is saved into the local cache (step 844) and a created or updated data access record for the downloaded data set is saved or updated in the data access table (step 824).
  • FIGS 9A-B illustrate another exemplary data set management process in accordance with an embodiment of the invention.
  • an update for a data set is received.
  • whether the updated data set size (new size) is less than or equal to the original data set size (old size) is determined (step 904). If so, the original data set in the local cache is updated (step 906). A corresponding data access record is updated (step 908). Referring back to step 904, if the new size is greater than the old size, the process continues in Figure 9B.
  • step 910 whether there is enough space in the local cache for updating the data set is determined (step 910). If so, the data set is updated in the local cache and the corresponding data access record is also updated (step 912). If not, whether there is any out-of date data access record corresponding to a cached data set is determined (step 914). If not, the process continues at step 924. If so, all such data access records are found and sorted in the increasing order of the lastAccsTime parameter, the increasing order of the nAccs parameter, then the increasing order of size (step 916). Next, whether there is enough space to update the data set if some or all of the out-of- date data sets are removed from the local cache is determined (step 918).
  • step 920 If so, some or all of the out-of-date data sets are removed from the local cache in the sorted order to create just enough space in the local cache for updating the data set (step 920).
  • the isStored flags in the data access records of the removed out-of-date data sets are turned off.
  • the data set is updated in the local cache and its corresponding data access record is also updated (step 922).
  • step 924 whether there is any data access record corresponding to a cached data set that has its nAccs parameter less than or equal to the current data set's nAccs parameter and its lastAccsTime parameter less than the current data set's lastAccsTime parameter is determined (step 924). If not, the current data set is not updated and is marked as out-of-date (step 926). If so, all such data access records are found and sorted in the increasing order of the lastAccsTime parameter, the increasing order of the nAccs parameter, then the increasing order of size (step 928).
  • step 930 whether there is enough space to update the data set in the local cache if all of the out- of-date data sets plus some or all of the data sets found and sorted in step 928 are removed is determined (step 930). If not, the data set is not updated and is marked as out-of-date (step 932). Otherwise, all of the out-of-date data sets plus some or all of the data sets found in step 928 are removed in the sorted order to create just enough space in the local cache for updating the data set (step 934). The isStored flags of the data access records corresponding to the removed data sets are turned off. Next, the data set is updated in the local cache and its corresponding data access record is also updated (step 936).
  • each mobile device 110 communicates to servers on the Internet through gateways 108.
  • each gateway 108 uploads user operation histories of all mobile devices 110 it services and caches a set of the most frequently used applications and data sets for each user at the gateway 108 for a predetermined period of time.
  • the version cached on the gateway 108 can be provided to the mobile device 110 more quickly than to retrieve it from a server.
  • the applications and data sets cached on the gateway 108 are kept up-to-date automatically by the gateway 108, in response to a mobile device 110 request of the application, or in response to a server update notification.
  • the mobile smart connectivity module 216 and the gateway smart connectivity module 318 coordinate with each other to facilitate communications between the mobile device 110 and the gateway 108.
  • the gateway smart connectivity module 318 includes an application layer protocol that has multiple sub-protocols, including, a data synchronization protocol and a user operation history upload protocol.
  • the data synchronization protocol enables data synchronization among gateways 108.
  • the user operation history protocol enables gateways 108 to upload user information.
  • both mobile and gateway smart connectivity modules 216 and 318 includes an application/data-set management protocol and an update multicast protocol.
  • the application/data-set management protocol includes application data set download, application/data set status check, and application/data set update processes. These processes are illustrated in more detail in Figures 10-12, respectively. For ease of explanation, only application download, status check, and update processes are described in Figures 10-12. These processes can be similarly applied to download, check status, and update data sets.
  • FIG 10 illustrates an exemplary application download process in accordance with an embodiment of the invention.
  • an application download request is sent by a mobile device 110 to a server via a gateway 108.
  • the gateway 108 receives a response from the server and passes the response to the mobile device 110 (step 1004).
  • the response includes the requested application.
  • the mobile device 110 creates or updates an application selection record corresponding to the requested application (step 1006). If the application should be saved in the files database 218 (e.g., it is a frequently used application by this user) (step 1010), then the process continues at Figure 8 A (step 1012). Otherwise, the application is uploaded and the process ends (step 1014).
  • FIG 11 illustrates an exemplary application status check process in accordance with an embodiment of the invention.
  • an application status check request is sent by a mobile device 110 to a server via a gateway 108 to check the status of an application.
  • the gateway 108 receives a response from the server and passes the response to the mobile device 110 (step 1104).
  • an application selection record corresponding to the application is updated (step 1106).
  • the application is marked "out-of-date" (step 1112). Otherwise, the process ends (step 1110). If the application is marked out-of-date, the application is automatically updated before the next loading or execution of the application (step 1114).
  • An exemplary process to automatically update an application is illustrated in Figure 12 below (step 1116).
  • FIG. 12 illustrates an exemplary application update process in accordance with an embodiment of the invention.
  • an application update request is sent by a mobile device 110 to a server via a gateway 108 to update an application.
  • the application update request includes an application URL, a number of files that comprise the application, the name of the application, and a version IDs of each file of the application.
  • a file version ID is a message digest of the binary or text code of the file and is dynamically generated based on the contents of the file.
  • the gateway 108 receives a response from the server and passes the response to the mobile device 110 (step 1204).
  • the response includes the application URL, the number of files added, modified, or deleted in the new version, the application name, content of each added or modified file, content length of each added, modified, or deleted file, and a next release schedule.
  • the application selection record corresponding to the application is updated (step 1206).
  • the application stored in the files database 218 is updated (step 1208).
  • the application is updated differentially. That is, only the added, modified, or deleted files are updated.
  • the update multicast protocol enables application/data servers to notify mobile devices about changes to any downloaded applications or data sets from the servers.
  • the update mulitcast protocol allows gateways 108 to receive update notifications from servers then relay the notifications to a sub-set of the mobile devices 110 each gateway 108 services. For example, when a gateway 108 receives an update notification, it determines a subset of mobile devices (among all the mobile devices it services) that is likely to contain a cached copy of the application/data set to be updated. In an exemplary embodiment, the gateway 108 makes the determination based on user operation history uploaded from each mobile device 110. After such determination, the gateway 108 then only send the update notification to those mobile devices 110.
  • the update notification sent by a gateway 108 to a mobile device 110 includes the application/data set URL and an update application version ID or a summarized ObjectStore version.
  • the mobile device determines if it has a copy of the application or data set in its files database 218. If so, the mobile device 110 compares the differences between the saved copy and the new version and marks any differences in the application or data set as out-of-date. Such out-of-date applications and data sets are later updated before the next execution or access to those applications and data sets.

Abstract

An exemplary method for managing information in a mobile device comprises the steps of downloading a first set of files, determining whether a local cache has enough space to store the first set of files (520), storing the first set of files into the local cache if the local cache has enough space (522), selecting an out-dated record and removing a second set of files corresponding to the out-dated record from the local cache if the local cache does not have enough space (530), and repeating the determining step until the first set of files is stored into the local cache.

Description

APPARATUS AND METHODS FOR PROVIDING COORDINATED AND
PERSONALIZED APPLICATION AND DATA MANAGEMENT FOR
RESOURCE-LIMITED MOBILE DEVICES
RELATED APPLICATIONS
This application claims priority to the provisional application entitled "Data Synchronization System Modeling and Optimization for Support of Disconnected Operation and High Data Availability." filed on February 2, 2000, and bearing the serial number 60/179,761.
This application is also related to applications entitled "Apparatus and Methods for Providing Universal Data Synchronization Algorithms by Facilitating Data Synchronization System Design," "Apparatus and Methods for Optimizing Traffic Volume of Wireless Email Communications," and "Apparatus and Methods for Providing Personalized Application Search for Wireless Devices Based on Self User
Profiling," bearing serial numbers , , and , respectively. These applications were filed on and all claimed priority to the above provisional application bearing serial number 60/179,761.
FIELD OF THE INVENTION
This invention relates to apparatus and methods for providing coordinated and personalized application and data management. In particular, this invention relates to apparatus and methods for providing coordinated and personalized application and data management in mobile devices. BACKGROUND OF THE INVENTION
Computer devices connected by a network are typically capable of sharing information. In a world wide network, such as the Internet, client computers or devices connected to the network are capable of accessing information stored in virtually any server computers connected to the network. Many modern server computers provide rich media that are accessible across the Internet. Examples of rich media are audio, video, image, software, applications, games, data, and other multimedia information.
Typically, transmission of rich media across the Internet requires a wide bandwidth. Further, the cost and efficiency for a user to retrieve rich media is dependent on the capacity of the user's computer or device. Partly due to size constraints, most existing wireless/mobile devices do not have the capacity to effectively retrieve rich media. In particular, most wireless/mobile devices have very limited memory space for caching and inadequate processing capability for retrieving complex objects.
Generally, wireless/mobile devices include a user interface, such as a micro- browser, pre-installed on a wireless/mobile device and a set of fixed applications and hierarchical menus for Internet access. Using the micro-browser, a user typically browses the Internet via one or more gateways using the fixed menus or by manually entering specific uniform resource locators (URLs). Such fixed menus are not tailored to a user's preferences.
Through the micro-browser, a user typically performs a search for an application or data on a network by entering keywords into an input area. Based on the keywords, a search engine, which typically resides in the gateway, performs a search and returns a set of search results. Often, hundreds or thousands of search results are returned. The user then has a choice to narrow the search by entering more keywords or browse through the entire search results for the application or data he/she is looking for. This latter option is especially problematic in wireless/mobile devices where the output device (e.g., screen) and caching memory are typically small and connection to the network is costly.
Once an application or data set is selected, the mobile device typically has to download the application/data set from a server via one or more gateways in order for the user at the mobile device to actually execute or access the application/data set. Repeated downloading of a frequently selected application/data set is inefficient and time-consuming. Further, the mobile device might not be able to access the application/data set at all if it fails to maintain a connection with the servers via one or more gateways during a downloading process.
Thus, it is desirable to provide apparatus and methods that performs efficient application and data set management both on the mobile device and the gateways. An object of this invention is to provide apparatus and methods for coordinated and personalized application and data management in mobile devices.
SUMMARY OF THE INVENTION
An exemplary method for managing information in a mobile device comprises the steps of downloading a first set of files, determining whether a local cache has enough space to store the set of files, storing the set of files into the local cache if the local cache has enough space, selecting an out-dated record and removing a second set of files corresponding to the out-dated record from the local cache if the local cache does not have enough space, and repeating the determining step until the first set of files is stored into the local cache. In one embodiment, if no space can be obtained from the local cache, a record for the downloaded first set of files is stored in a database even though the first set of files is not stored in the local cache.
In an exemplary embodiment, the selecting step includes the step of selecting an application selection record associated to a least recently executed application or a least frequently executed application based on parameter values in each application selection record. In another exemplary embodiment, the selecting step includes the step of selecting a data access record associated to a least recently accessed data set or a least frequently accessed data set based on parameter values in each data access record.
Another exemplary method for managing information in a mobile device comprises the steps of receiving a set of update files, updating a set of original files in a local cache with the set of update files if the set of update files is smaller than or equal to the size of the set of original files, determining whether the local cache has enough space to store the set of update files if the set of update files is larger than the size of the set of original files, updating the set of original files in the local cache in accordance with the set of update files if the local cache has enough space, selecting an out-dated record and removing a set of files corresponding to the out-dated record from the local cache if the local cache does not have enough space, and repeating the determining step until the set of original files is updated in the local cache. In an exemplary embodiment, the set of update files is a set of update application files or a set of update data set files.
Yet another method for managing information in a mobile device comprises the steps of receiving an update notification to update a set of files stored in a local cache, the update notification including an update version identification, dynamically generating an original version identification for the set of files, comparing the update version identification to the original version identification, marking the set of files as out-dated if the update version identification is different than the original version identification, and automatically updating the set of files prior to processing a loading or execution command. In an exemplary embodiment, the set of files is a set of application files or a set of data set files.
An exemplary method for managing information on a mobile device when the mobile device is disconnected from a gateway during an operation comprises the steps of maintaining an active communication state if the disconnection is short-lived, saving a transaction status in a local cache if the disconnection is long-lived, periodically attempting to reestablish connection, and resuming communication at a point of failure when connection is reestablished.
An exemplary computer program product for managing information in a mobile device comprises logic code for downloading a first set of files, logic code for determining whether a local cache has enough space to store the set of files, logic code for storing the set of files into the local cache if the local cache has enough space, logic code for selecting an out-dated record and removing a second set of files corresponding to the out-dated record from the local cache if the local cache does not have enough space, and logic code for repeating the determining until the first set of files is stored into the local cache. In one embodiment, if no space can be obtained from the local cache, the exemplary computer program product further comprises logic code for creating a record for the downloaded first set of files and storing the record in a database even though the first set of files is not stored in the local cache.
In an exemplary embodiment, the logic code for selecting includes logic code for selecting an application selection record associated to a least recently executed application or a least frequently executed application based on parameter values in each application selection record. In another exemplary embodiment, the logic code for selecting includes logic code for selecting a data access record associated to a least recently accessed data set or a least frequently accessed data set based on parameter values in each data access record.
Another computer program product for managing information in a mobile device comprises logic code for receiving a set of update files, logic code for updating a set of original files in a local cache with the set of update files if the set of update files is smaller than or equal to the size of the set of original files, logic code for determining whether the local cache has enough space to store the set of update files if the set of update files is larger than the size of the set of original files, logic code for updating the set of original files in the local cache in accordance with the set of update files if the local cache has enough space, logic code for selecting an out-dated record and removing a set of files corresponding to the out-dated record from the local cache if the local caches does not have enough space, and logic code for repeating the determining until the set of original files is updated in the local cache. In an exemplary embodiment, the set of update files is a set of update application files or a set of update data set files.
Yet another computer program product for managing information in a mobile device comprises logic code for receiving an update notification to update a set of files stored in a local cache, the update notification including an update version identification, logic code for dynamically generating an original version identification for the set of files, logic code for comparing the update version identification to the original version identification, logic code for marking the set of files as out-dated if the update version identification is different than the original version identification, and logic code for automatically updating the set of files prior to processing a loading or execution command. In an exemplary embodiment, the set of files is a set of application files or a set of data set files.
An exemplary computer program product for managing information on a mobile device when the mobile device is disconnected from a gateway during an operation comprises logic code for maintaining an active communication state if the disconnection is short-lived, logic code for saving a transaction status in a local cache if the disconnection is long-lived, logic code for periodically attempting to reestablish connection, and logic code for resuming communication at a point of failure when connection is reestablished. BRIEF DESCRIPTION OF THE DRAWINGS
FIGURE 1 schematically illustrates an exemplary prior art communications system.
FIGURE 2A schematically illustrates an exemplary mobile device in accordance with an embodiment of the invention.
FIGURE 2B schematically illustrates an exemplary application selection table in accordance with an embodiment of the invention.
FIGURE 2C schematically illustrates an exemplary data access table in accordance with an embodiment of the invention.
FIGURE 3 schematically illustrates an exemplary gateway in accordance with an embodiment of the invention.
FIGURE 4A illustrates an exemplary process in accordance with an embodiment of the invention.
FIGURE 4B illustrates another exemplary process in accordance with an embodiment of the invention.
FIGURES 5A-5C illustrate an exemplary application management process in accordance with an embodiment of the invention.
FIGURES 6A-B illustrate another exemplary application management process in accordance with an embodiment of the invention.
FIGURE 7 illustrates another exemplary process in accordance with an embodiment of the invention.
FIGURES 8A-8C illustrate an exemplary data management process in accordance with an embodiment of the invention.
FIGURES 9A-B illustrate another exemplary data management process in accordance with an embodiment of the invention.
FIGURE 10 illustrates another exemplary process in accordance with an embodiment of the invention.
FIGURE 11 illustrates another exemplary process in accordance with an embodiment of the invention.
FIGURE 12 illustrates another exemplary process in accordance with an embodiment of the invention. DETAILED DESCRIPTION OF THE INVENTION
Figure 1 illustrates an exemplary prior art system 100. The system 100 includes multiple servers connected to multiple gateways that service multiple mobile devices. For ease of explanation, only a representative number of servers, gateways, and mobile devices are shown in Figure 1. The system 100 includes servers 102-106, gateways 108A-108B, and mobile devices 1 lOA-1 IOC.
Figure 2 A schematically illustrates an exemplary mobile device 110 in accordance with an embodiment of the invention. The mobile device 110 includes a communications interface 202 for communicating with a network, a microprocessor 204, a user interface, and a memory 208. In an exemplary embodiment, the user interface includes a user input device (e.g., keyboard) and an output device (e.g., screen). The memory 208 includes an operating system 210, a micro-browser application 212, a user operation history tracking module 214 for tracking user operation history, a smart connectivity module 216, a files database 218 for storing downloaded applications and data sets, an application selection table 220, a data access table 222, a local cache 224, and a communications transport protocol module 226 for adapting to different transport protocols in the network.
In an exemplary embodiment, the micro-browser application 212 provides a user interface and may display a list of applications for user selection. The user can select an application in the list of applications displayed. In one embodiment, each item in the list of applications includes a uniform resource locator (URL) and a brief description of the application. For example, the brief description includes a function description, product promotion, or URLs to other related web pages. In an exemplary embodiment, the user can select an application by browsing the list and highlighting the application or by entering an application number. When an application is selected, it is either loaded from the files database 218, downloaded from the gateway 108, or downloaded from an original server of the application. The application selection information is tracked by the user operation history tracking module 214 and recorded in the application selection table 220. Similarly, data access information is tracked by the user operation history tracking module 214 and recorded in the data access table 222. The smart connectivity module 216 defines and maintains the application selection table 220 and the data access table 222.
In an exemplary embodiment, the application selection table 220 includes application selections records that are dynamically updated based on user operation history. In an exemplary embodiment, each application selection record includes various parameters, such as the name of the selected application (name), the number of times that application was executed (nExec), the time of the last execution (lastExecTime), a flag that indicates whether the application is stored in the files database 218 (isStored), the directory in the files database 218 where the application is stored (root), the size of the application (size), the number of files needed to compose the application (nfiles), the array or file names (files), an estimated time of a next version release of the application (nextRelease), the language used to implement the application (language), a flag that indicates whether the application is current (isStale), a flag that indicates whether the application selection record is validated (valid/not valid), and other parameters. An exemplary application selection table 220 is illustrated in Figure 2B.
In an exemplary embodiment, the number of application selection records in the application selection table 220 is configurable/reconfigurable, depending on device capacity. In one embodiment, an initial set of application selection records are loaded from the gateway 108. This initial set of application selection records in the application selection table 220 is initially set to be not validated because a user has not yet selected an application. As the user begins to download applications and the system begins to track user operation histories, the corresponding application selection records are validated, initialized, and updated.
Similarly, in an exemplary embodiment, the data access table 224 includes data access records that are dynamically updated based on user operation history. In one embodiment, each data access record corresponds to a remote data set which has been recently accessed by the mobile device (e.g., via executed applications). In an exemplary embodiment, each data access record includes various parameters, such as the database or data URL (name), the number of times the data was accessed (nAccs), the time of the last data access (lastAccsTime), a flag that indicates whether the data is stored in the files database 218 (isStored), the directory in the files database 218 where the data is stored (root), the data size in byte (size), the name of an object store that maintains the data set (objStoreName), a flag that indicates whether the data is current (isStale), a flag that indicates whether the data access record is validated (valid/not valid), and other parameters. An exemplary data access table 222 is illustrated in Figure 2C. An object store is a container of data set that also manages and updates the data set. In one embodiment, each object store is capable of supporting data synchronization with an original data set in a server. Further, each object store is capable of comparing its data set with the original data set maintained by the server and determining any differences among the two data sets. Storage of data into each object store and data synchronization among object stores are described in more detail in a related application entitled, "Apparatus and Methods for Providing Universal Data Synchronization Algorithms by Facilitating Data Synchronization System Design," filed on bearing the serial number . This application is hereby incorporated by reference for all purposes.
Like the application selection table 220, the number of data access records in the data access table 222 is configurable depending on the device capacity. In one embodiment, an initial set of data access records are loaded from the gateway 108. This initial set of data access records in the data access table 222 is initially set to be not validated because a user has not yet accessed any data set. As the applications executed by the user begin to request access to remote data sets, the corresponding data access records are validated, initialized, and updated.
In an exemplary embodiment, bandwidth utilization policies are implemented to allow continuous operations even when the mobile device 110 is disconnected from the gateway 108. For example, for short-lived disconnections, the smart connectivity module 216 remains in an active state and will retry periodically to re-connect with the gateway 108. If a connection is established before a time out, the communication between the mobile device 110 and the gateway 108 will resume at the point of previous failure to minimize bandwidth usage. For long-lived disconnections, the smart connectivity module 216 terminates the current communication transaction and saves the status of the transaction in the local cache 224. When the mobile device 110 is reconnected to the gateway 108, the communication between the mobile device 110 and the gateway 108 will resume at the point of previous failure based on the transaction status saved in the local cache 224. In another exemplary embodiment, if communication fails during an application data set update transaction, a warning is displayed to the user while the locally stored application/data set will be provided. In an exemplary embodiment, communications between the mobile device 110 and the gateway 108 may be asynchronous if the mobile device 110 is multiple threaded. Figure 3 schematically illustrates an exemplary gateway 108 in accordance with an embodiment of the invention. The gateway 108 includes a communications interface 302 for communicating with a network, a CPU 304, a user interface 306, and a memory 308. The memory 308 includes an operating system 310, gateway applications 312, an application registration module 316, a smart connectivity module 318, a gateway synchronization module 320, an application registry database 322, a subscriber registry database 324, a gateway information database 326, an application selection table 328, a data access table 330, a transaction manager module 332, a subscriber manager module 334, a local cache for storing applications and data 336, and a communications transport and protocol module 338. In an exemplary embodiment, the communications transport and protocol module 338 includes transport protocols for communicating with other gateways (e.g., HTTP, file transfer protocol (FTP), simple mail transfer protocol (SMTP), etc.) and with mobile devices (e.g., wireless application protocol (WAP), TCP/IP, HTTP, SMTP, etc.).
The gateway applications 312 include standard gateway applications that are known in the art for performing gateway functions. In an exemplary embodiment, the application registration module 316 collects application registration information from servers or application service providers connected to the network, such as the Internet. In one embodiment, the registration includes an application URL, a brief description of the application, and any assigned keywords for identifying the application. Such registration information is stored in the application registry database 322 via the application registration module 316. Contents in the application registry database 322 in each gateway 108 is synchronized periodically with contents in other gateways. In an exemplary embodiment, such gateway-to-gateway synchronization is triggered and facilitated by the application registration module 316 and the gateway synchronization module 320. The gateway information database 326 includes information about other gateways that is useful for achieving gateway-to-gateway synchronization.
The transaction manager module 332 prevents violations of transaction semantics and data integrity. In one embodiment, the transaction manager module 332 tracks and logs the progress of each transaction, including application download/re- download, application status check, application update, data download/re-download, and data synchronization transactions. Transaction tracking also facilitates billing by providing a detailed record of each user's billable activities. The subscriber manager module 334 facilitates registration of user/subscriber IDs into the subscriber registry database 324. In an exemplary embodiment, user requests to the gateway 108 typically includes the user's subscriber ID. That subscriber ID is checked by the subscriber manager module 324 against the subscriber registry database 324 before requested the services are performed.
The application selection table 328 is a database table maintained on gateways 108. Contents of each application selection table 328 is synchronized with application selection tables in other gateways. Generally, the application selection table 328 contains information similar to the mobile application selection table 220, except the gateway application selection table 328 includes an additional column for the associated subscriber IDs. Further, in an exemplary embodiment, the gateway application selection table 328 maintains selective application information from all users serviced by the gateway 108 and for a longer period of time relative to information stored on mobile devices. The period of maintenance on the gateway application selection table 328 can be an automatic default time or a manually configured time. Similarly, the data access table 330 is a database table maintained on gateways 108. Contents of each data access table 330 is synchronized with data access tables in other gateways. Contents in the data access table 330 are substantially the same as in the mobile data access table 222 except an additional column for the associated subscriber IDs is included.
Figure 4A illustrates an exemplary process to load a set of files (such as an application or a data set) in accordance with an embodiment of the invention. At step 402, a user interface application, such as the micro-browser 212 calls a function to get a set of files. The called set of files may be located in the files database 218, the mobile local cache 224, the gateway local cache 336, or at a remote server. In one embodiment, a file URL indicates the path to the set of files. After the called function is received, whether a file name (e.g., an URL) includes a remote server address is determined (step 404). If there is no remote server address, whether the set of files is recorded in the application selection table in the database and cached in the local cache is determined (step 406). If the set of files is cached in the local cache, then the set of files is loaded file-by-file or as needed to the working memory (step 408) and a pointer to a first loaded file is returned (step 410). Referring back to step 406, if the set of files is not located in the local cache, whether it is located in a local file system is determined (step 412). If the set of files is located in the local file system, then the set of files is loaded file-by-file or as needed to the working memory (step 408) and a pointer to a first loaded file is returned (step 410). Otherwise, an error code is returned (step 414).
Referring back to step 404, if a server address is included in a file name, a command to get the set of files is issued (step 416). If the set of files is located in a local cache (step 418), then the set of files is loaded file-by-file or as needed to the working memory (step 408) and a pointer to a first loaded file is returned (step 410). If the set of files is not located in a local cache (step 418), the set of files is downloaded from the server using the server address (step 420). Next, whether to cache the downloaded set of files is determined (step 422). If the set of files is to be cached, the files are cached and the application selection table is appropriately updated (step 424), then the set of files is loaded file-by-file or as needed to the working memory (step 408) and a pointer to a first loaded file is returned (step 410). Referring back to step 422, if the set of file does not need to be cached, the set of files is loaded file-by-file or as needed to the working memory (step 408) and a pointer to a first loaded file is returned (step 410).
Figure 4B illustrates an exemplary process for determining whether to update an application in accordance with an embodiment of the invention. At step 426, a request to execute a cached application is received. Whether the application is marked out-of-date in its corresponding application selection record is determined (step 428). If the application selection record is marked out-of-date, the application is updated as described in Figure 12 below (step 430) and the updated application is executed (step 432). Referring back to step 428, if the application is not marked out-of-date, whether the application's corresponding application selection record's nextRelease parameter is less than or equal to the current time is determined (step 434). If so, the application is updated as described in Figure 12 below (step 430) and the updated application is executed (step 432). Otherwise, the application is not updated (step 438) and the application is executed (step 432).
Figures 5A-5C illustrate an exemplary application management process in accordance with an embodiment of the invention. At step 502 of Figure 5 A, an application is downloaded to the mobile device 110. Whether a corresponding application selection record for the downloaded application already exists in the application selection table is determined (step 504). If not, a new application selection record for the downloaded application is created (step 506) and the process continues in Figure 5B. If there already exists an application selection record for the downloaded application, the process continues in Figure 5C.
In Figure 5B, whether there is any invalid application selection record in the application selection table is determined (step 508). If so, the process continues in Figure 5C. If not, whether there is any out-of-date application selection record in the application selection table is determined (step 510). If so, the application selection record whose lastExecTime parameter is the oldest (least recent) is selected (step 512) and the process continues at step 516. If there are multiple application selection records having the same oldest lastExecTime, the record whose nExec parameter is the smallest is selected.
Referring back to step 510, if there is no out-of-date application selection records in the application selection table, the application selection record whose nExec parameter is the smallest is selected (step 514). If multiple application selecton records have the same smallest nExec value, the record whose lastExecTime parameter is the oldest is selected. At step 516, whether there is a cached application corresponding to the selected application selection record is determined. If so, that application is removed from the local cache (step 518) and the process continues in Figure 5C. If there is no such cached application, the process continues in Figure 5C.
In Figure 5C, whether there is enough free space in the local cache for caching the current downloaded application is determined (step 520). If there is enough free space, the downloaded application is saved into the local cache (step 522) and a created or updated application selection record for the downloaded application is accordingly saved or updated in the application selection table (step 524). If there is not enough free space, whether there is any out-of-date application selection record corresponding to a cached application is determined (step 526). If not, the process continues at step 536. If so, all such application selection records are found and sorted in the increasing order of the lastExecTime parameter, the increasing order of the nExec parameter, then the increasing order of size (step 528). Next, whether there is enough space in the local cache if some or all of the out-of-date applications are removed from the local cache is determined (step 530). If so, some or all of the out- of-date applications in the sorted order are removed to create just enough space in the local cache for caching the downloaded application (step 532). In an exemplary embodiment, the isStore flags in the removed applications 's corresponding application selection records are turned off (see Figure 2B). Next, the downloaded application is stored into the local cache (step 534) and a created or updated application selection record for the downloaded application is accordingly saved or updated in the application selection table (step 524).
Referring back to step 530, if removal of some or all of the out-of-date applications is not going to create enough space, whether there is any application selection record corresponding to a cached application has its nExec parameter less than or equal to the nExec of the downloaded application and its lastExecTime less than the lastExecTime of the downloaded application is determined (step 536). If not, the downloaded application is not stored in the local cache and a created or updated application selection record for the downloaded application is saved or updated in the application selection table (step 524). Referring back to step 536, if any such application selection record exists, all of such application selection records are found and sorted in the increasing order of the nExec parameter, the increasing order of the lastExecTime, then the increasing order of size (step 538). Next, whether there is enough space to store the downloaded application in the local cache if all of the out-of- date applications plus some or all of the applications found and sorted in step 538 are removed is determined (step 540). If not, the downloaded application is not stored in the local cache and a created or updated application selection record for the downloaded application is saved or updated in the application selection table (step 524). Referring back to step 540, if there is going to be enough space, all of the out- of-date applications and some or all of the applications found and sorted in step 538 are removed to create just enough space for the downloaded application (step 542). The downloaded application is saved into the local cache (step 544) and a created or updated application selection record for the downloaded application is saved or updated in the application selection table (step 524).
Figures 6A-B illustrate another exemplary application management process in accordance with an embodiment of the invention. At step 602, an update for an application is received. Next, whether the updated application size (new size) is less than or equal to the original application size (old size) is determined (step 604). If so, the original application in the local cache is updated (step 606). A corresponding application selection record is updated (step 608). Referring back to step 604, if the new size is greater than the old size, the process continues in Figure 6B.
In Figure 6B, whether there is enough space in the local cache for updating the application is determined (step 610). If so, the application is updated in the local cache and the corresponding application selection record is also updated (step 612). If not, whether there is any out-of date application selection record corresponding to a cached application is determined (step 614). If not, the process continues at step 624. If so, all such application selection records are found and sorted in the increasing order of the lastExecTime parameter, the increasing order of the nExec parameter, then the increasing order of size (step 616). Next, whether there is enough space to update the application if some or all of the out-of-date applications are removed from the local cache is determined (step 618). If so, some or all of the out-of-date applications are removed from the local cache in the sorted order to create just enough space in the local cache for updating the application (step 620). The isStored flags in the application selection records of the removed out-of-date applications are turned off. Next, the application is updated in the local cache and its corresponding application selection record is also updated (step 622).
Referring back to step 618, if there is not enough space even if all of the out- of-date applications are removed, whether there is any application selection record corresponding to a cached application that has its nExec parameter less than or equal to the current application's nExec parameter and its lastExecTime parameter less than the current application's lastExecTime parameter is determined (step 624). If not, the current application is not updated and is marked as out-of-date (step 626). If so, all such application selection records are found and sorted in the increasing order of the lastExecTime parameter, the increasing order of the nExec parameter, then the increasing order of size (step 628). Next, whether there is enough space to update the application in the local cache if all of the out-of-date applications plus some or all of the applications found and sorted in step 628 are removed is determined (step 630). If not, the application is not updated and is marked as out-of-date (step 632). Otherwise, all of the out-of-date applications plus some or all of the applications found in step 628 are removed in the sorted order to create just enough space in the local cache for updating the application (step 634). The isStored flags of the application selection records corresponding to the removed applications are turned off. Next, the application is updated in the local cache and its corresponding application selection record is also updated (step 636).
In an exemplary embodiment, once an application is stored in the local cache, its status is checked via one or more of the following methods: (1) initiated in response to a (multicast) notification from the original server; (2) automatically initiated by the mobile device 110 based on the nextReleaseTime parameter for the application; (3) automatically initiated by the mobile device 110 just before an execution of the application; (4) automatically initiated by the mobile device 1 10 after a failed function to communicate with a remote server or to read data; or (5) automatically initiated by the mobile device 110 while the mobile device 110 is idle.
In one embodiment, a multicast notification sent by an original server is received by all gateways 108. Typically, the notification includes a URL and an update application version ID for an application. In one embodiment, the update application version ID is dynamically generated based on the contents of the updated application. In another embodiment, the update application version ID is a message digest of the binary or text code of the application. For example, if message digest (e.g., MD4 or MD5) is used, the update application version ID should have a length of 16 bytes. Each gateway 108 that receives the notification determines a set of mobile devices 110 to pass the notification. In an exemplary embodiment, the set of mobile devices 110 is determined based on the latest uploads of user operation history that indicates the mobile device 110 that may still have a copy of the original application in its local cache. Once the set of mobile devices 110 is determined, the notification is sent to those mobile devices when the mobile device 1 10 is connected to the gateway 108.
Figure 7 illustrates an exemplary process for a mobile device 110 to process a received notification in accordance with an embodiment of the invention. At step 702, the mobile device 110 receives an update notification from a gateway 108. Whether the original application to be updated is stored in the local cache is determined (step 704). If not, the update notification is ignored (step 706). If the original application is stored in the local cache (step 704), an original application version ID for the original application is dynamically generated (step 708). Next, the dynamically generated original application version ID is compared to the update application version ID provided in the notification (step 710). If the version IDs are the same (step 712), the process ends (step 714). Otherwise, the original application is marked "out-of-date" (step 716). The original application is automatically updated before the next loading or execution of the application (step 718). In an exemplary embodiment, only the differences between the updated version and the original version are updated. An exemplary process to automatically update an application is illustrated in Figure 12 below. Figures 8A-8C illustrate an exemplary data set management process in accordance with an embodiment of the invention. At step 802 of Figure 8A, a data set is downloaded to the mobile device 110. Whether a corresponding data access record for the downloaded data set already exists in the data access table is determined (step 804). If not, a new data access record for the downloaded data set is created (step 806) and the process continues in Figure 8B. If there already exists an data access record for the downloaded data set, the process continues in Figure 8C.
In Figure 8B, whether there is any invalid data access record in the data access table is determined (step 808). If so, the process continues in Figure 8C. If not, whether there is any out-of-date data access record in the data access table is determined (step 810). If so, the data access record whose lastAccsTime parameter is the oldest (least recent) is selected (step 812) and the process continues at step 816. If there are multiple data access records having the same oldest lastAccsTime, the record whose nAccs parameter is the smallest is selected.
Referring back to step 810, if there is no out-of-date data access records in the data access table, the data access record whose nAccs parameter is the smallest is selected (step 814). If multiple data access records have the same smallest nAccs value, the record whose lastAccsTime parameter is the oldest is selected. At step 816, whether there is a cached data set corresponding to the selected data access record is determined. If so, that data set is removed from the local cache (step 818) and the process continues in Figure 8C. If there is no such cached data set, the process continues in Figure 8C.
In Figure 8C, whether there is enough free space in the local cache for caching the current downloaded data set is determined (step 820). If there is enough free space, the downloaded data set is saved into the local cache (step 822) and a created or updated data access record for the downloaded data set is accordingly saved or updated in the data access table (step 824). If there is not enough free space, whether there is any out-of-date data access record corresponding to a cached data set is determined (step 826). If not, the process continues at step 836. If so, all such data access records are found and sorted in the increasing order of the lastAccsTime parameter, the increasing order of the nAccs parameter, then the increasing order of size (step 828). Next, whether there is enough space in the local cache if some or all of the out-of-date data sets are removed from the local cache is determined (step 830). If so, some or all of the out-of-date data sets in the sorted order are removed to create just enough space in the local cache for caching the downloaded data set (step 832). In an exemplary embodiment, the isStore flags in the removed data sets' s corresponding data access records are turned off (see Figure 2C). Next, the downloaded data set is stored into the local cache (step 834) and a created or updated data access record for the downloaded data set is accordingly saved or updated in the data access table (step 824).
Referring back to step 830, if removal of some or all of the out-of-date data sets is not going to create enough space, whether there is any data access record corresponding to a cached data set has its nAccs parameter less than or equal to the nAccs of the downloaded data set and its lastAccsTime less than the lastAccsTime of the downloaded data set is determined (step 836). If not, the downloaded data set is not stored in the local cache and a created or updated data access record for the downloaded data set is saved or updated in the data access table (step 824). Referring back to step 836, if any such data access record exists, all of such data access records are found and sorted in the increasing order of the nAccs parameter, the increasing order of the lastAccsTime, then the increasing order of size (step 838). Next, whether there is enough space to store the downloaded data set in the local cache if all of the out-of-date data sets plus some or all of the data sets found and sorted in step 838 are removed is determined (step 840). If not, the downloaded data set is not stored in the local cache and a created or updated data access record for the downloaded data set is saved or updated in the data access table (step 824). Referring back to step 840,. if there is going to be enough space, all of the out-of-date data sets and some or all of the data sets found and sorted in step 838 are removed to create just enough space for the downloaded data set (step 842). The downloaded data set is saved into the local cache (step 844) and a created or updated data access record for the downloaded data set is saved or updated in the data access table (step 824).
Figures 9A-B illustrate another exemplary data set management process in accordance with an embodiment of the invention. At step 902, an update for a data set is received. Next, whether the updated data set size (new size) is less than or equal to the original data set size (old size) is determined (step 904). If so, the original data set in the local cache is updated (step 906). A corresponding data access record is updated (step 908). Referring back to step 904, if the new size is greater than the old size, the process continues in Figure 9B.
In Figure 9B, whether there is enough space in the local cache for updating the data set is determined (step 910). If so, the data set is updated in the local cache and the corresponding data access record is also updated (step 912). If not, whether there is any out-of date data access record corresponding to a cached data set is determined (step 914). If not, the process continues at step 924. If so, all such data access records are found and sorted in the increasing order of the lastAccsTime parameter, the increasing order of the nAccs parameter, then the increasing order of size (step 916). Next, whether there is enough space to update the data set if some or all of the out-of- date data sets are removed from the local cache is determined (step 918). If so, some or all of the out-of-date data sets are removed from the local cache in the sorted order to create just enough space in the local cache for updating the data set (step 920). The isStored flags in the data access records of the removed out-of-date data sets are turned off. Next, the data set is updated in the local cache and its corresponding data access record is also updated (step 922).
Referring back to step 918, if there is not enough space even if all of the out- of-date data sets are removed, whether there is any data access record corresponding to a cached data set that has its nAccs parameter less than or equal to the current data set's nAccs parameter and its lastAccsTime parameter less than the current data set's lastAccsTime parameter is determined (step 924). If not, the current data set is not updated and is marked as out-of-date (step 926). If so, all such data access records are found and sorted in the increasing order of the lastAccsTime parameter, the increasing order of the nAccs parameter, then the increasing order of size (step 928). Next, whether there is enough space to update the data set in the local cache if all of the out- of-date data sets plus some or all of the data sets found and sorted in step 928 are removed is determined (step 930). If not, the data set is not updated and is marked as out-of-date (step 932). Otherwise, all of the out-of-date data sets plus some or all of the data sets found in step 928 are removed in the sorted order to create just enough space in the local cache for updating the data set (step 934). The isStored flags of the data access records corresponding to the removed data sets are turned off. Next, the data set is updated in the local cache and its corresponding data access record is also updated (step 936).
Typically, each mobile device 110 communicates to servers on the Internet through gateways 108. Thus, if frequently used applications or data sets are cached intelligently at one or more gateways 108, communication traffic and efficiency of the system 100 could be greatly improved. In an exemplary embodiment, each gateway 108 uploads user operation histories of all mobile devices 110 it services and caches a set of the most frequently used applications and data sets for each user at the gateway 108 for a predetermined period of time. Thus, when a mobile device 110 requests one of the most frequently used applications, the version cached on the gateway 108 can be provided to the mobile device 110 more quickly than to retrieve it from a server. In one embodiment, the applications and data sets cached on the gateway 108 are kept up-to-date automatically by the gateway 108, in response to a mobile device 110 request of the application, or in response to a server update notification.
In an exemplary embodiment, the mobile smart connectivity module 216 and the gateway smart connectivity module 318 coordinate with each other to facilitate communications between the mobile device 110 and the gateway 108. In one embodiment, the gateway smart connectivity module 318 includes an application layer protocol that has multiple sub-protocols, including, a data synchronization protocol and a user operation history upload protocol. The data synchronization protocol enables data synchronization among gateways 108. The user operation history protocol enables gateways 108 to upload user information. In addition, both mobile and gateway smart connectivity modules 216 and 318 includes an application/data-set management protocol and an update multicast protocol. The application/data-set management protocol includes application data set download, application/data set status check, and application/data set update processes. These processes are illustrated in more detail in Figures 10-12, respectively. For ease of explanation, only application download, status check, and update processes are described in Figures 10-12. These processes can be similarly applied to download, check status, and update data sets.
Figure 10 illustrates an exemplary application download process in accordance with an embodiment of the invention. At step 1002, an application download request is sent by a mobile device 110 to a server via a gateway 108. Next, the gateway 108 receives a response from the server and passes the response to the mobile device 110 (step 1004). In one embodiment, the response includes the requested application. Based on the response, the mobile device 110 creates or updates an application selection record corresponding to the requested application (step 1006). If the application should be saved in the files database 218 (e.g., it is a frequently used application by this user) (step 1010), then the process continues at Figure 8 A (step 1012). Otherwise, the application is uploaded and the process ends (step 1014).
Figure 11 illustrates an exemplary application status check process in accordance with an embodiment of the invention. At step 1102, an application status check request is sent by a mobile device 110 to a server via a gateway 108 to check the status of an application. Next, the gateway 108 receives a response from the server and passes the response to the mobile device 110 (step 1104). At the mobile device 110, an application selection record corresponding to the application is updated (step 1106). Next, if the application is determined out-of-date based on the response (step 1108), the application is marked "out-of-date" (step 1112). Otherwise, the process ends (step 1110). If the application is marked out-of-date, the application is automatically updated before the next loading or execution of the application (step 1114). An exemplary process to automatically update an application is illustrated in Figure 12 below (step 1116).
Figure 12 illustrates an exemplary application update process in accordance with an embodiment of the invention. At step 1202, an application update request is sent by a mobile device 110 to a server via a gateway 108 to update an application. In an exemplary embodiment, the application update request includes an application URL, a number of files that comprise the application, the name of the application, and a version IDs of each file of the application. A file version ID is a message digest of the binary or text code of the file and is dynamically generated based on the contents of the file. Next, the gateway 108 receives a response from the server and passes the response to the mobile device 110 (step 1204). In an exemplary embodiment, the response includes the application URL, the number of files added, modified, or deleted in the new version, the application name, content of each added or modified file, content length of each added, modified, or deleted file, and a next release schedule. At the mobile device, the application selection record corresponding to the application is updated (step 1206). Next, the application stored in the files database 218 is updated (step 1208). In an exemplary embodiment, the application is updated differentially. That is, only the added, modified, or deleted files are updated.
In an exemplary embodiment, the update multicast protocol enables application/data servers to notify mobile devices about changes to any downloaded applications or data sets from the servers. In particular, the update mulitcast protocol allows gateways 108 to receive update notifications from servers then relay the notifications to a sub-set of the mobile devices 110 each gateway 108 services. For example, when a gateway 108 receives an update notification, it determines a subset of mobile devices (among all the mobile devices it services) that is likely to contain a cached copy of the application/data set to be updated. In an exemplary embodiment, the gateway 108 makes the determination based on user operation history uploaded from each mobile device 110. After such determination, the gateway 108 then only send the update notification to those mobile devices 110. In one embodiment, the update notification sent by a gateway 108 to a mobile device 110 includes the application/data set URL and an update application version ID or a summarized ObjectStore version. After receiving an update notification from a gateway 108, the mobile device determines if it has a copy of the application or data set in its files database 218. If so, the mobile device 110 compares the differences between the saved copy and the new version and marks any differences in the application or data set as out-of-date. Such out-of-date applications and data sets are later updated before the next execution or access to those applications and data sets.
The foregoing examples illustrate certain exemplary embodiments of the invention from which other embodiments, variations, and modifications will be apparent to those skilled in the art. The invention should therefore not be limited to the particular embodiments discussed above, but rather is defined by the claims.

Claims

WHAT IS CLAIMED IS:
1. A method for managing information in a mobile device, comprising the steps of: downloading a first set of files; determining whether a local cache has enough space to store said set of files: if enough space, storing said set of files into said local cache; if not enough space, selecting an out-dated record and removing a second set of files corresponding to said out-dated record from said local cache; and repeating said determining step until said first set of files is stored into said local cache.
2. The method of claim 1, wherein said selecting step includes the step of: selecting an application selection record associated to a least recently executed application or a least frequently executed application based on parameter values in each application selection record.
3. The method of claim 1, wherein said selecting step includes the step of: selecting a data access record associated to a least recently accessed data set or a least frequently accessed data set based on parameter values in each data access record.
4. The method of claim 1, further comprising the steps of: creating a record corresponding to the first set of files; and storing said record into a database regardless of whether said first set of files is stored into said local cache.
5. A method for managing information in a mobile device, comprising the steps of: receiving a set of update files; updating a set of original files in a local cache with said set of update files if said set of update files is smaller than or equal to the size of said set of original files; determining whether said local cache has enough space to store said set of update files if said set of update files is larger than the size of said set of original files: if enough space, updating said set of original files in said local cache in accordance with said set of update files; if not enough space, selecting an out-dated record and removing a set of files corresponding to said out-dated record from said local cache; and repeating said determining step until said set of original files is updated in said local cache.
6. The method of claim 4, wherein said set of update files is a set of update application files or a set of update data set files.
7. A method for managing information in a mobile device, comprising the steps of: receiving an update notification to update a set of files stored in a local cache, said update notification including an update version identification; dynamically generating an original version identification for said set of files; comparing said update version identification to said original version identification; marking said set of files as out-dated if said update version identification is different than said original version identification; and automatically updating said set of files prior to processing a loading or execution command.
8. The method of claim 7, wherein said set of files is a set of application files or a set of data set files.
9. A method for managing information on a mobile device when said mobile device is disconnected from a gateway during an operation, comprising the steps of: if disconnection is of a first type, maintaining an active communication state; if disconnection is of a second type, saving a transaction status in a local cache; periodically attempting to reestablish connection; and resuming communication at a point of failure when connection is reestablished.
10. The method of claim 9, wherein said first type is a short-live disconnection and said second type is a long-lived disconnection.
11. A computer program product for managing information in a mobile device, comprising: logic code for downloading a first set of files; logic code for determining whether a local cache has enough space to store said set of files: if enough space, logic code for storing said set of files into said local cache; if not enough space, logic code for selecting an out-dated record and removing a second set of files corresponding to said out-dated record from said local cache; and logic code for repeating said determining until said first set of files is stored into said local cache.
12. The computer program product of claim 11 , wherein said logic code for selecting includes: logic code for selecting an application selection record associated to a least recently executed application or a least frequently executed application based on parameter values in each application selection record.
13. The computer program product of claim 11 , wherein said logic code for selecting includes: logic code for selecting a data access record associated to a least recently accessed data set or a least frequently accessed data set based on parameter values in each data access record.
14. The computer program product of claim 11 , further comprising: logic code for creating a record corresponding to the first set of files; and logic code for storing said record into a database regardless of whether said first set of files is stored into said local cache.
15. A computer program product for managing information in a mobile device, comprising: logic code for receiving a set of update files; logic code for updating a set of original files in a local cache with said set of update files if said set of update files is smaller than or equal to the size of said set of original files; logic code for determining whether said local cache has enough space to store said set of update files if said set of update files is larger than the size of said set of original files: if enough space, logic code for updating said set of original files in said local cache in accordance with said set of update files; if not enough space, logic code for selecting an out-dated record and removing a set of files corresponding to said out-dated record from said local cache; and logic code for repeating said determining until said set of original files is updated in said local cache.
16. The computer program product of claim 15, wherein said set of update files is a set of update application files or a set of update data set files.
17. A computer program product for managing information in a mobile device, comprising: logic code for receiving an update notification to update a set of files stored in a local cache, said update notification including an update version identification; logic code for dynamically generating an original version identification for said set of files; logic code for comparing said update version identification to said original version identification; logic code for marking said set of files as out-dated if said update version identification is different than said original version identification; and logic code for automatically updating said set of files prior to processing a loading or execution command.
18. The computer program product of claim 17, wherein said set of files is a set of application files or a set of data set files.
19. A computer program product for managing information on a mobile device when said mobile device is disconnected from a gateway during an operation, comprising: if disconnection is of a first type, logic code for maintaining an active communication state; if disconnection is of a second type, logic code for saving a transaction status in a local cache; logic code for periodically attempting to reestablish connection; and logic code for resuming communication at a point of failure when connection is reestablished.
20. The computer program product of claim 19, wherein said first type is a short- live disconnection and said second type is a long-lived disconnection.
PCT/US2001/003594 2000-02-02 2001-02-02 Coordinated and personalized application and data management WO2001057673A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001233303A AU2001233303A1 (en) 2000-02-02 2001-02-02 Coordinated and personalized application and data management

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17976100P 2000-02-02 2000-02-02
US60/179,761 2000-02-02

Publications (1)

Publication Number Publication Date
WO2001057673A1 true WO2001057673A1 (en) 2001-08-09

Family

ID=22657876

Family Applications (4)

Application Number Title Priority Date Filing Date
PCT/US2001/003480 WO2001057733A1 (en) 2000-02-02 2001-02-02 Apparatus and methods for providing personalized application search results for wireless devices based on user profiles
PCT/US2001/003493 WO2001057694A1 (en) 2000-02-02 2001-02-02 Apparatus and methods for optimizing traffic volume in wireless email communications
PCT/US2001/003704 WO2001058088A1 (en) 2000-02-02 2001-02-02 Apparatus and methods for providing data synchronization by facilitating data synchronization system design
PCT/US2001/003594 WO2001057673A1 (en) 2000-02-02 2001-02-02 Coordinated and personalized application and data management

Family Applications Before (3)

Application Number Title Priority Date Filing Date
PCT/US2001/003480 WO2001057733A1 (en) 2000-02-02 2001-02-02 Apparatus and methods for providing personalized application search results for wireless devices based on user profiles
PCT/US2001/003493 WO2001057694A1 (en) 2000-02-02 2001-02-02 Apparatus and methods for optimizing traffic volume in wireless email communications
PCT/US2001/003704 WO2001058088A1 (en) 2000-02-02 2001-02-02 Apparatus and methods for providing data synchronization by facilitating data synchronization system design

Country Status (3)

Country Link
US (3) US6928467B2 (en)
AU (4) AU2001233303A1 (en)
WO (4) WO2001057733A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2380358A (en) * 2001-09-28 2003-04-02 Nokia Corp Capacity management
FR2835332A1 (en) * 2002-01-30 2003-08-01 Jean Francois Berthier Creation of dynamic applications and maintenance of databases for sales or field personnel linking to a central location via PDAs, mobile phones, etc., without any need for programming of the mobile terminal
WO2004081793A1 (en) * 2003-03-10 2004-09-23 Koninklijke Philips Electronics N.V. Content exchange between portable device and network
US10972761B2 (en) 2018-12-26 2021-04-06 Purdue Research Foundation Minimizing stall duration tail probability in over-the-top streaming systems

Families Citing this family (433)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020059388A1 (en) * 2000-01-21 2002-05-16 David Thompson E-mail and messaging systems and methods
FI20001524A (en) * 2000-06-27 2001-12-28 Nokia Networks Oy Control of combined objects in a network
WO2002039640A2 (en) * 2000-10-25 2002-05-16 Ngame Limited Electronic game programming system
US6832373B2 (en) * 2000-11-17 2004-12-14 Bitfone Corporation System and method for updating and distributing information
US7082549B2 (en) 2000-11-17 2006-07-25 Bitfone Corporation Method for fault tolerant updating of an electronic device
US8875116B2 (en) * 2000-11-17 2014-10-28 Hewlett-Packard Development Company, L.P. Network for updating firmware and / or software in wireless communication devices
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US7401320B2 (en) 2000-11-17 2008-07-15 Hewlett-Packard Development Company, L.P. Operator network that routes customer care calls based on subscriber/device profile and CSR skill set
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US7464094B2 (en) * 2000-12-29 2008-12-09 Gateway Inc. Shared registry with multiple keys for storing preferences and other applications on a local area network
US7334031B2 (en) 2001-01-12 2008-02-19 Siemens Medical Solutions Health Services Corporation System and user interface supporting processing and activity management for concurrently operating applications
US7043752B2 (en) * 2001-01-12 2006-05-09 Siemens Medical Solutions Health Services Corporation System and user interface supporting concurrent application initiation and interoperability
US7103666B2 (en) * 2001-01-12 2006-09-05 Siemens Medical Solutions Health Services Corporation System and user interface supporting concurrent application operation and interoperability
US6829655B1 (en) * 2001-03-28 2004-12-07 Siebel Systems, Inc. Method and system for server synchronization with a computing device via a companion device
US20030126220A1 (en) * 2001-12-27 2003-07-03 James Wanless Quick reply codes for communication of information between electronic devices
JP4386732B2 (en) 2002-01-08 2009-12-16 セブン ネットワークス, インコーポレイテッド Mobile network connection architecture
US9134989B2 (en) 2002-01-31 2015-09-15 Qualcomm Incorporated System and method for updating dataset versions resident on a wireless device
US7024214B2 (en) * 2002-02-26 2006-04-04 Microsoft Corporation Synchronizing over a number of synchronization mechanisms using flexible rules
US7114160B2 (en) 2002-04-17 2006-09-26 Sbc Technology Resources, Inc. Web content customization via adaptation Web services
US7369851B2 (en) * 2002-04-19 2008-05-06 Hewlett-Packard Development Company, L.P. Communications network capable of determining SIM card changes in electronic devices
US7076567B1 (en) * 2002-04-25 2006-07-11 Oracle International Corporation Simplified application object data synchronization for optimized data storage
US7606881B2 (en) * 2002-04-25 2009-10-20 Oracle International Corporation System and method for synchronization of version annotated objects
US7376701B2 (en) * 2002-04-29 2008-05-20 Cisco Technology, Inc. System and methodology for control of, and access and response to internet email from a wireless device
US7337193B1 (en) * 2002-05-02 2008-02-26 Palmsource, Inc. Determining priority between data items
US20030212819A1 (en) * 2002-05-09 2003-11-13 Russell Ryan S. Transferring data wirelessly between digital devices
US8001081B1 (en) 2002-05-31 2011-08-16 Access Co., Ltd. Determining priority between data items in shared environments
US20040203681A1 (en) * 2002-07-01 2004-10-14 Ross David J. Application catalog on an application server for wireless devices
JP4305092B2 (en) * 2002-08-14 2009-07-29 ソニー株式会社 Information processing apparatus, data communication system and method, and computer program
US7313791B1 (en) 2002-08-22 2007-12-25 Hewlett-Packard Development Company, L.P. Firmware update network and process employing preprocessing techniques
US7340736B2 (en) 2002-08-22 2008-03-04 Hewlett-Packard Development Company, L.P. Electronic device with an update agent that employs preprocessing techniques for update
US20040068724A1 (en) * 2002-08-30 2004-04-08 Gardner Richard Wayne Server processing for updating dataset versions resident on a wireless device
US7669197B1 (en) 2002-09-12 2010-02-23 Hewlett-Packard Development Company, L.P. Embedded system employing component architecture platform
US7472380B1 (en) 2002-09-23 2008-12-30 Hewlett-Packard Development Company, L.P. Processing system with component architecture platform support
US7787489B2 (en) * 2002-10-07 2010-08-31 Oracle International Corporation Mobile data distribution
JP4317409B2 (en) * 2002-10-08 2009-08-19 パナソニック株式会社 Terminal device and information acquisition system
US7461372B2 (en) * 2002-10-11 2008-12-02 Hewlett-Packard Development Company, L.P. System for optimizing distribution of information employing a universal dictionary
US6976038B2 (en) 2002-10-17 2005-12-13 International Business Machines Corporation Method and apparatus for real time creation and modification of a change log for multi-server synchronization
US20040107250A1 (en) * 2002-10-21 2004-06-03 Guillermo Marciano Methods and systems for integrating communication resources using the internet
WO2004038546A2 (en) * 2002-10-21 2004-05-06 Bitfone Corporation System with required enhancements to syncml dm environment to support firmware updates
US7984435B2 (en) * 2002-11-13 2011-07-19 Hewlett-Packard Development Company, L.P. Update system employing reference software to reduce number of update packages
US20040093592A1 (en) 2002-11-13 2004-05-13 Rao Bindu Rama Firmware update in electronic devices employing SIM card for saving metadata information
US7047448B2 (en) * 2002-11-21 2006-05-16 Bitfone Corporation Software self-repair toolkit for electronic devices
US6996818B2 (en) 2002-11-22 2006-02-07 Bitfone Corporation Update system for facilitating software update and data conversion in an electronic device
US7434216B1 (en) 2002-11-25 2008-10-07 Hewlett-Packard Development Company, L.P. Update package generator that employs genetic evolution to determine bank order
US7739240B2 (en) * 2002-12-09 2010-06-15 Hewlett-Packard Development Company, L.P. Replication and replica management in a wide area file system
US9092286B2 (en) 2002-12-20 2015-07-28 Qualcomm Incorporated System to automatically process components on a device
US7035879B2 (en) * 2002-12-26 2006-04-25 Hon Hai Precision Ind. Co., Ltd. System and method for synchronizing data of wireless devices
WO2004061615A2 (en) * 2002-12-31 2004-07-22 Bitfone Corporation Management of service components installed in an electronic device in a mobile services network
US8468126B2 (en) 2005-08-01 2013-06-18 Seven Networks, Inc. Publishing data in an information community
US7917468B2 (en) 2005-08-01 2011-03-29 Seven Networks, Inc. Linking of personal information management data
US7853563B2 (en) 2005-08-01 2010-12-14 Seven Networks, Inc. Universal data aggregation
US7890427B1 (en) 2003-01-09 2011-02-15 Hewlett-Packard Development Company, L.P. Authentication of notifications received in an electronic device in a mobile services network
US7480907B1 (en) 2003-01-09 2009-01-20 Hewlett-Packard Development Company, L.P. Mobile services network for update of firmware/software in mobile handsets
WO2004063899A2 (en) 2003-01-13 2004-07-29 Bitfone Corporation Mobile handset capable of updating its update agent
US7644406B2 (en) 2003-01-21 2010-01-05 Hewlett-Packard Development Company, L.P. Update system capable of updating software across multiple FLASH chips
WO2004070571A2 (en) * 2003-02-03 2004-08-19 Bitfone Corporation Update system for facilitating firmware/software update in a mobile handset
WO2004072773A2 (en) * 2003-02-11 2004-08-26 Bitfone Corporation Electronic device supporting multiple update agents
US7689981B1 (en) 2003-02-28 2010-03-30 Hewlett-Packard Development Company, L.P. Mobile handset with efficient interruption point detection during a multiple-pass update process
US20040230965A1 (en) * 2003-02-28 2004-11-18 Harri Okkonen Mobile handset network that facilitates interaction between a generic intelligent responsive agent and a service broker server
US8082339B2 (en) 2003-02-28 2011-12-20 Hewlett-Packard Development Company, L.P. Electronic device network having graceful denial of service
US7506007B2 (en) * 2003-03-03 2009-03-17 Microsoft Corporation Interval vector based knowledge synchronization for resource versioning
US7356727B1 (en) 2003-03-10 2008-04-08 Hewlett-Packard Development Company, L.P. Electronic device employing efficient fault tolerance
US7881745B1 (en) 2003-03-10 2011-02-01 Hewlett-Packard Development Company, L.P. Electronic device network employing provisioning techniques to update firmware and/or software in electronic devices
US7509378B2 (en) * 2003-03-11 2009-03-24 Bea Systems, Inc. System and method for message ordering in a message oriented network
US7548986B1 (en) 2003-03-17 2009-06-16 Hewlett-Packard Development Company, L.P. Electronic device network providing streaming updates
US7657884B2 (en) * 2003-03-24 2010-02-02 Hewlett-Packard Development Company, L.P. Electronic device supporting multiple update agents
US7975147B1 (en) 2003-03-31 2011-07-05 Hewlett-Packard Development Company, L.P. Electronic device network supporting enciphering and deciphering and update generation in electronic devices
US7987449B1 (en) 2003-05-22 2011-07-26 Hewlett-Packard Development Company, L.P. Network for lifecycle management of firmware and software in electronic devices
EP1654640B1 (en) 2003-06-04 2018-08-01 Qualcomm Incorporated Network having customizable generators of sofware updates and mobile electronic devices having customizable updating software
US7747994B1 (en) 2003-06-04 2010-06-29 Hewlett-Packard Development Company, L.P. Generator based on multiple instruction streams and minimum size instruction set for generating updates to mobile handset
US7584466B1 (en) 2003-06-16 2009-09-01 Hewlett-Packard Development Company, L.P. Management tree management in a mobile handset
US8046753B1 (en) 2003-06-18 2011-10-25 Hewlett-Packard Development Company, L.P. Mobile handset with symbian OS and update agent
US8250565B2 (en) * 2003-06-27 2012-08-21 Hewlett-Packard Development Company, L.P. System and method for downloading update packages into a mobile handset in a carrier network
US7343443B1 (en) 2003-07-08 2008-03-11 Hewlett-Packard Development Company, L.P. Updated package generation based on analysis of bank dependency
US20050114504A1 (en) * 2003-07-09 2005-05-26 Sunil Marolia Carrier network capable of conducting remote diagnostics in a mobile handset
US7152782B2 (en) * 2003-07-11 2006-12-26 Visa International Service Association System and method for managing electronic data transfer applications
US7366125B1 (en) 2003-07-24 2008-04-29 Bbn Technologies Corp. Extensible satellite communication system
WO2005013123A1 (en) * 2003-07-29 2005-02-10 Bitfone Corporation Mobile handset with update agent implemented in hardware
US7440981B2 (en) * 2003-07-31 2008-10-21 Microsoft Corporation Systems and methods for replicating data stores
US7756825B2 (en) * 2003-07-31 2010-07-13 Microsoft Corporation Synchronization peer participant model
US7440985B2 (en) * 2003-07-31 2008-10-21 Microsoft Corporation Filtered replication of data stores
US7886093B1 (en) 2003-07-31 2011-02-08 Hewlett-Packard Development Company, L.P. Electronic device network supporting compression and decompression in electronic devices
US7401103B2 (en) * 2003-07-31 2008-07-15 Microsoft Corporation Replication protocol for data stores
US7401104B2 (en) * 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US8131739B2 (en) 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US7590643B2 (en) 2003-08-21 2009-09-15 Microsoft Corporation Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US7483923B2 (en) * 2003-08-21 2009-01-27 Microsoft Corporation Systems and methods for providing relational and hierarchical synchronization services for units of information manageable by a hardware/software interface system
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
KR100880783B1 (en) 2003-09-03 2009-02-02 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘 피 Tri-phase boot process in electronic devices
US7313120B2 (en) * 2003-09-16 2007-12-25 Nokia Corporation Application control in peer-to-peer ad-hoc communication networks
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US7668612B1 (en) 2003-09-18 2010-02-23 Hewlett-Packard Development Company, L.P. System and method for efficient manufacture and update of electronic devices
WO2005031570A1 (en) * 2003-09-26 2005-04-07 Bitfone Corporation Update package catalog for update package transfer between generator and content server in a network
GB0322877D0 (en) * 2003-09-30 2003-10-29 British Telecomm Search system and method
TW200515208A (en) * 2003-10-24 2005-05-01 Hon Hai Prec Ind Co Ltd System and method for querying inventory
US8626146B2 (en) 2003-10-29 2014-01-07 Qualcomm Incorporated Method, software and apparatus for performing actions on a wireless device using action lists and versioning
US7716276B1 (en) 2003-11-17 2010-05-11 Hewlett-Packard Development Company, L.P. Network that supports user-initiated device management
US20050125412A1 (en) * 2003-12-09 2005-06-09 Nec Laboratories America, Inc. Web crawling
US7797693B1 (en) 2003-12-12 2010-09-14 Hewlett-Packard Development Company, L.P. NAND mobile devices capable of updating firmware or software in a manner analogous to NOR mobile devices
US7525961B2 (en) * 2004-01-14 2009-04-28 Adc Dsl Systems, Inc. Auto-adaptation to packet size on a physical medium
US9323515B1 (en) 2004-01-16 2016-04-26 Qualcomm Incorporated Network with broker for device management
US7184753B2 (en) * 2004-01-22 2007-02-27 Research In Motion Limited Mailbox pooling pre-empting criteria
US8838754B1 (en) 2004-01-26 2014-09-16 Qualcomm Incorporated Mobile device with a management forest in a device management network
US7984485B1 (en) 2004-01-29 2011-07-19 Hewlett-Packard Development Company, L.P. Ingestion interface for transferring update package containers into a distribution network
WO2005079334A2 (en) * 2004-02-12 2005-09-01 Bitfone Corporation Device management network that facilitates selective billing
US7400878B2 (en) * 2004-02-26 2008-07-15 Research In Motion Limited Computing device with environment aware features
US7739679B2 (en) * 2004-04-06 2010-06-15 Hewlett-Packard Development Company, L.P. Object ordering tool for facilitating generation of firmware update friendly binary image
US7818679B2 (en) * 2004-04-20 2010-10-19 Microsoft Corporation Method, system, and apparatus for enabling near real time collaboration on an electronic document through a plurality of computer systems
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US7395446B2 (en) * 2004-05-03 2008-07-01 Microsoft Corporation Systems and methods for the implementation of a peer-to-peer rule-based pull autonomous synchronization system
US7971199B1 (en) 2004-05-03 2011-06-28 Hewlett-Packard Development Company, L.P. Mobile device with a self-updating update agent in a wireless network
US7693880B1 (en) * 2004-05-06 2010-04-06 Symantec Operating Corporation Mirrored storage at the file system level
US7689982B1 (en) 2004-05-07 2010-03-30 Hewlett-Packard Development Company, L.P. Transparent linker profiler tool with profile database
US7543118B1 (en) 2004-05-07 2009-06-02 Hewlett-Packard Development Company, L.P. Multiple variance platform for the management of mobile devices
CN1324844C (en) * 2004-06-02 2007-07-04 中兴通讯股份有限公司 Method for providing data to members of network synchronously by gating system
US7657886B1 (en) 2004-06-03 2010-02-02 Hewlett-Packard Development Company, L.P. Mobile device with a MMU for faster firmware updates in a wireless network
CA2578791C (en) 2004-07-09 2014-11-18 Aol Llc Disambiguating ambiguous characters
US20060026248A1 (en) * 2004-07-29 2006-02-02 International Business Machines Corporation System and method for preparing electronic mails
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US20060080354A1 (en) * 2004-08-27 2006-04-13 Nokia Corporation System for selecting data from a data store based on utility of the data
WO2006045102A2 (en) 2004-10-20 2006-04-27 Seven Networks, Inc. Method and apparatus for intercepting events in a communication system
US8010082B2 (en) 2004-10-20 2011-08-30 Seven Networks, Inc. Flexible billing architecture
US7706781B2 (en) 2004-11-22 2010-04-27 Seven Networks International Oy Data security in a mobile e-mail service
FI117152B (en) 2004-12-03 2006-06-30 Seven Networks Internat Oy E-mail service provisioning method for mobile terminal, involves using domain part and further parameters to generate new parameter set in list of setting parameter sets, if provisioning of e-mail service is successful
US7712086B2 (en) * 2004-12-15 2010-05-04 Microsoft Corporation Portable applications
US7904923B2 (en) * 2005-01-05 2011-03-08 Rovi Solutions Corporation Applications registry for a television environment
US20060175271A1 (en) * 2005-01-31 2006-08-10 Emrey David A Apparatus and method of holding a golf score card and writing instrument, and golf bag and system incorporating the same
ATE434787T1 (en) * 2005-02-11 2009-07-15 Sap Ag CONTEXT MENU PROVIDING DEPENDENCY RELATIONSHIPS FOR ITEMS OF DIFFERENT TYPES
US7818350B2 (en) * 2005-02-28 2010-10-19 Yahoo! Inc. System and method for creating a collaborative playlist
US7752633B1 (en) 2005-03-14 2010-07-06 Seven Networks, Inc. Cross-platform event engine
US7716661B2 (en) * 2005-03-16 2010-05-11 Microsoft Corporation Embedded device update service
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
US7796742B1 (en) 2005-04-21 2010-09-14 Seven Networks, Inc. Systems and methods for simplified provisioning
US7523146B2 (en) 2005-06-21 2009-04-21 Apple Inc. Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment
US8495015B2 (en) * 2005-06-21 2013-07-23 Apple Inc. Peer-to-peer syncing in a decentralized environment
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US8626128B2 (en) 2011-04-07 2014-01-07 Microsoft Corporation Enforcing device settings for mobile devices
US8010997B2 (en) * 2005-06-30 2011-08-30 Microsoft Corporation Enforcing device settings for mobile devices
US8069166B2 (en) 2005-08-01 2011-11-29 Seven Networks, Inc. Managing user-to-user contact with inferred presence information
US7706822B2 (en) * 2005-08-24 2010-04-27 Motorola, Inc. Timing synchronization and beacon generation for mesh points operating in a wireless mesh network
US8989718B2 (en) 2005-09-14 2015-03-24 Millennial Media, Inc. Idle screen advertising
US7660581B2 (en) 2005-09-14 2010-02-09 Jumptap, Inc. Managing sponsored content based on usage history
US10592930B2 (en) 2005-09-14 2020-03-17 Millenial Media, LLC Syndication of a behavioral profile using a monetization platform
US8832100B2 (en) 2005-09-14 2014-09-09 Millennial Media, Inc. User transaction history influenced search results
US8156128B2 (en) 2005-09-14 2012-04-10 Jumptap, Inc. Contextual mobile content placement on a mobile communication facility
US9076175B2 (en) 2005-09-14 2015-07-07 Millennial Media, Inc. Mobile comparison shopping
US7577665B2 (en) * 2005-09-14 2009-08-18 Jumptap, Inc. User characteristic influenced search results
US9703892B2 (en) 2005-09-14 2017-07-11 Millennial Media Llc Predictive text completion for a mobile communication facility
US8195133B2 (en) 2005-09-14 2012-06-05 Jumptap, Inc. Mobile dynamic advertisement creation and placement
US8660891B2 (en) 2005-11-01 2014-02-25 Millennial Media Interactive mobile advertisement banners
US8615719B2 (en) 2005-09-14 2013-12-24 Jumptap, Inc. Managing sponsored content for delivery to mobile communication facilities
US20110153428A1 (en) * 2005-09-14 2011-06-23 Jorey Ramer Targeted advertising to specified mobile communication facilities
US7752209B2 (en) 2005-09-14 2010-07-06 Jumptap, Inc. Presenting sponsored content on a mobile communication facility
US8805339B2 (en) 2005-09-14 2014-08-12 Millennial Media, Inc. Categorization of a mobile user profile based on browse and viewing behavior
US10911894B2 (en) 2005-09-14 2021-02-02 Verizon Media Inc. Use of dynamic content generation parameters based on previous performance of those parameters
US8311888B2 (en) 2005-09-14 2012-11-13 Jumptap, Inc. Revenue models associated with syndication of a behavioral profile using a monetization platform
US8238888B2 (en) 2006-09-13 2012-08-07 Jumptap, Inc. Methods and systems for mobile coupon placement
US8131271B2 (en) 2005-11-05 2012-03-06 Jumptap, Inc. Categorization of a mobile user profile based on browse behavior
US8364521B2 (en) 2005-09-14 2013-01-29 Jumptap, Inc. Rendering targeted advertisement on mobile communication facilities
US7702318B2 (en) 2005-09-14 2010-04-20 Jumptap, Inc. Presentation of sponsored content based on mobile transaction event
US20110145076A1 (en) * 2005-09-14 2011-06-16 Jorey Ramer Mobile Campaign Creation
US7676394B2 (en) 2005-09-14 2010-03-09 Jumptap, Inc. Dynamic bidding and expected value
US20110313853A1 (en) 2005-09-14 2011-12-22 Jorey Ramer System for targeting advertising content to a plurality of mobile communication facilities
US9058406B2 (en) 2005-09-14 2015-06-16 Millennial Media, Inc. Management of multiple advertising inventories using a monetization platform
US7912458B2 (en) 2005-09-14 2011-03-22 Jumptap, Inc. Interaction analysis and prioritization of mobile content
US20070061242A1 (en) * 2005-09-14 2007-03-15 Jorey Ramer Implicit searching for mobile content
US8103545B2 (en) 2005-09-14 2012-01-24 Jumptap, Inc. Managing payment for sponsored content presented to mobile communication facilities
US8812526B2 (en) 2005-09-14 2014-08-19 Millennial Media, Inc. Mobile content cross-inventory yield optimization
US8364540B2 (en) 2005-09-14 2013-01-29 Jumptap, Inc. Contextual targeting of content using a monetization platform
US8819659B2 (en) 2005-09-14 2014-08-26 Millennial Media, Inc. Mobile search service instant activation
US8209344B2 (en) 2005-09-14 2012-06-26 Jumptap, Inc. Embedding sponsored content in mobile applications
US8433297B2 (en) 2005-11-05 2013-04-30 Jumptag, Inc. System for targeting advertising content to a plurality of mobile communication facilities
US8688671B2 (en) 2005-09-14 2014-04-01 Millennial Media Managing sponsored content based on geographic region
US20110106614A1 (en) * 2005-11-01 2011-05-05 Jumptap, Inc. Mobile User Characteristics Influenced Search Results
US9471925B2 (en) 2005-09-14 2016-10-18 Millennial Media Llc Increasing mobile interactivity
US8229914B2 (en) 2005-09-14 2012-07-24 Jumptap, Inc. Mobile content spidering and compatibility determination
US9201979B2 (en) 2005-09-14 2015-12-01 Millennial Media, Inc. Syndication of a behavioral profile associated with an availability condition using a monetization platform
US7769764B2 (en) 2005-09-14 2010-08-03 Jumptap, Inc. Mobile advertisement syndication
US8503995B2 (en) 2005-09-14 2013-08-06 Jumptap, Inc. Mobile dynamic advertisement creation and placement
US8302030B2 (en) 2005-09-14 2012-10-30 Jumptap, Inc. Management of multiple advertising inventories using a monetization platform
US10038756B2 (en) 2005-09-14 2018-07-31 Millenial Media LLC Managing sponsored content based on device characteristics
US8666376B2 (en) 2005-09-14 2014-03-04 Millennial Media Location based mobile shopping affinity program
US7644128B2 (en) * 2005-10-14 2010-01-05 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for operating an electronic mail or messaging system in which information associated with an attachment is sent to a destination for evaluation before sending the attachment
US8175585B2 (en) 2005-11-05 2012-05-08 Jumptap, Inc. System for targeting advertising content to a plurality of mobile communication facilities
US7536419B2 (en) * 2005-11-15 2009-05-19 Microsoft Corporation Slave replica member
US7917487B2 (en) * 2005-12-13 2011-03-29 Microsoft Corporation Portable application registry
US7917607B2 (en) * 2005-12-30 2011-03-29 Sap Ag Software management systems and methods, including use of such systems and methods in a provider-tenant environment
US7689593B2 (en) * 2005-12-30 2010-03-30 Sap Ag Systems and methods for accessing a shared space in a provider-tenant environment
US8108796B2 (en) * 2006-02-10 2012-01-31 Motorola Mobility, Inc. Method and system for operating a device
US7769395B2 (en) 2006-06-20 2010-08-03 Seven Networks, Inc. Location-based operations and messaging
US8769033B2 (en) * 2006-03-03 2014-07-01 Microsoft Corporation Identifying changes to media-device contents
GB2450048B (en) * 2006-04-03 2010-12-29 Beinsync Ltd Peer to peer syncronization system and method
US7890646B2 (en) * 2006-04-27 2011-02-15 Microsoft Corporation Synchronization orchestration
US8161075B1 (en) 2006-05-31 2012-04-17 Verizon Laboratories Inc. Systems and methods for managing integrated and customizable data
US8645321B1 (en) * 2006-05-31 2014-02-04 Verizon Data Services Llc Asynchronous data integrity for enterprise computing
US8209676B2 (en) 2006-06-08 2012-06-26 Hewlett-Packard Development Company, L.P. Device management in a network
US20080005195A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Versioning synchronization for mass p2p file sharing
US7953785B2 (en) * 2006-06-30 2011-05-31 Microsoft Corporation Content synchronization in a file sharing environment
KR100823273B1 (en) * 2006-06-30 2008-04-21 삼성전자주식회사 Method and apparatus for synchronizing Content Directory Service in Universal Plug and Play network
US20080052279A1 (en) * 2006-07-12 2008-02-28 Sunil Marolia Device and network capable of providing personalized services
WO2008014454A2 (en) 2006-07-27 2008-01-31 Hewlett-Packard Development Company, L.P. User experience and dependency management in a mobile device
US7711797B1 (en) * 2006-07-31 2010-05-04 Juniper Networks, Inc. Optimizing batch size for prefetching data over wide area networks
US7577691B2 (en) * 2006-08-02 2009-08-18 Microsoft Corporation Extending hierarchical synchronization scopes to non-hierarchical scenarios
US20080079539A1 (en) * 2006-08-15 2008-04-03 Daley Robert C Friends Finder Service for a Mobile Device in a Network
US7689547B2 (en) * 2006-09-06 2010-03-30 Microsoft Corporation Encrypted data search
KR100902505B1 (en) * 2006-09-21 2009-06-15 삼성전자주식회사 Method and apparatus for synchonizing CDS objects of UPnP Media Servers
US8005903B2 (en) * 2006-12-13 2011-08-23 International Business Machines Corporation Method and apparatus for managing locally stored E-mail messages
US7933869B2 (en) * 2006-12-29 2011-04-26 Sap Ag Method and system for cloning a tenant database in a multi-tenant system
US20080162587A1 (en) * 2006-12-29 2008-07-03 Ulrich Auer Server synchronization for maintenance activities
US8069184B2 (en) * 2006-12-29 2011-11-29 Sap Ag Systems and methods to implement extensibility of tenant content in a provider-tenant environment
US8321593B2 (en) * 2007-01-08 2012-11-27 Apple Inc. Time synchronization of media playback in multiple processes
US7657769B2 (en) * 2007-01-08 2010-02-02 Marcy M Scott N-way synchronization of data
US7966321B2 (en) * 2007-01-17 2011-06-21 Google Inc. Presentation of local results
US8966407B2 (en) * 2007-01-17 2015-02-24 Google Inc. Expandable homepage modules
US8005822B2 (en) * 2007-01-17 2011-08-23 Google Inc. Location in search queries
US8326858B2 (en) * 2007-01-17 2012-12-04 Google Inc. Synchronization of fixed and mobile data
US7966309B2 (en) 2007-01-17 2011-06-21 Google Inc. Providing relevance-ordered categories of information
US8266706B2 (en) * 2007-01-26 2012-09-11 Microsoft Corporation Cryptographically controlling access to documents
US20080222296A1 (en) * 2007-03-07 2008-09-11 Lisa Ellen Lippincott Distributed server architecture
US8161149B2 (en) 2007-03-07 2012-04-17 International Business Machines Corporation Pseudo-agent
US20080252932A1 (en) * 2007-04-13 2008-10-16 Microsoft Corporation Techniques to synchronize information between fidelity domains
US7984068B2 (en) 2007-05-25 2011-07-19 Google Inc. Providing profile information to partner content providers
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US8693494B2 (en) 2007-06-01 2014-04-08 Seven Networks, Inc. Polling
US20130110777A1 (en) * 2007-06-06 2013-05-02 Kunio Kamimura Synchronization of data edited in parallel
US8595186B1 (en) * 2007-06-06 2013-11-26 Plusmo LLC System and method for building and delivering mobile widgets
RU2438263C2 (en) * 2007-06-19 2011-12-27 Квэлкомм Инкорпорейтед Methods and apparatus for dataset synchronisation in wireless environment
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US8887298B2 (en) * 2007-07-13 2014-11-11 Microsoft Corporation Updating and validating documents secured cryptographically
US8887297B2 (en) * 2007-07-13 2014-11-11 Microsoft Corporation Creating and validating cryptographically secured documents
US8584140B2 (en) * 2007-09-21 2013-11-12 Presenceid, Inc. Systems and methods for receiving and sending messages about changes to data attributes
US8463279B2 (en) * 2007-09-26 2013-06-11 Qualcomm Incorporated Methods and apparatus for application network-server determination for removable module-based wireless devices
US8831575B2 (en) * 2007-09-26 2014-09-09 Qualcomm Incorporated Apparatus and methods associated with open market handsets
US20090112915A1 (en) * 2007-10-31 2009-04-30 Microsoft Corporation Class configuration for locally cached remote data binding
US8516058B2 (en) * 2007-11-02 2013-08-20 International Business Machines Corporation System and method for dynamic tagging in email
US8364181B2 (en) 2007-12-10 2013-01-29 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8793305B2 (en) 2007-12-13 2014-07-29 Seven Networks, Inc. Content delivery to a mobile device from a content service
US8107921B2 (en) 2008-01-11 2012-01-31 Seven Networks, Inc. Mobile virtual network operator
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US8185495B2 (en) * 2008-02-01 2012-05-22 Microsoft Corporation Representation of qualitative object changes in a knowledge based framework for a multi-master synchronization environment
US8219595B2 (en) 2008-02-14 2012-07-10 Hewlett-Packard Development Company, L.P. System and method for efficient remote data access for server management
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US8156243B2 (en) 2008-03-31 2012-04-10 Amazon Technologies, Inc. Request routing
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US8787947B2 (en) 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
US8078158B2 (en) 2008-06-26 2011-12-13 Seven Networks, Inc. Provisioning applications for a mobile device
US8010487B2 (en) * 2008-06-27 2011-08-30 Microsoft Corporation Synchronization and collaboration within peer-to-peer and client/server environments
US9912740B2 (en) 2008-06-30 2018-03-06 Amazon Technologies, Inc. Latency measurement in resource requests
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US7925782B2 (en) 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
US8103718B2 (en) * 2008-07-31 2012-01-24 Microsoft Corporation Content discovery and transfer between mobile communications nodes
US8649276B2 (en) * 2008-07-31 2014-02-11 Microsoft Corporation Content transfer
US8209437B2 (en) * 2008-09-25 2012-06-26 Rockliffe Systems, Inc. Personal information management data synchronization
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
SE533007C2 (en) 2008-10-24 2010-06-08 Ilt Productions Ab Distributed data storage
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US8065417B1 (en) 2008-11-17 2011-11-22 Amazon Technologies, Inc. Service provider registration by a content broker
US8073940B1 (en) 2008-11-17 2011-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8060616B1 (en) 2008-11-17 2011-11-15 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US7934161B1 (en) 2008-12-09 2011-04-26 Jason Adam Denise Electronic search interface technology
US8788655B2 (en) 2008-12-19 2014-07-22 Openpeak Inc. Systems for accepting and approving applications and methods of operation of same
US20100159898A1 (en) * 2008-12-19 2010-06-24 Openpeak, Inc. Services platform for networked devices that provide telephony and digital media services
US8713173B2 (en) 2008-12-19 2014-04-29 Openpeak Inc. System and method for ensuring compliance with organizational policies
US8745213B2 (en) 2008-12-19 2014-06-03 Openpeak Inc. Managed services platform and method of operation of same
US8615581B2 (en) 2008-12-19 2013-12-24 Openpeak Inc. System for managing devices and method of operation of same
US8650290B2 (en) 2008-12-19 2014-02-11 Openpeak Inc. Portable computing device and method of operation of same
US8612582B2 (en) 2008-12-19 2013-12-17 Openpeak Inc. Managed services portals and method of operation of same
US8856322B2 (en) 2008-12-19 2014-10-07 Openpeak Inc. Supervisory portal systems and methods of operation of same
KR101528266B1 (en) * 2009-01-05 2015-06-11 삼성전자 주식회사 Portable terminal and method for offering application thereof
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US20100268784A1 (en) * 2009-04-17 2010-10-21 Marc Henness Data synchronization system and method
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
JP5494346B2 (en) * 2009-11-26 2014-05-14 株式会社Jvcケンウッド Information display device, information display device control method, and program
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US8891380B2 (en) * 2010-02-26 2014-11-18 Qualcomm Incorporated Systems and methods for synchronizing filter records
TW201209697A (en) 2010-03-30 2012-03-01 Michael Luna 3D mobile user interface with configurable workspace management
EP2712149B1 (en) 2010-04-23 2019-10-30 Compuverde AB Distributed data storage
SG185048A1 (en) * 2010-04-30 2012-12-28 Now Technologies Ip Ltd Content management apparatus
US8266102B2 (en) * 2010-05-26 2012-09-11 International Business Machines Corporation Synchronization of sequential access storage components with backup catalog
KR20110136169A (en) * 2010-06-14 2011-12-21 엔에이치엔(주) Search system and method using search library
US8515979B2 (en) * 2010-06-18 2013-08-20 Verizon Patent And Licensing, Inc. Cross application execution service
CA2806557C (en) 2010-07-26 2014-10-07 Michael Luna Mobile application traffic optimization
PL3407673T3 (en) 2010-07-26 2020-05-18 Seven Networks, Llc Mobile network traffic coordination across multiple applications
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
CA2806548C (en) 2010-07-26 2015-03-31 Seven Networks, Inc. Distributed implementation of dynamic wireless traffic policy
US9977819B2 (en) * 2010-08-09 2018-05-22 Ianywhere Solutions, Inc. Sharing data on mobile devices
US8756272B1 (en) 2010-08-26 2014-06-17 Amazon Technologies, Inc. Processing encoded content
US8924528B1 (en) 2010-09-28 2014-12-30 Amazon Technologies, Inc. Latency measurement in resource requests
US8930513B1 (en) 2010-09-28 2015-01-06 Amazon Technologies, Inc. Latency measurement in resource requests
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US10097398B1 (en) 2010-09-28 2018-10-09 Amazon Technologies, Inc. Point of presence management in request routing
US8938526B1 (en) 2010-09-28 2015-01-20 Amazon Technologies, Inc. Request routing management based on network components
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US9560130B2 (en) * 2010-09-30 2017-01-31 Microsoft Technology Licensing, Llc Presenting availability statuses of synchronized objects
US8650658B2 (en) 2010-10-25 2014-02-11 Openpeak Inc. Creating distinct user spaces through user identifiers
US8612700B1 (en) 2010-10-29 2013-12-17 Symantec Corporation Method and system of performing block level duplications of cataloged backup data
US8204953B2 (en) 2010-11-01 2012-06-19 Seven Networks, Inc. Distributed system for cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US9060032B2 (en) 2010-11-01 2015-06-16 Seven Networks, Inc. Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
US9330196B2 (en) 2010-11-01 2016-05-03 Seven Networks, Llc Wireless traffic management system cache optimization using http headers
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
EP2635973A4 (en) 2010-11-01 2014-01-15 Seven Networks Inc Caching adapted for mobile application behavior and network conditions
US8484314B2 (en) 2010-11-01 2013-07-09 Seven Networks, Inc. Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US8326985B2 (en) 2010-11-01 2012-12-04 Seven Networks, Inc. Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
US8166164B1 (en) 2010-11-01 2012-04-24 Seven Networks, Inc. Application and network-based long poll request detection and cacheability assessment therefor
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US20120303476A1 (en) * 2010-11-09 2012-11-29 Openpeak Inc. Communication devices, networks, services and accompanying methods
US20120124062A1 (en) * 2010-11-12 2012-05-17 Microsoft Corporation Application Transfer Protocol
EP3422775A1 (en) 2010-11-22 2019-01-02 Seven Networks, LLC Optimization of resource polling intervals to satisfy mobile device requests
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
CA2798523C (en) 2010-11-22 2015-02-24 Seven Networks, Inc. Aligning data transfer to optimize connections established for transmission over a wireless network
US9424002B2 (en) 2010-12-03 2016-08-23 Microsoft Technology Licensing, Llc Meta-application framework
US9391949B1 (en) 2010-12-03 2016-07-12 Amazon Technologies, Inc. Request routing processing
GB2501416B (en) 2011-01-07 2018-03-21 Seven Networks Llc System and method for reduction of mobile network traffic used for domain name system (DNS) queries
US9075893B1 (en) * 2011-02-25 2015-07-07 Amazon Technologies, Inc. Providing files with cacheable portions
US9084105B2 (en) 2011-04-19 2015-07-14 Seven Networks, Inc. Device resources sharing for network resource conservation
WO2012149434A2 (en) 2011-04-27 2012-11-01 Seven Networks, Inc. Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US20120278431A1 (en) 2011-04-27 2012-11-01 Michael Luna Mobile device which offloads requests made by a mobile application to a remote entity for conservation of mobile device and network resources and methods therefor
US20150242470A1 (en) * 2011-05-27 2015-08-27 AVG Netherlands B.V. Systems and methods for recommending software applications
US9519726B2 (en) * 2011-06-16 2016-12-13 Amit Kumar Surfacing applications based on browsing activity
US8984581B2 (en) 2011-07-27 2015-03-17 Seven Networks, Inc. Monitoring mobile application activities for malicious traffic on a mobile device
CN102289477A (en) * 2011-07-29 2011-12-21 深圳市五巨科技有限公司 Method and device for screening page data of mobile terminal
US8645978B2 (en) 2011-09-02 2014-02-04 Compuverde Ab Method for data maintenance
US8769138B2 (en) 2011-09-02 2014-07-01 Compuverde Ab Method for data retrieval from a distributed data storage system
US8612405B1 (en) 2011-09-30 2013-12-17 Emc Corporation System and method of dynamic data object upgrades
US9164751B2 (en) * 2011-09-30 2015-10-20 Emc Corporation System and method of rolling upgrades of data traits
US8695060B2 (en) 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
CA2769773C (en) * 2011-11-04 2018-01-09 Gemcom Software International Inc. System and method for data communication over a network
US8918503B2 (en) 2011-12-06 2014-12-23 Seven Networks, Inc. Optimization of mobile traffic directed to private networks and operator configurability thereof
EP2789138B1 (en) 2011-12-06 2016-09-14 Seven Networks, LLC A mobile device and method to utilize the failover mechanisms for fault tolerance provided for mobile traffic management and network/device resource conservation
US9277443B2 (en) 2011-12-07 2016-03-01 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
EP2788889A4 (en) 2011-12-07 2015-08-12 Seven Networks Inc Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
US20130159511A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. System and method for generating a report to a network operator by distributing aggregation of data
WO2013090821A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
US9832095B2 (en) 2011-12-14 2017-11-28 Seven Networks, Llc Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic
GB2499306B (en) 2012-01-05 2014-10-22 Seven Networks Inc Managing user interaction with an application on a mobile device
US9203864B2 (en) 2012-02-02 2015-12-01 Seven Networks, Llc Dynamic categorization of applications for network access in a mobile network
US9326189B2 (en) 2012-02-03 2016-04-26 Seven Networks, Llc User as an end point for profiling and optimizing the delivery of content and data in a wireless network
US8904009B1 (en) 2012-02-10 2014-12-02 Amazon Technologies, Inc. Dynamic content delivery
US10021179B1 (en) 2012-02-21 2018-07-10 Amazon Technologies, Inc. Local resource delivery network
US9083743B1 (en) 2012-03-21 2015-07-14 Amazon Technologies, Inc. Managing request routing information utilizing performance information
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US10263899B2 (en) 2012-04-10 2019-04-16 Seven Networks, Llc Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network
US9552414B2 (en) * 2012-05-22 2017-01-24 Quixey, Inc. Dynamic filtering in application search
CN103425704B (en) 2012-05-24 2017-07-21 阿里巴巴集团控股有限公司 Application interface provides method and device
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US8775631B2 (en) 2012-07-13 2014-07-08 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US9356980B2 (en) 2012-07-31 2016-05-31 At&T Intellectual Property I, L.P. Distributing communication of a data stream among multiple devices
US9525659B1 (en) 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US9135048B2 (en) 2012-09-20 2015-09-15 Amazon Technologies, Inc. Automated profiling of resource usage
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
CN102968445B (en) * 2012-10-23 2016-03-30 北京奇虎科技有限公司 Based on the application call method and apparatus of browser input
US9161258B2 (en) 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
US20140143201A1 (en) * 2012-11-20 2014-05-22 International Business Machines Corporation Dynamic content file synchronization
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US9307493B2 (en) 2012-12-20 2016-04-05 Seven Networks, Llc Systems and methods for application management of mobile device radio state promotion and demotion
US9271238B2 (en) 2013-01-23 2016-02-23 Seven Networks, Llc Application or context aware fast dormancy
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US8750123B1 (en) 2013-03-11 2014-06-10 Seven Networks, Inc. Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network
US11263221B2 (en) 2013-05-29 2022-03-01 Microsoft Technology Licensing, Llc Search result contexts for application launch
US10430418B2 (en) * 2013-05-29 2019-10-01 Microsoft Technology Licensing, Llc Context-based actions from a source application
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US9633037B2 (en) * 2013-06-13 2017-04-25 Box, Inc Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US9569536B2 (en) 2013-12-17 2017-02-14 Microsoft Technology Licensing, Llc Identifying similar applications
ES2545974B1 (en) * 2014-03-17 2016-04-27 Bankinter, S.A. Automatic and customized protection system for mobile applications
US20160071040A1 (en) 2014-09-05 2016-03-10 Openpeak Inc. Method and system for enabling data usage accounting through a relay
US9350818B2 (en) 2014-09-05 2016-05-24 Openpeak Inc. Method and system for enabling data usage accounting for unreliable transport communication
US9100390B1 (en) 2014-09-05 2015-08-04 Openpeak Inc. Method and system for enrolling and authenticating computing devices for data usage accounting
US8938547B1 (en) 2014-09-05 2015-01-20 Openpeak Inc. Method and system for data usage accounting in a computing device
US9232013B1 (en) 2014-09-05 2016-01-05 Openpeak Inc. Method and system for enabling data usage accounting
US9621650B2 (en) * 2014-09-30 2017-04-11 Google Inc Mobile application state identifier framework
US9454354B2 (en) 2014-12-09 2016-09-27 Google Inc. Automatic discovery and retrieval of interoperable applications
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9887932B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9887931B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US10616179B1 (en) 2015-06-25 2020-04-07 Amazon Technologies, Inc. Selective routing of domain name system (DNS) requests
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US9965604B2 (en) 2015-09-10 2018-05-08 Microsoft Technology Licensing, Llc De-duplication of per-user registration data
US10069940B2 (en) 2015-09-10 2018-09-04 Microsoft Technology Licensing, Llc Deployment meta-data based applicability targetting
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US20170154066A1 (en) * 2015-11-30 2017-06-01 International Business Machines Corporation Subscription service for monitoring changes in remote content
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10768920B2 (en) * 2016-06-15 2020-09-08 Microsoft Technology Licensing, Llc Update coordination in a multi-tenant cloud computing environment
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10505961B2 (en) 2016-10-05 2019-12-10 Amazon Technologies, Inc. Digitally signed network address
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
CN110224979B (en) * 2019-04-30 2022-01-18 视联动力信息技术股份有限公司 Data processing method and device
US11531611B2 (en) * 2019-07-29 2022-12-20 Ncr Corporation Auditing-as-a-service

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887254A (en) * 1996-04-26 1999-03-23 Nokia Mobile Phones Limited Methods and apparatus for updating the software of a mobile terminal using the air interface
US5926624A (en) * 1996-09-12 1999-07-20 Audible, Inc. Digital information library and delivery system with logic for generating files targeted to the playback device
US6169909B1 (en) * 1997-07-14 2001-01-02 Nec Corporation Mobile communication system with re-connect function for non-speech data communications
US6170060B1 (en) * 1997-10-03 2001-01-02 Audible, Inc. Method and apparatus for targeting a digital information playback device
US6199076B1 (en) * 1996-10-02 2001-03-06 James Logan Audio program player including a dynamic program selection controller

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838727A (en) * 1991-02-15 1998-11-17 Schlumberger Technology Corporation Method and apparatus for transmitting and receiving digital data over a bandpass channel
JPH06216935A (en) 1993-01-18 1994-08-05 Fujitsu Ltd Electronic mail system
JP3168756B2 (en) * 1993-02-24 2001-05-21 ミノルタ株式会社 Email management method of email system
US5395619A (en) * 1993-03-03 1995-03-07 Liposome Technology, Inc. Lipid-polymer conjugates and liposomes
US5491800A (en) 1993-12-20 1996-02-13 Taligent, Inc. Object-oriented remote procedure call networking system
US5835911A (en) 1994-02-08 1998-11-10 Fujitsu Limited Software distribution and maintenance system and method
US6564321B2 (en) * 1995-04-28 2003-05-13 Bobo Ii Charles R Systems and methods for storing, delivering, and managing messages
US5757669A (en) * 1995-05-31 1998-05-26 Netscape Communications Corporation Method and apparatus for workgroup information replication
US6339787B1 (en) * 1995-11-30 2002-01-15 Stampede Technologies, Inc. Apparatus and method for increasing speed in a network file/object oriented server/client system
US5903723A (en) * 1995-12-21 1999-05-11 Intel Corporation Method and apparatus for transmitting electronic mail attachments with attachment references
US5771355A (en) 1995-12-21 1998-06-23 Intel Corporation Transmitting electronic mail by either reference or value at file-replication points to minimize costs
US5815663A (en) * 1996-03-15 1998-09-29 The Robert G. Uomini And Louise B. Bidwell Trust Distributed posting system using an indirect reference protocol
US6412017B1 (en) * 1996-07-01 2002-06-25 Microsoft Corporation Urgent replication facility
US6460058B2 (en) * 1996-12-06 2002-10-01 Microsoft Corporation Object-oriented framework for hyperlink navigation
US5835727A (en) 1996-12-09 1998-11-10 Sun Microsystems, Inc. Method and apparatus for controlling access to services within a computer network
US5987504A (en) * 1996-12-31 1999-11-16 Intel Corporation Method and apparatus for delivering data
US6026410A (en) * 1997-02-10 2000-02-15 Actioneer, Inc. Information organization and collaboration tool for processing notes and action requests in computer systems
US6029171A (en) * 1997-02-10 2000-02-22 Actioneer, Inc. Method and apparatus for group action processing between users of a collaboration system
US6173311B1 (en) * 1997-02-13 2001-01-09 Pointcast, Inc. Apparatus, method and article of manufacture for servicing client requests on a network
US5999932A (en) * 1998-01-13 1999-12-07 Bright Light Technologies, Inc. System and method for filtering unsolicited electronic mail messages using data matching and heuristic processing
US6421707B1 (en) * 1998-02-13 2002-07-16 Lucent Technologies Inc. Wireless multi-media messaging communications method and apparatus
JP3175692B2 (en) * 1998-04-28 2001-06-11 日本電気株式会社 Data linking system between computer and portable terminal and data linking method
US6105063A (en) 1998-05-05 2000-08-15 International Business Machines Corp. Client-server system for maintaining application preferences in a hierarchical data structure according to user and user group or terminal and terminal group contexts
US6256666B1 (en) * 1998-07-14 2001-07-03 International Business Machines Corp. Method and system for remotely managing electronic mail attachments
US6275850B1 (en) * 1998-07-24 2001-08-14 Siemens Information And Communication Networks, Inc. Method and system for management of message attachments
US6477543B1 (en) * 1998-10-23 2002-11-05 International Business Machines Corporation Method, apparatus and program storage device for a client and adaptive synchronization and transformation server
US6411685B1 (en) * 1999-01-29 2002-06-25 Microsoft Corporation System and method for providing unified messaging to a user with a thin web browser
US6505236B1 (en) * 1999-04-30 2003-01-07 Thinmail, Inc. Network-based mail attachment storage system and method
US6430576B1 (en) * 1999-05-10 2002-08-06 Patrick Gates Distributing and synchronizing objects
US6725281B1 (en) * 1999-06-11 2004-04-20 Microsoft Corporation Synchronization of controlled device state using state table and eventing in data-driven remote device control model
US6360252B1 (en) * 1999-09-20 2002-03-19 Fusionone, Inc. Managing the transfer of e-mail attachments to rendering devices other than an original e-mail recipient
US6505214B1 (en) * 1999-09-28 2003-01-07 Microsoft Corporation Selective information synchronization based on implicit user designation
US6493742B1 (en) * 1999-12-13 2002-12-10 Weddingchannel.Com, Inc. System and method for providing internet accessible registries
US6344853B1 (en) * 2000-01-06 2002-02-05 Alcone Marketing Group Method and apparatus for selecting, modifying and superimposing one image on another
US6745024B1 (en) * 2000-01-10 2004-06-01 Qualcomm Incorporated System and method for preparing and sending an electronic mail communication using a wireless communications device
US6471707B1 (en) * 2001-05-11 2002-10-29 Biomet Bone screw having bioresorbable proximal shaft portion

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887254A (en) * 1996-04-26 1999-03-23 Nokia Mobile Phones Limited Methods and apparatus for updating the software of a mobile terminal using the air interface
US5926624A (en) * 1996-09-12 1999-07-20 Audible, Inc. Digital information library and delivery system with logic for generating files targeted to the playback device
US6199076B1 (en) * 1996-10-02 2001-03-06 James Logan Audio program player including a dynamic program selection controller
US6169909B1 (en) * 1997-07-14 2001-01-02 Nec Corporation Mobile communication system with re-connect function for non-speech data communications
US6170060B1 (en) * 1997-10-03 2001-01-02 Audible, Inc. Method and apparatus for targeting a digital information playback device

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2380358A (en) * 2001-09-28 2003-04-02 Nokia Corp Capacity management
US6842839B2 (en) 2001-09-28 2005-01-11 Nokia Corporation Capacity management
GB2418325A (en) * 2001-09-28 2006-03-22 Nokia Corp Capacity management in the storage of content and descriptor files
GB2380358B (en) * 2001-09-28 2006-04-05 Nokia Corp Capacity management
GB2418325B (en) * 2001-09-28 2006-06-14 Nokia Corp Capacity management
FR2835332A1 (en) * 2002-01-30 2003-08-01 Jean Francois Berthier Creation of dynamic applications and maintenance of databases for sales or field personnel linking to a central location via PDAs, mobile phones, etc., without any need for programming of the mobile terminal
WO2004081793A1 (en) * 2003-03-10 2004-09-23 Koninklijke Philips Electronics N.V. Content exchange between portable device and network
US10972761B2 (en) 2018-12-26 2021-04-06 Purdue Research Foundation Minimizing stall duration tail probability in over-the-top streaming systems
US11356712B2 (en) 2018-12-26 2022-06-07 At&T Intellectual Property I, L.P. Minimizing stall duration tail probability in over-the-top streaming systems

Also Published As

Publication number Publication date
US20010047363A1 (en) 2001-11-29
AU2001234773A1 (en) 2001-08-14
WO2001057733A1 (en) 2001-08-09
US6928467B2 (en) 2005-08-09
US6738766B2 (en) 2004-05-18
AU2001233303A1 (en) 2001-08-14
US20010042099A1 (en) 2001-11-15
AU2001239744A1 (en) 2001-08-14
WO2001058088A1 (en) 2001-08-09
US20010048728A1 (en) 2001-12-06
WO2001057694A1 (en) 2001-08-09
AU2001233266A1 (en) 2001-08-14

Similar Documents

Publication Publication Date Title
US6816944B2 (en) Apparatus and methods for providing coordinated and personalized application and data management for resource-limited mobile devices
WO2001057673A1 (en) Coordinated and personalized application and data management
US6954754B2 (en) Apparatus and methods for managing caches on a mobile device
US9594821B2 (en) Method and apparatus for synchronizing how data is stored in different data stores
US6721288B1 (en) Wireless mobile devices having improved operation during network unavailability
US6389460B1 (en) Method and apparatus for efficient storage and retrieval of objects in and from an object storage device
US20020156863A1 (en) Apparatus and methods for managing caches on a gateway
US20020174189A1 (en) Apparatus and methods for intelligently caching applications and data on a mobile device
JP3613550B2 (en) Web page acquisition service system, server, web page acquisition method, storage medium, and program transmission device
US6694335B1 (en) Method, computer readable medium, and system for monitoring the state of a collection of resources
RU2471227C2 (en) Peer-to-peer synchronisation assisted with service unit
AU2007313956B2 (en) Offline execution of Web based applications
EP1924046B1 (en) A system, method and device for negotiating the equipment information
CN101416183B (en) Method and system for maintaining current data for wireless devices
JP2006505047A (en) System and method for using a portal in a mobile device in blocked mode
WO2001053996A2 (en) Approach for managing and providing content to users
EP1488342A1 (en) Enhanced storing of personal content
JP2001522074A (en) Communication system and method
US20050215236A1 (en) Providing information for mobile users
TW437205B (en) An internet caching system and a method and an arrangement in such a system
EP1550034A2 (en) A system and method to re-synchronize client devices while refreshing them from a server
JPH1165905A (en) Www service system using homepage update history information
EP1880322A1 (en) System and method for adaptive remote file caching
KR100597586B1 (en) Data Synchronization method using Session Management
WO1998020426A9 (en) External cache for on-line resources

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP