WO2002001319A2 - Method and apparatus for autonomous memory usage optimization and downloading of software features - Google Patents

Method and apparatus for autonomous memory usage optimization and downloading of software features Download PDF

Info

Publication number
WO2002001319A2
WO2002001319A2 PCT/US2001/020315 US0120315W WO0201319A2 WO 2002001319 A2 WO2002001319 A2 WO 2002001319A2 US 0120315 W US0120315 W US 0120315W WO 0201319 A2 WO0201319 A2 WO 0201319A2
Authority
WO
WIPO (PCT)
Prior art keywords
feature
user
software code
processor
memory
Prior art date
Application number
PCT/US2001/020315
Other languages
French (fr)
Other versions
WO2002001319A3 (en
Inventor
Rafael J. Diaz
Original Assignee
Motorola 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 Motorola Inc. filed Critical Motorola Inc.
Priority to JP2002506389A priority Critical patent/JP2004527806A/en
Priority to AU2001273000A priority patent/AU2001273000A1/en
Priority to EP01952223A priority patent/EP1421772A4/en
Publication of WO2002001319A2 publication Critical patent/WO2002001319A2/en
Publication of WO2002001319A3 publication Critical patent/WO2002001319A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation

Definitions

  • the present invention relates generally to electronic devices with memory for storing programs and features, and in particular, to a method and apparatus for updating memory usage and features in a wireless electronic device.
  • Wireless communication devices are known and presently widely used. These devices include pagers, cellular telephones, personal digital assistants and other electronic devices.
  • wireless communication systems include portable or mobile subscriber units that communicate with fixed-end (i.e., not portable) systems that are geographically distributed or with other mobile subscriber units.
  • Most wireless communication devices presently include a processor or central processing unit and memory.
  • input and output devices are provided for a user interface, for example, a keyboard and a display.
  • the processor on the wireless communication device provides flexibility in that different stored programs are executed by the device to implement various features.
  • the memory provided on wireless communication devices typically includes a non-volatile memory as well as a volatile memory.
  • the non-volatile memory is used to store programs, for example, an operating system and applications and permanent and semi-permanent user data, such as address books, telephone numbers, etc.
  • the volatile memory is used by the processor for temporary storage in the execution of programs.
  • wireless communication devices are sold with a fixed set of stored programs in memory. The device manufacturer loads the stored programs into the device. Usually, only reprogramming by a manufacturer changes the stored programs. This limits the flexibility of the wireless communication device after initial manufacture. In particular, since memory is finite, the number and variety of features sold with a device must be limited. This often requires a user to purchase features that are not desirable and or not used. Moreover, feature updates are limited, since the device must be returned to a manufacturer for reprogramming.
  • One known method for increasing flexibility with communication devices is to supply the wireless communication device with a comprehensive set of features. Then, so-called "flex bits" are included with the device that may be set or reset via a wireless interface. The state of the flex bits determines whether a feature is enabled for use by the wireless communication device. While this solution provides some flexibility in the use of features, all possible features are required to be stored on the device, which is a non-optimal solution for the use of memory.
  • FIG. 1 is a block diagram of a wireless communication system with memory usage optimization and flexibility in accordance with the present invention.
  • FIG. 2 is a flow chart illustrating a method to optimize memory usage in accordance with the present invention.
  • FIG. 3 is a flow chart illustrating a method for downloading features to a wireless communication device in accordance with the present t invention.
  • a method and apparatus are provided for optimizing memory usage in an electronic device. More specifically, the method and apparatus free up memory space in the electronic device by deleting unused or undesirable features autonomously.
  • the features available for use on the device are monitored by the device to determine whether the features are actually utilized by a user. For example, an entry address for a particular feature is monitored by the processor on the device to determine whether the entry address is ever executed, reflecting whether the feature is ever utilized by a user. Preferably, the monitoring occurs over a predetermined period of time. Based on the utilization of the feature, the device determines whether the feature should continue to be made available to a user. This determination is alternatively automatic or performed with confirmation from the user.
  • the stored program code for execution of the feature is automatically deleted from the electronic device, making the space previously occupied by the feature available for use by another feature.
  • a fixed- end system requests or initiates the deletion of the feature using an over-the- air interface.
  • a method and apparatus are provided for down loading executable software code to an electronic device using a wireless or over-the-air interface.
  • a user is alerted to the availability of a new software feature by a broadcast message from a fixed-end system.
  • the electronic device receives executable software code via the wireless interface on the device.
  • the device is configured to execute the new software code.
  • reconfiguration of the electronic device includes updating a menu in a user interface and updating parameters to execute the new feature.
  • the wireless communication device then executes the downloaded software code.
  • FIG. 1 is a block diagram of a wireless communication system 100 in accordance with the present invention.
  • System 100 includes a wireless electronic device 102 and a fixed-end system 104.
  • Wireless communication device 102 and fixed-end system 104 communicate with each other via a wireless or over-the-air interface.
  • Wireless communication system 100 is alternatively a wireless telephone system, a paging system, a personal communication system or a combination of these.
  • Fixed-end system 104 includes a transceiver 106 and an antenna 108, which in combination implement an over-the-air or wireless interface for transmitting and receiving messages from devices 102.
  • Fixed-end system 104 includes, or has an interface to, a database 110 for storing a myriad of data, including stored programs for features for devices 102.
  • fixed-end system 104 is a processor-based device that uses stored programs to implement protocols for communicating with devices 102.
  • Fixed-end system 104 alternatively has interfaces to a telephone network and/or a data network, for example, the Internet, in accordance with the function of the wireless communication system 100.
  • Wireless communication device 102 includes a processor 112, a memory 114, a wireless interface 116 and an antenna 118.
  • Processor 112 is preferably a microprocessor that executes stored programs according to the function of device 102.
  • Memory 114 is coupled to processor 112 and stores code and data for device 102.
  • Wireless interface 116 is coupled to processor 112 and memory 114.
  • Wireless interface 116 includes a transmitter 120 and a receiver 122. In conjunction with antenna 118, transmitter 120 and receiver 122 implement a wireless interface for over-the-air communications in a manner well known to those of skill in the art.
  • memory 114 is optimized and updated to improve flexibility of device 102.
  • Memory 114 is partitioned in any suitable manner according to the function of device 102.
  • memory 114 includes nonvolatile and volatile components. Most preferably memory 114 includes a code space 124, a user space 126 and random access memory (RAM) 128.
  • Code space 124 is preferably nonvolatile RAM that is updateable, for example, electrically erasable, programmable, read-only memory (EEPROM) or FLASH memory.
  • Code space 124 is used to store executable software for device 102, including an operating system and application code.
  • the operating system and application code implement features for device 102.
  • the operating system and application code implement a menu-based user interface for a user to interact with device 102.
  • a display (not shown) and an input device, such as a keyboard (not shown) are included with device 102 for interaction with a user.
  • User space 126 is preferably updateable, nonvolatile memory, for example, FLASH memory.
  • User space 126 is used to store data that is unique to a particular user of device 102.
  • user space 126 includes an address book, and a list of phone numbers.
  • RAM 128 is preferably volatile RAM that is used for variables and other transient data utilized in the execution of stored programs by processor 112.
  • memory In prior wireless electronic devices, the memory, analogous to memory 114, is partitioned and loaded during the device manufacturing process. The configuration of the memory is not changed, except if the device is returned to the manufacturer for updating. This fixes the memory available to the processor as well as the features implemented in device. According to the present invention, memory 114 is reconfigured in accordance with use of certain features and updates to the features available for device 102. In particular, the features utilized by a user using device 102 are monitored to determine whether certain features should be deleted to free memory space on device 102. The new features are added to device 102 by updating the executable code on device 102 using wireless interface 116, thereby eliminating the need to return device 102 to a manufacturer. The operations required to implement these features are discussed below with respect to FIGS. 2 and 3.
  • Step 202 begins the autonomous process for deleting underutilized features to free memory space.
  • Feature utilization is preferably monitored for a predetermined period of time (202). More specifically, processor 112 executes a stored program that monitors an entry address for the executable code associated with the features available on device 102.
  • the predetermined period of time selected for monitoring feature utilization will vary depending upon device 102 and the functions and features associated therewith. Features may be monitored for hours, days, months or other periods of time. A preferred period of time for monitoring is one to two weeks.
  • features that are not readily utilized are identified as candidates for removal (204).
  • the algorithms selected to determine whether a feature is a candidate for removal will vary. A feature is identified as a candidate for removal based on no utilization or under utilization of the feature.
  • the user is queried to confirm whether or not a feature should be removed (206). Though optional, this step enhances a user's ability to customize the wireless communication device 102. Of course, if the user does not desire to have the identified feature removed, then no action is taken and monitoring continues. On the other hand, if the user confirms that the feature should be removed, then the software code, menu items and other parameters associated with the feature are removed from memory (208). In a preferred embodiment, updates are performed to the memory to reconfigure partitioning for the operating system such that the memory space freed by the deletion of code and parameters associated with the feature are made available for additional uses (210).
  • the fixed-end system is notified when a feature is removed (212).
  • the fixed-end system may use this information to update a database of subscriber features or to adjust billing that is associated with the feature.
  • the notification to the fixed-end system is accomplished via the wireless interface on device 102.
  • the software code and menu items associated with the feature are removed (208). No user confirmation is necessary. Removal of the software code and menu items (208) is followed by the reallocation of memory space (210), and optional notification of the removal of features to the fixed-end system (212). For the case where the communication system requests the removal of a feature (216), the user preferably receives a warning indicating that the feature will be removed (218) via wireless interface. Feature removal by the communication system or fixed-end system may be necessitated by a feature being obsolete or no longer supported. Following the warning of imminent removal, the software code, menu items and parameters associated with the feature are removed (208).
  • FIG. 3 is a flow chart illustrating a method for updating features on a wireless communication device by the addition of software code.
  • a manufacturer informs a wireless service provider of the availability of a new software feature or update (300). Any suitable form of communication, including electronic communication is used to notify the service provider of the available feature.
  • the manufacturer preferably uploads software code and associated documentation for the new features to a service providers database (302).
  • the service provider's database is equipped with the software code needed to update subscriber devices.
  • Distribution of the software to subscribers is preferably initiated by the service provider's fixed-end system broadcasting a message to the wireless devices indicating the availability of a new feature and any associated costs (304). This advantageously reduces the cost associated with individual notification of the availability of a particular feature to each subscriber. Algorithms are preferably employed, including acknowledgement or periodic rebroadcast or even individual messages to subscribers to ensure that subscribers are notified of features available for downloading.
  • subscribers are queried to determine if they desire to have the new feature (306).
  • demonstrations may be automatically provided to illustrate the desirability of the new feature to subscribers.
  • Device requirements including memory requirements are alternatively provided to subscribers.
  • a subscriber does not desire to accept a new feature immediately (308), the subscriber receives an offer to accept the new feature on a trial basis (309), as discussed further below.
  • an appropriate time for downloading software code for the new feature may be selected (312).
  • the user may be offered alternative times for download or a specific time for download may be indicated by the system.
  • the downloading occurs during a time when the wireless communication system is not busy. For example, subscribers may be instructed to leave their wireless communication devices on overnight for downloading during off-hours.
  • the wireless communication device receives the software code via the wireless interface (314). Documentation is downloaded if needed.
  • the code is made available for execution in the wireless device (316).
  • operating system parameters, new menus, and other parameters are updated to facilitate execution of the code and provide a user interface for the new features.
  • the software code is executed on the wireless device (318).
  • a trial version of the feature is offered to the user for a trial period, for example, 30 days (309). If the user does not accept the trial version, then no further action is taken (310). If the user accepts the trial version, then the fixed-end system or wireless communication device tracks the trial period (320) and confirms purchase or deletion of the feature at the end of the trial period (322). The trial period is tracked using a timer. If the feature is accepted, billing is completed and the feature is enabled for non-trial use (324). If the feature is not accepted, the feature is removed or otherwise made unavailable to the user (326).
  • memory on a wireless communication device is made available while the device is employed for use. Also, additional features are flexibly added to the wireless communication device without the need for a manufacturer to obtain the device for the update. Advantageously, the operation of the device is enhanced.

Abstract

A wireless communication device (102) monitors usage of certain features by a user of the device (202). If a feature is underutilized (204), a user may elect to have the feature deleted from memory (206), freeing the memory space for additional features (208). As an alternative to monitoring usage of certain features of a device, a communication system notifies a user that a feature will be deleted from the device (216). The device then deletes the feature, freeing the memory space for additional features (208). When a new feature is available for the wireless communication device, a message is broadcast to the device notifying users of the availability of the feature (304). If the user desires the new feature, the software code associated with the feature is downloaded to the communication device over the wireless interface (314). The device is then reconfigured to include the new feature for execution (316).

Description

METHOD AND APPARATUS FOR AUTONOMOUS MEMORY USAGE OPTIMIZATION AND DOWNLOADING OF SOFTWARE FEATURES
Field of the Invention The present invention relates generally to electronic devices with memory for storing programs and features, and in particular, to a method and apparatus for updating memory usage and features in a wireless electronic device.
Background of the Invention Wireless communication devices are known and presently widely used. These devices include pagers, cellular telephones, personal digital assistants and other electronic devices. Generally, wireless communication systems include portable or mobile subscriber units that communicate with fixed-end (i.e., not portable) systems that are geographically distributed or with other mobile subscriber units. Most wireless communication devices presently include a processor or central processing unit and memory. Also, input and output devices are provided for a user interface, for example, a keyboard and a display. The processor on the wireless communication device provides flexibility in that different stored programs are executed by the device to implement various features.
The memory provided on wireless communication devices typically includes a non-volatile memory as well as a volatile memory. In general, the non-volatile memory is used to store programs, for example, an operating system and applications and permanent and semi-permanent user data, such as address books, telephone numbers, etc. In general, the volatile memory is used by the processor for temporary storage in the execution of programs. In general, wireless communication devices are sold with a fixed set of stored programs in memory. The device manufacturer loads the stored programs into the device. Usually, only reprogramming by a manufacturer changes the stored programs. This limits the flexibility of the wireless communication device after initial manufacture. In particular, since memory is finite, the number and variety of features sold with a device must be limited. This often requires a user to purchase features that are not desirable and or not used. Moreover, feature updates are limited, since the device must be returned to a manufacturer for reprogramming.
One known method for increasing flexibility with communication devices is to supply the wireless communication device with a comprehensive set of features. Then, so-called "flex bits" are included with the device that may be set or reset via a wireless interface. The state of the flex bits determines whether a feature is enabled for use by the wireless communication device. While this solution provides some flexibility in the use of features, all possible features are required to be stored on the device, which is a non-optimal solution for the use of memory.
Therefore, a need exists for optimal memory usage and feature expansion in wireless communication devices.
__ Brief Description of the Drawings
FIG. 1 is a block diagram of a wireless communication system with memory usage optimization and flexibility in accordance with the present invention.
FIG. 2 is a flow chart illustrating a method to optimize memory usage in accordance with the present invention.
FIG. 3 is a flow chart illustrating a method for downloading features to a wireless communication device in accordance with the present t invention.
Detailed Description of the Preferred Embodiments Briefly, a method and apparatus are provided for optimizing memory usage in an electronic device. More specifically, the method and apparatus free up memory space in the electronic device by deleting unused or undesirable features autonomously. First, the features available for use on the device are monitored by the device to determine whether the features are actually utilized by a user. For example, an entry address for a particular feature is monitored by the processor on the device to determine whether the entry address is ever executed, reflecting whether the feature is ever utilized by a user. Preferably, the monitoring occurs over a predetermined period of time. Based on the utilization of the feature, the device determines whether the feature should continue to be made available to a user. This determination is alternatively automatic or performed with confirmation from the user. If the feature should not continue to be available to a user, the stored program code for execution of the feature is automatically deleted from the electronic device, making the space previously occupied by the feature available for use by another feature. As an alternative to monitoring the electronic device to determine whether a feature should be deleted, a fixed- end system requests or initiates the deletion of the feature using an over-the- air interface.
In accordance with another aspect of the present invention, a method and apparatus are provided for down loading executable software code to an electronic device using a wireless or over-the-air interface. Preferably, a user is alerted to the availability of a new software feature by a broadcast message from a fixed-end system. If desired, the electronic device receives executable software code via the wireless interface on the device. After the electronic device receives the software, the device is configured to execute the new software code. Where applicable, reconfiguration of the electronic device includes updating a menu in a user interface and updating parameters to execute the new feature. The wireless communication device then executes the downloaded software code. The software code is downloaded into spare memory included with the electronic device or downloaded into memory space made available on the electronic device as a result of memory optimization in accordance with the method and apparatus discussed above. By virtue of the ability to free memory space that is not used and download new features to a wireless communication device, (i.e.. without the need to return the communication device to a manufacturer for reprogramming) features are flexibly updated and use of the communication device is customized and optimized for the user. FIG. 1 is a block diagram of a wireless communication system 100 in accordance with the present invention. System 100 includes a wireless electronic device 102 and a fixed-end system 104. Wireless communication device 102 and fixed-end system 104 communicate with each other via a wireless or over-the-air interface. Though one device 102 and one fixed-end system 104 are shown in FIG. 1 , a plurality of devices 102 and fixed-end systems 104 are generally employed in wireless communication system 100. Wireless communication system 100 is alternatively a wireless telephone system, a paging system, a personal communication system or a combination of these.
Fixed-end system 104 includes a transceiver 106 and an antenna 108, which in combination implement an over-the-air or wireless interface for transmitting and receiving messages from devices 102. Fixed-end system 104 includes, or has an interface to, a database 110 for storing a myriad of data, including stored programs for features for devices 102. Preferably, fixed-end system 104 is a processor-based device that uses stored programs to implement protocols for communicating with devices 102. Fixed-end system 104 alternatively has interfaces to a telephone network and/or a data network, for example, the Internet, in accordance with the function of the wireless communication system 100.
Wireless communication device 102 includes a processor 112, a memory 114, a wireless interface 116 and an antenna 118. Processor 112 is preferably a microprocessor that executes stored programs according to the function of device 102. Memory 114 is coupled to processor 112 and stores code and data for device 102. Wireless interface 116 is coupled to processor 112 and memory 114. Wireless interface 116 includes a transmitter 120 and a receiver 122. In conjunction with antenna 118, transmitter 120 and receiver 122 implement a wireless interface for over-the-air communications in a manner well known to those of skill in the art. In accordance with the present invention, memory 114 is optimized and updated to improve flexibility of device 102. Memory 114 is partitioned in any suitable manner according to the function of device 102. Preferably, memory 114 includes nonvolatile and volatile components. Most preferably memory 114 includes a code space 124, a user space 126 and random access memory (RAM) 128. Code space 124 is preferably nonvolatile RAM that is updateable, for example, electrically erasable, programmable, read-only memory (EEPROM) or FLASH memory. Code space 124 is used to store executable software for device 102, including an operating system and application code. The operating system and application code implement features for device 102. Preferably, the operating system and application code implement a menu-based user interface for a user to interact with device 102. Typically, a display (not shown) and an input device, such as a keyboard (not shown) are included with device 102 for interaction with a user.
User space 126 is preferably updateable, nonvolatile memory, for example, FLASH memory. User space 126 is used to store data that is unique to a particular user of device 102. For example, user space 126 includes an address book, and a list of phone numbers.
RAM 128 is preferably volatile RAM that is used for variables and other transient data utilized in the execution of stored programs by processor 112.
In prior wireless electronic devices, the memory, analogous to memory 114, is partitioned and loaded during the device manufacturing process. The configuration of the memory is not changed, except if the device is returned to the manufacturer for updating. This fixes the memory available to the processor as well as the features implemented in device. According to the present invention, memory 114 is reconfigured in accordance with use of certain features and updates to the features available for device 102. In particular, the features utilized by a user using device 102 are monitored to determine whether certain features should be deleted to free memory space on device 102. The new features are added to device 102 by updating the executable code on device 102 using wireless interface 116, thereby eliminating the need to return device 102 to a manufacturer. The operations required to implement these features are discussed below with respect to FIGS. 2 and 3. Memory usage is optimized in accordance with the present invention by deleting software code associated with features that are not used or needed by a user. There are three alternatives for determining whether a feature should be removed. First, a user may simply request removal of a particular feature. Second, the communication system may request that a feature be removed from device 102. Third, the device autonomously monitors the usage of features to determine the underutilized features that should be removed. FIG. 2 illustrates the three alternatives, which are discussed below. Step 202 begins the autonomous process for deleting underutilized features to free memory space. Feature utilization is preferably monitored for a predetermined period of time (202). More specifically, processor 112 executes a stored program that monitors an entry address for the executable code associated with the features available on device 102. This is accomplished in any suitable manner, including having a table of entry addresses and associated features that are checked and monitored by processor 112 using a background process. Most preferably, a feature's entry address and exit address are monitored along with the time spent in the feature (as determined by the entry and exit addresses). This information is then stored.
The predetermined period of time selected for monitoring feature utilization will vary depending upon device 102 and the functions and features associated therewith. Features may be monitored for hours, days, months or other periods of time. A preferred period of time for monitoring is one to two weeks.
After the utilization of selected features is determined (202), features that are not readily utilized are identified as candidates for removal (204). The algorithms selected to determine whether a feature is a candidate for removal will vary. A feature is identified as a candidate for removal based on no utilization or under utilization of the feature.
In a preferred embodiment, prior to the actual removal of the code associated with a feature, the user is queried to confirm whether or not a feature should be removed (206). Though optional, this step enhances a user's ability to customize the wireless communication device 102. Of course, if the user does not desire to have the identified feature removed, then no action is taken and monitoring continues. On the other hand, if the user confirms that the feature should be removed, then the software code, menu items and other parameters associated with the feature are removed from memory (208). In a preferred embodiment, updates are performed to the memory to reconfigure partitioning for the operating system such that the memory space freed by the deletion of code and parameters associated with the feature are made available for additional uses (210).
Optionally, the fixed-end system is notified when a feature is removed (212). The fixed-end system may use this information to update a database of subscriber features or to adjust billing that is associated with the feature. Preferably, the notification to the fixed-end system is accomplished via the wireless interface on device 102.
Where the user requests the removal of a particular feature (214), the software code and menu items associated with the feature are removed (208). No user confirmation is necessary. Removal of the software code and menu items (208) is followed by the reallocation of memory space (210), and optional notification of the removal of features to the fixed-end system (212). For the case where the communication system requests the removal of a feature (216), the user preferably receives a warning indicating that the feature will be removed (218) via wireless interface. Feature removal by the communication system or fixed-end system may be necessitated by a feature being obsolete or no longer supported. Following the warning of imminent removal, the software code, menu items and parameters associated with the feature are removed (208). Removal of the code (208) is again followed by the reallocation of memory space (210) and optional notification of the removal of the feature (212). FIG. 3 is a flow chart illustrating a method for updating features on a wireless communication device by the addition of software code. First, in a typical arrangement, a manufacturer informs a wireless service provider of the availability of a new software feature or update (300). Any suitable form of communication, including electronic communication is used to notify the service provider of the available feature.
In conjunction with the notification (300), the manufacturer preferably uploads software code and associated documentation for the new features to a service providers database (302). In this manner, the service provider's database is equipped with the software code needed to update subscriber devices.
Distribution of the software to subscribers is preferably initiated by the service provider's fixed-end system broadcasting a message to the wireless devices indicating the availability of a new feature and any associated costs (304). This advantageously reduces the cost associated with individual notification of the availability of a particular feature to each subscriber. Algorithms are preferably employed, including acknowledgement or periodic rebroadcast or even individual messages to subscribers to ensure that subscribers are notified of features available for downloading.
Preferably, if the features are optional and not required, subscribers are queried to determine if they desire to have the new feature (306). In some cases demonstrations may be automatically provided to illustrate the desirability of the new feature to subscribers. Device requirements, including memory requirements are alternatively provided to subscribers.
If a subscriber does not desire to accept a new feature immediately (308), the subscriber receives an offer to accept the new feature on a trial basis (309), as discussed further below. On the other hand, if the subscriber accepts the new feature (308), then an appropriate time for downloading software code for the new feature may be selected (312). The user may be offered alternative times for download or a specific time for download may be indicated by the system. Preferably the downloading occurs during a time when the wireless communication system is not busy. For example, subscribers may be instructed to leave their wireless communication devices on overnight for downloading during off-hours. At the time selected for download, the wireless communication device receives the software code via the wireless interface (314). Documentation is downloaded if needed. After the software is received, the code is made available for execution in the wireless device (316). In particular, operating system parameters, new menus, and other parameters are updated to facilitate execution of the code and provide a user interface for the new features. After configuration, the software code is executed on the wireless device (318).
As an alternative to immediate purchase of the new feature (308), a trial version of the feature is offered to the user for a trial period, for example, 30 days (309). If the user does not accept the trial version, then no further action is taken (310). If the user accepts the trial version, then the fixed-end system or wireless communication device tracks the trial period (320) and confirms purchase or deletion of the feature at the end of the trial period (322). The trial period is tracked using a timer. If the feature is accepted, billing is completed and the feature is enabled for non-trial use (324). If the feature is not accepted, the feature is removed or otherwise made unavailable to the user (326).
By virtue of the present invention, memory on a wireless communication device is made available while the device is employed for use. Also, additional features are flexibly added to the wireless communication device without the need for a manufacturer to obtain the device for the update. Advantageously, the operation of the device is enhanced.
Whereas the present invention has been described with respect to specific embodiments thereof, it will be understood that various changes and modifications will be suggested to those skilled in the art and it is intended that the invention encompass such changes and modifications as fall within the scope of the appended claims.

Claims

Claims
1. A method for optimizing memory usage in an electronic device, the method comprising the steps of:
A) monitoring use of at least one feature by a user of the electronic device to determine the at least one feature's utilization;
B) determining based on the at least one feature's utilization whether the at least one feature stored in a memory in the electronic device should continue to be available to the user; and
C) deleting the at least one feature from the memory if the at least one feature should not continue to be available to the user.
2. The method of claim 1 further comprising the step of:
D) if the at least one feature is deleted, making a space occupied by the at least one feature in the memory available for use by another feature.
3. The method of claim 1 wherein step B further comprises:
B1) determining whether the at least one feature has been utilized by the user during a predetermined time; and
B2) if the at least one feature has not been utilized by the user during the predetermined time, then determining whether the at least one feature should continue to be available to the user.
4. The method of claim 3 wherein step B1 further comprises determining whether a processor in the electronic device has accessed an entry address for the at least one feature.
5. The method of claim 1 wherein the electronic device is at least one of a pager, wireless telephone and personal digital assistant.
6. An electronic device comprising: a processor; and a memory coupled to the processor that stores a plurality of software code associated with a plurality of features; wherein the processor: monitors use of a plurality of features by a user of the electronic device to determine a feature utilization; determines based on the feature utilization whether a feature of the plurality of features should continue to be available to the user; and deletes software code associated with the feature from the memory if the feature should not continue to be available to the user.
7. The device of claim 6 wherein the processor makes a space occupied in the memory by the software code associated with the feature available for use by another feature, if the feature is deleted.
8. The device of claim 6 wherein the processor determines whether the feature of the plurality of features should continue to be available to the user by: determining whether the feature has been utilized by the user during a predetermined time; and if the feature has not been utilized by the user during the predetermined time, then determining whether the feature should continue to be available to the user.
9. The device of claim 8 wherein the processor determines whether the user has utilized the feature by determining whether a processor in the electronic device has accessed an entry address for the feature.
10. The device of claim 6 wherein the electronic device is at least one of a pager, a wireless telephone, and a personal digital assistant.
11. A method for downloading software to a wireless communication device, the method comprising the steps of: A) receiving software code via an over-the-air interface; and
B) executing the software code.
12. The method of claim 11 wherein step A further comprises the steps of: A1 ) alerting a user via a message sent over the over-the-air interface of availability of the software code for downloading; and
A2) confirming the user is willing to accept the software code.
13. The method of claim 11 wherein step A further comprises the steps of: A1 ) alerting a plurality of users via a broadcast message sent over the over-the-air interface of availability of the software code for downloading; and
A2) confirming that a user of the wireless communication device is willing to accept the software code.
14. The method of claim 11 wherein step B further comprises the step of updating a user interface to allow execution of the software code.
15. The method of claim 11 wherein step A further comprises receiving the software code at a predetermined time.
16. The method of claim 15 wherein step A further comprises the user scheduling the predetermined time.
17. The method of claim 12 wherein step A1 further comprises alerting the user of a cost associated with the software code.
18. The method of claim 13 wherein step A1 further comprises alerting the plurality of users of a cost associated with the software code.
19. A wireless communication device comprising: a processor; a memory coupled to the processor; an over-the-air interface coupled to the processor for communicating data; wherein software code is received over the over-the-air interface and the processor executes the software received via the over-the-air interface.
20. The device of claim 19 wherein prior to receiving the software code over the over-the-air interface, a message is received over the over-the-air interface that alerts the user to the availability of the software code for downloading and the processor request confirmation that the user is willing to accept the software code for downloading.
PCT/US2001/020315 2000-06-26 2001-06-26 Method and apparatus for autonomous memory usage optimization and downloading of software features WO2002001319A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2002506389A JP2004527806A (en) 2000-06-26 2001-06-26 Method and apparatus for autonomous optimization of memory utilization and download of software functions
AU2001273000A AU2001273000A1 (en) 2000-06-26 2001-06-26 Method and apparatus for autonomous memory usage optimization and downloading of software features
EP01952223A EP1421772A4 (en) 2000-06-26 2001-06-26 Method and apparatus for autonomous memory usage optimization and downloading of software features

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US60267700A 2000-06-26 2000-06-26
US09/602,677 2000-06-26

