Life cycle management of user-selected applications on wireless communications devices

Tools and techniques for performing life cycle management of user-selected applications on wireless communications devices are described herein. In part, the tools provide machine-readable media for presenting to the subscriber a list of available applications for installation on the device, and for receiving selections from the subscriber of one or more of the applications. Additionally, the tools provide methods for selling advertising space on the devices.

BACKGROUND

As wireless communications devices become more powerful and sophisticated, an increasing number of applications are becoming available for these devices. Additionally, different makes and models of such devices continue to proliferate. As the market for such devices expands, different types of customers may consider purchasing and using these devices, and installing different applications on those devices.

Typically, the customers manually install the applications onto the devices, and thereafter maintain the applications manually, including un-installing applications. In some cases, installing and managing these applications may be a challenge, particularly for inexperienced or casual customers. For example, it may be difficult for a customer to determine whether his or her device meets the minimum configuration specified for a given application of interest. Once the application is installed, customers may not be aware of subsequent updates, bug fixes, or upgrades available for the application, unless the customers proactively search for these items.

SUMMARY

Tools and techniques for performing life cycle management of user-selected applications on wireless communications devices are described herein. In part, the tools provide machine-readable media for presenting to the subscriber a list of available applications for installation on the device, and for receiving selections from the subscriber of one or more of the applications. The tools provide a mechanism for removing applications from the device. Additionally, the tools provide methods for selling advertising space on the devices.

DETAILED DESCRIPTION

FIG. 1illustrates an overall environment100for performing life cycle management of user-selected applications on wireless communications devices. A customer or user, illustrated inFIG. 1as a “subscriber”102may use a communication device, illustrated inFIG. 1as a “subscriber device”104, and may obtain services related thereto. It should be appreciated that the term “subscriber” includes not only a user with a subscription to a communication service for a communication device but also an authorized user of the communication service for the communication device. Moreover, although one subscriber and one subscriber device are shown inFIG. 1for simplicity of illustration, it should be appreciated that any number of subscribers and subscriber devices may be used.

The device104may include one or more processors106that communicate with one or more instances of machine-readable or computer-readable storage media108. The media108may store software that may be loaded into the processor106and executed, thereby causing the device104to perform the various functions described herein. More specifically, the media108may store one or more applications110.FIG. 1shows two applications110A and110N for convenience only, but the media108may contain any number of applications.

The applications110may be characterized as core functions, represented generally at block112, or as subscriber-selected functions, represented generally at block114. Generally, the core functions112may be installed on the device104as a minimum configuration, and may include applications related to authenticating subscribers, registering the devices on communications networks, handling over the devices from one cell or network to another, providing voice communications and voice mail services, or the like.

The subscriber-selected functions114may provide extra features additional to the core functions112. The subscriber102may select one or more of these functions for installation on the device104, either at the time of purchasing the device104or some time afterwards. Examples of the subscriber-selected functions114may include applications related to e-mailing, voice over IP (VoIP) functions, instant messaging (IMing), chat clients, location, video on demand, multi-player gaming or the like.

The media108may include a menu presentation module116that assembles a menu containing one or more available applications118for selection and installation on the device104. The menu presentation module116may present the menu to the subscriber using the device104. The available applications118may correspond to the subscriber-selected functions114. By selecting one or more of the available applications presented on the menu, the subscriber may configure the device104to perform any of the subscriber-selected functions114.FIG. 1shows two available applications118A and118N for convenience of illustration only, but the environment100may include any number of available applications.

One or more application providers120may provide the available applications118to a communications services provider122. In the course of obtaining rights to use the device104and accessing services related thereto, the subscriber102may interact or contract with the services provider. In turn, the services provider122may have relationships with one or more of the application providers120. The application providers120may be related or unrelated to the services provider122. For example, one or more of the application providers120may be third-party software vendors, relative to the services provider.

The device104may be responsive to subscriber input, selecting one or more of the available applications, for installation. In this manner, the environment100enables the subscriber102to customize the device with applications118suited to his or her particular purposes.

The applications118may include standalone client applications that reside and execute only on the device104, or may include client applications that interact with one or more server applications on the communication services provider122. Additionally, the client applications118may interact with one or more server applications provided by third parties, with these server applications accessible through a network associated with the communication services provider122.

Having described the environment100withFIG. 1, the discussion now turns to a description of methods related to selling advertising space on the wireless communications devices, now presented withFIG. 2.