Publications (2)

Publication Number Publication Date
WO2002001319A2 true WO2002001319A2 (en) 2002-01-03
WO2002001319A3 WO2002001319A3 (en) 2004-03-11

Family

ID=24412330

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/020315 WO2002001319A2 (en) 2000-06-26 2001-06-26 Method and apparatus for autonomous memory usage optimization and downloading of software features

Country Status (6)

Country Link
EP (1) EP1421772A4 (en)
JP (1) JP2004527806A (en)
KR (1) KR20040016767A (en)
CN (1) CN1559137A (en)
AU (1) AU2001273000A1 (en)
WO (1) WO2002001319A2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1465042A1 (en) * 2003-03-31 2004-10-06 NTT DoCoMo, Inc. Information processing device and program
EP1557056A1 (en) * 2002-11-01 2005-07-27 Nokia Corporation Disposable mini-applications
EP1826670A1 (en) * 2006-02-24 2007-08-29 Research In Motion Limited System and method for managing applications on a computing device having limited storage space
US20080046880A1 (en) * 2006-08-17 2008-02-21 Samsung Electronics Co. Ltd. Method for managing internal software of terminal through device management server
CN100384270C (en) * 2002-12-18 2008-04-23 英华达(南京)科技有限公司 Method for customizing mobile telephone applications
CN100412846C (en) * 2002-12-19 2008-08-20 高通股份有限公司 Downloadable configuring application for a wireless device
EP2126743A1 (en) * 2007-03-21 2009-12-02 Yahoo! Inc. In-page installer
US9191276B2 (en) 2002-12-19 2015-11-17 Qualcomm Incorporated Downloadable configuring application for a wireless device

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625731A (en) 2008-07-10 2010-01-13 鸿富锦精密工业(深圳)有限公司 Program bionic aging system and aging method thereof
CN101650787A (en) * 2008-08-13 2010-02-17 鸿富锦精密工业(深圳)有限公司 Bionic ageing system and ageing method thereof
JP5560213B2 (en) * 2011-02-10 2014-07-23 株式会社Nttドコモ Information providing server and information providing method
US11204806B2 (en) 2018-06-03 2021-12-21 Apple Inc. Systems and methods for user adaptive resource management

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5896566A (en) * 1995-07-28 1999-04-20 Motorola, Inc. Method for indicating availability of updated software to portable wireless communication units
US6029065A (en) * 1997-05-05 2000-02-22 Nokia Mobile Phones, Ltd. Remote feature code programming for mobile stations
US6035189A (en) * 1996-06-06 2000-03-07 Nokia Mobile Phone, Ltd. Method for using services offered by a telecommunication network, a telecommunication system and a terminal for it

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0825791A1 (en) * 1996-08-15 1998-02-25 BRITISH TELECOMMUNICATIONS public limited company Mobile telephone system
US6151643A (en) * 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
EP0959635A1 (en) * 1998-05-20 1999-11-24 Alcatel Connectionless downloading of software to wireless terminals
GB2341951A (en) * 1998-09-22 2000-03-29 Ibm Thin-client remote object execution
US6928468B2 (en) * 1999-10-29 2005-08-09 Koninklijke Philips Electronics N.V. System for broadcasting software applications and portable data communications device for use in such a system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5896566A (en) * 1995-07-28 1999-04-20 Motorola, Inc. Method for indicating availability of updated software to portable wireless communication units
US6035189A (en) * 1996-06-06 2000-03-07 Nokia Mobile Phone, Ltd. Method for using services offered by a telecommunication network, a telecommunication system and a terminal for it
US6029065A (en) * 1997-05-05 2000-02-22 Nokia Mobile Phones, Ltd. Remote feature code programming for mobile stations

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1421772A2 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1557056A1 (en) * 2002-11-01 2005-07-27 Nokia Corporation Disposable mini-applications
EP1557056A4 (en) * 2002-11-01 2009-08-19 Nokia Corp Disposable mini-applications
EP2451138A1 (en) * 2002-11-01 2012-05-09 Nokia Corp. Disposable mini-applications
CN100384270C (en) * 2002-12-18 2008-04-23 英华达(南京)科技有限公司 Method for customizing mobile telephone applications
CN100412846C (en) * 2002-12-19 2008-08-20 高通股份有限公司 Downloadable configuring application for a wireless device
US9191276B2 (en) 2002-12-19 2015-11-17 Qualcomm Incorporated Downloadable configuring application for a wireless device
US7899973B2 (en) 2003-03-31 2011-03-01 Ntt Docomo, Inc. Information processing device and program
EP1465042A1 (en) * 2003-03-31 2004-10-06 NTT DoCoMo, Inc. Information processing device and program
EP1826670A1 (en) * 2006-02-24 2007-08-29 Research In Motion Limited System and method for managing applications on a computing device having limited storage space
EP1983430A1 (en) 2006-02-24 2008-10-22 Research In Motion Limited System and method for managing applications on a computing device having limited storage space
US20080046880A1 (en) * 2006-08-17 2008-02-21 Samsung Electronics Co. Ltd. Method for managing internal software of terminal through device management server
US8191061B2 (en) * 2006-08-17 2012-05-29 Samsung Electronics Co., Ltd. Method for managing internal software of terminal through device management server
US8065675B2 (en) 2007-03-21 2011-11-22 Yahoo! Inc. In-page installer
EP2126743A4 (en) * 2007-03-21 2010-08-18 Yahoo Inc In-page installer
EP2126743A1 (en) * 2007-03-21 2009-12-02 Yahoo! Inc. In-page installer

Also Published As

Publication number Publication date
AU2001273000A1 (en) 2002-01-08
WO2002001319A3 (en) 2004-03-11
JP2004527806A (en) 2004-09-09
EP1421772A2 (en) 2004-05-26
EP1421772A4 (en) 2007-03-21
CN1559137A (en) 2004-12-29
KR20040016767A (en) 2004-02-25

Similar Documents

Publication Publication Date Title
US9992265B2 (en) Method for updating an application program on a wireless terminal in a controlled manner
EP1410189B1 (en) System and method for organizing field upgradable wireless communication device software
US7752616B2 (en) Update system capable of updating software
US8479180B2 (en) Maintenance of over the air upgradeable wireless communication device software
US7542758B2 (en) Field downloading of wireless device software
US7143407B2 (en) System and method for executing wireless communications device dynamic instruction sets
EP1697836B1 (en) Mobile device programming system and method
US7657884B2 (en) Electronic device supporting multiple update agents
US20040068721A1 (en) Network for updating firmware and / or software in wireless communication devices
US20100095293A1 (en) Network for updating firmware and / or software in wireless communication devices
US20070015538A1 (en) Network and method for the localization and customization of new mobile devices employing SIM/smart card
EP1421772A2 (en) Method and apparatus for autonomous memory usage optimization and downloading of software features
JP2003216430A (en) Software automatic renewal system and terminal
CA2267549A1 (en) Loading and unloading of application components
US20050177658A1 (en) Data organization in a smart card
KR20020005127A (en) Method of updating an application program in a mobile terminal
KR100879547B1 (en) Firmware update method in a mobile telephone and a mobile telephone using the same
US20030022665A1 (en) System and method for organizing field upgradable wireless communication device software
KR20090037642A (en) Method for operating firmware over the air and apparatus thereof
US9554268B2 (en) System and method for updating persistent data in a wireless communications device
KR100538627B1 (en) Method for partupgrading sofrware of wireless terminal
EP1624371B1 (en) Method for managing storage area in a portable radio communication equipment
CN100412846C (en) Downloadable configuring application for a wireless device
JP2003229974A (en) System and method for updating software installed in portable telephone terminal
CN113849198A (en) Method, device, equipment and medium for uninstalling application program

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 01816637.7

Country of ref document: CN

AK Designated states

Kind code of ref document: A2

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: A2

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
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWE Wipo information: entry into national phase

Ref document number: 1020027017639

Country of ref document: KR

ENP Entry into the national phase

Ref document number: 2002 506389

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2001952223

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020027017639

Country of ref document: KR

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWP Wipo information: published in national office

Ref document number: 2001952223

Country of ref document: EP