FIG. 2illustrates components and flows related to methods for selling advertising space on the wireless communications devices. As described above inFIG. 1, the subscribers102A and102N may obtain corresponding devices104A and104N from the services provider122. The devices104A and104N may include respective advertisement presentation modules202A and202N (collectively, advertisement presentation modules202). These advertisement presentation modules may be similar to the menu presentation module116shown inFIG. 1. However, the advertisement presentation module202A may present one or more advertisements204A and204N (collectively, advertisements204) to the subscriber102A via the device104A, and the advertisement presentation module202N may present one or more advertisements206A and206N (collectively, advertisements206) to the subscriber102N via the device104N.

One or more advertisers208may provide the advertisements204and206, through the services provider122.FIG. 2shows two advertisers208A and208N for convenience only, but any number of advertisers could be included. In exchange for placing their advertisements before the subscribers102via the devices104, the advertisers208may provide respective payments210A and210N to the services provider.

In addition, the services provider122may intelligently select advertisements to be presented to the subscribers by querying a database212. For example, the database212may store information reflecting past transactions conducted between the services provider and the subscribers102. The database212may store demographic profiles of the subscribers. In other instances, the database212may store information pertaining to relationships with third parties. For example, the services provider and such third parties may enter into branding or marketing arrangements, so that the customers of the third parties may subscribe to the services offered by the services provider on some set of terms.

In any event, the services provider may query the database212with some identifier associated with a given subscriber, denoted generally as query214. In response to the query, the database may return one or more ads that are selected specifically for the subscriber, based on, for example, preferences or past history associated with the subscriber. These ads may be provisioned onto the device, so that when the subscriber first powers-on the device, or at any time afterwards, the ads are presented on the device.

Having described the components and data flows inFIG. 2, the discussion now turns to a description a plurality of different profiles that may be supported by the subscriber devices104, now presented withFIG. 3.

FIG. 3illustrates a plurality of different profiles302that may be supported by the subscriber devices104. For example only, but not limitation,FIG. 3shows an example subscriber device104associated with two profiles302A and302N, but single instances of the subscriber devices could support any number of different profiles. For example, a subscriber could configure his or her device with a profile for work-related use, and a profile for personal use. In other examples, the subscriber may define profiles pertaining to volunteer work, charitable activities, board-of-directors positions, or the like.

The various profiles302may be associated with one or more applications304and306that are available under the different profiles302. For example, a subscriber may, use an enterprise e-mail application provided by his or her employer for work purposes, but may use a more basic e-mail application for personal correspondence. In any event,FIG. 3shows the profile302A as associated with any number of applications304A and304N, and the profile302N as associated with any number of applications306A and306N.

The applications304and306may be associated with respective address books or other forms of contact lists, denoted generally at308and310. More specifically,FIG. 3shows the application304A associated with an address book308A, and the application304N associated with an address book308N.FIG. 3also shows the application306A associated with an address book310A, and the application306N associated with an address book310N.

The various address books308and/or310may include various instances of contact information312and/or314. This contact information may generally take any form suitable for addressing voice or data communications to a person, or for receiving such communications from a person. For example, the contact information may include phone numbers (e.g.,316A and316N, collectively316), addresses (e.g.,318A and318N, collectively318), or the like. The addresses318may take the form of network addresses, IP addresses, e-mail addresses, street address, Global Positioning Satellite coordinates or any other convenient form.

At any given time, the subscriber102may make one or more of the profiles302active, as denoted by blocks320. When different ones of the profiles are active, the applications and address books corresponding to the active profiles are available for execution. For example, if the subscriber102has defined a profile302for work-related purposes, the subscriber may have that work-related profile active whenever the subscriber is “on call” to respond to work-related matters.

Having described the profiles in connection withFIG. 3, the discussion now turns to a description of how these profiles may be used to handle incoming or outgoing communications, now presented withFIGS. 4 and 5.

FIG. 4illustrates a process400that may be performed when the subscriber devices (e.g.,104) receive terminating or incoming communications. While the process400is described in connection with certain components illustrated herein, it is noted that some or all of the process400may be performed with other components without departing from the scope of the description herein.

Block402represents receiving the incoming communication at the subscriber devices. These communications may take the form of incoming voice calls arriving via one or more circuit-switched or packet-switched communications network, or may be data communications (e.g., audio or video streams, e-mails, or the like).

Block404represents obtaining a telephone number, network address (as might be used in VoIP communications), or other similar identifier, indicating where the incoming communication is directed. For example, if an incoming voice call is directed to (555) 555-1212, then block404may include obtaining this dialed number. Block404may thus include using the Dialed Number Information Service (DNIS), or other equivalents.

Block406represents searching one or more profiles associated with the device that receives the incoming communication.FIG. 3shows examples of the profiles at302. More specifically, block406may include searching contact information records (e.g.,312and/or314) for any contact that matches the incoming identifier obtained in block404.

Decision block408may include evaluating whether the incoming identifier was located in any of the profiles. If not, the process400takes No branch410to block412. In block412, the process400may report this condition to the subscriber, and prompt the subscriber for instructions. In some instances, the process400may activate a default mode for the device, as represented generally in block414. In block416, the process400may start an application associated with this default mode. In these instances, the process400may omit the notification shown in block412, but may instead perform block414and/or block416without providing the notification.

From block408, if the incoming identifier was located in one of the profiles, then the process400takes Yes branch418to block420. Block420represents placing the device into a mode corresponding to the profile in which the incoming identifier was located. For example, referring briefly toFIG. 3, assume that the incoming identifier of the phone number (555) 555-1212 was located under the profile302A. In this scenario, block420may include placing the device into its business or professional mode.

Block422represents activating one or more applications in response to locating the incoming identifier in blocks406and408. For example, assume that the profile302A is associated with a business or professional mode, and, as such, is associated with one or more enterprise-type applications304. Block422may include activating these applications so that the subscriber may readily use them to respond or process the incoming communication.

FIG. 5illustrates a process500that may be performed when the wireless communications devices initiate outgoing communications. While the process500is described in connection with certain components illustrated herein, it is noted that some or all of the process500may be performed with other components without departing from the scope of the description herein.

Block502represents enabling the subscriber to configure the device into one of a plurality of different operating modes (e.g., business, personal, or the like) and select an application with which to initiate the outgoing communication, using a device such as the device104. Block502may include enabling the user to select a profile in which the device is to operate. Examples of profiles are shown inFIG. 3at320.

Block504represents loading any address books, contact lists, or similar structures for presentation to the subscriber. Block504may include loading the entries in the address book into a menu structure for review and selection by the subscriber.

Block506represents presenting the list of contacts to the subscriber. The contacts may be associated with one or more instances of contact information (e.g., telephone numbers, network or IP addresses, e-mail addresses, chat or IM names, or the like). Block506may include presenting these instances of contact information.

Block508represents receiving a selection of one of the contacts, as a destination or target of the outgoing communication. In instances where a given contact is associated with more than one instance of contact information, block508may include enabling the subscriber to select the contact information to use for the outgoing communication.

Finally, block512represents creating and sending a call detail record relating to the outgoing communication.

Having described the process flows withFIGS. 4 and 5, the discussion now turns to a description of illustrative servers that may be included in the communication services provider, now presented withFIG. 6.

FIG. 6illustrates example components of the communications service provider122, suitable for supporting life cycle management of user-selected applications on wireless communications devices. The device104may communicate with the provider122through a wireless access point602, which generally functions to provide a gateway into a broadband communications network. For example, the access point602may be implemented as a wireless router that is compliant with WiFi (i.e., IEEE 802.11) or WIMAX (i.e., IEEE 802.16) specifications to operate within unlicensed communication frequencies. Additionally, other implementations of the access point602may operate within licensed communication spectrum with a variety of broadband wireless IP protocols: (e.g., WiMax, UMTS/HSDPA, CDMA EVDO, EDGE, and the like).

The communications service provider122may include one or more application servers, as shown inFIG. 6. The configuration shown inFIG. 6is chosen for convenience only, but not to limit possible implementations of the communications service provider122. More specifically, the various servers are shown only for ease of reference in describing different illustrative functions, and these functions could be combined or redistributed among different servers without departing from the scope and spirit of the description herein.

Turning to the servers in more detail, some of the servers may be related to core functions, such as those represented inFIG. 1at block112. For example, a registration and authentication application server604may handle core functions such as registering and authenticating the device104onto communication networks. A mobility management handover application server606may administer the handing over of the devices104from one cell to another as the devices move geographically. A VoIP application server608may store and distribute voice or data packets related to ongoing conversations, in implementations using the Voice of IP protocol. A menu application server610may control the display and choices of applications that are available to the subscriber to download. A billing application server612maintains billing and call detail records relating to the various subscribers102. As the subscribers originate outgoing communications and/or receive in coming communications, the billing server612updates call detail records accordingly.

An application life cycle maintenance management server614administers subscriber-selected functions, such as those represented inFIG. 1at block114. Generally, the management server614enables the subscribers102to configure their devices104as most appropriate for their intended uses, enabling the subscribers to download and install particular applications. Further details relating to functions performed by the management server614are now provided withFIG. 7.

An advertising application server616may store the advertisements that are presented to the subscribers102via the devices104. Examples of advertisements are shown inFIGS. 2at204and206.FIG. 2also shows example advertisement presentation modules at202. The advertising application server616may, for example, push advertising content to the advertisement presentation modules on the devices104.

A location application server618may store and track the locations of various subscriber devices104. In this manner, the location application server may enable the communication services provider to monitor the locations of the devices104at any particular time.

A video on demand application server620may store video content that may be streamed on demand to the subscriber device104. Thus, the video on demand application server may enable subscribers to access video content via the device104.

A multiplayer gaining application622may store gaming content, and enable subscribers to access the gaming content via the devices104. In some instances, the multiplayer gaming application may enable two or more of the subscribers to play games with one another, whether in adversarial or collaborative roles. In other instances, the multiplayer gaming application may enable single subscribers to access the gaming content on a more solitary basis.

FIG. 7illustrates several examples of functions that may be performed by the application life cycle maintenance management server614, as shown inFIG. 6. As represented generally in block702, the management server614may manage how the devices104are configured, for example, when the subscribers first obtain the devices104or at any time afterwards. More specifically, the configuration management block702may receive data representing a selection704made by a subscriber (e.g., the subscriber102) of one or more applications (e.g., the applications110A and110N) for installation on the device104.

The configuration management block702may pass the selection704through to a matching engine706, which determines whether the selected application may be installed on the device. The matching engine may receive data representing minimum configuration parameters708for different respective applications110. The matching engine may also receive data representing capabilities710of particular devices, such as the amount of available storage. It is assumed that the device104as shown inFIG. 7is associated with the subscriber102, such that the subscriber has requested to install an application onto the device.

The matching engine706may compare the configuration parameters708for a given application to the capabilities710of a given device, to determine whether the application may be installed on the device. Examples of these device capabilities may include memory capacity, processor speed, display capabilities, and the like. If the capabilities710of the given device match or exceed the configuration parameters708for the given application, then the application may be installed on the device. A match signal712may indicate whether the application may be installed on the device, and may pass from the matching engine to the configuration management block702.

If the match signal712indicates that the application may be installed on the device, the configuration management block702may so install the application, as represented at714. However, if the match signal712indicates that the application is not a match for the device as currently configured, the configuration block702may recommend that the subscriber delete one or more applications currently installed on the device, as represented at716. Additionally, the configuration block702may recommend that the subscriber upgrade to, a different device, as represented at718. In this latter scenario, the configuration block702may provision the upgraded device with the applications110previously selected by the subscriber.

Once the device is installed and configured with the selected applications, the management server614may administer any licensing issues related to these applications on an ongoing basis. Block720represents this license administration function. Typically, the subscriber, when installing applications onto the device, does not obtain ownership rights in the applications, but instead obtains a license to use the application. These license rights may be subject to the subscriber paying license fees and/or performing other obligations. These payments and other obligations may be tracked by the billing server612, shown inFIG. 6and carried forward toFIG. 7for convenience.

If the subscriber remains current on any license payments related to a given application, and performs any other obligations, then the license administration block720grants the subscriber continued access to the given application, as represented at722. However, if the subscriber is not current on the license payments related to a given application, or fails to perform any other obligations, then the license administration block720may send a notification to the subscriber, detailing what the subscriber may do to become current and maintain access to the applications. If the subscriber does not become current, the license administration block720may remove or disable the given application on the subscriber's device, as represented at724.

The management server614may also manage the client applications installed on the devices, as subsequent versions of those applications become available. For example, vendors providing those applications (e.g., the application providers120inFIG. 1) may introduce new features, fix bugs present in earlier versions, or the like. In any event, an application version management block726may receive data728representing versions of one or more applications currently installed on the device. The version management block726may also receive data730representing the newest versions of those applications. If the newest versions of the applications are not installed on the device, then the version management block726may push updated versions of the applications to the device. These updated versions are represented inFIG. 7at732. The updated versions732may be pushed to the devices104when the devices104are in communication with the services provider122and the management server614.

Having provided the above description, several observations are now noted. The tools and techniques described above for performing life cycle management of user-selected applications on wireless communications devices enable use of a client-services model for maintaining the applications on the devices, with the services provider122(and related components) assuming a server role, and the various devices104assuming a client role. Additionally, the services provider122and the management server614may provide a network-based, automated platform for configuring and managing application installed on a variety of subscriber devices, thereby relieving the subscribers from these tasks.

It is noted that the various modules and servers shown in the Figures herein may be implemented in hardware, software, or any combination thereof. Additionally, these modules and servers are shown as separate items only for convenience of reference and description, and these representations do not limit possible implementations of the teachings herein. Instead, various functions described with these modules and servers could be combined or separated as appropriate in a given implementation, without departing from the scope and spirit of the description herein.

CONCLUSION

Although tools and techniques for performing life cycle management of user-selected applications on wireless communications devices have been described in language specific to certain features and methods, it is to be understood that the features defined in the appended claims are not necessarily limited to the specific features and methods described. Rather, the specific features and methods are disclosed as illustrative forms of implementing the claimed subject matter.