US20140289314A1 - Systems for distributing applications and methods of operation of same - Google Patents
Systems for distributing applications and methods of operation of same Download PDFInfo
- Publication number
- US20140289314A1 US20140289314A1 US14/268,734 US201414268734A US2014289314A1 US 20140289314 A1 US20140289314 A1 US 20140289314A1 US 201414268734 A US201414268734 A US 201414268734A US 2014289314 A1 US2014289314 A1 US 2014289314A1
- Authority
- US
- United States
- Prior art keywords
- application
- portal
- client portal
- client
- portable computing
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- H04L67/42—
Definitions
- the present invention relates to systems and methods for managing and offering services to networked devices.
- apps The use of applications, commonly referred to as “apps,” has become prevalent over the past few years.
- apps Many entities have developed services to enable users of mobile devices to download apps to such devices.
- Apple, Inc. of Cupertino, Calif. offers an interface to permit apps to be uploaded from app developers and for users to search, select and possibly purchase apps for download to Apple devices.
- SDK software development kit
- Other companies such as Google, Inc. of Mountain View, Calif. and Research In Motion, Ltd., of Waterloo, Ontario, Canada, also offer interfaces for developers to create and upload apps and for users to retrieve such software.
- telephony and digital media services may be provided to a plurality of locations, such as to a plurality of homes and offices, though the deployment of telephony and digital media services devices to the locations, wherein each device is configured to function as a voice, data and media information center.
- a services platform in accordance with an embodiment of the present invention enables entities to deploy, manage optimize and monitor a network of such devices in a turnkey fashion.
- the services platform is implemented on one or more computers and includes at least a device monitoring subsystem, a device management subsystem and a user interface.
- the device monitoring subsystem and the device management subsystem are each communicatively connected to a plurality of devices that provide telephony and digital media services to one or more end users.
- the device monitoring subsystem is operable to monitor each of the plurality of devices.
- the device management subsystem is operable to manage each of the plurality of devices.
- the user interface is communicatively connected to the services platform and is operable to provide access to functionality of at least one of the subsystems.
- the platform can include a device management service (DMS) server in which the DMS server acts as a gateway for communications with one or more computing devices and the computing devices are associated with a first entity.
- the platform can also include an application service (AS) server in which the AS server is communicatively coupled with the DMS server.
- AS application service
- the DMS server can be operable to provide a bundle to the first computing device.
- Providing a bundle can mean direct transmission of content to the first device, indirect transmission of content by directing a source to transmit such content to the first device, through messaging the first device to obtain or retrieve content from a source or any combination of these alternatives.
- the bundle can contain content that at least includes one or more configuration messages and an application set that contains one or more predefined applications.
- the content of the bundle is determined at least in part by, for example, the first entity.
- the first computing device can include a display, and the configuration messages can cause the display to present graphical user interface (GIU) elements that are associated with the first entity.
- GUI graphical user interface
- the application set can include a default application set that contains one or more default applications.
- the default application set can be selected from an application repository that is associated with the first entity.
- the application set can include a custom application set that includes one or more custom applications, which can also be from an application repository that is associated with the first entity.
- the content of the bundle provided to the first computing device can be based on an identification associated with the first computing device.
- the identification associated with the first computing device can be a unique identifier assigned to the first computing device.
- the configuration commands or the application set can be provided to the first computing device according to the identification associated with the first computing device.
- the identification associated with the first computing device can be related to a performance function of a first intended user of the first computing device such that the configuration commands or the application set that are provided to the first computing device are related to the performance function of the first intended user.
- the DMS server can be further operable to provide a second bundle to a second computing device.
- This second bundle can contain content that at least includes one or more configuration messages and an application set that contains at least predefined applications.
- the content of the second bundle provided to the second computing device can be based on an identification associated with the second computing device such that the configuration messages or the application set are provided to the second computing device according to the identification associated with the second computing device.
- the identification associated with the second computing device can be related to a performance function of a second intended user of the second computing device such that the configuration messages or the application set that are provided to the second computing device are related to the performance function of the second intended user.
- the performance function of the second intended user may be different from the performance function of an intended user of the first computing device. If so, the content of the bundle provided to the second computing device may be different from the content of the bundle provided to the first computing device.
- the DMS server can be further operable to provide a default set of applications and a custom set of applications for both the first computing device and the second computing device.
- the default set of applications can be the same for both the first computing device and the second computing device.
- the custom set of applications for the first computing device may be different from the custom set of applications for the second computing device, particularly if the performance functions of the users of such devices are different.
- the first intended user and the second intended user may be both associated with the first entity, although not necessarily so.
- the first computing device can include a DMS client, and the first computing device can contact the DMS server through a consolidated polling technique, although communications between these components are not limited to such an arrangement.
- the bundle may be provided to the first computing device through a series of message exchanges using the consolidated polling technique.
- the DMS server and the AS server can be hosted by a second entity that is distinct from the first entity.
- the second entity may be a managing entity that is responsible for preparing and providing the bundles according to input from the first entity.
- the first computing device can be provided with access to an application repository that is assigned to and associated with the first entity.
- the first device can also be provided with access to one or more other application repositories, which may be associated with the first entity or other entities, i.e., second entity, third entity, etc.
- the content of the bundle provided to the first computing device can be based on an identification associated with the first computing device, and the DMS server can be further operable to provide a second bundle to the computing device based on the identification associated with the first computing device.
- a first user and a second user can be both assigned to the first computing device, and the first computing device can provide an identification for both the first user and the second user of the first computing device.
- the content of the bundle can be arranged for the first user, and the content of the second bundle can be arranged for the second user.
- the first user and the second user can both be associated with the first entity.
- a method of managing services for a first client is also described herein.
- the method can include the steps of receiving an activation notice in which the activation notice is from a first computing device that is associated with the first client and in response to the receipt of the activation notice, providing a bundle to the first computing device.
- the method can also include the steps of maintaining an application repository that is associated with the first client and presenting the application repository to the first computing device based on an identification of the first computing device.
- the bundle can contain content that at least includes one or more configuration messages and an application set that contains one or more predefined applications.
- the application set can include a default application set or a custom application set, and the default application set can contain one or more default applications from the application repository.
- the custom application set can contain one or more custom applications from the application repository.
- the first computing device can include a display, and the configuration messages are arranged to cause the display to present graphical user interface (GUI) elements that are associated with the first client.
- GUI graphical user interface
- providing the bundle to the first computing device further includes providing the bundle to the first computing device based on the identification of the first computing device.
- the identification of the first computing device can be related to, for example, a performance function of a first intended user of the first computing device.
- providing the bundle to the first computing device further includes providing the bundle to the first computing device such that the content of the bundle is related to the performance function of the first intended user.
- the bundle provided to the first computing device can include a first default application set or a first custom application set. The first default application set or the first custom application set can be based on the performance function of the first intended user.
- the method can further include the step of receiving a second activation notice in which the second activation notice is from a second computing device that is associated with the first client.
- a second bundle can be provided to the second computing device.
- the options for providing a second bundle to a second computing device can be similar to that described above in relation to the first computing device.
- the method can also include the step of presenting the application repository to the second computing device based on an identification of the second computing device.
- providing the second bundle to the second computing device can further include providing the second bundle to the second computing device based on the identification of the second computing device.
- the identification of the second computing device can be related to a performance function of a second intended user of the second computing device.
- providing the second bundle to the second computing device can further include providing the second bundle to the second computing device such that the content of the second bundle is related to the performance function of the second intended user.
- the content of the second bundle for the second computing device may be different from the content of the bundle for the first computing device if the performance function of the second intended user is different from the performance function of the first intended user.
- the second bundle provided to the second computing device can include a second default application set or a second custom application set, and the second default application set or the second custom application set can be based on the performance function of the second intended user.
- the default application set for the second computing device can be the same as the first default application set for the first computing device.
- the second custom application set for the second computing device may be different from the first custom application set if the performance function of the second intended user is different from the performance function of the first intended user.
- the first intended user and the second intended user may be both associated with the first client, although not necessarily so.
- Providing the bundle to the first computing device at least partly comprises providing the bundle to the first computing device through, for example, a series of messages exchanges using a consolidated polling technique. It is understood, however, that other communication methods can be used.
- the activation notice can be received by a DMS server and the application repository is maintained by an AS server.
- the DMS server and the AS server can be hosted by an entity that is different from the first client.
- the entity that hosts the DMS server and the AS server can provide the bundle as a service for the first client in which the first client provides input to the entity for the bundle.
- the method can also include the step of receiving a second activation notice from the first computing device.
- a second bundle can be provided to the first computing device. It can be determined that a first user and a second user are both assigned to the first computing device. As such, the bundle can be sent to the first computing device for the first user, and the second bundle can be sent to the second computing device for the second user.
- the first user can have a first performance function
- the second user can have a second performance function.
- the content of the bundle can be related to the first performance function of the first user and the content of the second bundle can be related to the second performance function of the second user.
- the content of the bundle may be different from the content of the second bundle if the first performance function of the first user is different from the second performance function on the second user.
- the first user and the second user may be both associated with the first client, although not necessarily so.
- the platform can have a DMS server in which the DMS server is a gateway for communications with one or more computing devices.
- the computing devices may be associated with a first client.
- This platform can also include an AS server that is communicatively coupled with the DMS server.
- the DMS server can be operable to flash the activated first computing device to cause the first computing device to incorporate, for example, a GUI layout that is associated with the first client.
- the AS server is also operable to maintain an application repository that includes at least applications that are associated with and at least partially determined by the first client. The activated first computing device can be provided with access to these applications.
- a second computing device may be activated, and the second computing device can be associated with a second client.
- the DMS server can be operable to flash the activated second computing device to cause the second computing device to incorporate a GUI layout that is associated with the second client.
- the AS server can be operable to maintain an application repository that includes at least applications that are associated with and at least partially determined by the second client. The activated second computing device is provided with access to the applications.
- a second managed services platform in addition to the first managed services platform, a second managed services platform is described herein.
- the second platform can include a second DMS server in which the second DMS server can be a gateway for communications with one or more second computing devices and the second computing devices are associated with a second client.
- the second platform can also include a second AS server that is communicatively coupled with the second DMS server.
- the second DMS server can be operable to flash the activated second computing device to cause the second computing device to incorporate a graphical user interface (GUI) layout that is associated with the second client.
- GUI graphical user interface
- the second AS server can be operable to maintain a second application repository that includes at least applications that are associated with and at least partially determined by the second client.
- the activated second computing device can be provided with access to the applications of the second application repository.
- the first managed services platform or the second managed services platform can be hosted by, for example, a managing entity that is distinct from the first client and the second client.
- a method of managing services is described herein.
- the method can include the step of receiving a first activation notice from a first computing device that is associated with a first client.
- one or more configuration messages can be transmitted, and these messages can be arranged to cause the first computing device to incorporate a GUI layout that is associated with the first client.
- the method can also include the step of maintaining an application repository that includes at least applications that are associated with and at least partially determined by the first client.
- the activated first computing device is provided with access to the applications.
- a second activation notice can be received from a second computing device that is associated with a second client.
- one or more configuration messages can be transmitted, and the messages can be arranged to cause the second computing device to incorporate a GUI layout that is associated with the second client.
- the method can also include the step of maintaining another application repository that includes at least applications that are associated with and at least partially determined by the second client.
- the activated second computing device can be provided with access to the applications.
- the computer program product can include a computer readable storage medium having stored thereon computer readable program code.
- the computer readable program code can cause the system to receive an activation notice in which the activation notice is from a first computing device that is associated with the first client.
- the code can cause the system to further provide a bundle to the first computing device and maintain an application repository that is associated with the first client.
- the code can further cause the system to present the application repository to the first computing device based on an identification of the first computing device.
- the device can include a display that is configured to display GUI elements that are associated with a client and a transceiver that is configured to communicate with a managed services platform.
- the device can also include a processor that is communicatively coupled to both the display and the transceiver.
- the processor is operable to instruct the transceiver to transmit an activation notice to the managed services platform and in response to the activation notice, receive from the managed services platform a first bundle that is associated with the client and that is arranged to cause the display to display GUI elements that are associated with the client.
- the first bundle can include predefined applications in which the content of the first bundle can be determined at least in part by the client.
- receiving a first bundle from the managed services platform can refer to several different alternatives.
- content of the bundle can be directly received from the managed services platform or indirectly from another component under the direction or assistance of the managed services platform.
- the managed services platform can direct the portable computing device to retrieve or obtain content from a source.
- Content of the bundle can also be delivered to the portable computing device in accordance with any combination of these alternatives or other suitable techniques.
- the predefined applications can be selected from an application repository that is associated with the client, although not necessarily so.
- the activation notice can include an identification that is unique to the portable computing device. At least some of the content of the first bundle can be based on the identification of the portable computing device. In one arrangement, the identification of the portable computing device can be related to a performance function of an intended user of the portable computing device such that at least some of the content of the first bundle is related to the performance function. In another arrangement, responsive to the receipt of the first bundle, the portable computing device can be configured to gain access to an application repository that is associated with the client.
- the processor can be further operable to switch between a first account associated with a first user and a second account associated with a second user.
- the first bundle can be assigned to the first account
- the processor can be further operable to, in response to a second activation notice associated with the second account, receive a second bundle assigned to the second account.
- the content of the first bundle assigned to the first account can be related to a first performance function
- the content of the second bundle is related to a second performance function.
- the first user and the second user may be both associated with the client.
- the portable computing device can be configured to communicate with the managed services platform through the use of a consolidated polling technique. It is understood however, that other techniques may be employed to effect such a communication.
- a method of operating a portable computing device is also described herein.
- the method can include the steps of transmitting an activation notice to a managed services platform and in response to the activation notice, receiving from the managed services platform a first bundle that is associated with a client.
- GUI elements that are associated with a client can be displayed.
- the first bundle includes predefined applications, and the content of the first bundle is determined at least in part by the client.
- the predefined applications of the first bundle can be from an application repository that is associated with the client.
- Transmitting an activation notice to the managed services platform can further include transmitting an identification that is unique to the portable computing device.
- at least some of the content of the first bundle can be based on the identification of the portable computing device.
- the identification of the portable computing device can be related to a performance function of an intended user of the portable computing device such that at least some of the content of the first bundle is related to the performance function. Responsive to the receipt of the first bundle, access to an application repository that is associated with the client can be gained or permitted.
- the method can further include the step of switching between a first account associated with a first user and a second account associated with a second user in which the first bundle can be assigned to the first account.
- a second bundle can be received in which the second bundle can be assigned to the second account.
- the content of the first bundle assigned to the first account can be related to a first performance function
- the content of the second bundle can be related to a second performance function.
- the first user and the second user can be both associated with the client.
- communications with the managed services platform can be conducted through a consolidated polling technique. It is understood, however, that other suitable techniques for communications with the platform are within contemplation here.
- This method can include the steps of receiving the portable computing device based on an assigned performance function and transmitting an activation notice from the portable computing device to a managed services platform. For example, a company may assign the computing device to one of its employees who has a particular job function, and the employee may then cause an activation notice to be transmitted from the computing device.
- the method can also include the step of receiving—from the managed services platform—a first bundle that can be associated with a client (e.g., the employee) and that can be related to the assigned performance function. In response to the receipt of the first bundle, GUI elements that are associated with the client can be displayed.
- the client may assign the performance function.
- the first bundle may include predefined applications, and the content of the first bundle can be determined at least in part by the client based on the performance function.
- the computer program product can be a computer readable storage medium having stored thereon computer readable program code.
- the computer readable program code can cause the system to transmit an activation notice to a managed services platform and in response to the activation notice, receive from the managed services platform a first bundle that is associated with a client.
- the program code can also cause the system to display GUI elements that are associated with a client.
- the first bundle may include predefined applications, and the content of the first bundle can be determined at least in part by the client.
- the system can include a first computing device that can be configured to present a first interface to permit application developers to submit applications for approval for selective publication in a first application repository associated with a first client and a second application repository associated with a second client.
- the system can also include a second computing device that can be communicatively coupled to the first computing device.
- the second computing device can be configured to present a second interface to permit the approval of submitted applications for the selective publication in the first application repository and the second application repository. If a submitted application is approved, the second computing device can be configured to notify the first computing device that the submitted application has been approved.
- the first computing device can be further configured to enable the upload of applications prior to being submitted for approval.
- the first computing device can be further configured to present an uploaded application and information associated with the uploaded application.
- the information includes one or more of the following items: an application name; a language type; a category; a version; a rating; a licensing model; or a transaction price.
- the first computing device can be further configured to enable the selection of the information prior to the uploaded application being submitted for approval.
- the first computing device can be further configured to push the uploaded application to or pull the uploaded application from a testing device.
- the second computing device can be further configured to enable a user to permit the rejection of a submitted application.
- the second computing can be further configured to notify the first computing device when the submitted application has been rejected.
- the first computing device can be further configured to present one or more of the submitted applications.
- the submitted applications can be assigned a status indicator at the first computing device that provides information as to the stage of review for approval for a submitted application.
- the status indicator can indicate the submitted application as being in a pending state.
- the status indicator can indicate the approved application as being in an approved state.
- the status indicator can indicate the published application as being in a published state.
- the status indicator may indicate the submitted application as being rejected.
- the status indicator may indicate the application as being upgraded.
- the upgraded application can be a submitted application, a published application or a rejected application.
- the first computing device can be further configured to provide performance data relating to a submitted application once the application is published in the first application repository or the second application repository.
- the first computing device can be further configured to provide cumulative performance data relating to a plurality of published applications in the first application repository or the second application repository.
- the first computing device can be further configured to selectively isolate performance data relating to submitted applications such that access to such performance data is restricted. This can prevent sensitive data from being seen by unauthorized individuals, for example.
- the second computing device in one arrangement, can be further configured to receive the submitted application, and the second interface can enable the selection of an approval indicator or a rejection indicator. If the submitted application is approved, the second computing device may notify the first computing device of the approval of the submitted application upon the selection of the approval indicator. The second computing device can be further configured to notify the first computing device of the rejection of a submitted application upon the selection of the rejection indicator. As another option, the second computing device can be further configured to provide the first computing device with rejection information when notifying the first computing device of the rejection of the submitted application.
- the second computing device can be further configured to present the submitted application and to provide information associated with the submitted application.
- the following items are examples of such information: an application name; a language type; a category; a version; a rating; a licensing model; or a transaction price.
- the second computing device can be further configured to push the submitted application to or pull the submitted application from a testing device.
- the second computing device can be further configured to notify a third computing device that the submitted application has been approved.
- the third computing device can be configured to notify operators of the first application repository and the second application repository of the approval of the submitted application.
- a method for approving applications is also described herein.
- the method can include the step of presenting a first interface to permit application developers to submit applications for approval for selective publication in a first application repository associated with a first client and a second application repository associated with a second client.
- the method can also include the steps of presenting a second interface to permit the approval of submitted applications for the selective publication in the first application repository and the second application repository. If a submitted application is approved, the application developer can be notified that the submitted application has been approved.
- the method can further include the steps of enabling the upload of applications prior to being submitted for approval and presenting an uploaded application and information associated with the uploaded application.
- the information can include one or more of the following items: an application name; a language type; a category; a version; a rating; a licensing model; or a transaction price.
- the method can also include the step of enabling the selection of the information prior to the uploaded application being submitted for approval.
- the method can include the steps of pushing the uploaded application to a testing device or pulling the uploaded application from a testing device.
- the method can include the steps of enabling a user to permit the rejection of a submitted application and notifying the application developer that the submitted application has been rejected.
- the method can also include the steps of presenting one or more of the submitted applications and assigning a status indicator to the presented submitted applications.
- the status indicator can provide information as to the stage of review for approval for a submitted application. For example, once an application is submitted for approval, assigning a status indicator can include assigning a status indicator to the submitted application that indicates that the application is in a pending state. As another example, once a submitted application is approved for publication, assigning a status indicator can include assigning a status indicator to the approved application that indicates that the application is in an approved state. In yet another example, once an approved application is published in either the first application repository or the second application repository, assigning a status indicator can include assigning a status indicator to the published application that indicates that the application is in a published state.
- assigning a status indicator can include assigning a status indicator that indicates that the submitted application is in a rejected state. If an application has been upgraded, assigning a status indicator can include assigning a status indicator that indicates that the application is upgraded.
- the upgraded application can be a submitted application, a published application or a rejected application.
- the method can also include the step of providing performance data relating to a submitted application once the application is published in the first application repository or the second application repository. Cumulative performance data relating to a plurality of published applications in the first application repository or the second application repository may also be provided.
- the method can also include the step of selectively isolating performance data relating to submitted applications such that access to such performance data is restricted.
- the method can include the steps of receiving the submitted application and enabling the selection of an approval indicator or a rejection indicator.
- the submitted application may be approved, and a notification of the approval of the submitted application can be provided upon the selection of the approval indicator.
- a notification of the rejection of a submitted application can be provided upon the selection of the rejection indicator.
- Providing a notification of the rejection of the submitted application can include providing rejection information when providing notification of the rejection of the submitted application.
- the method can further include the steps of presenting a third interface that is configured to indicate that the submitted application has been approved and notifying operators of the first application repository and the second application repository of the approval of the submitted application.
- the method can include the step of presenting a first interface that is configured to permit an application developer to submit an application for approval for selective publication in a first application repository associated with a first client and in a second application repository associated with a second client.
- the method can also include the steps of presenting a second interface that is configured to enable the approval of the submitted application, approving the submitted application and notifying the application developer that the submitted application has been approved.
- the method can also include the step of notifying a managing entity that the submitted application is available for publication in the first application repository that is assigned to and associated with the first client and available for publication in the second application repository that is assigned to and associated with the second client.
- the term “available for publication” is defined as actually being published or being in a condition that enables publication.
- a computing device for accepting applications for selective publication in multiple application repositories is also described herein.
- the computing device can include a display that is configured to present one or more applications that may be received from an application developer and a processor that can be communicatively coupled to the display.
- the processor can be operable to receive a publication command for a submitted application and in response to the receipt of the publication command, can cause the transmission of the submitted application to an approval entity for at least possible publication of the submitted application in a first application repository assigned to a first client and in a second application repository assigned to a second client.
- “At least possible publication” includes actual publication of the application in the first or second application repositories or a condition in which the application is able to be published in the first or second application repositories.
- the processor can be further operable to cause the display of performance data relating to the submitted application once the submitted application is published in the first application repository or the second application repository.
- the processor can be further operable to receive a notification that the submitted application has been approved for publication in the first application repository or the second application repository.
- a method for accepting applications for selective publication in multiple application repositories is also described herein.
- the method can include the steps of receiving one or more applications and receiving a publication command for a submitted application.
- publication command is defined as an indication that an application is to be submitted or has been submitted for approval for publication in an application repository.
- the submitted application can be sent to an approval entity for at least possible publication of the submitted application in a first application repository assigned to a first client and in a second application repository assigned to a second client.
- the method can also include the step of presenting performance data relating to the submitted application once the submitted application is published in the first application repository or the second application repository.
- the method can include the step of receiving a notification that the submitted application has been approved for publication in the first application repository or the second application repository.
- the device can include a display that is configured to present one or more applications that are submitted for approval and a processor that is communicatively coupled to the display.
- the processor can be operable to receive an approval command for a submitted application.
- An “approval command” is defined as an indication that a submitted application meets the requirements for at least possible publication in an application repository.
- the processor can be further operable to notify a managing entity that the submitted application is available for publication in a first application repository assigned to a first client and in a second application repository assigned to a second client.
- the computing device is communicatively coupled to a developer computing device and the processor is further operable to notify the developer computing device when the submitted application has been made available for publication in the first client application repository and the second client application repository.
- the processor can be further operable to receive a rejection command for a submitted application and in response to the receipt of the rejection command, notify the developer computing device of the rejection of the submitted application.
- the method can include the steps of presenting one or more applications that are submitted for approval and receiving an approval command for a submitted application.
- a managing entity can be notified that the submitted application is available for publication in a first application repository assigned to a first client and in a second application repository assigned to a second client.
- the method can further include the step of notifying a developer computing device when the submitted application has been made available for publication in the first client application repository and the second client application repository.
- the method can include the steps of receiving a rejection command for a submitted application and in response to the receipt of the rejection command, notifying the developer computing device of the rejection of the submitted application.
- the computer program product can include a computer readable storage medium having stored thereon computer readable program code.
- the program code When executed by a system comprising a processor and a memory, the program code causes the system to receive one or more applications and receive a publication command for a submitted application.
- the program code can also cause the system to—in response to the receipt of the publication command—send the submitted application to an approval entity for at least possible publication of the submitted application in a first application repository assigned to a first client and in a second application repository assigned to a second client.
- the computer program product can include a computer readable storage medium having stored thereon computer readable program code.
- the program code When executed by a system comprising a processor and a memory, the program code causes the system to present one or more applications that are submitted for approval and receive an approval command for a submitted application.
- the program code can also cause the system to—in response to the receipt of the approval command—notify a managing entity that the submitted application is available for publication in a first application repository assigned to a first client and in a second application repository assigned to a second client.
- a managed services portal is also described herein in which the portal can include one or more user interface elements that can be configured to enable a user to make selections associated with the management of services for a first client portal and a second client portal.
- the first client portal can be assigned a first application repository that is associated with the first client portal, and the second client portal can be assigned a second application repository that is associated with the second client portal.
- the managed services portal can also include a processor that is communicatively coupled to the user interface elements.
- the processor can be operable to receive a notification of an application that has met an approval threshold, and to cause the presentation of the application.
- the processor can be further operable to cause the transmission of the availability of the application to the first client portal for publication in the first application repository and to cause the transmission of the availability of the application to the second client portal for publication in the second application repository.
- the managed services portal can be associated with a managing entity, and the managing entity can be assigned a third application repository.
- the third application repository can be associated with the managed services portal, and the processor can be further operable to cause the publication of the application in the third application repository.
- the processor can be further operable to cause the presentation of the application in an available category or an in-house category or to cause the presentation of an application that has not yet met an approval threshold in a pending category.
- the processor can be further operable to cause the presentation of an application that has been published in a third application repository in a published category.
- the presentation of the application may include an identification of the application and one or more of the following exemplary, non-limiting parameters: a description of the application; an identification of the developer of the application; a category of the application; a version of the application; a creation date of the application; a most recent update of the application; a rating of the application; a licensing model of the application; a cumulative user rating of the application; or a transactional fee for the application.
- the licensing model is selectable from one of the following exemplary, non-limiting arrangements: a free model; a subscription-based model; a floating model; a volume model; or a paid model.
- the processor can be further operable to cause the application to be pushed to or pulled from one or more testing devices.
- the managed services portal and the testing device can both be associated with a managing entity.
- the processor can be further operable to cause a global addition of the application to a plurality of portable computing devices or a global removal of the application from the plurality of portable computing devices.
- the managed services portal can be associated with a managing entity, one or more portable computing devices may also be associated with the managing entity, and a display can be one of the user interface elements.
- the processor can be further operable to cause the presentation of at least some of the portable computing devices on the display.
- the presentation of the portable computing devices can be such that the portable computing devices are segmented into one or more distinct groups.
- the managed services portal can also include a searching feature that is configured to enable the portable computing devices to be searched individually or by the groups.
- the processor can be further operable to generate a message for selective transmission to the portable computing devices such that the message can be sent to the portable computing devices on an individual basis, a group basis or a broadcast basis.
- the presentation of a portable computing device may include a listing of applications that are installed on the portable computing device or that are available for installation on the portable computing device.
- the processor can be further operable to enable the installation of applications on a portable computing device or the removal of applications on the portable computing device on an individual basis, a group basis or a broadcast basis.
- the processor can further be operable to enable the management of certificates on the portable computing devices on an individual basis, a group basis or a broadcast basis.
- one of the user interface elements can be a display, and the processor can be further operable to cause an arrangement to be shown on the display.
- the arrangement may demonstrate an application repository relationship between the managed services portal, the first client portal and the second client portal.
- the first client portal can be associated with one or more first sub-client portals or the second client portal can be associated with one or more second sub-client portals.
- the arrangement can further demonstrate an application repository relationship between the managed services computing portal, the first and second client portals and the first and second sub-client portals, if such sub-client portals exist.
- the arrangement that the processor is operable to cause to be shown on the display can be a hierarchical arrangement.
- the processor can be further operable to cause the selective presentation of information relating to an application repository associated with the managed services portal.
- the processor can be operable to cause the selective presentation of information relating to an application repository associated with the first client portal, the first sub-client portal, the second client portal or the second sub-client portal.
- the presented information may include at least one of the following: identification of an application repository managing entity and one or more security keys; identification of one or more certificates; or identification of settings or applications.
- the settings can include one or more of a VPN setting, a location services setting, an application repository control setting or a firmware setting.
- the processor can be further operable to cause an editing of the settings, the certificates or the applications.
- the processor can be further operable to present a schedule rollout option to set a delivery schedule for the editing of the settings, the certificates or the applications.
- the settings and the applications may be default settings and default applications.
- the processor can be further operable to receive a control notification, and in response to the receipt of the control notification, the managed services portal can be operable to control the operation of the first application repository of the first client portal, the second application repository of the second client portal, an application repository of the first sub-client portal or an application repository of the second sub-client portal.
- the managed services portal can be operable to control the operation of the first application repository of the first client portal, the application repository of the first sub-client portal, the second application repository of the second client portal and the application repository of the second sub-client portal.
- This control can be by at least one of causing the publication of the application in the first client portal application repository, the second client portal application repository, the first sub-client portal application repository or the second sub-client portal application repository or causing the selective presentation of information relating to the first client portal application repository, the second client portal application repository, the first sub-client portal application repository or the second sub-client portal application repository.
- the processor can be further operable to receive a control notification.
- the managed services portal can be operable to provide settings or applications to portable computing devices that are assigned to the first client portal, the second client portal, the first sub-client portal or the second sub-client portal.
- the settings and the applications may be default settings and default applications.
- the processor can be further operable to generate messages and cause them to be transmitted to the portable computing devices that are assigned to the first client portal, the second client portal, the first sub-client portal or the second sub-client portal.
- One or more portable computing devices may be associated with the first client portal, the first sub-client portal, the second client portal or the second sub-client portal, and the processor can be further operable to receive a control notification.
- the processor can be further operable to selectively cause the removal or modification of one or more applications installed on the portable computing devices of the first client portal, the first sub-client portal, the second client portal or the second sub-client portal.
- the processor can be further operable to also cause the installation of one or more applications on the portable computing devices of the first client portal, the first sub-client portal, the second client portal or the second sub-client portal.
- the processor can be further operable to cause the removal, modification or installation of the applications on an individual basis, a group basis or a global basis.
- the managed services portal may be associated with a managing entity, and one or more portable computing devices may be associated with the managing entity.
- the processor can be further operable to cause the presentation of user identifications that may be associated with the portable computing devices.
- the portable computing devices that are associated with the managing entity can include portable computing devices that may be assigned to an application repository of the managing entity, portable computing devices that are assigned to application developers who develop applications for the application repository of the managing entity or portable computing devices that are assigned to testing personnel.
- the processor can be further operable to enable access control to at least some of the portable computing devices that are associated with the user identifications.
- One or more portable computing devices may be associated with the first client portal or the second client portal, and the processor can be further operable to receive a control notification. In response to the control notification, the processor can be further operable to cause the presentation of user identifications that are associated with the portable computing devices that are associated with the first client portal or the second client portal.
- One or more additional portable computing devices may be associated with the first client portal or the second client portal.
- the processor can be further operable to cause the presentation of at least some of the portable computing devices associated with the first client portal or the second client portal on the display.
- the portable computing devices may be presented as available portable computing devices or provisioned portable computing devices.
- the processor can be further operable to cause an available portable computing device to become a provisioned portable computing device if, for example, the processor receives a control notification.
- the processor can be further operable to receive a notification that a firmware update is available for one or more portable computing devices that are associated with the first client portal and to receive a notification that a firmware update is available for one or more portable computing devices that are associated with the second client portal.
- the processor can be further operable to cause the transmission of the availability of the firmware update for the first client portal portable computing devices to the first client portal and cause the transmission of the availability of the firmware update for the second client portal portable computing devices to the second client portal.
- the processor can be further operable to cause the presentation of one or more bundles.
- the bundles can be assigned to one or more performance functions, and the bundles can contain information that may be based on their assigned performance function.
- the information contained in the bundles can include one or more configuration settings or one or more applications, and the configuration settings and the applications may be arranged based on the assigned performance function.
- the processor can be further operable to enable the information contained in the bundles to be edited such that the configuration settings or the applications may be modified.
- the bundles may be designated for users associated with a managing entity, and the managed services portal can be associated with the managing entity or the bundles may be associated with the first client portal or the second client portal.
- the processor can be further operable to enable the managing entity to modify the bundles associated with the first client portal or the second client portal if, for example, the managed services portal has respective authority from the first client portal and the second client portal.
- the processor can be further operable to selectively generate a modification signal in response to the information contained in a bundle being edited such that modifications of the configuration settings or the applications may be dynamically effected on one or more portable computing devices that have already received the bundles.
- a method for managing services is also described herein.
- the method can include the step of enabling a user to make selections associated with the management of services for a first client portal and a second client portal.
- the first client portal can be assigned a first application repository that can be associated with the first client portal
- the second client portal can be assigned a second application repository that can be associated with the second client portal.
- the method can also include the steps of receiving a notification of an application that has met an approval threshold, presenting the application, transmitting the availability of the application to the first client portal for publication in the first application repository and transmitting the availability of the application to the second client portal for publication in the second application repository.
- enabling the user to make selections associated with the management of services for a first client portal and a second client portal further includes enabling the user to make the selections through a managed services portal that can be associated with a managing entity.
- the managed services portal can be assigned a third application repository, and the method can further include publishing the application in the third application repository.
- presenting the application further includes presenting the application in an available category, an in-house category or a published category.
- the method can also include the step of presenting an application that has not yet met an approval threshold in a pending category.
- presenting the application can further include presenting the application in the published category if the application has been published in a third application repository.
- Presenting the application can further include presenting an identification of the application and one or more of the following exemplary, non-limiting parameters: a description of the application; an identification of the developer of the application; a category of the application; a version of the application; a creation date of the application; a most recent update of the application; a rating of the application; a licensing model of the application; a cumulative user rating of the application; or a transactional fee for the application.
- the licensing model can be selectable from one of the following arrangements: a free model; a subscription-based model; a floating model; a volume model; or a paid model.
- the method can further include the step of pushing the application to or pulling the application from one or more testing devices.
- the testing devices can be associated with a managing entity.
- the method can also include the steps of performing a global addition of the application to a plurality of portable computing devices or performing a global removal of the application from the plurality of portable computing devices.
- One or more portable computing devices can be associated with a managed services portal, and the method can further include presenting at least some of the portable computing devices associated with the managed services portal. Presenting the portable computing devices can further include presenting the portable computing devices such that the portable computing devices are segmented into one or more distinct groups. In another embodiment, the method also includes the steps of presenting a searching feature that is configured to enable searching of the portable computing devices and searching the portable computing devices in accordance with an individual or group basis. The method can further include the steps of generating a message for selective transmission to the portable computing devices and transmitting the message to the portable computing devices on an individual basis, a group basis or a broadcast basis. In another embodiment, presenting the portable computing devices can further include presenting a listing of applications that are installed on a portable computing device or that are available for installation on the portable computing device.
- the method can also include the step of enabling the installation of applications on a portable computing device or the removal of applications on the portable computing device on an individual basis, a group basis or a broadcast basis.
- the method can include the step of enabling the management of certificates on the portable computing devices on an individual basis, a group basis or a broadcast basis.
- the method can include the step of displaying an arrangement that demonstrates an application repository relationship between a managed services portal and the first and second client portals.
- the managed services portal may oversee the management of services for the first client portal and the second client portal.
- the first client portal can be associated with one or more first sub-client portals, or the second client portal can be associated with one or more second sub-clients portals.
- the arrangement can further demonstrate an application repository relationship between the managed services computing device, the first and second client portals and first and second sub-client portals, if such sub-client portals exist.
- the arrangement can be in a hierarchical form.
- the method can also include the step of selectively presenting information relating to an application repository associated with the managed services portal and the step of selectively presenting information relating to an application repository for the first client portal, the first sub-client portal, the second client portal or the second sub-client portal.
- the presented information can include at least one of the following: identification of an application repository managing entity and one or more security keys; identification of one or more certificates; or identification of settings or applications.
- the settings can include one or more of a VPN setting, a location services setting, an application repository control setting or a firmware setting.
- the method can also include the steps of editing the settings or the applications, and presenting a schedule rollout option to set a delivery schedule for the editing of the settings or the applications.
- the method may also include the step of delivering settings or applications to portable computing devices that are assigned to the managed services computing device.
- the settings and the applications can be default settings and default applications.
- the method can further include the steps of receiving a control notification, and in response to the receipt of the control notification, at least partially controlling the operation of the application repository of the first client portal, the application repository of the second client portal, an application repository of the first sub-client portal or an application repository of the second sub-client portal.
- controlling the operation of the application repository of the first client portal, the application repository of the first sub-client portal, the application repository of the second client portal and the application repository of the second sub-client portal is conducted by at least one of causing the publication of the application in the first client portal application repository, the second client portal application repository, the first sub-client portal application repository or the second sub-client portal application repository or causing the selective presentation of information relating to the first client portal application repository, the second client portal application repository, the first sub-client portal application repository or the second sub-client portal application repository.
- the method can include the steps of receiving a control notification, and in response to the receipt of the control notification, providing settings or applications to portable computing devices that are assigned to the first client portal, the second client portal, the first sub-client portal or the second sub-client portal.
- the settings and the applications are default settings and default applications.
- the method can further include the step of transmitting the messages to the portable computing devices that are assigned to the first client portal, the second client portal, the first sub-client portal or the second sub-client portal.
- One or more portable computing devices are associated with the first client portal, the first sub-client portal, the second client portal or the second sub-client portal, and the method can further include the steps of receiving a control notification, and in response to the receipt of the control notification, selectively causing the removal or modification of one or more applications installed on the portable computing devices of the first client portal, the first sub-client portal, the second client portal or the second sub-client portal. Also in response to the receipt of the control notification, the method can further include the step of causing the installation of one or more applications on the portable computing devices of the first client portal, the first sub-client portal, the second client portal or the second sub-client portal.
- the removal, modification or installation of the applications is on an individual basis, a group basis or a global basis.
- one or more portable computing devices may be associated with a managed computing services device, and the method can further include the step of presenting user identifications that are associated with the portable computing devices.
- the portable computing devices that are associated with the managed services portal may include portable computing devices that are assigned to an application repository associated with the managed services portal, portable computing devices that are assigned to application developers who develop applications for the application repository of the managing entity and portable computing devices that are assigned to testing personnel.
- the method can further include the step of enabling access control to at least some of the portable computing devices that are associated with the user identifications.
- One or more portable computing devices may be associated with the first client portal or the second client portal.
- the method can further include receiving a control notification and in response to the control notification, presenting user identifications that are associated with the portable computing devices that are associated with the first client portal or the second client portal.
- One or more additional portable computing devices may be associated with the first client portal or the second client portal, and the method may further include presenting at least some of the portable computing devices associated with the first client portal or the second client portal.
- Presenting the portable computing devices associated with the first client portal or the second client portal can include, for example, presenting the portable computing devices associated with the first client portal or the second client portal as available portable computing devices.
- the method can further include the step of converting an available portable computing device to a provisioned portable computing device if a control notification is received.
- the method can include the steps of receiving a notification that a firmware update is available for one or more portable computing devices that are associated with the first client portal and receiving a notification that a firmware update is available for one or more portable computing devices that are associated with the second client portal.
- the method can include the steps of transmitting the availability of the firmware update for the first client portable computing devices to the first client portal and transmitting the availability of the firmware update for the second client portable computing devices to the second client portal.
- the method can further include the step of presenting one or more bundles in which the bundles can be assigned to one or more performance functions.
- the bundles can contain information that is based on their assigned performance function.
- the information contained in the bundles may include one or more configuration settings or one or more applications, and the configuration settings and the applications can be arranged based on the assigned performance function.
- the method can further include the step of enabling the information contained in the bundles to be edited such that the configuration settings or the applications may be modified.
- the bundles may be designated for users associated with a managed services computing device, or the bundles may be designated for the first client portal and the second client portal.
- the method can also include the step of enabling the managed services portal to modify the bundles designated for the first client portal and the second client portal if the managing entity has respective authority from the first client portal and the second client portal.
- the method can further include the step of selectively generating a modification signal in response to the information contained in a bundle being edited such that modifications of the configuration settings or the applications may be dynamically effected on one or more portable computing devices that have already received the bundles.
- the method can include the step of presenting an interface to enable selections associated with the management of services for a first client portal and a second client portal.
- the first client portal can be assigned a first application repository that can be associated with the first client portal
- the second client portal can be assigned a second application repository that can be associated with the second client portal.
- the method can also include the steps of receiving a notification of an application that has met an approval threshold and transmitting the availability of the application to the first client portal for publication in the first application repository. The availability of the application can be transmitted to the second client portal for publication in the second application repository.
- the managed services portal can include one or more user interface elements configured to enable a user to make selections associated with the management of services for a first client portal and a second client portal.
- the first client portal can be assigned a first application repository that can be associated with the first client portal
- the second client portal can be assigned a second application repository that can be associated with the second client portal
- the managing entity can be assigned a third application repository that can be associated with the managing entity.
- the managed services portal can also include a processor that can be communicatively coupled to the user interface elements.
- the processor can be operable to receive a notification of an application that has met an approval threshold, cause the presentation of the application, cause the transmission of the availability of the application to the first client portal for publication in the first application repository, cause the transmission of the availability of the application to the second client portal for publication in the second application repository and cause the publication of the application in the third application repository.
- the method can include the step of presenting an interface to enable selections associated with the management of services for a first client portal and a second client portal by a managed services portal.
- the first client portal can be assigned a first application repository that can be associated with the first client portal
- the second client portal can be assigned a second application repository that can be associated with the second client portal.
- the method can also include the steps of receiving a notification of an application that has met an approval threshold, transmitting the availability of the application to the first client portal for publication in the first application repository and transmitting the availability of the application to the second client portal for publication in the second application repository.
- the method can also include the step of publishing the application in a third application repository that is assigned to and associated with the managed services portal.
- a method for managing configuration updates for a first client portal and a second client portal is described herein.
- the method can include the steps of receiving a notification that a first configuration update is available for the first client portal and that a second configuration update is available for the second client portal and notifying the first client portal that the first configuration update is available for one or more portable computing devices that are associated with the first client portal.
- the first client portal can determine whether to provide the first configuration update to the first client portal portable computing devices.
- This method can further include the step of notifying the second client portal that the second configuration update is available for one or more portable computing devices that are associated with the second client portal.
- the second client portal can determine whether to provide the second configuration update to the second client portal portable computing devices.
- the method can further include the step of notifying—through the first client portal—a first sub-client portal that is associated with the first client portal that the first configuration update is available for one or more portable computing devices that are associated with the first-sub client portal.
- the first sub-client portal may determine whether to provide the first configuration update to the first sub-client portal portable computing devices.
- the configuration update can at least include a firmware update.
- the managed services computing device can include one or more user interface elements configured to enable a user to assign a first bundle to a first performance function category, assign a second bundle to a second performance function category and select the contents of the first and second bundles.
- the managed services computing device can also include a processor that can be communicatively coupled to the user interface elements.
- the processor can be operable to generate the first and second bundles by loading the contents of the first and second bundles and to direct the storage of the first and second bundles for selective transmission to one or more portable computing devices.
- the processor can be further operable to, in response to an editing process conducted through the user interface elements, correspondingly edit the contents of the first bundle or the second bundle.
- the first bundle and the second bundle may have been respectively received at a first portable computing device and a second portable computing device and the processor is further operable to generate a signal that is configured to cause the contents of the first bundle on the first portable computing device or the contents of the second bundle on the second portable computing device to be correspondingly edited.
- a method for managing one or more bundles is also described herein.
- the method can include the steps of assigning a first bundle to a first performance function category, assigning a second bundle to a second performance function category, selecting the contents of the first and second bundles, generating the first and second bundles by loading the contents of the first and second bundles and moving to storage the first and second bundles for selective transmission to one or more portable computing devices.
- the method can also include the steps of editing the contents of the first bundle or the second bundle, forwarding the first bundle to a first portable computing device, forwarding the second bundle to a second portable computing device, detecting the editing of the contents of the first bundle or the second bundle and generating a signal that is configured to cause the contents of the first bundle or the second bundle to be correspondingly edited.
- the managed services platform can include a first computing device that can be configured to present a first interface to permit application developers to submit applications for eventual publication, a second computing device that can be communicatively coupled to the first computing device and that can be configured to present a second interface to permit the approval of submitted applications and a third computing device that can be communicatively coupled to the second computing device.
- the third computing device can be configured to receive a notification from the second computing device that a submitted application has been approved, transmit the availability of the approved application to a first client portal for publication in a first application repository that is associated with the first client portal and transmit the availability of the approved application to a second client portal for publication in a second application repository that is associated with the second client portal.
- a method of managing applications is also described herein.
- the method can include the steps of receiving an application that has been submitted for approval for possible publication in a first application repository that may be associated with a first client portal and a second application repository that may be associated with a second client portal and approving the submitted application for the possible publication in the first application repository and the second application repository.
- the method can also include the steps of receiving a notification that the submitted application has been approved and in response to the receipt of the notification, transmitting the availability of the approved application to the first client portal for publication in the first application repository. In response to the receipt of the notification, the availability of the approved application can be transmitted to the second client portal for publication in the second application repository.
- a method of managing applications is also described herein.
- the method can include the step of receiving a notification that an application submitted for approval for possible publication in a first application repository that is associated with a first client portal and for possible publication in a second application repository that is associated with a second client portal has been approved.
- the availability of the approved application can be transmitted to the first client portal for publication in the first application repository.
- the availability of the approved application can be transmitted to the second client portal for publication in the second application repository.
- the computer program product can include a computer readable storage medium having stored thereon computer readable program code.
- the program code When executed by a system that includes a processor and a memory, the program code causes the system to enable a user to make selections associated with the management of services for a first client portal and a second client portal.
- the first client portal can be assigned a first application repository that can be associated with the first client portal
- the second client portal can be assigned a second application repository that can be associated with the second client portal.
- the program code can also cause the system to receive a notification of an application that has met an approval threshold, to present the application, to transmit the availability of the application to the first client portal for publication in the first application repository and to transmit the availability of the application to the second client portal for publication in the second application repository.
- a client computing device associated with a first client is also described herein.
- the client computing device includes one or more user interface elements configured to enable a user to make selections associated with the management of services for the first client.
- the client computing device can be assigned a first application repository.
- the client computing device includes a processor that is communicatively coupled with the user interface elements.
- the processor can be operable to receive a notification of the availability of an application for publication into the client computing device application repository.
- the notification can be from a managing computing device that may also provide notification of the availability of the application for publication into an application repository associated with a second client computing device.
- the processor can also be operable to selectively cause the publication of the available application into the client computing device application repository.
- the processor can be further operable to generate a publication notice for transmission to the managing computing device when the available application is published in the client computing device application repository.
- the client computing device can be communicatively coupled with a sub-client computing device that may be associated with a sub-client and may be assigned a sub-client computing device application repository.
- the processor can be further operable to generate a notification for transmission to the sub-client computing device that the application is available for publication in the sub-client computing device application repository.
- a system is also described herein in which the system can include a first computing device that can be associated with a first application repository and that can be configured to receive a notification of the availability of an application for publication in the first application repository, and in response, to selectively cause the publication of the available application in the first application repository.
- the system can also include a sub-client computing device that can be communicatively coupled to the first computing device and that can be associated with a sub-client.
- the sub-client computing device can be assigned a sub-client application repository.
- the sub-client computing device can be configured to receive a second notification of the availability of the application for publication in the sub-client computing device application repository when the application is published in the first application repository.
- a method for managing services for a first client is also described herein.
- the method can include the step of receiving a notification of the availability of an application for publication into an application repository associated with the first client portal.
- the notification can be from a managing computing device that can also provide notification of the availability of the application for publication into an application repository associated with a second client portal.
- the method can also include the step of selecting the available application for publication into the first client portal application repository such that the application is available for download from the first client portal application repository to computing devices that are associated with the first client portal but not for computing devices that are associated with the second client portal.
- the method can also include the step of generating a publication notice for transmission to the managing computing device when the available application is published in the first client portal application repository.
- the client computing device can be communicatively coupled with a sub-client computing device that can be associated with a sub-client and that can be assigned a sub-client computing device application repository.
- the method can further include the step of generating a notification for transmission to the sub-client computing device that the application is available for publication in the sub-client computing device application repository.
- a method for managing applications of a client portal and a sub-client portal is also described herein in which the client portal can be assigned a client portal application repository and the sub-client portal can be assigned a sub-client portal application repository.
- the method can include the step of receiving a notification of the availability of an application for publication in the client portal application repository, selecting the application for publication in the client portal application repository and in response to the publication of the application in the client portal application repository, notifying the sub-client portal of the availability of the application for publication in the sub-client portal application repository.
- a managed services computing device for managing configuration updates for a first client portal and a second client portal is also described herein.
- the managed services computing device can include a processor.
- the processor can be operable to receive a notification that a first configuration update is available for the first client portal and that a second configuration update is available for the second client portal.
- the processor can also be operable to generate a notification for the first client portal that the first configuration update is available for one or more portable computing devices that are associated with the first client portal.
- the first client portal can determine whether to provide the first configuration update to the first client portal portable computing devices.
- the processor can also be operable to generate a notification for the second client portal that the second configuration update is available for one or more portable computing devices that are associated with the second client portal.
- the second client portal may determine whether to provide the second configuration update to the second client portal portable computing devices.
- the managed services portal can include one or more user interface elements configured to enable a user to make selections associated with the management of services for one or more portable computing devices and a processor that can be communicatively coupled to the user interface elements.
- the processor can be operable to receive a request to determine a status of one or more of the portable computing devices or to cause an action to occur on one or more of the portable computing devices.
- the processor can be further operable to provide the status of the one or more portable computing devices or to effect the action on the one or more portable computing devices.
- the processor can be further operable to provide the status of the one or more portable computing devices or to effect the action on the one or more portable computing devices on an individual basis, a group basis or a global basis.
- a display can be one of the user interface elements, and the processor can be further operable to cause the presentation of at least some of the portable computing devices on the display.
- the managed services portal can also include a searching module that can be configured to enable the portable computing devices to be searched individually or by groups.
- the processor can be further operable to effect the action on the one or more portable computing devices by generating a message for transmission to the portable computing devices and causing the delivery of the message to the portable computing devices.
- the processor can be further operable to provide the status of the one or more portable computing devices by causing the presentation of a listing that includes applications that may be installed on a portable computing device or a listing that may include applications that may be available to be installed on the portable computing device.
- the processor can be further operable to effect the action on the one or more portable computing devices by causing the installation of applications on the portable computing devices or by causing the removal of applications from the portable computing devices.
- the installation of applications and the removal of applications may be executed in real-time or in accordance with a delivery schedule.
- the processor can be further operable to provide the status of the one or more portable computing devices by providing location information of the portable computing devices.
- the processor can be further operable to effect the action on the one or more portable computing devices by causing one or more of the following: locking at least a portion of a portable computing device; unlocking at least a portion of a portable computing device; logging a user in a portable computing device; logging a user out of a portable computing device; wiping at least a portion of the data on a portable computing device; restoring at least a portion of the data on a portable computing device that has been deleted from the portable computing device; resetting a portable computing device to one or more default settings; adding a user to a portable computing device; removing a user from a portable computing device; or ringing a portable computing device.
- the processor can be further operable to effect the action on the one or more portable computing devices by causing the delivery of content to the one or more portable computing devices.
- the content can include one or more configuration settings or a firmware package.
- the delivery of content can be executed in real-time or in accordance with a delivery schedule.
- the processor can also be further operable to provide the status of the one or more portable computing devices by causing the presentation of user identifications that are associated with the portable computing devices.
- the processor can be further operable to effect the action on the one or more portable computing devices by controlling access to a portable computing device that may be associated with one or more of the user identifications.
- the processor can be further operable to provide the status of the one or more portable computing devices by presenting the one or more portable computing devices as available portable computing devices or as provisioned portable computing devices.
- the processor can be further operable to effect the action on the one or more portable computing devices by causing an available portable computing device to become a provisioned portable computing device.
- the processor can be further operable to cause the presentation of one or more bundles in which the bundles may be assigned to one or more performance functions, and the bundles can contain information that can be based on the assigned performance functions.
- the information can include configuration settings or applications.
- the applications may be default applications, and the processor can be further operable to enable an application to be designated as a default application for a bundle.
- the processor can be further operable to effect the action on the one or more portable computing devices by causing the delivery of a bundle to the portable computing devices. Moreover, the processor can be further operable to effect the action on the one or more portable computing devices by generating a modification signal in response to the information contained in a bundle being edited such that modifications of such information may be dynamically effected on portable computing devices that have already received the bundle.
- the configuration settings include one or more of the following: a password profile; a wireless protocol profile; a VPN profile; a hardware profile; or a certificate profile.
- the configuration settings may include one or more policies, and the policies can define one or more actions to be executed in response to a detected event.
- the policies can include one or more of the following: a VPN policy; a proxy policy; a blacklist policy; a whitelist policy; or a report policy.
- the policy can be the VPN policy, and the action can include the implementation of one or more VPN settings.
- the policy can be the proxy policy, and the action can include the enablement of a proxy.
- the policy can be the blacklist policy, and the action can include blocking the download or installation of an application.
- the policy can be the whitelist policy, and the action can include allowing the download or installation of an application.
- the policy can be the report policy, and the action can include reporting a characteristic of the portable computing device.
- the processor can be further operable to cause the presentation of user identifications.
- the processor can be further operable to manage user identifications by at least controlling the access of the user identifications.
- a method for managing services is also described herein.
- the method can include the steps of enabling a user to make selections associated with the management of services for one or more portable computing devices and receiving a request to determine a status of one or more of the portable computing devices or to cause an action to occur on one or more of the portable computing devices.
- the method can also include the step of providing the status of the one or more portable computing devices or to effecting the action on the one or more portable computing devices.
- the status of the one or more portable computing devices can be provided or the action on the one or more portable computing devices can be effected on an individual basis, a group basis or a global basis.
- the method can further include the steps of presenting at least some of the portable computing devices on the display, and enabling the portable computing devices to be searched individually or by groups.
- the action on the one or more portable computing devices can be effected by generating a message for transmission to the portable computing devices and causing the message to be sent to the portable computing devices.
- the status of the one or more portable computing devices can be provided by presenting a listing that includes applications that can be installed on a portable computing device or a listing that can include applications that may be available to be installed on the portable computing device.
- the action on the one or more portable computing devices can be effected by selectively causing the installation of applications on the portable computing devices or selectively causing the removal of applications from the portable computing devices. Causing the installation of applications and the removal of applications can be such that the installation and removal may be executed in real-time or in accordance with a delivery schedule.
- the status of the one or more portable computing devices can be provided by providing location information of the portable computing devices.
- the action on the one or more portable computing devices can be effected by one or more of the following: locking at least a portion of a portable computing device; unlocking at least a portion of a portable computing device; logging a user in a portable computing device; logging a user out of a portable computing device; wiping at least a portion of the data on a portable computing device; restoring at least a portion of the data on a portable computing device that has been deleted from the portable computing device; resetting a portable computing device to one or more default settings; adding a user to a portable computing device; removing a user from a portable computing device; or ringing a portable computing device.
- the action on the one or more portable computing devices can be effected by delivering content to the one or more portable computing devices.
- the content can include one or more configuration settings or a firmware package.
- the method can further include the step of executing the delivery of content in real-time or in accordance with a delivery schedule.
- the status of the one or more portable computing devices can be provided by causing the presentation of user identifications that are associated with the portable computing devices.
- the action on the one or more portable computing devices can be effected by controlling access to a portable computing device that may be associated with one or more of the user identifications.
- the status of the one or more portable computing devices can be provided by presenting the one or more portable computing devices as available portable computing devices or as provisioned portable computing devices.
- the action on the one or more portable computing devices can be effected by causing an available portable computing device to become a provisioned portable computing device.
- the method can further include the step of presenting one or more bundles in which the bundles may be assigned to one or more performance functions, and the bundles can contain information that may be based on the assigned performance functions.
- the information of the bundles can include configuration settings or applications.
- the applications can be default applications, and the method can further include the step of designating an application as a default application for a bundle.
- the action on the one or more portable computing devices can be effected by causing a bundle to be sent to the portable computing devices.
- the action on the one or more portable computing devices can be effected by generating a modification signal in response to the information contained in a bundle being edited such that modifications of such information may be dynamically effected on portable computing devices that have already received the bundle.
- the configuration settings may include one or more of the following: a password profile; a wireless protocol profile; a VPN profile; a hardware profile; or a certificate profile.
- the configuration settings can include one or more policies, and the policies may define one or more actions to be executed in response to a detected event.
- the policies may include one or more of the following: a VPN policy; a proxy policy; a blacklist policy; a whitelist policy; or a report policy.
- the policy can be the VPN policy, and the action may include the implementation of one or more VPN settings.
- the policy can be the proxy policy, and the action may include the enablement of a proxy.
- the policy can be the blacklist policy, and the action may include blocking the download or installation of an application.
- the policy can be the whitelist policy, and the action can include allowing the download or installation of an application.
- the policy can be the report policy, and the action may include reporting a characteristic of the portable computing device.
- the method can also include the steps of presenting user identifications and managing user identifications by at least controlling the access of the user identifications.
- the managed services portal can include a display that can be configured to present representations of one or more portable computing devices and a processor that can be communicatively coupled to the display.
- the processor can be operable to receive a request to populate at least one of the portable computing devices with a bundle and to direct the delivery of the bundle to the portable computing devices.
- the bundle can include configuration settings and applications that may be selected at least partially based on performance functions associated with the portable computing devices. It is important to note that for all embodiments and arrangements described herein, content may be delivered to any number of portable computing devices, including on an individual basis, and is not necessarily limited to being delivered in bundles.
- the configuration settings include one or more of the following: a password profile; a wireless protocol profile; a VPN profile; a hardware profile; or a certificate profile.
- the configuration settings may include one or more policies, and the policies define one or more actions to be executed in response to a detected event.
- the policies include one or more of the following: a VPN policy; a proxy policy; a blacklist policy; a whitelist policy; or a report policy.
- a method of managing services is also described herein.
- the method can include the steps of presenting representations of one or more portable computing devices, receiving a request to populate at least one of the portable computing devices with a bundle and directing the delivery of the bundle to the portable computing devices.
- the bundle can include configuration settings and applications that are selected at least partially based on performance functions associated with the portable computing devices.
- the configuration settings can include one or more of the following: a password profile; a wireless protocol profile; a VPN profile; a hardware profile; or a certificate profile.
- the configuration settings can include one or more policies, and the policies may define one or more actions to be executed in response to a detected event.
- the policies may include one or more of the following: a VPN policy; a proxy policy; a blacklist policy; a whitelist policy; or a report policy.
- the method can include the steps of presenting representations of one or more portable computing devices, generating one or more bundles that include configurations settings and applications that are selected at least partially based on performance functions associated with the portable computing devices, receiving a request to populate at least one of the portable computing devices with a bundle and directing the delivery of the bundle to the portable computing devices.
- the managed services portal can include one or more user interface elements that can be configured to enable a user to make selections associated with the management of services for a first set of portable computing devices and to enable a user to make selections associated with the management of services for a second set of portable computing devices.
- the managed services portal can also include a processor that can be communicatively coupled to the user interface elements.
- the processor can be operable to receive a first request to determine a status of one or more of the portable computing devices of the first set or to cause an action to occur on one or more of the portable computing devices of the first set and to provide the status of the one or more portable computing devices of the first set or to effect the action on the one or more portable computing devices of the first set.
- the processor can be further operable to provide the status of the one or more portable computing devices of the first set or to effect the action on the one or more portable computing devices of the first set on an individual basis, a group basis or a global basis.
- the processor can also be operable to receive a second request to determine a status of one or more of the portable computing devices of the second set or to cause an action to occur on one or more of the portable computing devices of the second set. If authorized, the processor can also be operable to provide the status of the one or more portable computing devices of the second set or to effect the action on the one or more portable computing devices of the second set. The processor can be further operable to provide the status of the one or more portable computing devices of the second set or to effect the action on the one or more portable computing devices of the second set on an individual basis, a group basis or a global basis.
- the first set of portable computing devices can be associated with a first entity
- the second set of portable computing devices can be associated with a second entity
- the first entity can be a managing entity responsible for operating the managed services portal.
- a display is one of the user interface elements, and the processor can be further operable to cause the presentation of at least some of the portable computing devices of the second set on the display.
- the method can further include a searching module that can be configured to enable the portable computing devices of the second set to be searched individually or by groups.
- the processor can be further operable to effect the action on the one or more portable computing devices of the second set by, for example, generating a message for transmission to the portable computing devices and causing the delivery of the message to the portable computing devices.
- the processor can be further operable to provide the status of the one or more portable computing devices of the second set by causing the presentation of a listing that includes applications that are installed on a portable computing device of the second set or a listing that includes applications that are available to be installed on the portable computing device of the second set.
- the processor can also be further operable to effect the action on the one or more portable computing devices of the second set by causing the installation of applications on the portable computing devices of the second set or causing the removal of applications from the portable computing devices of the second set.
- the installation of applications and the removal of applications can be executed in real-time or in accordance with a delivery schedule.
- the processor can be further operable to provide the status of the one or more portable computing devices of the second set by providing location information of the portable computing devices of the second set.
- the processor can be further operable to effect the action on the one or more portable computing devices of the second set by causing one or more of the following: locking at least a portion of a portable computing device of the second set; unlocking at least a portion of a portable computing device of the second set; logging a user in a portable computing device of the second set; logging a user out of a portable computing device of the second set; wiping at least a portion of the data on a portable computing device of the second set; restoring at least a portion of the data on a portable computing device of the second set that has been deleted from the portable computing device of the second set; resetting a portable computing device of the second set to one or more default settings; adding a user to a portable computing device of the second set; removing a user from a portable computing device of the second set; or ringing a portable computing
- the processor can be further operable to effect the action on the one or more portable computing devices of the second set by causing the delivery of content to the one or more portable computing devices of the second set.
- the content can include one or more configuration settings or a firmware package.
- the delivery of content can be executed in real-time or in accordance with a delivery schedule.
- the processor can be further operable to provide the status of the one or more portable computing devices of the second set by causing the presentation of user identifications that are associated with the portable computing devices of the second set. Moreover, the processor can be operable to effect the action on the one or more portable computing devices of the second set by controlling access to a portable computing device of the second set that may be associated with one or more of the user identifications.
- the processor can be further operable to cause the presentation of one or more bundles.
- the bundles can be assigned to one or more performance functions, and the bundles can contain information that may be based on the assigned performance functions.
- the information may include configuration settings or applications.
- the applications may be default applications, and the processor can be further operable to enable an application to be designated as a default application for a bundle.
- the processor can be further operable to effect the action on the one or more portable computing devices of the second set by causing the delivery of a bundle to the portable computing devices of the second set.
- the processor can be operable to effect the action on the one or more portable computing devices of the second set by generating a modification signal in response to the information contained in a bundle being edited such that modifications of such information may be dynamically effected on portable computing devices of the second set that have already received the bundle.
- the configuration settings can include one or more of the following: a password profile; a wireless protocol profile; a VPN profile; a hardware profile; or a certificate profile.
- the configuration settings can include one or more policies, and the policies may define one or more actions to be executed in response to a detected event.
- the policies can include one or more of the following: a VPN policy; a proxy policy; a blacklist policy; a whitelist policy; or a report policy.
- the policy can be the VPN policy, and the action may include the implementation of one or more VPN settings, while in another embodiment, the policy can be the proxy policy, and the action may include the enablement of a proxy.
- the policy may be the blacklist policy, and the action cam includes blocking the download or installation of an application.
- the policy can be the whitelist policy, and the action can include allowing the download or installation of an application.
- the policy can be the report policy, and the action may include reporting a characteristic of the portable computing device.
- the processor can be further operable to cause the presentation of user identifications.
- the processor can be further operable to manage user identifications by at least controlling the access of the user identifications.
- the method can include the steps of enabling a user to make selections associated with the management of services for one or more portable computing devices of a first set, enabling the user to make selections associated with the management of services for one or more portable computing devices of a second set, receiving a request to determine a status of one or more of the portable computing devices of the first set or to cause an action to occur on one or more of the portable computing devices of the first set and providing the status of the one or more portable computing devices of the first set or effecting the action on the one or more portable computing devices of the first set.
- the status of the one or more portable computing devices of the first set can be provided or the action on the one or more portable computing devices of the first set can be effected on an individual basis, a group basis or a global basis.
- the method can also include the steps of receiving a second request to determine a status of one or more portable computing devices of the second set or to cause an action to occur on one or more of the portable computing devices of the second set and if authorized, providing the status of the one or more portable computing devices of the second set or effecting the action on the one or more portable computing devices of the second set.
- the status of the one or more portable computing devices of the second set can be provided or the action on the one or more portable computing devices of the second set can be effected on an individual basis, a group basis or a global basis.
- the first set of portable computing devices can be associated with a first entity
- the second set of portable computing devices can be associated with a second entity.
- the first entity can be a managing entity responsible for operating the managed services portal.
- the method can further include the steps of presenting at least some of the portable computing devices of the second set on the display and enabling the portable computing devices of the second set to be searched individually or by groups.
- the action on the one or more portable computing devices of the second set can be effected by generating a message for transmission to the portable computing devices of the second set and causing the message to be sent to the portable computing devices of the second set.
- the status of the one or more portable computing devices of the second set can be provided by presenting a listing that includes applications that can be installed on a portable computing device of the second set or a listing that can include applications that may be available to be installed on the portable computing device of the second set.
- the action on the one or more portable computing devices of the second set can be effected by selectively causing the installation of applications on the portable computing devices of the second set or selectively causing the removal of applications from the portable computing devices of the second set.
- causing the installation of applications and the removal of applications can be such that the installation and removal may be executed in real-time or in accordance with a delivery schedule.
- the status of the one or more portable computing devices of the second set can be provided by providing location information of the portable computing devices of the second set.
- the action on the one or more portable computing devices of the second set can be effected by one or more of the following: locking at least a portion of a portable computing device of the second set; unlocking at least a portion of a portable computing device of the second set; logging a user in a portable computing device of the second set; logging a user out of a portable computing device of the second set; wiping at least a portion of the data on a portable computing device of the second set; restoring at least a portion of the data on a portable computing device of the second set that has been deleted from the portable computing device of the second set; resetting a portable computing device of the second set to one or more default settings; adding a user to a portable computing device of the second set; removing a user from a portable computing device of the second set; or ringing a portable computing device of the second set.
- the action on the one or more portable computing devices of the second set can be effected by delivering content to the one or more portable computing devices of the second set.
- the content can include one or more configuration settings or a firmware package.
- the method can also include the step of executing the delivery of content in real-time or in accordance with a delivery schedule.
- the status of the one or more portable computing devices of the second set can be provided by causing the presentation of user identifications that are associated with the portable computing devices of the second set.
- the action on the one or more portable computing devices of the second set can be effected by controlling access to a portable computing device of the second set that is associated with one or more of the user identifications.
- the method can also include the step of presenting one or more bundles.
- the bundles can be assigned to one or more performance functions, and the bundles may contain information that can be based on the assigned performance functions.
- the information of the bundles can include configuration settings or applications.
- the applications for example, can be default applications, and the method can further include the step of designating an application as a default application for a bundle.
- the action on the one or more portable computing devices of the second set can be effected by causing a bundle to be sent to the portable computing devices of the second set.
- the action on the one or more portable computing devices of the second set can be effected by generating a modification signal in response to the information contained in a bundle being edited such that modifications of such information may be dynamically effected on portable computing devices of the second set that have already received the bundle.
- the configuration settings include one or more of the following: a password profile; a wireless protocol profile; a VPN profile; a hardware profile; or a certificate profile.
- the configuration settings may include one or more policies, and the policies may define one or more actions to be executed in response to a detected event.
- the policies can include, for example, one or more of the following: a VPN policy; a proxy policy; a blacklist policy; a whitelist policy; or a report policy.
- the policy can be the VPN policy, and the action can include the implementation of one or more VPN settings.
- the policy can be the proxy policy, and the action can include the enablement of a proxy.
- the policy can be the blacklist policy, and the action may include blocking the download or installation of an application.
- the policy can be the whitelist policy, and the action may include allowing the download or installation of an application.
- the policy can be the report policy, and the action includes reporting a characteristic of the portable computing device.
- the method can also include the step of presenting user identifications.
- the method can further include the step of managing user identifications by at least controlling the access of the user identifications.
- a managed services portal that can be operated by a first entity is also described herein.
- the managed services portal can include one or more user interface elements that can be configured to enable the first entity to make selections associated with the management of services for portable computing devices associated with a second entity.
- the managed services portal can also include a processor that can be communicatively coupled to the user interface elements.
- the processor can be operable to receive a request to determine a status of one or more of the portable computing devices of the second entity or to cause an action to occur on one or more of the portable computing devices of the second entity. If authorized, the processor can be operable to provide the status of the one or more portable computing devices of the second entity or to effect the action on the one or more portable computing devices of the second entity.
- the processor can be further operable to provide the status of the one or more portable computing devices of the second entity or to effect the action on the one or more portable computing devices of the second entity on an individual basis, a group basis or a global basis.
- the method can include the steps of enabling a management entity to make selections associated with the management of services for one or more portable computing devices associated with a second entity, receiving a request from the management entity to determine a status of one or more of the portable computing devices of the second entity or to cause an action to occur on one or more of the portable computing devices of the second entity and if authorized and in response to the request, providing the status of the one or more portable computing devices of the second entity or effecting the action on the one or more portable computing devices of the second entity.
- the status of the one or more portable computing devices of the second entity can be provided or the action on the one or more portable computing devices of the second entity can be effected on an individual basis, a group basis or a global basis.
- Embodiments are also directed to a supervisory portal systems and methods.
- a user interface element is presented to manage or control one or more portable computing devices.
- An input can be received from the user interface element to manage or control all of or a subset set of the one or more child devices.
- a directive, content or a message can be transmitted to the child device. In this way, supervisory oversight of the one or more child portable computing devices can be provided.
- FIG. 1 depicts exemplary elements of a system for providing telephony and digital media services to a location, such as a home or office.
- FIG. 2 is a back perspective view of an exemplary telephony and digital media services device.
- FIG. 3 is a block diagram of an exemplary system for providing telephony and digital media services.
- FIG. 4 is a block diagram of an exemplary alternative system for providing telephony and digital media services.
- FIG. 5 is a block diagram of an exemplary system for providing telephony and digital media services that supports multiple devices and handsets via an adapter unit in an environment in which a telecommunication carrier provides Voice over Internet Protocol (VoIP) service.
- VoIP Voice over Internet Protocol
- FIG. 6 is a block diagram of an exemplary system for providing telephony and digital media services that supports multiple devices and handsets via an adapter unit in an environment in which a telecommunications carrier provides POT service.
- FIG. 7 is a block diagram of an exemplary system for providing telephony and digital media services that supports multiple devices and handsets via an adapter unit in an environment in which a telecommunications carrier provides VoIP service.
- FIG. 8 is a block diagram of an exemplary system for providing telephony and digital media services that supports multiple devices and handsets via an adapter unit in an environment in which a telecommunications carrier provides POT service.
- FIG. 9 depicts an embodiment in which an adapter unit within a system for providing telephony and digital media service provides PBX-like features to a user of a computer connected to the adapter unit.
- FIG. 10 is a hardware block diagram of an exemplary telephony and digital media services device.
- FIG. 11 is a hardware block diagram of an exemplary telephony and digital media services device designed for office environments.
- FIG. 12 is a block diagram of an exemplary architecture of a telephony and digital media services device.
- FIG. 13 is a block diagram that depicts exemplary system elements of a telephony and digital media services device.
- FIG. 14 is a block diagram of an exemplary application framework that may be implemented by a telephony and digital media services device.
- FIG. 15 depicts an exemplary application installation package that may be provided from a remote application server to a telephony and digital media services device.
- FIG. 16 depicts an exemplary application manager that comprises two movie applications.
- FIG. 17 depicts an exemplary manager movie portion of an application manager.
- FIG. 18 depicts an exemplary theme movie portion of an application manager.
- FIG. 19 is a diagram that illustrates an exemplary process for handling an asynchronous event associated with an inactive application during execution of an active application.
- FIG. 20 is a diagram depicting the overlaying of a first application movie with a second application movie pursuant to an asynchronous event handling protocol in accordance with an embodiment of the present invention.
- FIG. 21 is a diagram depicting the use of an exemplary watchdog timer to monitor application liveliness.
- FIG. 22 illustrates an application that includes an exemplary first movie that comprises the business logic of the application and an exemplary second movie that comprises the graphical assets of the application.
- FIG. 23 is a block diagram of an exemplary system for logging and reviewing application usage information, system configuration information and system health information associated with one or more telephony and digital media services devices.
- FIG. 24 depicts an exemplary interface screen that may be presented by an exemplary system for reviewing application usage information associated with one or more telephony and digital media services devices.
- FIG. 25 depicts another exemplary interface screen interface screen that may be presented by an exemplary system for reviewing application usage information associated with one or more telephony and digital media services devices.
- FIG. 26 depicts an exemplary interface screen that may be presented by an exemplary system for reviewing application usage information, system configuration information and system health information associated with one or more telephony and digital media services devices.
- FIG. 27 is a front perspective view of an exemplary handset.
- FIG. 28 is a back view of an exemplary handset.
- FIG. 29 is a front perspective view of an exemplary handset docking station.
- FIG. 30 is a back perspective view of an exemplary handset docking station.
- FIG. 31 depicts an exemplary home graphical user interface (GUI) screen that may be displayed by an exemplary telephony and digital media services device.
- GUI home graphical user interface
- FIG. 32 depicts an exemplary GUI screen for a telephony application.
- FIG. 33 depicts an exemplary GUI screen for a call log application.
- FIG. 34 depicts an exemplary GUI screen for a voicemail application.
- FIG. 35 depicts an exemplary GUI screen for a contacts application.
- FIG. 36 depicts an exemplary GUI screen for a weather application.
- FIG. 37 depicts an exemplary GUI screen for a movie showtimes application.
- FIG. 38 depicts an exemplary GUI screen for a media application in which a photos interface is displayed.
- FIG. 39 depicts an exemplary GUI screen for a media application in which a music interface is displayed.
- FIG. 40 depicts a further exemplary GUI screen for a media application in which a music interface is displayed.
- FIG. 41 depicts an exemplary GUI screen for a media application in which a videos interface is displayed.
- FIGS. 42 and 43 depict an exemplary GUI screen for a video player application.
- FIG. 44 depicts an exemplary GUI screen for a media application in which a podcasts interface is displayed.
- FIG. 45 depicts a further exemplary GUI screen for a media application in which a podcasts interface is displayed.
- FIG. 46 depicts an exemplary GUI screen for a cameras application.
- FIG. 47 depicts an additional exemplary GUI screen for a cameras application.
- FIG. 48 depicts an exemplary GUI screen for a news application.
- FIG. 49 depicts an additional exemplary GUI screen for a news application.
- FIG. 50 depicts an exemplary GUI screen for a horoscopes application.
- FIG. 51 depicts an additional exemplary GUI screen for a horoscopes application.
- FIG. 52 depicts an exemplary GUI screen for a recipes application.
- FIG. 53 depicts an additional exemplary GUI screen for a recipes application.
- FIG. 54 depicts an exemplary GUI screen for a calendar application.
- FIG. 55 depicts an additional exemplary GUI screen for a calendar application.
- FIG. 56 depicts an exemplary GUI screen for an Internet radio application.
- FIG. 57 depicts an exemplary GUI screen for a stocks application.
- FIG. 58 depicts an exemplary GUI screen for an Internet video application.
- FIG. 59 depicts an exemplary GUI screen for an Internet-based photo application.
- FIG. 60 depicts an exemplary GUI screen for an alarm application.
- FIG. 61 depicts an additional exemplary GUI screen for an alarm application.
- FIG. 62 depicts an exemplary GUI screen for a screensaver application.
- FIG. 63 depicts an exemplary GUI screen for a directory services application.
- FIG. 64 depicts an exemplary GUI screen for a memos application.
- FIG. 65 depicts an exemplary GUI screen for a television (TV) programming guide application.
- FIG. 66 depicts an exemplary GUI screen for a network setup application.
- FIG. 67 depicts an additional exemplary GUI screen for a network setup application.
- FIG. 68 depicts an exemplary GUI screen for an advanced network setup application.
- FIG. 69 depicts an exemplary GUI screen for a home control application.
- FIG. 70 depicts an exemplary overlay interface for performing home control functions associated with a selected room that may be displayed over the GUI screen of FIG. 69 .
- FIG. 71 depicts a further exemplary overlay interface for performing a selected home control function that may be displayed over the GUI screen of FIG. 69 .
- FIG. 72 is a block diagram of an exemplary system that includes a services platform for enabling entities to deploy, manage optimize and monitor a network of telephony and multimedia services devices.
- FIG. 73 depicts four main areas of an exemplary application store life cycle.
- FIG. 74 depicts an exemplary GUI screen that may be used to provide an interface to application store.
- FIG. 75 is a block diagram that shows an example of how a content aggregation subsystem may be used to aggregate content from multiple content providers.
- FIG. 76 is a block diagram of an exemplary system that obtains directory services information from a single IP-based directory for presentation on a telephony and digital media services device.
- FIG. 77 is a block diagram of an exemplary system in accordance that obtains directory services information from multiple IP-based directories for presentation on a telephony and digital media services device.
- FIG. 78 is a block diagram of an exemplary system in accordance that obtains premium placement directory services information, standard directory services information and advertisements for presentation on a telephony and digital media services device.
- FIG. 79 is a block diagram of an exemplary system that uses click-to-dial reporting to provide community-based popularity information for presentation on a telephony and digital media services device.
- FIG. 80 depicts various components of an exemplary directory services application.
- FIGS. 81-83 depict exemplary GUI screens of a directory services application.
- FIG. 84 depicts an exemplary computer system that may be used to implement various features.
- FIG. 85 is a block diagram of an exemplary application store.
- FIG. 86 illustrates an example of a system that includes a managed services platform.
- FIG. 87 illustrates an example of a managed services system.
- FIG. 88 illustrates an example of an application developer portal and an approval portal.
- FIG. 89 illustrates an example of an interface that can permit application developers to submit applications.
- FIG. 90 illustrates an example of an applications page.
- FIG. 91 illustrates an example of an application presentation page.
- FIG. 92 illustrates an example of a file page that can present information related to files.
- FIG. 93 illustrates an example of a comments page.
- FIG. 94 illustrates an example of a statistics page.
- FIG. 95 illustrates an example of a devices page, which can list one or more testing devices.
- FIG. 96 illustrates an example of a device information page.
- FIG. 97 illustrates an example of an interface that facilitates an approval process.
- FIG. 98 illustrates an example of an application review page.
- FIG. 99 illustrates an example of a files page.
- FIG. 100 illustrates an example of a statistics page.
- FIG. 101 illustrates an example of a testing devices page.
- FIG. 102 illustrates a block diagram of an exemplary administrator portal.
- FIG. 103 illustrates a block diagram of an exemplary client portal.
- FIG. 104 illustrates an example of an applications page.
- FIG. 105 illustrates an example of an application selection page.
- FIG. 106 illustrates an example of a devices page.
- FIG. 107 illustrates an example of a device details page.
- FIG. 108 illustrates an example of a device application page.
- FIG. 109 illustrates an example of a users page that can present one or more user identifications.
- FIG. 110 illustrates an example of an information page.
- FIG. 111 illustrates an example of a roles page.
- FIG. 112 illustrates an example of a firmware page.
- FIG. 113 illustrates an example of a bundles page.
- FIG. 114 illustrates an example of a bundle application page.
- FIG. 115 illustrates an example of a VPN page.
- FIG. 116 illustrates an example of a Wi-Fi page.
- FIG. 117 illustrates an example of a general editing page.
- FIG. 118 illustrates an example of a VPN editing page.
- FIG. 119 illustrates an example of a Wi-Fi editing page.
- FIG. 120 illustrates an example of a certificates editing page.
- FIG. 121 illustrates an example of an application editing page.
- FIG. 122 illustrates an example of a management page.
- FIG. 123 illustrates an example of an application repository information page.
- FIG. 124 illustrates an example of a general default page.
- FIG. 125 illustrates an example of a default certificates page.
- FIG. 126 illustrates an example of a default applications page.
- FIG. 127 illustrates an example of a general default edit page.
- FIG. 128 illustrates an example of a delivery page.
- FIG. 129 illustrates an example of an applications edit page.
- FIG. 130 illustrates an example of a users page.
- FIG. 131 illustrates an example of an information page.
- FIG. 132 illustrates an example of a roles page.
- FIG. 133 illustrates an example of a devices page.
- FIG. 134 illustrates an example of an interface that can be useful for enabling the management of portable computing devices.
- FIG. 135 illustrates an example of a devices page.
- FIG. 136 illustrates an example of a device information page.
- FIG. 137 illustrates an example of a location page.
- FIG. 138 illustrates an example of a menu.
- FIG. 139 illustrates an example of a firmware page.
- FIG. 140 illustrates an example of a bundles page.
- FIG. 141 illustrates an example of a bundle information page.
- FIG. 142 illustrates an example of a profile menu.
- FIG. 143 illustrates an example of a wireless or Wi-Fi profile page.
- FIG. 144 illustrates an example of a VPN profile page.
- FIG. 145 illustrates an example of a hardware profile page.
- FIG. 146 illustrates an example of a certificate profile page.
- FIG. 147 illustrates an example of a policy page.
- FIG. 148 illustrates an example of a proxy policy page.
- FIG. 149 illustrates an example of a VPN policy page.
- FIG. 150 illustrates an example of a blacklist policy page.
- FIG. 151 illustrates an example of a whitelist policy page.
- FIG. 152 illustrates an example of a report policy page.
- FIG. 153 illustrates an example of an application page.
- FIG. 154 illustrates an example of an application edit page.
- FIG. 155 illustrates an example of a bundle devices page.
- FIG. 156 illustrates an example of a users page.
- FIG. 157 illustrates an example of an application interface.
- FIG. 158 illustrates an example of an application information page.
- FIG. 159 illustrates an example of a users page.
- FIG. 160 illustrates an example of a user control page.
- FIG. 161 illustrates an example of a user identification page for a supervisory portal system.
- FIG. 162 illustrates an example of a user authentication page for a supervisory portal system.
- FIG. 163 illustrates an example of a home page for an administrator of a supervisory portal system.
- FIG. 164 illustrates an example of a home page for an administrator of a supervisory portal system in which information is displayed for a selected child user.
- FIG. 165 illustrates an example of an applications page for an administrator of a supervisory portal system.
- FIG. 166 illustrates an example of a devices page for an administrator of a supervisory portal system.
- FIG. 167 illustrates an example of a usage page for an administrator of a supervisory portal system.
- FIG. 168 illustrates an example of a location page for an administrator of a supervisory portal system.
- FIG. 169 illustrates an example of a wish list page for an administrator of a supervisory portal system.
- FIG. 170 illustrates an example of an allowances page for an administrator of a supervisory portal system.
- FIG. 171 is an example of a supervisory portal method.
- references in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” or the like, indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to implement such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
- the term “exemplary” as used herein is defined as an example or an instance of an object, apparatus, system, entity, composition, method, step or process.
- the term “gateway” is defined as an element or a group of elements that enable or facilitate the transfer of communication signals from one component or network to another.
- the term “communicatively coupled” is defined as a state in which two or more components are connected such that communication signals are able to be exchanged between the components on a unidirectional or bidirectional manner, either wirelessly, through a wired connection or a combination of both.
- a “computing device” is defined as a component or a group of components that are configured to process and/or present data to a user or another component or group of components.
- identification is defined as information or data that is used to uniquely distinguish a component or a group of components from other components or groups of components.
- set is defined as a collection of one or more.
- a “portable computing device” is defined as a mobile or fixed communication device that presents a user interface to a user and that is capable of being managed.
- managing entity is defined as an entity or a group of entities that are assigned to oversee or are otherwise responsible for an operation, act, component or service on behalf of a separate entity or group of entities.
- a “user interface element” is defined as a component or a group of components that enables a user to interact with a machine.
- graphical user interface element is defined as an image or a portion of an image that presents information to a user or allows the user to interact with a device through a display.
- An “interface” is defined as a component, system or arrangement or groups thereof that enable information/data to be entered into a machine.
- a “display” is defined as a component or a group of components that present information/data in visual form.
- a “processor” is defined as a component or a group of components that at least execute instructions.
- a “transceiver” is defined as a component or a group of components that transmit signals, receive signals or transmit and receive signals, whether wirelessly or through a hard-wired connection.
- the term “managed services platform” is a collection of one or more components that manage services for one or more portable computing devices by controlling the exchange of messages and data with the portable computing devices.
- the term “portal” is defined as any combination of components or systems that permit a user or another system or component to input, output, manage, generate, process or manipulate data or to control another component or system and can include hardware, software or any suitable combination of hardware and software.
- the term “firmware” is defined as a software component or components that lend to the state and user interface of a device, including a complete image of a device or an edit or modification to an existing image on a device. Examples include micro-code, a bootloader, a kernel, a root file system and the dissemination of configuration of details, updates (such as updates to artifacts of a running system), profiles and settings.
- FIG. 1 depicts elements of a system 100 for providing telephony and digital media services to a location, such as a home or office, in accordance with an embodiment of the present invention.
- digital media services broadly refers to any service that is based on the transfer and/or presentation of digital content to a user.
- system 100 includes a telephony and digital media services device (“device”) 110 and associated handsets 120 .
- device 110 includes a display 112 .
- Display 112 is used to provide a graphical user interface (GUI) that enables a user to initiate, manage and experience telephony and digital media services provided by system 100 .
- GUI graphical user interface
- display 112 comprises a color LCD display with a capacitive touch screen panel.
- a user may interact with the GUI by touching display 112 with a finger.
- Handsets 120 provide a means for extending the telephony services, and optionally other services, of device 110 to other areas within a given location, such as to other areas within a home or office. As shown in FIG. 1 , each handset 120 includes a user interface that comprises both a display 122 , such as a color LCD display, and a keypad 124 . Each handset 120 may be placed in a corresponding docking station 126 . Docking station 126 provides an interface by which a battery internal to a handset may be recharged and also provides a means for supporting a handset when it is not in use.
- Handsets 120 are configured to wirelessly communicate with device 110 for the purposes of providing telephony services and to optionally provide other services to a user. In one embodiment, such communications are carried out in accordance with the Digital Enhanced Cordless Telecommunications (DECT) standard published by the European Telecommunications Standards Institute (ETSI). Thus, in one embodiment, device 110 is configured to act as a DECT base station and handsets 120 are configured to act as DECT handsets. Other communication configurations will be discussed elsewhere herein, as the device 110 may be arranged to communicate with other units in addition to or in lieu of the handsets 120 .
- DECT Digital Enhanced Cordless Telecommunications
- ETSI European Telecommunications Standards Institute
- FIG. 2 is a back perspective view of device 110 .
- device 110 includes an interface 202 for connecting to a power supply, such as an AC adapter as well as an interface 204 for connecting to a network, such as a local area network or wide area network.
- interface 204 comprises an Ethernet interface, such as a 10/100/1000 megabit per second (Mbps) Ethernet interface.
- Device 110 may also include an internal wireless network adapter, such as an 802.11 wireless network adapter, for providing network connectivity. As will be described in more detail herein, such network connectivity may be utilized by device 110 for providing telephony services and/or certain digital media services to a user.
- device 110 and handsets 120 may be communicatively connected to a telecommunications carrier and/or Internet Protocol (IP) network.
- IP Internet Protocol
- FIG. 3 depicts connectivity aspects of a first example installation 300 .
- device 110 is communicatively connected to a remote telecommunication carrier switch 302 and is configured to receive Voice over Internet Protocol (VoIP) telephony services therefrom via a VoIP connection.
- VoIP connection may be implemented, for example, over a broadband data service such as Digital Subscriber Line (DSL), Integrated Services Digital Network (IDSN), data over cable, T1/T3, optical carrier, carrier-class Ethernet, satellite, cellular or any other suitable data service.
- DSL Digital Subscriber Line
- IDSN Integrated Services Digital Network
- T1/T3 optical carrier
- carrier-class Ethernet carrier-class Ethernet
- satellite cellular or any other suitable data service.
- the various physical transport media used for implementing such data services are well known.
- device 110 connects to the appropriate data service via an Ethernet interface or WiFi interface, although these are only examples.
- the broadband data service may be also used by device 110 to provide other services, such as digital media services, to a user.
- carrier switch 302 acts as a Session Initiation Protocol (SIP) server and device 110 acts as a SIP client for the purposes of conducting VoIP telephony services.
- Handsets 120 are wirelessly connected to device 110 using the well-known DECT protocol, which is used to extend telephony services to each handset.
- DECT Session Initiation Protocol
- a limitation of installation 300 is that the installation is limited to one device 110 , which is configured to act as a DECT base station.
- FIG. 4 depicts connectivity aspects of an alternative example installation 400 .
- a carrier switch 402 is configured to perform shared trunking. This arrangement allows multiple devices, including device 110 and additional device(s) 410 , to be associated with the same telephone number for the purposes of receiving incoming telephony calls. As shown in FIG. 4 , a separate VoIP connection is maintained between carrier switch 402 and each device. Additionally, each device is associated with one or more handsets (e.g., device 110 is associated with handsets 120 , each of device(s) 410 is associated with corresponding handset(s) 420 ) and communicates wirelessly therewith using DECT.
- a limitation of installation 400 is that the handsets associated with one device cannot communicate with handsets associated with another device through standard DECT intercom mechanisms because each handset is configured to communicate with a different DECT base station.
- FIG. 5 depicts an alternate installation 500 that supports multiple devices 506 and handsets 508 via an adapter unit 504 in an environment in which a telecommunication carrier provides VoIP service.
- devices 506 do not act as DECT base stations but instead are configured to operate as DECT clients in a like manner to handsets 508 .
- Adapter unit 504 is installed on-site along with devices 506 and handsets 508 and is connected to a remote carrier switch 502 .
- Adapter unit 504 includes an Analog Terminal Adapter (ATA) and DECT base station 510 .
- ATA Analog Terminal Adapter
- DECT base station 510 As will be appreciated by persons skilled in the relevant art(s), an ATA comprises an adapter that allows a Plain Old Telephony System (POTS) telephone to interface to a VoIP provider.
- POTS Plain Old Telephony System
- installation 500 devices 506 and handsets 508 perform telephony-related operations by communicating via the DECT protocol with the DECT base station within ATA and DECT base station 510 .
- Installation 500 also advantageously supports the operation of legacy POTS equipment (such as POTS telephones, fax machines and security systems) by allowing such equipment to be connected via a POTS interface to the ATA within ATA and DECT base station 510 .
- legacy POTS equipment such as POTS telephones, fax machines and security systems
- Adapter unit 504 further includes a Wi-Fi access point (i.e., an IEEE 802.11 access point) and/or Ethernet switch 512 .
- This element provides access to the Internet via an IP link.
- the IP link may be supported by the same data service and physical transport media used to support the VoIP connection with carrier switch 502 .
- each of devices 506 is communicatively connected to Wi-Fi access point/Ethernet switch 512 for the purpose of accessing digital media that may be used to provide services to a user.
- Wi-Fi access point/Ethernet switch 512 is not integrated within adapter unit 504 but instead comprises one or more separate stand-alone devices.
- FIG. 6 depicts an installation 600 that supports multiple devices 606 and handsets 608 via an adapter unit 604 in an environment in which a telecommunications carrier provides POTS service.
- devices 606 do not act as DECT base stations but instead are configured to operate as DECT clients in a like manner to handsets 608 .
- Adapter unit 604 which includes a DECT base station 610 and a Wi-Fi access point and/or Ethernet switch 612 , is installed on-site along with devices 606 and handsets 608 .
- DECT base station 610 is connected to a carrier switch 602 via a POTS interface.
- Devices 606 and handsets 608 perform telephony-related operations by communicating via the DECT protocol with DECT base station 610 .
- Legacy POTS equipment may be connected to a POTS interface to receive POTS service directly from carrier switch 602 .
- Wi-Fi access point/Ethernet switch 612 provides access to the Internet via an IP link that is not associated with carrier switch 602 . Such IP link may be provided using any known data service/physical transport media combination.
- each of devices 606 is communicatively connected to Wi-Fi access point/Ethernet switch 612 for the purpose of accessing digital media that may be used to provide services to a user.
- Wi-Fi access point/Ethernet switch 612 is not integrated within adapter unit 604 but instead comprises one or more separate stand-alone devices.
- FIG. 7 depicts an alternate installation 700 that supports multiple devices 706 and handsets 708 via an adapter unit 704 in an environment in which a telecommunications carrier provides VoIP service.
- VoIP services are provided directly to devices 706 and handsets 708 .
- adapter unit 704 is installed on-site along with devices 706 and handsets 708 .
- Adapter unit 704 includes an ATA and a Session Initiation Protocol (SIP) proxy 710 that is communicatively connected to a carrier switch 702 via a VoIP connection.
- Adapter unit 704 also includes a Wi-Fi access point and/or Ethernet switch 712 that is communicatively connected to carrier switch 702 via an IP link and to ATA and SIP proxy 710 .
- SIP Session Initiation Protocol
- SIP proxy within ATA and SIP proxy 710 allows devices 706 to register with it and maintains a local numbering plan.
- SIP proxy essentially operates as a home private branch exchange (PBX).
- PBX home private branch exchange
- the SIP proxy in turn registers with carrier switch 702 .
- Communication between each device 706 and the SIP proxy is via Wi-FI access point/Ethernet switch 712 .
- each handset 708 is also capable of communicating with the SIP proxy via Wi-Fi or some other protocol capable of supporting SIP communication.
- the ATA within ATA and SIP proxy 710 can provide a POTS interface for providing telephony service to legacy POTS equipment.
- Wi-Fi access point/Ethernet switch 712 can be used by devices 706 to access digital media for providing services to a user.
- Wi-Fi access point/Ethernet switch 712 may either be integrated within adapter unit 704 or comprise one or more separate stand-alone devices.
- FIG. 8 depicts an alternate installation 800 that supports multiple devices 806 and handsets 808 via an adapter unit 804 in an environment in which a telecommunications carrier provides POTS service.
- VoIP services are provided directly to devices 806 and handsets 808 .
- adapter unit 804 is installed on-site along with devices 806 and handsets 808 .
- Adapter unit 804 includes a Foreign Exchange Office (FXO) gateway (SIP server) 810 that is connected via a POTS interface to a carrier switch 802 .
- Adapter unit 804 further includes a Wi-Fi access point and/or Ethernet switch 812 that provides access to the Internet via an IP link and that is connected to FXO gateway 810 .
- FXO gateway SIP server
- FXO gateway 810 allows devices 806 to register with it and maintains a local numbering plan.
- FXO gateway 810 essentially operates as a home PBX. Communication between each device 806 and FXO gateway 810 is via Wi-Fi access point/Ethernet switch 812 .
- each handset 808 is also capable of communicating with FXO gateway 810 via Wi-Fi or some other protocol capable of supporting SIP communication.
- FXO gateway in turn communicates with carrier switch 802 via one or more POTS lines.
- legacy POTS equipment may be connected to a POTS interface to receive POTS service directly from carrier switch 802 .
- Wi-Fi access point/Ethernet switch 812 can be used by devices 806 to access digital media or other information for providing services to a user.
- Wi-Fi access point/Ethernet switch 812 may either be integrated within adapter unit 804 or comprise one or more separate stand-alone devices.
- the adapter unit described above in reference to FIG. 7 or FIG. 8 may be configured to function as a “mini-PBX,” offering a variety of features to a user acting as administrator.
- the adapter unit may be configured to present a Web page, Adobe® Flash® movie, or some other interface that provides programmatic control to a user of a computer that is connected to the adapter unit.
- the computer may be connected to the adapter unit via a wired interface, such as an Ethernet or Universal Serial Bus interface, or via a wireless interface, such as an 802.11 interface.
- FIG. 9 shows a computer 902 connected to an adapter unit 904 having PBX functionality (which may represent, for example, adapter unit 706 of FIG. 7 or adapter unit 806 of FIG. 8 ) for the purpose of providing a user with programmatic control over certain features implemented by adapter unit 904 .
- PBX functionality which may represent, for example, adapter unit 706 of FIG. 7 or adapter unit 806 of FIG. 8 .
- the adapter unit may be configured to discover new devices or handsets in a location such as a home.
- the discovery protocol may be implemented, for example, using an IP protocol or via DECT.
- the adapter unit may also be configured to present a list of newly-discovered devices and handsets to the user.
- the adapter unit may permit a user to assign names, locations and/or extension numbers to the devices/handsets.
- the adapter unit may allow a user to define a numbering plan (e.g., 4-digit extensions) and assign numbers to the devices. If DECT is used for communication with the devices, then single-digit identifiers may instead be used due to limitations associated with that protocol.
- the adapter unit may also be configured to allow a user to assign an owner to a device, wherein the association of an owner with a device may cause other items of information to be associated with the device. Thus, for example, if a particular owner is associated with a device, then the device may be configured with a contact list associated with the particular owner.
- the adapter unit may also be configured to allow a user to manage permissions for each connected device or handset.
- permissions may include, for example: time-of-day restrictions on calls (e.g., no calls after 10:00 PM except for 911 calls); dialing restrictions (e.g., no calls to 1-900 numbers or international numbers); call restrictions (e.g., no outgoing calls or no incoming calls); and restrictions on the ability to modify device settings or add/modify/delete contacts.
- time-of-day restrictions on calls e.g., no calls after 10:00 PM except for 911 calls
- dialing restrictions e.g., no calls to 1-900 numbers or international numbers
- call restrictions e.g., no outgoing calls or no incoming calls
- restrictions e.g., no outgoing calls or no incoming calls
- the adapter unit may also be configured to present a user with status information associated with each device/handset.
- status information may include, and is not limited to, whether a device is in use, whether a device is still functioning (i.e., whether the device is “alive” or “dead”), and other properties associated with a device.
- FIG. 10 is a block diagram of an example hardware architecture 1000 of device 110 .
- This hardware architecture is described by way of example only and is not intended to limit the present invention. Persons skilled in the relevant art(s) will readily appreciate that other hardware architectures may be used to implement device 110 that are within the scope and spirit of the present invention.
- hardware architecture 1000 includes an embedded processor and system controller hub 1002 that is connected to a plurality of peripheral devices or chips.
- the embedded processor is preferably one that has been designed for use in portable and low-power applications, such as Mobile Internet Devices (MIDs).
- the system controller hub comprises a chipset that handles peripheral input/output (I/O) and performs memory and power management functions for the embedded processor.
- the embedded processor comprises a 1.1 Gigahertz (GHz) Intel® AtomTM processor designed and sold by Intel Corporation of Santa Clara, Calif.
- the system controller hub comprises the Intel® System Controller Hub US15W Chipset, also designed and sold by Intel Corporation of Santa Clara, Calif., although this is only one example; other processors can be implemented into the architecture 1000 .
- hardware architecture 1000 includes volatile system memory in the form of SDRAM (Synchronous Dynamic Random Access Memory) 1004 .
- the embedded processor supports an integral 64-bit-wide 4-Gigabits (Gbits) of DDR2 (Double Data Rate 2) SDRAM clocked at 533 Megahertz (MHz).
- SDRAM 1004 may comprise four 512 Megabit (Mbit) DDR2 SDRAM 667 MHz integrated circuits (ICs) directly mounted onto a motherboard along with embedded processor and system controller hub 1002 .
- the capacity may be increased from 512 Megabytes (MB) to 1 gigabyte (GB) by populating the board with four 1 Gbit ICs instead.
- MB Megabytes
- GB gigabyte
- Hardware architecture 1000 also includes non-volatile memory in the form of a managed NAND flash memory 1006 , although other forms of non-volatile memory may be used.
- managed NAND flash memory 1006 comprises a 512 MB or 1 GB MMC NAND flash memory that is mounted on a motherboard along with embedded processor and system controller hub 1002 .
- MMC NAND flash memory avoids the inclusion in device 110 of spinning media storage devices, such as hard disk drives or optical drives.
- the use of an MMC NAND flash memory also means that it is not necessary to employ wear-leveling and error correction when using a file system such as YAFFS2 and that an EXT3 file system can be used instead.
- Hardware architecture 1000 further includes a chip 1008 for storing the system BIOS.
- chip 1008 comprises an 8 Mbit NOR flash memory that is connected to the system controller hub via a Low Pin Count (LPC) bus, although this is only an example.
- LPC Low Pin Count
- Power management functions are performed in hardware architecture 1000 by a power management chip 1010 .
- power management chip 1010 comprises an Intel® Mobile Voltage Positioning chip designed and sold by Intel Corporation of Santa Clara, Calif. that is connected to embedded processor and system controller hub 1002 via an Inter-Integrated Circuit (I 2 C) bus.
- Power management chip 1010 is used to sequence power to embedded processor and system controller hub 1002 .
- GPIO general purpose input/output
- GPIO general purpose input/output
- JTAG Joint Test Action Group
- Hardware architecture 1000 also includes a DECT processor 1012 .
- DECT processor 1012 comprises a DECT base station processor that supports up to five handsets.
- a GPIO connection from the embedded processor may be used to reset the device by turning its power supply off and then on again.
- a Universal Serial Bus (USB) is used to transfer audio (e.g., up to four channels of audio) in each direction between DECT processor 1012 and the system controller hub.
- DECT processor 1012 may be configured to act as the bus master and drive the USB bus. In an implementation in which the maximum speed of the USB bus is 4.096 MHz, DECT processor 1012 may drive the USB bus with a bit clock rate of 2.048 MHz.
- universal asynchronous receivers/transmitters (UARTS) on the system controller hub and DECT processor 1012 implement a 115200 baud channel that is used to transfer control and data packets between the two. Packets on this link are encapsulated using Serial Line IP (SLIP) (as documented in Request for Comments: 1055, published by the Internet Engineering Task Force, June 1988). Layered on top of this is a cordless telephone application programming interface (CTAPI) protocol.
- the CTAPI protocol comprises request, response and event message types. These message types all have a common header and, optionally, some data. Responses and events are asynchronous; each request is tagged with a sufficiently unique identifier that is copied into a header of the corresponding response. The identifier is used to match responses with their originating requests.
- a main application running on the embedded processor sends a request message to DECT processor 1012 or to one of handsets 120 via DECT processor 1012 .
- the message recipient performs the requested actions and returns a response.
- a spontaneous action such as a handset going off-hook or propagating a name or address book update can generate an event message to be sent from DECT processor 1012 to the embedded processor.
- DECT processor 1012 is configured to execute acoustic echo cancellation (AEC) software.
- AEC acoustic echo cancellation
- a microphone and speakers 1024 internal to device 110 are connected directly to DECT processor 1012 whenever speakerphone functionality of device 110 is in use.
- speaker and microphone 1024 are connected to an audio codec 1022 .
- hardware architecture 1000 includes an internal microphone and speakers 1024 .
- the microphone may comprise a mono microphone and the speakers may comprise stereo speakers with an associated stereo amplifier.
- the speakers may be driven by an audio codec 1022 .
- audio codec 1022 comprises a 2-channel audio codec such as the Intel® High Definition Audio (HDA) system designed and sold by Intel Corporation of Santa Clara, Calif.
- HDA High Definition Audio
- audio codec 1022 connects to embedded processor and system controller hub 1002 via an HDA bus.
- a stereo jack may be provided on device 110 for connecting headphones or an external amplifier and speakers to audio codec 1022 .
- the internal speakers are automatically disconnected and their amplifier is powered down.
- the state of this jack may be determined by software.
- device 110 includes an LCD display 1016 .
- LCD display 1016 connects to embedded processor and system controller hub 1002 via a low-voltage differential signaling (LVDS) connection over twisted pair copper cables.
- LCD display 1016 comprises a thin film transistor (TFT) LCD display that has a 7 inch (17.8 centimeter (cm)) wide screen and supports 24-bit color.
- LCD display 1016 may provide an active viewing area of 152.4 millimeters (mm) ⁇ 91.4 mm, support a pixel format of 800 ⁇ 480 pixels, and have a pixel pitch of 0.1805 (H) ⁇ 01.905 (V).
- LCD display 1016 may further provide a 15:9 aspect ratio, a display mode that is normally white, LED backlighting, and a brightness of approximately 350 candelas per square meter (cd/m 2 ).
- LCD display 1016 may be used in both a transmissive mode and a reflective mode.
- a color display may be used when in the transmissive mode and a very low-power monochrome display may be used when in the reflective mode.
- the LCD backlight for the transmissive mode may be provided by white light emitting diodes (LEDs).
- LEDs white light emitting diodes
- multiple LEDs may be connected in series into three chains in order to equalize their brightness. These chains may then be powered in parallel. LEDs from all three chains may be interleaved to minimize the impact of a single chain burning out.
- up to 60 milliamps (mA) of current at 25.6 Volts (V) is provided to drive the backlight.
- Two signals may be used to control the backlight operation. The first signal enables/disables the backlight and the second signal is pulse-width modulated to generate a voltage that varies the brightness of the backlight.
- a touch panel is integrated with LCD display 1016 to provide a user interface to device 110 .
- the touch panel includes an integrated programmable system on chip (PSOC) controller 1014 that is connected to embedded processor and system controller hub 1002 via a USB bus.
- PSOC system on chip
- the touch panel comprises a 7 inch capacitive touch panel having a glass surface.
- capacitive touch panels are highly responsive to the touch of a finger, but do not respond to other types of touches. Consequently, the use of such a panel reduces the chance of false touches from jewelry, clothing or other contaminants. Furthermore, it is expected that such a glass capacitive touch panel will be more durable and last longer than other types of touch panels such as resistive touch panels. A glass capacitive touch panel will also have less of an impact on screen brightness as compared to resistive touch panels.
- Hardware architecture 1000 further includes an internal Wi-Fi controller 1018 for supporting wireless networking.
- Wi-Fi controller 1018 is connected to embedded processor and system controller hub 1002 via a USB interface.
- Wi-Fi controller 1018 comprises an 802.11b/g controller.
- Wi-Fi controller 1018 comprises an 802.11b/g/n controller.
- Wi-Fi controller 1018 may include an integrated internal antenna.
- Hardware architecture 1000 also includes an Ethernet chip 1020 that supports wired networking in accordance with the Ethernet protocol.
- Ethernet chip 1020 comprises a 10/100/1000 Mbps Ethernet chip.
- Ethernet chip 1020 is connected to embedded processor and system controller hub 1002 via a PCI Express (PCIe) bus.
- PCIe PCI Express
- An external RJ45 jack is provided on device 110 to facilitate connection to Ethernet chip 1020 .
- Hardware architecture 1000 may further include an external USB 2.0 port (not shown in FIG. 10 ) that connects to embedded processor and system controller hub 1002 via a USB bus. Also not shown in FIG. 10 is a power supply that is connected to hardware architecture 1000 and supplies power thereto. In one embodiment the power supply comprises a 5V, 4 A AC power supply.
- FIG. 11 depicts an alternate hardware architecture 1100 for a device 110 that has been designed specifically for office environments.
- Hardware architecture 1100 may be thought of as a modified version of hardware architecture 1000 of FIG. 10 , or vice versa.
- hardware architecture 1100 does not include a DECT processor for wireless handset support or a Wi-FI controller for 802.11 wireless networking. These features may be deemed less useful or not useful in an office environment.
- Hardware architecture 1100 does include some additional elements as compared to hardware architecture 1000 . These include a Bluetooth® adapter 1126 , an Ethernet switch 1130 , and a Power over Ethernet (PoE) connector.
- Bluetooth® adapter 1126 allows an end user to invoke the telephony features of device 110 using a Bluetooth® cordless headset or like device.
- Bluetooth® adapter 1126 may be connected to embedded processor and system controller hub 1102 via a USB bus.
- hardware architecture 1100 may also include an integrated charger that allows an end user to charge the battery or batteries of a Bluetooth® cordless headset or like device by plugging the device into a USB port, mini-USB port, or other suitable port of device 110 .
- Ethernet switch 1130 comprises a multi-port (e.g., two-port) Ethernet switch with an additional port host interface via PCIe.
- Ethernet switch 1130 provides a convenient Internet pass-through for other network-capable devices (e.g., personal computers, laptops, printers, storage devices, or the like) that might be used in an office environment. Because it is a switch, Ethernet switch 1130 allows multiple Ethernet devices to be connected to a single Ethernet connection in a non-interfering manner.
- PoE connector 1130 comprises a connector that allows power to be delivered to device 110 via an Ethernet connection.
- PoE connector 1130 comprises an eight-pin RJ-45 connector that uses two pairs for power (two for + and two for ⁇ ) as well as the normal two pairs for data (1-2, 3-6).
- a switching regulator with good isolation (transformer and opto-coupler).
- hardware architecture 1100 may further include a fingerprint scanner that allows device 110 to be placed in a locked/unlocked state by only authorized user(s). Such protection may be deemed desirable in an office environment.
- the configuration of device 110 e.g., owner, phone number, contacts, etc.
- the configuration of device 110 may be determined based on the fingerprint used to unlock device 110 .
- FIG. 11 The other components shown in FIG. 11 (embedded processor and system controller hub 1102 , SDRAM 1104 , managed NAND 1106 , BIOS 1108 , power management 1110 , touch panel controller 1114 , LCD display 1116 , audio codec 1122 and microphone/speakers 1124 ) are generally similar to like-named elements of hardware architecture 1000 , although certain implementation details may vary.
- both of the embodiments shown in FIGS. 10 and 11 can include components for wide area networks (WAN), wired or wireless. These components will not be described herein for the sake of brevity.
- WAN wide area networks
- FIG. 12 is a block diagram of an example software architecture 1200 of device 110 .
- software architecture 1200 includes a plurality of software components running atop an embedded processor and peripherals 1202 .
- the embedded processor preferably comprises a processor designed for use in portable and low-power applications, such as Mobile Internet Devices (MIDs), and in one embodiment comprises an Intel® AtomTM processor designed and sold by Intel Corporation of Santa Clara, Calif.
- MIDs Mobile Internet Devices
- Intel® AtomTM processor designed and sold by Intel Corporation of Santa Clara, Calif.
- operating system 1204 that provides a context for the execution of system and application processes that will be described in more detail herein.
- operating system 1204 comprises a Linux-based operating system, such as an Ubuntu® MID Edition operating system based on Linux kernel release 2.6.24, although this is only an example.
- operating system 1204 is optimized through custom configuration for a small size and rapid startup.
- software architecture 1200 includes a plurality of device drivers 1210 , each of which provides an abstraction layer between a hardware peripheral and the system and/or application processes that use it.
- device drivers 1210 include a device driver 1212 for facilitating interaction with a display, a device driver 1214 for facilitating interaction with a touch panel associated with the display, a device driver 1216 for facilitating interaction with a Universal Serial Bus (USB) device or port, a device driver 1218 for facilitating interaction with a power management device, and a device driver 1220 for facilitating interaction with a managed NAND flash memory.
- USB Universal Serial Bus
- software architecture 1200 also includes a plurality of shared system libraries 1220 that contain code and data that may be used to provide services to independent programs running in the context of operating system 1204 .
- System libraries 1220 include codecs 1222 , cryptographic functions 1224 , home device management services 1226 , and other system libraries 1228 .
- Codecs 1222 are utilized for performing compression and decompression of multimedia content such as images, audio content and video content.
- Codecs 1222 may include, for example, codecs for compressing/decompressing images in accordance with one or more of the JPEG, TIFF, PNG, GIF and BMP image compression formats, codecs for compressing/decompressing audio content in accordance with one or more of the MP3, WAV, WMA and RealAudio audio compression formats, and codecs for compressing/decompressing video content in accordance with one or more of the MPEG-2, MPEG-4 part 2, MPEG-4 part 10 (H.264), WMV 9, DivX, VC1 and FLV compression formats.
- these are only examples and other types of codecs may be used.
- Cryptographic functions 1224 comprises a library of cryptographic algorithms and tools that may be utilized for encrypting and decrypting data.
- End-user device management services 1226 include functions necessary to implement protocols for remotely managing end-user devices, such as protocols in accordance with the DSL Forum Technical Specifications TR-069/TR-111.
- software architecture 1200 also includes an operating system (OS) abstraction layer 1206 that runs atop operating system 1204 .
- OS abstraction layer 1206 serves to insulate any component running above it (e.g. application player 1208 and applications 1240 ) from any idiosyncrasies of operating system 1204 . This serves to localize the efforts of porting applications to a single component.
- Software architecture 1200 further includes a plurality of class modules 1230 .
- Class modules 1230 comprise libraries, such as C and/or C++ libraries, that may be used by certain applications to perform certain functions.
- class modules 1230 define function calls that can be made available to one or more applications running in the context of application player 1208 .
- class modules 1230 may define ActionScript function calls that can be made available to one or more Shockwave Flash (SWF) applications that are executed by application player 1208 .
- SWF Shockwave Flash
- class modules 1230 may be downloaded to telephony and digital media services device 110 along with applications that they support.
- Class modules 1230 include an application (app) manager/loader 1232 which provides functionality for an application (app) manager application 1244 , a media player 1234 that provides functionality for applications that play back digital media, and a VoIP module 1236 that provides functionality for a VoIP telephony application 1246 .
- VoIP module 1236 may provide, for example, access to SIP functionality, audio engine functionality and DECT functionality used in performing VoIP telephony operations.
- Class modules 1230 also include additional class modules 1238 as well. Additional class modules 1238 may include, for example, APIs for sending requests to Web services made available over a Wide Area Network (WAN) such as the Internet and receiving content responsive to the requests.
- WAN Wide Area Network
- Software architecture further includes an application player 1208 .
- application player 1208 comprises an Adobe® Flash® Player or an equivalent Flash® player, suitable for executing Shockwave Flash (.swf) files to display vector-based animations, to stream audio and video content, and to allow various forms of user interaction.
- Application player 1208 may comprise, for example, a Flash®-compatible player that has been optimized for embedded environments.
- application player 1208 provides support for an embedded scripting language called ActionScript, which is based on ECMAScript.
- Application player 1208 may provide native support for a plurality of ActionScript function calls.
- class modules 1230 may define additional ActionScript function calls that can be used by one or more applications that are executed by application player 1208 .
- Software architecture 1200 further includes a plurality of applications 1240 , each of which may be executed by application player 1208 .
- Applications 1240 may comprise Flash® applications.
- Applications 1240 may be selectively executed by users to invoke telephony or digital media services provided by device 110 .
- an application provides digital media services, such services may be provided using functionality and/or data stored locally with respect to device 110 as well as using remotely-located functionality and/or data, such as functionality and/or data obtained over a WAN such as the Internet.
- provision of a digital media service may entail invoking a Web service via the Internet.
- these applications may include a status/monitoring application 1242 , an application (app) manager 1244 , a VoIP telephone 1246 , a local or network calendar 1248 , a YouTubeTM application 1250 , a traffic monitoring application 1252 , a news application 1254 , an alarm clock 1256 , and other applications 1258 .
- Other applications 1258 may include for example, a calculator, a local or network address book, a media player, an Internet radio/video application, a weather application, a comics application, a to-do list application, a world clocks application, a countdown timer (e.g., days until Christmas), a games application (e.g., solitaire, Soduko, Tetris, etc.), a Web browser, an e-mail application, a city guide application, a wireless cameras application, a home monitoring application, a home control application (e.g.
- Flash® applications to implement the various GUI screens of device 110 provides distinct advantages over using more traditional programming languages such as C or C++. For example, development of GUI screens using Flash® is simpler and easier as compared to programming bit maps in C code. Furthermore, because Flash® files are small, a complex GUI screen may be rendered smoothly and at very high speeds. Also the use of Flash® applications provides a distinct separation between the implementation of a GUI screen and the underlying functionality, such that the GUI screen may be constructed, revised or upgraded without affecting underlying programs.
- FIG. 13 is a block diagram that depicts systems software elements 1300 of the software architecture of device 110 in accordance with an embodiment of the present invention.
- systems software elements 1300 include a BIOS 1302 , a boot loader 1304 , an operating system 1306 , a file system 1308 , and system files 1310 . Each of these elements will now be described.
- BIOS 1302 defines a software interface between the operating system and the platform firmware and hardware of device 110 .
- BIOS 1302 is stored in non-volatile memory that is connected to a system controller hub within device 110 and is executed automatically at system startup.
- BIOS 1302 is stored in an 8 Mbit NOR flash memory that is connected to the system controller hub via an LPC bus.
- BIOS 1302 comprises a software interface defined in accordance with the Extensible Firmware Interface (EFI) specification.
- EFI Extensible Firmware Interface
- BIOS 1302 comprises a software interface defined in accordance with the Extensible Firmware Interface (EFI) specification.
- EFI comprises an improved replacement of the legacy BIOS used by all IBM PC-compatible computers.
- EFI has a modular structure that provides a set of modular interfaces that replace the traditional BIOS interfaces. EFI dramatically shortens boot times and improves the reliability of the boot architecture while providing full legacy support.
- BIOS 1302 may also be thought of as encompassing a video BIOS.
- the video BIOS provides a set of video-related functions that are used by programs to access video hardware within device 110 .
- the video BIOS may comprise for example an Intel® Embedded Graphics Driver (IEGD) video BIOS, developed and sold by Intel Corporation of Santa Clara, Calif., although this is only an example.
- IEGD Intel® Embedded Graphics Driver
- BIOS 1302 outputs a splash screen to the display of device 110 during system startup.
- system hardware allows a video feed to be overlaid upon the splash screen prior to initialization of a graphic sub-system.
- the video feed functionality may be used to overlay a visual progress indicator upon the splash screen during system startup.
- the visual progress indicator may comprise a status bar, text, or some other visual indicator of the progress of the loading of BIOS 1302 and booting of the operating system. This visual progress indicator can advantageously be used both by developers during manufacturing and end-users after deployment to monitor device performance. Such a visual progress indicator can be displayed even in an instance where initialization of the graphic sub-system has failed.
- Boot loader 1304 comprises a program that is launched by BIOS 1302 during system startup and that is configured to load operating system 1306 of device 110 .
- operating system 1306 comprises a Linux-based operating system, such as an Ubuntu® MID Edition operating system based on Linux kernel release 2.6.24, that has been optimized through custom configuration for a small size and rapid startup.
- Boot loader 1304 and the files that comprise operating system 1306 are each stored within a file system 1308 implemented using non-volatile storage.
- the non-volatile storage comprises a managed NAND flash memory that is connected to a system controller hub within device 110 .
- file system 1308 comprises two distinct file systems: a Virtual File Allocation Table (VFAT) file system that is used to store boot loader 1304 and an EXT3 file system that is used to store operating system files and application files.
- VFAT Virtual File Allocation Table
- a VFAT file system may be required for storing boot loader 1304 in an implementation in which BIOS 1302 comprises an EFI BIOS that can only read files from a VFAT file system.
- a fail-safe version of the operating system kernel is stored in the VFAT file system while another updateable version of the operating system kernel is stored in the EXT3 file system.
- the fail-safe version of the operating system and boot loader 1304 are not updateable (or are only updateable in a highly restricted manner), thereby providing a means for starting up the system even when the updateable version of the operating system kernel is corrupted (e.g., due to a failed update).
- the fail-safe version of the operating system can be booted from the VFAT file system and can load its file system from VFAT into volatile memory (e.g., SDRAM) and run out of the volatile memory. This allows for files in the EXT3 file system to be repaired without fear of overwriting the kernel.
- This approach also allows for diagnostic testing and the establishment of a network connection to a known server to download the latest stable version of the system firmware (operating system and applications).
- boot loader 1304 selects the fail-safe kernel instead of the updateable kernel image based on a flag stored in non-volatile storage, which as noted above may comprise a managed NAND flash memory.
- This flag may be set to select the fail-safe kernel by a process monitor daemon when the process monitor daemon determines that the operating system has been in an unresponsive state for a period of time that equals or exceeds a predetermined period of time.
- the flag may also be set to select the fail-safe kernel when the system first boots and may be reset to select the updateable kernel upon successful startup of the operating system and process monitor daemon. If the system fails to boot, then a subsequent attempt to boot will force the fail-safe kernel image to boot.
- the non-volatile memory comprises a managed NAND flash memory
- certain features may be implemented to ensure that the EXT3 file system is written to as seldom as possible in order to extend the useful life of the managed NAND flash memory.
- These features may include, for example, configuring applications that access the EXT3 file system to ensure that such applications do not frequently write files to the file system and configuring the length of a journaling interval of the EXT3 file system so that the lifetime of the managed NAND flash memory will extend beyond the expected lifetime of device 110 .
- Another feature that may be used to extend the life of the managed NAND flash memory comprises turning off a feature of the EXT3 file system that records the last access time of a file.
- System files 1308 comprise shared libraries that contain code and data that may be used to provide services to independent programs running in the context of operating system 1306 .
- the number of system files 1308 maintained on the system is kept to a minimum to conserve system resources.
- Such files may be stored in an EXT3 file system as described above and updated or added to as needed to support system and application programs.
- BIOS 1302 , boot loader 1304 , operating system 1306 and system files 1308 are all updateable. As noted above, restrictions may be placed on updating boot loader 1304 and a fail-safe version of operating system 1306 that reside in a VFAT filing system in order to ensure that those software modules do not become corrupted. Safe updates of BIOS 1302 may be achieved by maintaining separate version of BIOS 1302 within the same non-volatile memory, such that a first version of BIOS 1302 can be updated while a second version of BIOS 1302 may be maintained in case the update of the first version of BIOS 1302 fails, thereby resulting in the corruption of the first version.
- the software architecture of device 110 provides a framework that supports a variety of applications, including applications that delivery telephony and digital media services to an end user.
- the application framework supports multiple GUI themes and languages, proprietary protocols, and incremental deployment of applications.
- the application framework also provides an infrastructure within which a variety of different applications can operate and co-exist without any preconceived notion of what those applications may be. For example, although device 110 may support VoIP telephony, device 110 may nevertheless be deployed without a VoIP telephony application.
- the application framework also provides a modular approach for deploying applications such that a common set of application can be deployed for different service providers.
- Application deployment models supported by the framework include subscription models in which a user of device 110 determines at runtime which applications are to be installed as well as a model in which a static set of applications are deployed that are updated monolithically. Because multiple applications may be deployed, each of which may generate asynchronous events, the application framework also provides a method for synchronizing applications.
- FIG. 14 is a block diagram of an application framework 1400 that may be implemented by device 110 .
- application framework 1400 includes an application player 1402 that is analogous to application player 1208 described above in reference to FIG. 12 .
- Application player 1402 provides native support for a plurality of ActionScript function calls.
- application player 1402 may be enhanced by adding custom software libraries, such as custom C/C++ libraries, that define additional ActionScript function calls.
- Such libraries are denoted class modules 1406 in FIG. 14 and are analogous to class modules 1230 described above in reference to FIG. 12 .
- a class module 1406 may be introduced in conjunction with a new application. Also, several class modules 1406 may be provided as part of an initial deployment to assist applications with common functionality such as usage monitoring and language translations.
- class modules 1406 may include an application manager class module 1410 , an internationalization class module 1412 , a status/monitoring class module 1414 , a VoIP class module 1416 , a YouTubeTM class module 1418 , as well as other class modules.
- YouTubeTM class module 1418 is representative of a class module that provides an API for allowing an application to request and obtain digital content from a Web service such as YouTubeTM.
- Application framework 1400 further includes an application manager 1404 , which in an embodiment comprises one or more movie applications.
- Application manager 1404 may also be thought of as encompassing corresponding class module 1410 , which serves to extend the functionality thereof.
- Application manager 1404 comprises the launching point for all applications on the system.
- application manager 1404 is configured to interrogate corresponding class module 1410 for a list of available applications, which in one embodiment is acquired from a local XML file.
- the list contains sets of Uniform Resource Locators (URLs) that identify an icon movie and application movie corresponding to each application.
- Application manager 1404 can then display each application icon accordingly via the GUI provided by touch-panel display of device 110 .
- application manager 1404 invokes the corresponding application URL.
- the icons are themselves small applications, they can advantageously be configured to include animations, or to include intelligence for presenting dynamically-changing data such as current weather conditions, stock prices, or time of day.
- new and updated applications may be distributed as part of a monolithic update, or incrementally on a device or subscriber basis.
- application manager 1404 is configured to query a remotely-located application server for the latest list of available applications. A user may also optionally be allowed to select certain applications.
- the application server returns a list that identifies an installation package for each of the various applications. The identification for each installation package may comprise a URL. The following provides an example of such a list:
- each installation package comprises an archive file.
- Application manager 1404 may be configured to retrieve and install the applications by executing a shell script (which may be denoted, for example, “install.sh”) that is contained in each installation package archive. Once the installation process is complete, application manager 1404 updates the local XML file that contains the list of all installed applications. Similarly, if a user wishes to remove an application, application manager 1404 can be invoked to execute an uninstall shell script that was provided as part of the installation package.
- a shell script which may be denoted, for example, “install.sh”
- FIG. 15 depicts an example installation package 1500 that may be provided from a remote application server to device 110 in accordance with one embodiment of the present invention.
- application package 1500 includes an install script 1502 that may be executed to install an application, an uninstall script 1504 that may be executed to uninstall an application, an icon movie 1506 that may be executed to display an icon representative of the application within a GUI, an application movie 1508 that may be executed to deliver the functionality of the application to a user, and a language file 1510 that may be used to provide representations of text elements to be displayed by the application in one or more languages.
- a sample directory structure of an application installed on device 110 is as follows:
- install.sh is the name of an install shell script
- uninstall.sh is the name of an uninstall shell script
- icon_appl.swf is the name of the icon movie used to represent the application on the GUI
- app_appl.swf is the name of the application movie
- language.XML is an XML file that includes representations of text elements to be displayed by the application in one or more languages.
- FIG. 16 depicts an embodiment of the invention in which application manager 1404 comprises two Flash® movie applications: a manager movie 1602 , which may be denoted “manager.swf”, and a theme movie 1604 , which may be denoted “theme.swf”.
- the prefix .swf denotes a Shockwave Flash file.
- Manager movie 1602 consists of three layers as illustrated in FIG. 17 : a watermark layer 1702 , a theme layer 1704 and a splash screen layer 1706 .
- Watermark layer 1702 is optional and is reserved for a branding statement that is viewable via transparent application layers.
- theme layer 1704 serves as a container in which theme movie 1604 is loaded.
- Splash screen layer 1706 is visible during initialization time. Once theme movie 1604 has been loaded, splash screen layer 1706 becomes transparent. Splash screen layer 1706 may contain minimal graphical assets.
- theme movie 1604 One purpose of theme movie 1604 is to provide a vehicle by which a service provider deploying device 110 can customize the look and feel of the GUI of device 110 .
- Theme movie 1604 consists of four layers as illustrated in FIG. 18 : an icon layer 1802 , an application layer 1804 , a status bar layer 1806 and a screen saver layer 1808 .
- Icon layer 1802 is used to present small graphic representations of the various applications that are available on device 110 . Each icon presented within icon layer 1802 itself comprises a movie.
- Application layer 1804 is reserved for the application movies that are executed by application player 1402 . Within this layer, multiple applications can be stacked. When a user selects an icon, the corresponding application is launched by pushing it onto the application layer stack, hiding icon layer 1802 .
- screen saver layer 1808 may optionally be overlaid on the other three layers when device 110 has been active for some period of time. The conditions under which screen saver layer 1808 is displayed and the content of the layer may be configurable by a user.
- the foregoing application framework further provides common components for alerts, keyboards, a movie player, options, and a photo viewer. Applications may interact with these components via ActionScript listener objects.
- a YouTubeTM application is active at the time an incoming telephone call arrives at VoIP class module 1416 . Desired behavior may be that the YouTubeTM application would be paused, a VoIP telephone application would be instantiated on the GUI foreground, and a user would be allowed to answer or ignore the telephone call. If the user chose to answer the call, then the telephone application would remain active. However, if the user chose to ignore the call, then the telephone application would be dismissed and the YouTube application would regain focus and automatically resume.
- an embodiment of the invention espouses a solution that allows a class module 1406 to surface an asynchronous event during a period when its corresponding application movie is not active.
- each icon movie associated with an application is required to register an event listener with its corresponding class module.
- the corresponding icon movie is notified directly.
- the icon movie requests that application manager 1404 launch the application represented by the icon movie—for example, the icon movie may request that application manager 1404 launch a specified application URL.
- a function of the currently-active application is called (which may be denoted “onFocusOut”) to allow the currently-active application to take action (e.g., pausing a movie).
- application manager 1404 launches the URL and the corresponding application (“the event application”) is displayed in the foreground.
- the trigger event is passed to the event application as a means to communicate context.
- a function associated with the underlying inactive application (which may be denoted “onFocusIn”) is called to allow that application to take further action (e.g., resume playback of a movie).
- the process begins at step 1912 when a phone class module 1902 notifies a corresponding phone icon movie 1904 of an asynchronous event—namely, an incoming telephone call.
- phone icon movie 1904 previously registered an event listener with phone class module 1902 that makes such notification possible.
- phone icon movie 1904 requests that application manager 1404 launch the appropriate application for handling the event, which in this case is an incoming call application 1908 .
- Requesting that application manager 1404 launch incoming call application 1908 may comprise requesting that application manager 1404 launch a specified URL associated with incoming call application 1908 .
- application manager 1404 Prior to launching incoming call application 1908 , application manager 1404 places a function call to a currently-active YouTubeTM application 1906 as shown at step 1916 .
- This function call is denoted “onFocusOut” in FIG. 19 .
- Placement of this function call allows YouTubeTM application 1906 to take some action in advance of launching of incoming call application 1908 . This action may comprise, for example, pausing playback of a movie or some other action.
- step 1918 after placing the onFocusOut function call, application manager 1404 launches incoming call application 1908 (for example, by launching a specified URL associated with the application) and passes the incoming call event to application 1908 for appropriate handling.
- the interface for incoming call application 1908 is overlaid on top of YouTubeTM application interface in application layer 1804 of theme movie 1604 . This is depicted in FIG. 20 , which shows incoming call application 1908 and YouTubeTM application 1906 executing at different Z orders within application layer 1804 .
- the call application 1908 interface may allow the user to perform a variety of actions, including answering the incoming call or ignoring the incoming call. Answering the call may cause yet another application to be launched to perform necessary functions or the necessary functions may be handled exclusively by incoming call application 1908 depending upon the implementation.
- process 1900 it is assumed that the user chooses to ignore the call through some form of interaction with a GUI of incoming call application 1908 or through inaction.
- the fact that the call was ignored 1920 is reported from incoming call application 1908 to phone class module 1902 as shown at step 1920 .
- incoming call application 1908 is dismissed either automatically or through some user action. The dismissal of the application is reported to application manager 1404 as shown at step 1922 at which point application manager 1404 removes incoming call application 1908 from application layer 1804 .
- step 1924 after incoming call application 1908 has been dismissed, application manager 1404 places a function call to currently inactive YouTubeTM application 1906 as shown at step 1924 .
- This function call is denoted “onFocusIn” in FIG. 19 . Placement of this function call allows YouTubeTM application 1906 to take some action responsive to the dismissal of incoming call application 1908 . This action may comprise, for example, resuming playback of a movie or some other action.
- an application can leverage multiple class modules. For example, if an address book application required support for click-to-dial, e-mail and SMS, it could leverage VoIP, e-mail and SMS class modules. This example introduces an interesting issue. If a user activated a click-to-dial function from the address book, an out-bound call would be initiated from the VoIP class module. The user would need to operate the phone. Given the event listening feature discussed above, the event associated with placing a call would surface accordingly, resulting in the phone application being launched in the foreground. The address book application need only have knowledge of the APIs exposed by the VoIP module. The application framework implements the rest.
- FIG. 21 provides a diagram illustrating such an approach.
- application process 2102 sends a registration message 2112 to register itself with a process monitor daemon 2104 .
- application process 2102 periodically sends messages 2114 to process monitor daemon 2104 to prove that it is still operating.
- process monitor daemon 2104 resets a watchdog timer. If process monitor daemon 2104 fails to receive a message from application process 2102 after a period of time that is greater than or equal to the maximum value of the watchdog timer, denoted silent period 2116 in FIG. 21 , process monitor daemon 2104 assumes that application process 2102 is unresponsive, terminates application process 2102 , and then restarts it as denoted by reference numeral 2118 in FIG. 21 .
- Application restart behavior may be configurable on a per-application basis.
- Actions may include uninstalling the application (running an uninstall script that is associated with the application) or rebooting the entire system. The user may be presented with an on-screen dialog in either case. Also, in certain implementations, such actions will not be undertaken while a telephone call is in progress.
- Process monitor daemon 2104 may also be configured to monitor the operating condition of the operating system of device 110 using a watchdog timer in a like manner to that described above in reference to FIG. 21 . If the watchdog timer expires before the operating system sends a reporting message to process monitor daemon 2104 , then process monitor daemon 2104 forces a reboot of the operating system.
- each service provider may want the application to reflect its own graphical theme.
- an embodiment of the invention implements each application as two movies. An example of this is depicted in FIG. 22 , which shows an application 2200 that comprises a first movie 2202 that comprises the business logic of the application and a second movie 2204 that comprises the graphical assets of the application. This approach advantageously allows an application to be ported by simply replacing theme movie 2204 , removing most of the risks of regression.
- multiple language support is achieved by enabling applications to query application manager 1404 for text translation.
- the active language can be defined on a user or device basis.
- application manager 1404 launches an application, it will pass a unique application identifier, which may be referred to as a global unique identifier (GUID), to the application using an application programming interface (API).
- GUID global unique identifier
- API application programming interface
- the launched application passes the GUID, an identifier of the text to be translated, and optionally the language to translate to.
- application manager 1404 uses a system default language (e.g., English).
- Application manager 1404 returns the corresponding text in the selected language from a language XML file associated with the application.
- the functions for querying for and obtaining text translation may be included within internationalization class module 1412 in FIG. 14 .
- An embodiment of the present invention provides the ability to log application usage, system configuration and system health to a remote server.
- each application notifies status/monitoring class module 1414 of page transitions and other events, such as placing a phone call, clicking a button, or entering a search term. The amount of detail reported may vary from application to application.
- Application manager 1404 also contacts status/monitoring class module 1414 to report application launch and exit events. In an embodiment, application launch occurs when a user activates an application icon and application exit occurs when a user returns back to the icon screen.
- status/monitoring class module 1414 accumulates the reported event information in event logs and periodically sends the logs to a configured remote logging server 2302 .
- status/monitoring class module 1414 will attempt to send this data every five minutes by default. If logging server 2302 is not reachable, status/monitoring class module 1414 will append new events to the log and then will attempt to send the data again.
- the number of events that may be added to a log may be limited to some predefined number. Events may be marked with timestamps indicative of the time at which each event occurred.
- the timestamps are stored as relative offsets so as not to rely on the time of day setting on each specific device 110 . In accordance with such an embodiment, the offsets may be converted to a time-of-day timestamp at logging server 2302 .
- Logging server 2302 is configured to receive a sequence of logs from a plurality of deployed devices 110 and to add each log record to a database 2304 , which is shown in FIG. 23 .
- a front end such as a Web front end, executing on a computer 2306 may then be used to provide a human-friendly interface for viewing the data.
- the Web pages may comprise PHP programs that perform Structured Query Language (SQL) queries on the data and allow a user to examine aspects such as the top applications used by a specific group of users or the amount of time customers spend in different applications. Understanding which applications are most popular is valuable to service providers deploying applications via devices 110 . Such information can be used, for example, to perform trend spotting and to drive new application development.
- SQL Structured Query Language
- FIG. 24 depicts an example interface screen 2400 that may be presented by computer 2306 in accordance with an embodiment of the present invention.
- interface screen 2400 presents a bar chart 2402 showing an execution frequency 2404 of a plurality of applications 2406 that comprise a plurality of most used applications.
- Each application 2406 is represented by a different colored bar, as shown by a legend 2408 .
- FIG. 25 depicts another example interface screen 2500 that may be presented by computer 2306 in accordance with an embodiment of the present invention.
- interface screen 2500 presents a pie chart 2502 showing a frequency of use of a plurality of applications as a percentage of a total frequency of use over a given time period. Each application is represented by a different colored sector of the pie chart, as shown by legend 2504 .
- Periodic updates received by logging server 2302 may also serve as a device heartbeat, allowing logging server 2302 to present a status of active or dead devices.
- the front end presented by computer 2306 may include a Web interface that shows a list of devices 110 associated with a particular customer and a visual indicator of the last heartbeat status of each such device 110 .
- An example of such an interface 2600 is shown in FIG. 26 . As shown in that figure, interface 2600 includes a column 2612 that displays a last heartbeat date and time for a plurality of devices associated with a customer.
- Other information that may be obtained by logging server 2602 and provided by interface 2600 includes a total number of devices associated with the customer 2602 , a total number of devices associated with the customer that are currently online 2604 , a most popular application for the day 2606 (based on customer usage), a MAC address for each device 2608 , a comment for each device 2610 , a number of application records for each device 2614 (which itself comprises a link to the application records), a number of phone records for each device 2616 (which itself comprises a link to the phone records), a number of boot records for each device 2618 (which itself comprises a link to the boot records), a number of applied updates for each device 2620 (which itself comprises a link to information about the applied updates), a number of group memberships for each device 2622 (which itself comprises a link to information about the group memberships), a start date for each device 2624 , an end date for each device 2626 , and a link to device usage information for each device 2628 .
- logging server 2602 , database 2304 and computer 2306 each comprise part of a device monitoring subsystem that is described in Section II.G.2 below.
- each handset 120 includes a user interface that comprises both a display 122 and a keypad 124 .
- display 122 comprises a 2 in. (5.1 mm) 18-bit color TFT LCD display having an active viewing area of 31.68 mm ⁇ 39.6 mm, a pixel format of 176 ⁇ 220 pixels, a pixel size of 0.18 mm ⁇ 0.18 mm, LED backlighting, and a maximum brightness of 350 cd/m 2 .
- Keypad 124 comprises a standard telephone keypad including 10 numbers, “*” and “#” keys.
- each key is implemented using a pressure membrane switch that is responsive to 180 grams of pressure.
- handset 120 further comprises user interface navigation controls in the form of a 4-way scroll pad 2714 and a selection/activation button 2716 (also referred to as an “OK” button).
- user interface navigation controls in the form of a 4-way scroll pad 2714 and a selection/activation button 2716 (also referred to as an “OK” button).
- handset 120 includes a microphone 2706 and speaker 2708 for conducting a telephone call in a normal mode.
- handset 120 also includes a rear-facing speaker 2802 for conducting a phone call in a speakerphone mode.
- a speakerphone button 2704 is provided for activating the speakerphone mode.
- An earpiece and microphone connector 2804 is provided for plugging in a wired headset.
- a “volume up” button 2710 and a “volume down” button 2712 are provided on one side of handset 120 .
- a mute button 2702 is also provided to turn off microphone 2706 during a telephone call.
- Handset charging contacts 2718 are provided at the bottom of handset 120 .
- handset charging contacts 2718 come into contact with docking station charging contacts 3002 .
- the battery internal to handset 120 comprises a 550 mAh Lithium-Ion battery.
- the battery is accessible for replacement via a removable back plate 2806 .
- Docking station 126 also includes a connector 2902 for receiving power via an AC adapter.
- the AC adapter comprises a 5V/500 milliampere-hour (mAh) AC adapter.
- handset 120 is configured to act as a DECT client that wirelessly communicates with device 110 which acts as a DECT base station.
- handset 120 may include DECT firmware that supports features such as two- or three-party conferencing, an enhanced graphical user interface, uploadable ringtones (e.g., MIDI and MP3), a synchronized address book, and remotely managed firmware upgrades.
- a device 110 in accordance with an embodiment of the present invention includes a display 112 that is used to provide a GUI by which a user may initiate, manage and experience telephony and digital media services.
- Example GUI screens by which the user may perform such functions will now be described.
- the example GUI screens described in this section are particularly suitable for use with an embodiment of device 110 in which display 112 comprises a color LCD display and integrated capacitive touch screen panel.
- a user may interact with the GUI by touching display 112 with a finger. For example, a user may touch a portion of display 112 corresponding to a graphic element in order to activate or select that element.
- the GUI screens described in this section are not limited to such an implementation and other forms of interaction may be used.
- FIG. 31 depicts an example home GUI screen 3100 in accordance with an embodiment of the present invention.
- example home GUI screen 3100 comprises a plurality of icons 3104 , each of which is representative of a different application that may be executed on device 110 .
- an application is launched when a user activates an icon associated with the application.
- An exception to this is icon 3120 which, when activated, will display addition application icons.
- activation of an icon may comprise touching the icon on display 112 , although other forms of activation may be used depending upon the implementation.
- Home GUI screen 3100 also includes a status bar 3102 .
- Status bar 3102 includes an icon 3112 representative of home GUI screen 3100 , a name 3114 (“Home”) associated with home GUI screen 3100 , and an indication of the current date 3116 and time 3118 .
- each icon on home screen 3100 may comprise a Shockwave Flash movie that is executed within an icon layer of a theme movie displayed on display 112 .
- status bar 3102 may comprise a Shockwave Flash movie that is executed within a status bar layer of the theme movie.
- GUI screens described below also include a status bar that may be implemented in a like manner.
- FIG. 32 depicts an example GUI screen 3200 for a telephony application in accordance with an embodiment of the present invention.
- example GUI screen 3200 includes a status bar 3202 and a telephony application interface 3204 .
- Telephony application interface may comprise a Shockwave Flash movie that is executed within an application layer of a theme movie displayed on display 112 .
- Various example GUI screens described below also include application interfaces that may be implemented in a like manner.
- Status bar 3202 includes an icon 3212 representative of the telephony application, a name 3214 (“Phone”) associated with the telephony application, an indication of the current date 3216 and time 3218 and a “home” button 3220 .
- “home” button 3220 When a user activates “home” button 3220 , the user will be returned to home GUI screen 3100 .
- Telephony application interface 3204 includes a keypad 3230 that can be used to enter a telephone number 3262 which appears in a display window 3254 . Any numbers entered in this fashion can be deleted using a delete button 3256 .
- Display window 3254 also includes an indication of a call status 3260 . In the example GUI depicted in FIG. 32 , the call status is “connected.”
- Telephony application interface 3204 further includes a button 3240 for increasing the volume at which the audio content of a call will be heard and a button 3242 for decreasing the volume.
- a volume indicator 3244 provides a graphical indication of the current volume level.
- a “redial” button 3246 may be activated to automatically dial the most-recently dialed number.
- a “mute” button 3248 may be activated to turn off a microphone associated with device 110 during a telephone call.
- a “flash” button 3250 may be activated to perform special services that may be provided by the telephony application such as, for example, three-way calling, call waiting, conference calling, or call transfers.
- a “call” button 3252 may be activated to place a call to the number shown in display window 3254 .
- Telephony application interface 3204 also includes a “contacts” button 3232 that when activated causes a contacts application to be launched, a “call logs” button 3234 that when activated causes a call logs application to be launched, a “messages” button 3236 that when activated causes a voicemail application to be launched, and a “handsets” button 3238 .
- FIG. 33 depicts an example GUI screen 3300 for a call log application in accordance with an embodiment of the present invention.
- example GUI screen 3300 includes a status bar 3302 and a call log application interface 3304 .
- Status bar 3302 includes an icon 3312 representative of the call log application, a name 3314 (“Call Log”) associated with the call log application, an indication of the current date 3316 and time 3318 , a “phone” button 3320 and a “home” button 3322 .
- “phone” button 3320 GUI screen 3200 for a telephony application will be displayed.
- “home” button 3322 the user will be returned to home GUI screen 3100 .
- Call log application interface 3304 displays all or a portion of a log 3330 of previously-placed outgoing and incoming telephone calls.
- a “page up” button 3332 may be activated and to page down a “page down” button 3334 may be activated.
- a page indicator 3336 indicates which of one or more pages of log 3330 is currently being displayed.
- an “incoming” tab 3338 may be activated, to see outgoing calls only an “outgoing” tab 3340 may be activated, and to return to a list of all incoming and outgoing calls an “all” tab 3342 may be activated.
- Call log application interface 3304 further includes a “remove” button 3352 that can be used to remove a selected entry from log 3330 and a “remove all” button 3354 that can be used to remove all incoming and/or outgoing entries from log 3330 .
- FIG. 34 depicts an example GUI screen 3400 for a voicemail application in accordance with an embodiment of the present invention.
- example GUI screen 3400 includes a status bar 3402 and a voicemail application interface 3404 .
- Status bar 3402 includes an icon 3412 representative of the voicemail application, a name 3414 (“Voicemail”) associated with the voicemail application, an indication of the current date 3416 and time 3418 , a “phone” button 3420 and a “home” button 3422 .
- “phone” button 3420 GUI screen 3200 for a telephony application will be displayed.
- “home” button 3422 the user will be returned to home GUI screen 3100 .
- Voicemail application interface 3404 displays all or a portion of a list 3430 of saved voicemail messages.
- a “page up” button 3432 may be activated and to page down a “page down” button 3434 may be activated.
- a page indicator 3436 indicates which of one or more pages of list 3430 is currently being displayed.
- the following information is displayed: a name of a party that left the voicemail message 3438 , a phone number 3440 associated with the party that left the voicemail message, and a date/time 3442 that the voicemail message was left.
- the horizontal bar that provides information about the voicemail may be activated.
- Voicemail application interface 3404 further includes a “play” button 3444 for playing a selected voicemail message, a “rewind” button 3446 for rewinding the content of a selected voicemail message, and a “fast forward” button 3448 for fast forwarding the content of a selected voicemail message.
- a button 3450 is provided for increasing the volume at which the content of a voicemail message will be heard and a button 3452 is provided for decreasing the volume.
- a volume indicator 3454 provides a graphical indication of the current volume level.
- a “mute” button 3456 is also provided for turning off the audio output associated with a voicemail message.
- FIG. 35 depicts an example GUI screen 3500 for a contacts application in accordance with an embodiment of the present invention.
- example GUI screen 3500 includes a status bar 3502 and a contacts application interface 3504 .
- Status bar 3502 includes an icon 3512 representative of the contacts application, a name 3514 (“Contacts”) associated with the contacts application, an indication of the current date 3516 and time 3518 , a “phone” button 3520 and a “home” button 3522 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 3522 the user will be returned to home GUI screen 3100 .
- Contacts application interface 3504 displays all or a portion of a list 3530 of user contacts. To page up through list 3530 a “page up” button 3532 may be activated and to page down a “page down” button 3534 may be activated. A page indicator 3536 indicates which of one or more pages of list 3530 is currently being displayed. To view contacts starting with a particular letter of the alphabet, one a series of buttons 3538 corresponding to each letter of the alphabet may be activated. For each contact in list 3530 , the following information is displayed: a name of the contact 3540 , a first phone number 3542 associated with the contact, and a second phone number 3544 associated with the contact. To select a contact from among those in list 3530 , the horizontal bar that provides information about the contact may be activated.
- Contacts application interface 3504 further includes an “add name” button 3546 that when activated launches a dialog for adding a person to list 3530 and an “add group” button 3548 that when activated launches a dialog for adding a group of people to list 3530 .
- FIG. 36 depicts an example GUI screen 3600 for a weather application in accordance with an embodiment of the present invention.
- example GUI screen 3600 includes a status bar 3602 and a weather application interface 3604 .
- Status bar 3602 includes an icon 3612 representative of the weather application, a name 3614 (“Weather”) associated with the weather application, an indication of the current date 3616 and time 3618 , a “phone” button 3620 and a “home” button 3622 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 3622 the user will be returned to home GUI screen 3100 .
- Weather application interface 3604 includes a display area 3630 that provides weather information for a particular location 3632 .
- the particular location is “Phoenix, Ariz.”
- the particular location may be one of a series of predefined locations for which weather information is available.
- To view weather information for a preceding location in the series a “page up” button 3634 is provided.
- To view weather information for a subsequent location in the series a “page down” button 3636 is provided.
- An “add” button 3638 is provided that, when activated, launches a dialog by which a location may be added to the series of locations.
- a “remove” button 3640 is also provided that, when activated, launches a dialog by which a location may be removed from the series of locations.
- a button 3642 allows a user to select whether temperatures should be displayed in degrees Fahrenheit (° F.) or degrees Celsius (° C.).
- a “video” button 3644 is provided that allows a user to watch weather-related video content such as a video feed from a weather camera or the like.
- FIG. 37 depicts an example GUI screen 3700 for a movie showtimes application in accordance with an embodiment of the present invention.
- example GUI screen 3700 includes a status bar 3702 and a movie showtimes application interface 3704 .
- Status bar 3702 includes an icon 3712 representative of the movie showtimes application, a name 3714 (“Showtimes”) associated with the movie showtimes application, an indication of the current date 3716 and time 3718 , a “phone” button 3720 and a “home” button 3722 .
- Showtimes a name associated with the movie showtimes application
- an indication of the current date 3716 and time 3718 a “phone” button 3720 and a “home” button 3722 .
- Movie showtimes application interface 3704 includes a first display area that displays all or a portion of a list of movie theaters 3730 associated with a particular location 3732 .
- the particular location is “Boca Raton Fla.”
- a “page up” button 3734 may be activated and to page down a “page down” button 3736 may be activated.
- a page indicator 3738 indicates which of one or more pages of list 3730 is currently being displayed.
- the horizontal bar that provides information about the movie theater may be activated.
- Movie showtimes application interface 3704 also includes a second display area that displays all or a portion of a list of movies and associated showtimes 3740 associated with a movie theater selected in the first display area.
- a “page up” button 3742 may be activated and to page down a “page down” button 3744 may be activated.
- a page indicator 3746 indicates which of one or more pages of list 3740 is currently being displayed.
- a “change location” button 3748 is provided that, when activated, launches a dialog by which a user can select a different location for which to obtain movie showtime information.
- FIG. 38 depicts an example GUI screen 3800 for a media application in accordance with an embodiment of the present invention.
- example GUI screen 3800 includes a status bar 3802 and a media application interface 3804 .
- Status bar 3802 includes an icon 3812 representative of the media application, a name 3814 (“Media”) associated with the media application, an indication of the current date 3816 and time 3818 , a “phone” button 3820 and a “home” button 3822 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 3822 the user will be returned to home GUI screen 3100 .
- Media application interface 3804 comprises four different interfaces, only one of which may be shown at any given time: a photos interface that may be selected by activating a “photos” tab 3830 , a music interface that may be selected by activating a “music” tab 3832 , a videos interface that may be selected by activating a “videos” tab 3834 , and a podcasts interface that may be selected by activating a “podcasts” tab 3836 .
- the photos interface is currently being displayed.
- the photos interface includes a display area 3840 within which a plurality of digital photos is displayed.
- the displayed photos may comprise one page in a series of pages of digital photos.
- To page up through the series a “page up” button 3842 may be activated and to page down a “page down” button 3844 may be activated.
- a page indicator 3846 indicates which of one or more pages in the series of pages is currently being displayed.
- FIG. 39 depicts a GUI screen 3900 for the aforementioned media application in which the music interface is displayed.
- the music interface includes a display area that displays all or a portion of a list of songs 3930 .
- a “page up” button 3932 may be activated and to page down a “page down” button 3934 may be activated.
- a page indicator 3936 indicates which of one or more pages of list 3930 is currently being displayed.
- a song in list 3930 may be selected by activating the horizontal bar upon which the song information is provided.
- the music interface further includes a “play” button 3946 for playing a selected song, a “rewind” button 3948 for rewinding the content of a selected song, and a “fast forward” button 3950 for fast forwarding the content of a selected song.
- a button 3952 is provided for increasing the volume at which the audio content of a song will be heard and a button 3954 is provided for decreasing the volume.
- a volume indicator 3956 provides a graphical indication of the current volume level.
- a “mute” button 3956 is also provided for turning off the audio output associated with a song.
- the music interface allows song information to be displayed in two formats.
- the list format shown in FIG. 39 may be obtained by activating a first display format button 3938 .
- An icon format shown in GUI interface screen 4000 of FIG. 40 may be obtained by activating a second display format button 3940 .
- a display area 4002 is presented that displays an icon associated with each song. The song performer and title is displayed below each icon.
- FIG. 41 depicts a GUI screen 4100 for the aforementioned media application in which the videos interface is displayed.
- the videos interface includes a display area that displays all or a portion of a collection of movies 4102 .
- a “page up” button 4104 may be activated and to page down a “page down” button 4106 may be activated.
- a page indicator 4108 indicates which of one or more pages of collection 4102 is currently being displayed. For each movie in collection 4108 the following information is provided: a graphic icon representative of the movie and the name of the movie. A movie in collection 4102 may be selected by activating the icon associated with the movie.
- the videos interface allows movies to be displayed in two formats.
- a list format in which information about each movie is provided in a horizontal bar may be obtained by activating a first display format button 4110 .
- the icon format shown in FIG. 41 may be obtained by activating a second display format button 4112 .
- FIG. 42 depicts a GUI screen 4200 for a video player application in accordance with an embodiment of the present invention.
- the video player application is launched and GUI interface screen 4200 is presented to a user when the user activates a movie in collection 4102 that is displayed within GUI screen 4100 .
- GUI interface screen 4200 includes a display area 4202 for displaying video content such as video content associated with a movie.
- GUI interface screen 4200 also includes a “back” button 4204 that allows a user to terminate the playback of the video content and return to a previously-viewed GUI screen, a “play” button 4208 that allows a user to play the video content, a “rewind” button 4206 that allows a user to rewind the video content, a “fast forward” button 4210 that allows a user to fast forward the video content, a button 4214 that allows a user to increase the volume of audio content associated with the video content, a button 4212 that allows a user to decrease the volume of the audio content, and a “mute” button 4216 that allows the user to turn off the audio content entirely.
- FIG. 42 display area 4202 displays a message that indicates that video content is being loaded.
- FIG. 43 depicts another view of GUI interface screen 4200 in which video content 4302 associated with a movie is playing in display area 4202 .
- FIG. 44 depicts a GUI screen 4400 for the aforementioned media application in which the podcasts interface is displayed.
- the podcasts interface includes a display area that displays all or a portion of a list of podcast providers 4402 .
- a “page up” button 4404 may be activated and to page down a “page down” button 4406 may be activated.
- a page indicator 4408 indicates which of one or more pages of list 4402 is currently being displayed.
- a name 4414 is provided for each podcast provider in list 4402 .
- a podcast provider in list 4402 may be selected by activating the horizontal bar upon which the song information is provided.
- Control over the playback and volume of audio content of a podcast is provided using an interface 4416 that includes elements that are substantially similar to elements described above in example GUI screen 4000 of FIG. 40 .
- the podcasts interface allows podcast provider information to be displayed in two formats.
- the list format shown in FIG. 44 in which information about each podcast provider is displayed in a horizontal bar, may be obtained by activating a first display format button 4410 .
- An icon format shown in GUI interface screen 4500 of FIG. 45 may be obtained by activating a second display format button 4412 .
- a display area 4502 is presented that displays an icon associated with each podcast provider. The name of the podcast provider is displayed below each icon.
- FIG. 46 depicts an example GUI screen 4600 for a cameras application in accordance with an embodiment of the present invention.
- example GUI screen 4600 includes a status bar 4602 and a cameras application interface 4604 .
- Status bar 4602 includes an icon 4612 representative of the cameras application, a name 4614 (“Cameras”) associated with the cameras application, an indication of the current date 4616 and time 4618 , a “phone” button 4620 and a “home” button 4622 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 4622 the user will be returned to home GUI screen 3100 .
- Cameras application interface 4604 includes a first display area that displays all or a portion of a list of cameras 4630 that are capable of providing a video feed to device 110 .
- a “page up” button 4632 may be activated and to page down a “page down” button 4634 may be activated.
- a page indicator 4636 indicates which of one or more pages of list 4630 is currently being displayed.
- a name 4638 is provided for each camera identified in list 4630 . To select a camera from among those in list 4630 , the horizontal bar that provides the name of the camera may be activated.
- Cameras application interface 4604 also includes a second display area that displays video content received from a selected camera in a preview window 4640 .
- a “view” button 4642 may be activated to allow a user to view the video content from the selected camera in a further cameras application interface 4702 which is depicted in example GUI screen 4700 of FIG. 47 . As shown in FIG.
- cameras application interface 4702 includes an expanded window 4704 in which video content from the selected camera is displayed as well as a camera control interface that includes a “zoom out” button 4706 , a “zoom in” button 4708 , a “pan left” button 4712 , a “pan right” button 4714 , a “tilt up” button 4716 and a “tilt down” button 4710 .
- these buttons may be used to control pan, tilt and zoom features of cameras that support such functionality.
- FIG. 48 depicts an example GUI screen 4800 for a news application in accordance with an embodiment of the present invention.
- example GUI screen 4800 includes a status bar 4802 and a news application interface 4804 .
- Status bar 4802 includes an icon 4812 representative of the news application, a name 4814 (“News”) associated with the news application, an indication of the current date 4816 and time 4818 , a “phone” button 4820 and a “home” button 4822 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 4822 the user will be returned to home GUI screen 3100 .
- News application interface 4804 includes a display area 4830 that displays all or a portion of a collection of news sources that are capable of feeding news articles to device 110 .
- a “page backward” button 4836 may be activated and to page forward a “page forward” button 4838 may be activated.
- a page indicator 4840 indicates which of one or more pages of the collection is currently being displayed.
- a graphic icon such as icon 4832
- a name of the news source such as name 4834
- the icon representing the news source may be activated.
- interface 4902 includes a display area 4904 that presents content associated with a news article.
- content may include for example a title of the news article 4912 , a graphic or video associated with the news article 4912 , and text associated with the news article which is displayed in a text display area 4916 .
- a user may scroll the text displayed within text display area 4916 up and down by activating a “scroll up” button 4918 and a “scroll down” button 4920 respectively.
- Additional news articles from the same news source may be available on one or more preceding or subsequent pages viewable within display area 4904 .
- a “page backward” button 4906 or a “page forward” button 4908 may be activated.
- a page indicator 4910 indicates which of one or more pages of news articles is currently being displayed.
- a “back” button may be activated to return to GUI screen 4800 of FIG. 48 .
- FIG. 50 depicts an example GUI screen 5000 for a horoscopes application in accordance with an embodiment of the present invention.
- example GUI screen 5000 includes a status bar 5002 and a horoscopes application interface 5004 .
- Status bar 5002 includes an icon 5012 representative of the horoscopes application, a name 5014 (“Horoscopes”) associated with the horoscopes application, an indication of the current date 5016 and time 5018 , a “phone” button 5020 and a “home” button 5022 .
- “phone” button 5020 GUI screen 3200 for a telephony application will be displayed.
- “home” button 5022 the user will be returned to home GUI screen 3100 .
- Horoscopes application interface 5004 includes a display area that displays a graphic icon representing each sign of the zodiac (such as icon 5030 ) and an associated name (such as name 5032 ). To obtain a current horoscope for a zodiac sign identified in horoscopes application interface 5004 , the icon representing the zodiac sign may be activated.
- a further horoscopes interface is provided in which a current horoscope for the activated zodiac sign may be viewed.
- An example of such an interface 5102 is depicted in example GUI screen 5100 of FIG. 51 .
- interface 5102 displays the name of the relevant zodiac sign 5104 , an icon 5106 that represents the relevant zodiac sign, and a text display area 5108 in which the horoscope text for the relevant zodiac sign is displayed.
- a user may scroll the text displayed within text display area 5108 up and down by activating a “scroll up” button 5110 and a “scroll down” button 5112 respectively.
- a “back” button 5114 may be activated to return to GUI screen 5000 of FIG. 50 .
- FIG. 52 depicts an example GUI screen 5200 for a recipes application in accordance with an embodiment of the present invention.
- example GUI screen 5200 includes a status bar 5202 and a recipes application interface 5204 .
- Status bar 5202 includes an icon 5212 representative of the recipes application, a name 5214 (“Recipes”) associated with the recipes application, an indication of the current date 5216 and time 5218 , a “phone” button 5220 and a “home” button 5222 .
- “phone” button 5220 GUI screen 3200 for a telephony application will be displayed.
- “home” button 5222 the user will be returned to home GUI screen 3100 .
- Recipes application interface 5204 includes a display area 5230 that displays all or a portion of a collection of recipes.
- a “page backward” button 5236 may be activated and to page forward a “page forward” button 5238 may be activated.
- a page indicator 5240 indicates which of one or more pages of the collection is currently being displayed.
- a graphic icon such as icon 5232
- a name of the recipe such as name 5234
- the icon representing the recipe may be activated.
- GUI screen 5300 of FIG. 53 An example of such an interface 5302 is depicted in example GUI screen 5300 of FIG. 53 .
- interface 5302 displays the name of the relevant recipe 5304 , a picture or graphic icon 5306 that represents the relevant recipe, and a text display area 5308 in which the recipe text for the relevant recipe is displayed.
- a user may scroll the text displayed within text display area 5308 up and down by activating a “scroll up” button 5310 and a “scroll down” button 5312 respectively.
- a “back” button 5314 may be activated to return to GUI screen 5300 of FIG. 53 .
- FIG. 54 depicts an example GUI screen 5400 for a calendar application in accordance with an embodiment of the present invention.
- example GUI screen 5400 includes a status bar 5402 and a calendar application interface 5404 .
- Status bar 5402 includes an icon 5412 representative of the news application, a name 5414 (“News”) associated with the news application, an indication of the current date 5416 and time 5418 , a “phone” button 5420 and a “home” button 5422 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 5422 the user will be returned to home GUI screen 3100 .
- Calendar application interface 5404 comprises two different interfaces, only one of which may be shown at any given time: a monthly calendar interface that may be selected by activating a “month” tab 5436 and a daily calendar interface that may be selected by activating a “day” tab 5438 .
- the monthly calendar interface is currently being displayed.
- the monthly calendar interface includes a display area 5430 within which a monthly calendar is displayed. Activating a particular date within the monthly calendar will cause the daily calendar interface to be displayed for that date.
- An “up arrow” button 5432 allows a user to display a previous month within display area 5430 and a “down arrow” button 5434 allows a user to display a subsequent month within display area 5430 .
- FIG. 55 depicts a GUI screen 5500 for the aforementioned calendar application in which the daily calendar interface is displayed.
- the daily calendar interface includes a temporally-ordered list of scheduled daily activities or appointments 5504 corresponding to a particular date which is displayed in a window 5502 .
- a “page up” button 5506 may be activated and to page down a “page down” button 5508 may be activated.
- a page indicator 5510 indicates which of one or more pages of list 5504 is currently being displayed. For each scheduled appointment or activity scheduled in list 5504 an appointment/activity time 5520 and descriptor 5522 is displayed.
- An “add” button 5512 may be activated to launch a dialog by which a new appointment or activity may be added to list 5504 .
- a “remove” button 5514 may be activated to remove a selected appointment or activity from list 5504 .
- a “backward arrow” button 5516 may be activated and to change the date to a subsequent date a “forward arrow” 5518 button may be activated.
- FIG. 56 depicts an example GUI screen 5600 for an Internet radio application in accordance with an embodiment of the present invention.
- the Internet radio application comprises an application premised on SIRIUS® Internet radio service offered by SIRIUS XM Radio of New York, N.Y.
- example GUI screen 5600 includes a status bar 5602 and a calendar application interface 5604 .
- Status bar 5602 includes an icon 5612 representative of the Internet radio application, a name 5614 (“Sirius”) associated with the Internet radio application, an indication of the current date 5616 and time 5618 , a “phone” button 5620 and a “home” button 5622 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 5622 the user will be returned to home GUI screen 3100 .
- Internet radio application interface 5604 comprises two different interfaces, only one of which may be shown at any given time: a categories interface that may be selected by activating a “categories” tab 5652 and a controls interface that may be selected by activating a “controls” tab 5654 .
- the categories interface is currently being displayed.
- the categories interface includes a first display area that displays all or a portion of a list of radio categories 5630 .
- a “page up” button 5632 may be activated and to page down a “page down” button 5634 may be activated.
- a page indicator 5636 indicates which of one or more pages of category list 5630 is currently being displayed.
- a name 5638 is provided for each category in list 5630 .
- a category in list 5630 may be selected by activating the horizontal bar upon which the category name is provided.
- the categories interface further includes a second display area that displays all or a portion of a collection of radio channels 5640 corresponding to a selected radio category in list 5630 .
- a “page up” button 5642 may be activated and to page down a “page down” button 5644 may be activated.
- a page indicator 5646 indicates which of one or more pages of collection 5640 is currently being displayed.
- a graphic icon 5648 representing the channel and a name 5650 of the channel is displayed.
- a channel in collection 5640 may be selected for listening by activating the icon associated with the channel.
- FIG. 57 depicts an example GUI screen 5700 for a stocks application in accordance with an embodiment of the present invention.
- example GUI screen 5700 includes a status bar 5702 and a stocks application interface 5704 .
- Status bar 5702 includes an icon 5712 representative of the stocks application, a name 5714 (“Stocks”) associated with the stocks application, an indication of the current date 5716 and time 5718 , a “phone” button 5720 and a “home” button 5722 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 5722 the user will be returned to home GUI screen 3100 .
- Stocks application interface 5704 includes a first display area that displays all or a portion of a list of stocks 5730 .
- a “page up” button 5732 may be activated and to page down a “page down” button 5734 may be activated.
- a page indicator 5736 indicates which of one or more pages of list 5730 is currently being displayed.
- a stock symbol 5738 the following information is provided: a stock symbol 5738 , a current share price 5740 , a visual indicator 5742 of whether the current share price is up or down for the day, and an amount 5744 by which the current share price is up or down for the day.
- a stock in list 5730 may be selected by activating the horizontal bar upon which the stock symbol is provided.
- a user may activate an “add” button 5746 to launch a dialog by which a stock may be added to list 5730 .
- a user may also activate a “remove” button 5748 to remove a selected stock from list 5730 .
- Stocks application interface 5704 further includes a second display area 5750 that provides details about a stock selected from list 5730 .
- second display area 5750 includes a window 5752 that displays textual information about the relevant stock such as opening price, high price, low price and volume for the current day.
- second display area 5750 further includes a stock chart 5754 that graphically depicts the performance of the relevant stock for the current day. By activating stock chart 5754 a user may access additional charts associated with the relevant stock.
- Stock application interface 5704 also includes a dynamically-updated stock ticker 5756 which displays stock symbols and associated share prices for a variety of stocks in a scrolling fashion.
- FIG. 58 depicts an example GUI screen 5800 for an Internet video application in accordance with an embodiment of the present invention.
- the Internet video application comprises an application premised on a YouTubeTM Web service offered by YouTube LLC of San Bruno, Calif.
- example GUI screen 5800 includes a status bar 5802 and an Internet video application interface 5804 .
- Status bar 5802 includes an icon 5812 representative of the Internet video application, a name 5814 (“You Tube”) associated with the Internet video application, an indication of the current date 5816 and time 5818 , a “phone” button 5820 and a “home” button 5822 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 5822 the user will be returned to home GUI screen 3100 .
- Internet video application interface 5804 comprises four different interfaces, only one of which may be shown at any given time: a video search interface that may be selected by activating a “search” button 5842 , a featured videos interface that may be selected by activating a “featured” button 5844 , a top-rated videos interface that may be selected by activating a “top rated” button 5846 and a popular videos interface that may be selected by activating a “popular” button 5848 .
- the top-rated videos interface is currently being displayed. As shown in that figure, the top-rated videos interface includes a display area 5830 that displays all or a portion of a collection of top-rated videos 5830 .
- a “page up” button 5832 may be activated and to page down a “page down” button 5834 may be activated.
- a page indicator 5836 indicates which of one or more pages of the collection is currently being displayed. For each video identified in the collection, an icon 5838 and a name 5840 is displayed. A video in collection 5830 may be selected for playback by activating the icon associated with the video.
- FIG. 59 depicts an example GUI screen 5900 for an Internet-based photo application in accordance with an embodiment of the present invention.
- the Internet-based photo application comprises an application premised on a FlickrTM Web service offered by Yahoo! Inc. of Sunnyvale, Calif.
- example GUI screen 5900 includes a status bar 5902 and an Internet-based photo application interface 5904 .
- Status bar 5902 includes an icon 5912 representative of the Internet-based photo application, a name 5914 (“Flickr”) associated with the Internet-based photo application, an indication of the current date 5916 and time 5918 , a “phone” button 5920 and a “home” button 5922 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 5922 the user will be returned to home GUI screen 3100 .
- Internet-based photo application interface 5904 comprises two different interfaces, only one of which may be shown at any given time: a personal photos interface that may be selected by activating a “my photos” button 5938 and a search interface that may be selected by activating a “search” button 5940 .
- the search interface is currently being displayed.
- the results from a search premised on the query terms “Andy Warhol” has returned a collection of photos 5930 .
- a page indicator 5936 indicates which of one or more pages of the collection is currently being displayed.
- a photo in collection 5930 may be selected for viewing in a larger window by activating the photo.
- FIG. 60 depicts an example GUI screen 6000 for an alarm application in accordance with an embodiment of the present invention.
- example GUI screen 6000 includes a status bar 6002 and an alarm application interface 6004 .
- Status bar 6002 includes an icon 6012 representative of the alarm application, a name 6014 (“Alarm”) associated with the alarm application, an indication of the current date 6016 and time 6018 , a “phone” button 6020 and a “home” button 6022 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 6022 the user will be returned to home GUI screen 3100 .
- Alarm application interface 6004 includes an alarm on/off button 6036 that a user may activate to turn on or off an alarm.
- a window 6030 displays a time at which the alarm will sound.
- a “backward arrow” button may be activated to select a previous time while a “forward arrow” button may be activated to select a subsequent time.
- Alarm application interface 6004 further includes all or a portion of a list 6040 of audio files that may be used as an alarm.
- a “page backward” button 6042 may be activated and to page forward a “page forward” button 6044 may be activated.
- a page indicator 6044 indicates which of one or more pages of list 6040 is currently being displayed.
- an audio source 6048 and a descriptor associated with the audio file 6050 is displayed.
- System-provided alarms as well as digital music files may be used as the alarm.
- the audio source is listed as “alarm” and the descriptor of the audio file denotes the alarm type.
- the audio source is the performer of the digital music and the descriptor provides a name of the song.
- the horizontal bar that provides information about the audio file may be activated.
- Alarm application interface 6004 allows audio file information to be displayed in two formats.
- the list format shown in FIG. 60 may be obtained by activating a first display format button 6052 .
- An icon format shown in GUI interface screen 6100 of FIG. 61 may be obtained by activating a second display format button 6054 .
- a display area 6102 is presented that displays an icon 6104 associated with each audio file.
- a playback button 6106 , a title 6108 and performer 6110 may be displayed below each icon.
- FIG. 62 depicts an example GUI screen 6200 for a screensaver application in accordance with an embodiment of the present invention.
- example GUI screen 6200 includes a status bar 6202 and a screensaver application interface 6204 .
- Status bar 6202 includes an icon 6212 representative of the screensaver application, a name 6214 (“Screensaver”) associated with the screensaver application, an indication of the current date 6216 and time 6218 , a “phone” button 6220 and a “home” button 6222 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 6222 the user will be returned to home GUI screen 3100 .
- Screensaver application interface 6204 includes all or a portion of a list screensavers 6230 that may be activated by a user for display after a predetermined period of device inactivity.
- a “page up” button 6232 may be activated and to page down a “page down” button 6234 may be activated.
- a page indicator 6236 indicates which of one or more pages of list 6230 is currently being displayed.
- a user may activate one of the screensavers displayed in list 6230 .
- Screensaver application interface 6204 further includes a window 6240 that displays the current amount of delay (i.e., time of device inactivity) that must occur before a selected screensaver will be displayed.
- the amount of delay may be decreased by activating a “left arrow” button 6242 or increased by activating a “right arrow” button 6244 .
- a window 6246 displays a preview of a currently selected screensaver.
- a screensaver configuration may be saved by activating a “save” button 6238 .
- a “back” button 6248 is also provided on screensaver application interface 6204 that, when activated, causes a previously-displayed GUI screen to be displayed.
- FIG. 63 depicts an example GUI screen 6300 for a directory services application in accordance with an embodiment of the present invention.
- example GUI screen 6300 includes a status bar 6302 and a directory services application interface 6304 .
- Status bar 6302 includes an icon 6312 representative of the directory services application, a name 6314 (“Find A . . . ”) associated with the directory services application, an indication of the current date 6316 and time 6318 , a “phone” button 6320 and a “home” button 6322 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 6322 the user will be returned to home GUI screen 3100 .
- Directory services application interface 6304 includes a first display area that displays all or a portion of a list of business categories 6330 .
- a “page up” button 6334 may be activated and to page down a “page down” button 6336 may be activated.
- a page indicator 6338 indicates which of one or more pages of list 6330 is currently being displayed.
- the horizontal bar that provides information about the business category may be activated.
- Directory services application interface 6304 further includes a second display area that displays all or a portion of a list of businesses 6340 of the type currently selected in list 6330 .
- the businesses are selected based on proximity to a particular location 6332 .
- the particular location is “Boca Raton Fla.”
- a “page up” button 6342 may be activated and to page down a “page down” button 6344 may be activated.
- a page indicator 6346 indicates which of one or more pages of list 6340 is currently being displayed.
- a name, address and phone number is provided for each business identified in list 6340 .
- a “telephone” button 6350 associated with each business may be activated to place a telephone call to the business via device 110 .
- a “change location” button 6348 is provided that, when activated, launches a dialog by which a user can select a different location for which to obtain directory services information.
- FIG. 64 depicts an example GUI screen 6400 for a memos application in accordance with an embodiment of the present invention.
- example GUI screen 6400 includes a status bar 6402 and a memos application interface 6404 .
- Status bar 6402 includes an icon 6412 representative of the memos application, a name 6414 (“Memos”) associated with the memos application, an indication of the current date 6416 and time 6418 , a “phone” button 6420 and a “home” button 6422 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 6422 the user will be returned to home GUI screen 3100 .
- Memos application interface 6404 includes a first display area that displays all or a portion of a list of memos 6430 .
- Each memo may comprise a task, appointment or reminder that a user might wish to make note of.
- a “page up” button 6432 may be activated and to page down a “page down” button 6434 may be activated.
- a page indicator 6436 indicates which of one or more pages of list 6430 is currently being displayed.
- a text descriptor 6450 of the subject matter of the memo and a date 6452 and time 6454 associated with the memo (such as the date and time the memo was created).
- List 6430 may be temporally-ordered.
- a memo in list 6430 may be selected for viewing by activating the horizontal bar upon which the memo information is provided.
- a user may activate an “add” button 6446 to launch a dialog by which a memo may be added to list 6430 .
- a user may also activate a “remove” button 6448 to remove a selected memo from list 6430 .
- Memos application interface 6404 further includes a window 6438 that displays the text content of a memo selected from list 6430 .
- a user may scroll the text displayed within window 6438 up and down by activating a “scroll up” button 6440 and a “scroll down” button 6442 respectively.
- FIG. 65 depicts an example GUI screen 6500 for a television (TV) programming guide application in accordance with an embodiment of the present invention.
- example GUI screen 6500 includes a status bar 6502 and a TV programming guide application interface 6504 .
- Status bar 6502 includes an icon 6512 representative of the TV programming guide application, a name 6514 (“TV Programs”) associated with the TV programming guide application, an indication of the current date 6516 and time 6518 , a “phone” button 6520 and a “home” button 6522 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 6522 the user will be returned to home GUI screen 3100 .
- TV programming guide application interface 6504 includes a display area 6530 that provides TV programming information for a plurality of TV channels across a plurality of time slots. To view information about other channels than those currently shown in display area 6530 a user may activate either a “page up” button 6532 or a “page down” button 6534 . A page indicator 6536 indicates which of one or more pages of channel information is currently being displayed. To view programming information for previous time slots a user may activate a “backward” button 6538 and to view programming information for subsequent time slots a user may activate a “forward” button 6540 .
- FIG. 66 depicts an example GUI screen 6600 for a network setup application in accordance with an embodiment of the present invention.
- example GUI screen 6600 includes a status bar 6602 and a network setup application interface 6604 .
- Status bar 6602 includes an icon 6612 representative of the network setup application, a name 6614 (“Network Setup”) associated with the network setup application, an indication of the current date 6616 and time 6618 , a “phone” button 6620 and a “home” button 6622 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 6622 the user will be returned to home GUI screen 3100 .
- network setup application interface 6604 is overlaid by a network selection interface 6630 that allows a user to select a wireless network to which device 110 may attempt to connect.
- network selection interface 6630 displays all or a portion of a list 6632 of detected wireless networks.
- a “page up” button 6634 may be activated and to page down a “page down” button 6636 may be activated.
- a page indicator 6638 indicates which of one or more pages of list 6632 is currently being displayed.
- a visual indicator 6642 of the strength of the wireless signal and a name 6644 of the wireless network is provided.
- a visual indicator 6646 of whether the network is encrypted and a connection status 6648 may also be provided.
- a “back” button 6640 is also provided in network selection interface 6630 to allow a user to return to network setup application interface 6604 .
- FIG. 67 depicts an additional example GUI screen 6700 for a network setup application in accordance with an embodiment of the present invention.
- example GUI screen 6700 includes a status bar 6702 and a network setup application interface.
- Status bar 6702 includes an icon 6712 representative of the network setup application, a name 6714 (“Network . . . ”) associated with the network setup application, an indication of the current date 6716 and time 6718 , a “phone” button 6720 and a “home” button 6722 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 6722 the user will be returned to home GUI screen 3100 .
- the network setup application interface is overlaid by an encrypted network interface 6704 that allows a user to enter an encryption key for setting up or logging into an encrypted wireless network.
- encrypted network setup interface 6704 displays a keyboard 6730 that may be used to type an encryption key that appears in a window 6732 .
- the user may save the key by activating a “save” button 6734 .
- a “back” button 6740 is also provided to allow a user to return to the normal network setup application interface.
- FIG. 68 depicts an example GUI screen 6800 for an advanced network setup application in accordance with an embodiment of the present invention.
- example GUI screen 6800 includes a status bar 6802 and an advanced network setup application interface 6804 .
- Status bar 6802 includes an icon 6812 representative of the advanced network setup application, a name 6814 (“Network Setup”) associated with the advanced network setup application, an indication of the current date 6816 and time 6818 , a “phone” button 6820 and a “home” button 6822 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 6822 the user will be returned to home GUI screen 3100 .
- Advanced network setup application interface 6804 displays all or a portion of a list 6830 of network-related information and parameters, some of which may be configurable.
- a “page up” button 6832 may be activated and to page down a “page down” button 6834 may be activated.
- a page indicator 6836 indicates which of one or more pages of list 6830 is currently being displayed.
- information/parameters provided within list 6830 include a connection status, a network type, a network name, a security protocol type, an encryption key, whether Dynamic Host Configuration Protocol (DHCP) is used and whether proxy is used.
- DHCP Dynamic Host Configuration Protocol
- a “back” button 6838 is provided to allow a user to return to the normal network setup application interface.
- FIG. 69 depicts an example GUI screen 6900 for a home control application in accordance with an embodiment of the present invention.
- example GUI screen 6900 includes a status bar 6902 and a home control application interface 6904 .
- Status bar 6902 includes an icon 6912 representative of the home control application, a name 6914 (“Home Control”) associated with the home control application, an indication of the current date 6916 and time 6918 , a “phone” button 6920 and a “home” button 6922 .
- GUI screen 3200 for a telephony application will be displayed.
- “home” button 6922 the user will be returned to home GUI screen 3100 .
- Home control application interface 6904 displays all or a portion of a list 6930 of rooms for which home control functionality may be provided.
- a “page up” button 6932 may be activated and to page down a “page down” button 6934 may be activated.
- a page indicator 6936 indicates which of one or more pages of list 6930 is currently being displayed.
- such rooms may include, for example, a living room, a family room, a home theater, a main office, a master bedroom and a dining room.
- a room may be selected by activating the horizontal bar upon which the room name is displayed.
- Example GUI screen 7000 of FIG. 70 shows such an overlay interface 7002 .
- overlay interface 7002 displays all or a portion of a collection 7004 of home control functions for a living room.
- page forward button 7006 may be activated and to page backward a “page backward” button 7008 may be activated.
- a page indicator 7010 indicates which of one or more pages of collection 7004 is currently being displayed.
- Each home control function in collection 7004 is represented by an associated icon and text.
- the home control functions shown in FIG. 70 include “Watch TV,” “Watch DVD” and “Play CD.” A user may select a home control function by activating the icon associated with the function.
- a “back” button 7012 is provided to return to the original home control application interface.
- Example GUI screen 7100 of FIG. 71 shows such an overlay interface which is configured to control a TV.
- overlay interface 7102 includes a channel selection interface 7104 , a function navigation interface 7106 and an audio/video control interface 7108 for a TV.
- An on/off button 7110 is provided for powering the TV on and off and a “back” button 7112 is provided to return to the previous overlay interface.
- FIG. 72 depicts a system 7200 in accordance with an embodiment of the present invention that includes a services platform 7202 for enabling entities to deploy, manage optimize and monitor a network of devices 7204 (such as a network of devices 110 ) in a turnkey fashion.
- services platform 7202 includes a device management subsystem 7212 , a device monitoring subsystem 7214 , an application store 7216 , an application intelligence subsystem 7218 and a content aggregation subsystem 7220 .
- System 7200 further includes a computer 7230 that provides a Web-based user interface for easy access to the functionality provided by services platform 7202 .
- a Web-based user interface may include, for example, a control panel for user access assignment and administration.
- FIG. 72 Only a single computer 7230 is shown in FIG. 72 , any number of such computers may be provided to access services platform 7202 .
- services platform 7202 may include less than all of subsystems 7212 , 7214 , 7216 , 7218 and 7220 .
- an integrated user interface may be provided for accessing all of the included subsystems or, alternatively, separate user interfaces may be provided for each subsystem.
- Device management subsystem 7212 is responsible for reliably communicating updated firmware and device configuration to deployed devices. These types of operations may be focused on a single device, various sub-sets of devices, or applied to all devices on network 7204 . For example, a firmware update may be applied to a small community of devices as a test prior to updating the entire network 7204 of devices. This is critical to prevent a network of end users from having a negative experience.
- Device configuration information may include but is not limited to GUI configuration, brand information, applications, or the like.
- An embodiment of the present invention provides a “faceless” Web service that enables customers to populate a device configuration database. Device management subsystem 7212 then communicates those parameters to devices in network 7204 .
- An embodiment of the invention also provides a provisioning application to administrators so as to support provisioning of small trials as a sales tool.
- a firmware image for a particular deployment may comprise a boot loader, kernel, file system, a branded framework application, and optionally DECT firmware for both a device and associated handsets.
- these images are provided from device management subsystem 7212 to end user devices via File Transfer Protocol (FTP).
- FTP File Transfer Protocol
- Device management subsystem 7212 may include an import mechanism that maps the firmware images to particular device product line. Once a firmware image has been imported, an administrator may then explicitly instruct that the image be deployed to a specific group of devices on network 7204 . This could equate to single device or tens of thousands. As devices complete the upgrade process, they will register the firmware update with device monitoring subsystem 7214 .
- device management subsystem 7212 provides a unique deployment process for each of four categories of firmware updates: (1) new device initial start-up; (2) new application; (3) software version updates; and (4) fixes.
- the deployment of new applications is scheduled by a telecommunications carrier or other entity that administers network 7204 and pushed. Such applications may be communicated to end users via proactive promotion, and deployment may include post-delivery notification.
- Software version updates may be dependent upon expansion of a feature set or technology progression (e.g., a new version of a video codec). Such updates may not be urgent in nature any may not produce a visible difference to an end user.
- such updates are communicated from device management subsystem 7212 to a device using a non-intrusive awareness notification, such as a simple update in a settings screen of the device.
- Fixes may be required as determined via support teams. Fixes may be global or individual in nature. Depending upon the severity and impact to the user, it may be desirable for the implementation of such fixes to be as “invisible” to an end user as possible. Different types of fixes include scheduled global fixes, immediate global fixes and individual fixes
- Scheduled global fixes may be planned and pushed from device management subsystem 7212 to devices on network 7204 .
- Such fixes may be non-interruptive in nature.
- device management subsystem 7212 may cause a device to display an interruptive, non-dismissable dialog box with messaging that an important download is in progress and apologizing for any inconvenience.
- Support representatives may be required to update an individual device to implement a fix. This may occur, for example, when a support representative is troubleshooting with an end user.
- device management subsystem 7212 is configured to allow a release to be pushed to a device on demand.
- devices may be configured to automatically check for the latest firmware upon re-boot. In this case, a support representative may request that an end user reboot his/her device.
- Devices may also provide an automatic update tool as part of a device settings application and may be directed to utilize the tool by a support representative to pull the latest update.
- device management subsystem 7212 is configured to minimize device interruption and required end-user activity while keeping end users appropriately notified.
- device management subsystem 7212 may be configured to perform one or more of the following functions: (1) confirm prior to download that a target device is currently inactive; (2) not disrupt any customer-initiated activity in progress; (3) wait for a target device to return to an idle state before deployment; (4) display to the user a notification message such as “update in progress, please wait”; (5) cause a device “version number” to be updated on a settings screen of a device when all updates have been deployed; (6) after delivery of a new application update, deliver a notification message to the user (such as “Congratulations, you have new features to enjoy from . . . ”) that can be deleted or saved by the user.
- Device management subsystem 7212 may also be configured to obtain necessary end user permissions prior to delivery of new applications or firmware updates. For example, a global permission may be obtained via a general notification during new device initial start-up. Alternatively or additionally, individual permissions may be obtained for each download. For example, device management subsystem 7212 may be configured to display a message on a device requesting permission to deliver a firmware update and provide an interface by which an end user can provide a yes or no decision. Device management system 7212 will take the appropriate action based on the end user decision.
- Device management subsystem 7212 may deploy a firmware update automatically in certain instances. For example, this may occur at new device initial start-up as mentioned above.
- logic that automatically checks for the most recent software version is embedded in a set-up wizard that is executed by a device during initial start-up. This ensures that each new end user has the latest approved software and application set in the event devices have been shelved for periods of time prior to purchase/deployment.
- a firmware update may also be automatically triggered in the event that a periodic check function implemented by device monitoring subsystem 7214 (described below) determines that a device does not have the latest firmware code.
- An automatic firmware update may also be triggered upon device re-boot in an embodiment in which devices are configured to automatically check for the latest firmware upon re-boot.
- device management subsystem 7212 allows an approved firmware update to be deployed immediately (upon command execution) or at a future set time via pre-programming
- every application is responsible for implementing its own provisioning solution.
- an embodiment of the invention implements this support as part of the solution.
- a provision database exposes a Web service that enables a customer's existing telephony infrastructure to populate a device's telephony parameters.
- a change in configuration triggers notification of the device.
- the device will in turn retrieve the latest configurations via Hypertext Transfer Protocol (HTTP). This does not suggest that a physical file needs to be created on the file system of the provisioning server.
- HTTP Hypertext Transfer Protocol
- the Web-based user interface provided on computer 7230 provides administrative functions required for device management. In an embodiment, it allows assignment of view, approval and update authorization and implements a hierarchy for various levels of access.
- Example access levels may include: (1) view only (for tier 1 support representatives; the platform may be able to manage potentially hundreds or thousands of view access grants); (2) view and individual device deployment (for tier 2 support representatives, allowing them to proactively push the latest software version to an individual device at a time); (3) view and global device deployment (for managers that have access and authority to push a global or group targeted update); (4) view and release approval; (5) product managers (required to approve any new application global updates prior to such updates being made available for deployment); (6) technical managers (required to approve any software upgrades or fixes prior to such upgrades/fixes being made available for deployment); and (7) system administration (employees with access to assign and manage the above access).
- the Web-based interface implemented on computer 7230 is uncluttered and simple by design. It easily accommodates a change of look and feel (e.g., logo and brand color palette) so that it may be tailored for individual service providers.
- the user interface may also be configured to take into consideration scalability by providing easy search functionality to locate an individual device, or subsets of devices, among many thousands. Such device searching may permit devices to be searched for based on MAC ID, customer name, billing telephone number, zip code, etc.
- Main sections of the user interface may include administration, device monitoring (as will be described in more detail below) and device management.
- the device management interface allows for selection, approvals, push and monitoring of all upgrades. It may further include firmware history that provides a reference guide to version control. The firmware history may indicate when an update occurred, what was updated, why it was updated, who approved the update, and when the most recent update occurred.
- the device management interface may further include the ability to manage (view, create, add, change, delete) assigned groups of devices.
- the user interface may further include an “about device upgrades” section that comprises a central source for device management policies, procedures and frequently asked questions (FAQs). This section may be customizable by a service provider for their internal use.
- FIG. 26 described above in reference to the application framework of device 110 provides an example of a Web-based user interface screen for interacting with device management subsystem 7212 /device monitoring subsystem 7214 .
- Device monitoring subsystem 7214 is configured to perform functions such as identifying a device's firmware version, installed applications, and activity. These functions may be important in providing customer support. Device monitoring subsystem 7214 also provides a reporting interface that allows near real time data to be presented to accurately understand device state, health and performance. Such reports may be provided for an individual device or for large groups of devices to provide global, visual views for executive management reporting.
- device monitoring subsystem 7214 allows administrators as well as customer support representatives to determine what firmware a device is executing, the health of that device, as well as the frequency and the manner in which the device is used. Such information may be used for individual device insight and action as well as to monitor and report on devices on an aggregated basis.
- device monitoring subsystem 7214 is configured to report the following information about a device: connection state, if in active or fail-safe mode, current firmware version, information on when historical updates were applied and frequency of usage (daily, weekly, etc.). This information may be made available to customer support representatives so that they can take appropriate action in the event of a customer issue.
- device monitoring subsystem 7214 is configured to allow an administrator to query near real time statistics of deployed device and applications. For example, an administrator may determine what percentage of all registered devices is actively connected. The aggregate number may be used as a metric of overall performance and also as an important tool for customer retention teams. For example, such data can provide such teams with the ability to proactively contact those customers that have purchased and registered a device but for some reason are not currently connected. Additionally, device monitoring subsystem 7214 may be queried to identify any devices not currently using the most current firmware version and to initiate an investigation as to why such devices are not accepting pushed updates.
- the Web-based user interface to device monitoring subsystem 7214 provides administrative functions necessary for device monitoring. It may implement a set of access levels such as was previously described in reference to device management subsystem 7212 . However, it may expand functionality to allow authorization to specified tiers to run subset or global reports.
- the Web-based interface to device monitoring subsystem 7214 is configured to take into consideration scalability by providing easy search functionality to locate an individual device, or subsets of devices, among many thousands. Such device searching may permit devices to be searched for based on MAC ID, customer name, billing telephone number, zip code, etc. Additionally, the Web-based interface to device monitoring subsystem 7214 may provide the capability to generate predetermined queries and to display query results in various manners (text or visual).
- FIG. 26 described above in reference to the application framework of device 110 provides an example of a Web-based user interface screen for interacting with device management subsystem 7212 /device monitoring subsystem 7214 .
- Application store 7216 comprises a portal that promotes application development in a managed subscription-based model. New applications are developed by authorized developers, verified by a regional organization, and subsequently released to the public via this platform. Revenue sharing is supported.
- application store 7216 comprises a repository of Flash applications that device 110 and like devices can subscribe to, which may be offered for free, or at a nominal fee to an end user.
- FIG. 73 depicts four main areas of the application store life cycle 7300 .
- the life cycle begins with the development 7302 of the applications.
- Applications may be developed by any number of entities including a developer of device 110 , service providers that provide services via device 110 , and independent developers. Such applications are tested 7304 and uploaded to a services database. Once applications have been validated, they can then be distributed 7306 to selected (or global) devices by an administrator. At this point, the selected devices in the field would now be capable of browsing 7308 and subscribing to the new application.
- application store life cycle begins with development 7302 .
- a developer before a developer is eligible to submit applications, they must first register. This may involve creating a profile consisting of contact information, technical experience and account information for revenue sharing purposes. Once registered, a developer may become a Beta tester of his/her own applications. In addition, necessary terms and conditions may be required for developers to view and accept.
- application development involves working within predefined guidelines. By conforming to such guidelines, a developer may ensure that the application will behave correctly on all devices 110 .
- a Web-based developers program may be made available under an appropriate license.
- the Web-based developers program may comprise a Software Development Kit (SDK) and additional tools and resources.
- SDK Software Development Kit
- the Web-based developers program includes but is not limited to: (1) an introduction and overview; (2) a getting started guide for development on a personal computer (PC) and installing the SDK; (3) a programming guide for a Flash player used by device 110 ; (4) a description of how applications work within the application framework of device 110 ; (5) a “Hello World” program; (6) additional sample code via simple program examples; (7) user interface and design information, including guidelines and Actionscript code for common design elements and components; (8) an emulator that allows the application to be developed and tested on a PC prior to migrating the application to device 110 ; (9) go-to-market insight, including information about target audiences, most popular categories and the like; (10) application lifecycle information, including information about managing updates and changes; and (11) frequently asked questions.
- the resource pool for developers may also include an Internet-based developers' blog or community forum.
- Developers may be provided with development devices and software that allow them to test and optimize their applications prior to submission. Some means of support for questions and assistance may further be provided.
- a service provider may require that an approved ITL (Independent Test Lab) certify an application at the developer's expense before it will be accepted for publishing.
- ITL Independent Test Lab
- the developer may be required to package up several resources to satisfy deployment requirements. For example, the developer may be required to supply an application store icon and information movie. These two movies can then be utilized by application store 7216 when a user is browsing for applications to install. Once an application has been selected to be installed, the runtime requirements may require an icon movie and application movie. Optionally, a supporting native library and language file may also be provided. There may be instances when an application requires additional files. In addition, pricing requirements may need to be specified and included with the submitted package.
- the developer can test the application through application store 7216 and seek any necessary approvals from a developer of device 110 or a service provider based upon agreed upon terms and conditions. For example, if a service provider positions device 110 as a family device, a term and condition may state that explicit content is not permitted.
- the application package may be uploaded and published as generally available, or to a certain device platform, and possibly vendor. Global or specified users would now have access to the application.
- Application store 7216 may enable independent developers, developers of device 110 , or service providers (as appropriate) to post updated versions of an application, as well as the ability to delete.
- update and delete capabilities may apply to applications available on application store 7216 , applications already deployed to devices, or both.
- a published application may be revoked. Such revocation may result in a notification being sent to all subscribed devices and an automatic uninstall of the application.
- a developer may elect to allow existing users to keep the current application and simply decide to remove the offering from further availability.
- Application store 7216 may also be configured to provide developers with a summary of customer reviews on a per-application basis to promote improvements in future releases.
- Application store 7216 is an application storefront that is executed on the display/touch panel of device 110 . Its purpose is to present a list of authorized applications from which the user can optionally install, wherein the list of authorized applications may be a subset of all the applications stored in an application repository. Whether an application is authorized for a particular user may depend upon the identity of the user, upon which vendor is offering the application, and/or upon other alternative or additional factors. Depending upon the implementation, access to application store may be via devices 110 only or also via an Internet-based customer portal accessible to any browser-enabled system or device.
- Certain applications may have associated costs to the end user. When these applications are purchased, a charge is processed to the appropriate subscriber account. To facilitate this, application store 7216 may be integrated with a billing system administered by a service provider.
- device 110 may be accessible to various family members in a home, it may be configured to distinguish between individual users. A device so configured may present a list of applications to all users and then allow for presentation of a particular application within a single active user's profile.
- FIG. 85 is a block diagram of an exemplary application store 8500 in accordance with one embodiment of the present invention.
- application store 8500 includes a repository of applications 8502 that are suitable for downloading to and installation and execution upon one or more networked telephony and digital media devices such as those described elsewhere herein.
- Each application stored in repository 8502 may comprise an application package such as was described elsewhere herein that includes: (1) an application movie that is executable by an application player installed on each of the network devices; (2) an install script that, when executed by a networked device, installs the application movie on the device; (3) an uninstall script that, when executed by a networked device, uninstalls the application movie from the device, and (4) an icon movie that, when executed by an application player installed on a networked device, presents a graphical representation of the application movie to a GUI of the device and that is operable to invoke the application movie after installation thereof on the device.
- application store 8500 further includes at least a first vendor interface 8504 and a second vendor interface 8506 .
- First vendor interface 8504 is associated with a first vendor (e.g., a telecommunications company, multi system operator, Internet Service Provider, or the like) and is operable to provide access to a first subset of the applications stored in application repository 8502 for downloading to and installation and execution upon a first plurality of networked devices.
- the first plurality of networked devices are associated with one or more customers or subscribers of the first vendor, denoted first vendor users 1 - n in FIG. 85 .
- Second vendor interface 8506 is associated with a second vendor that is different than the first vendor and is operable to provide access to a second subset of the applications stored in application repository 8502 for downloading to and installation and execution upon a second plurality of networked devices.
- the second plurality of networked devices are associated with one or more customers or subscribers of the second vendor, denoted second vendor users 1 - n in FIG. 85 .
- vendor interfaces 8504 and 8506 are shown in FIG. 85 , it is to be understood that any number of vendor interfaces may be used in accordance with an embodiment of the present invention.
- First and second vendor interfaces 8504 and 8506 may each comprise an application storefront that is executed on a display/touch panel of device 110 .
- the storefront may comprise, for example, a GUI such as that described above in reference to FIG. 74 .
- application store 8500 includes a different interface for each vendor, each vendor may advantageously customize the “look and feel” of its associated interface.
- each vendor may include vendor-specific branding or other user-viewable content within its associated interface.
- each vendor may include vendor-specific functionality or features within its associated interface.
- the subset of applications made available via first vendor interface 8504 may be entirely different from that made available via second vendor interface 8506 .
- the subsets of applications made available via each vendor interface may be overlapping or even identical.
- the system shown in FIG. 85 advantageously enables each vendor to selectively determine which applications will be made available to its customers and/or subscribers. Applications may also be customized to include functionality or user-viewable information uniquely associated with a particular vendor.
- a user interface to application store 7216 may be designed for convenience and simplicity while planning for expansion in navigation and caring for complexities.
- categorization of applications may be used to assist a user in searching for applications.
- Example categories include genre, paid vs. free, most popular, highest rated, or newest.
- device 110 may comprise a device that is accessible to an entire family, it may be configured to require a password before providing access to application store 7216 . This feature may be used, for example, by parents to prevent unauthorized application purchases by their children.
- FIG. 74 depicts one example GUI screen 7400 that may be used to provide an interface to application store 7216 in accordance with an embodiment of the present invention.
- example GUI screen 7400 includes a status bar 7402 and an application store interface 7404 .
- Application store interface 7404 includes a first display area that displays all or a portion of a list of application categories 7410 .
- a “page up” button 7412 may be activated and to page down a “page down” button 7414 may be activated.
- the horizontal bar that displays the title of the application category may be activated.
- Application store interface 7404 further includes a second display area that displays all or a portion of a collection of applications 7416 that fall within the category currently selected in list 7410 .
- a “page up” button 7418 may be activated and to page down a “page down” button 7420 may be activated.
- a page indicator 7422 indicates which of one or more pages of collection 7416 is currently being displayed.
- an icon 7424 For each application identified in collection 7416 , an icon 7424 , a name 7426 and a rating 7428 (which may be based on end user feedback and/or some other source) is provided.
- the icon associated with the application may be activated.
- a “checkout” button 7430 may be activated to launch a dialog by which a selected application may be purchased for download and installation to a device 110 .
- Beta device may be able to install newly uploaded applications for early review. The goal is to protect the public from any rough applications that introduce a negative experience.
- the network administrator may manage the various users on the platform including subscribers, developers, managers, and customer support representatives.
- the network administrator may be able to provision groups of devices. These groups can be assigned various rights that determine their role on the network. To be subjected to early application access, the Beta permission would be granted.
- a Web-based interface for the developers program and application store 7216 provides a face of the platform and may facilitate its successful implementation.
- the Web-based interface includes four areas that correspond to the four stages of the application store life cycle—namely, develop, test, deploy and browse.
- Such a Web-base interface may be simple in design and easy to navigate.
- Application intelligence subsystem 7218 is configured to provide application usage analysis by tracking specific application metrics. Such functionality advantageously enables valuable trend spotting for end-user-driven, new application development.
- Application intelligence subsystem 7218 may be configured to deliver vital usage analysis by tracking specific application metrics. Such metrics may be of value to marketing teams, product management teams, customer retention teams and developers. In one embodiment, application intelligence subsystem 7218 enables a user to view a ranking of most frequently used/least used applications for all end users in the aggregate or for some subset of end users. Application intelligence subsystem 7218 may also provide statistics on day of week/time of day usage behavior.
- the data may be extended to end users. For example, end users may be notified which applications are the most popular applications.
- Application intelligence subsystem 7218 may also be configured to permit end users to rate applications and to share such ratings information in the aggregate with other end users.
- a system administrator may have the ability to grant or deny entities the ability to generate and view application intelligence reports. Given customer proprietary information policies, the usage behavior of individual devices is securely protected.
- a Web-based interface to application intelligence subsystem 7218 is visual in nature, and has the capability to produce executive level reports. Such reports may be transferable to standard Microsoft® PowerPoint® (developed and sold by Microsoft Corporation of Redmond, Wash.) presentations.
- FIGS. 24 and 25 depict example Web-based interface screens that may be used to report application intelligence information in accordance with various implementations.
- Content aggregation subsystem 7220 is configured to remove the burden on service providers of individually having to manage delivery of content to devices within network 7204 from multiple content providers.
- Content aggregation subsystem 7220 provides a pre-packaged content solution with personalization, recurring revenue, ad insertion and aggregated billing opportunities.
- content aggregation subsystem 7220 can optimize the performance of a device within network 7204 by alleviating the content processing needs of the device.
- FIG. 75 is a block diagram 7500 that shows how content aggregation subsystem 7220 may be used to aggregate content from multiple content providers in accordance with an embodiment of the present invention.
- a plurality of content providers namely, content providers 7502 a , 7502 b and 7502 c , are configured to provide content for delivery to device 110 .
- Such content may include for example video content, audio content, graphic content, text content, or any other form of content that can be delivered over a network.
- Device 110 uses such content to a plurality of content-based applications—namely content-based applications 7504 a , 7504 b , 7504 c and 7504 d.
- Content provided to device 110 by content provider 7502 a is processed entirely by device 110 .
- processing may include content processing via ActionScript functionality of a Flash player executing on device 110 , via a dedicated C/C++ class module which is a part of a software architecture of device 110 , or via various codecs for audio, video and images that also form a part of the software architecture of device 110 .
- content provided to device 110 by content providers 7502 b and 7502 c is first received and processed by content aggregation subsystem 7220 .
- Such processing may include, for example, audio or video transcoding.
- Content aggregation subsystem 7220 may also cache content so that it need not be retrieved by subsystem 7220 each time it is requested by a device. Any of a variety of caching protocols may be used.
- Content aggregation subsystem 7220 may also filter or modify content based on user preferences. Processed content is then provided from content aggregation subsystem 7220 to device 110 for use in supporting content-based applications 7504 a - 7504 d . Since a certain amount of content processing has already been performed by content aggregation subsystem 7220 , the amount of processing that must be performed by device 110 is reduced. This helps improve performance by device 110 .
- Content aggregation subsystem 7220 may perform additional functions such as the insertion of ads into content prior to delivery to device 110 .
- Content aggregation subsystem 7220 can advantageously provide a source of recurring revenue to an administrator of the subsystem.
- the subsystem can also aggregate services provided by multiple content providers to a single bill.
- device 110 may include a directory services application that allows a user to search for businesses within various service categories. Businesses may be selected based on geographic proximity to a particular location. Once a business has been found, the user can activate a telephone button icon associated with the business to place a telephone call directly from the directory services application interface (also referred to herein as “click-to-call”).
- the directory services application also supports text messaging to a business in accordance with a Short Message Service (SMS) protocol.
- SMS Short Message Service
- a directory services application 7602 executing on device 110 may obtain directory services information in real-time from a single IP-based directory 7604 .
- directory services application 7602 sends a query via the Internet to IP-based directory 7604 .
- the query may specify, for example, a name of a business, a category of businesses, or one or more search keywords.
- the query may also include geographic information, such as city, state or zip code in order to obtain location-specific results.
- the IP-based directory will return one or more results in the form of business names, addresses and telephone numbers.
- IP-based directory 7604 may comprise a directory provided by any of a wide variety of IP-based directory service providers.
- a directory services application 7702 executing on device 110 may also obtain directory services information in real-time from multiple IP-based directories, such as directories 7706 a , 7706 b and 7706 c .
- directory services application 7702 sends a query to an aggregator 7704 that is configured to distribute the query to each of the multiple directories.
- the query may be formulated in the manner described above in regard to FIG. 76 .
- Aggregator 7704 then receives query results A, query results B and query results C from IP-based directories 7706 a , 7706 b and 7706 c , respectively, and aggregates the results for delivery to directory services application 7702 .
- IP-based directories may also provide certain types of information that other IP-based directories don't.
- a second IP-based directory may also be used as a fallback directory in case the first IP-based directory is not capable of delivering adequate results.
- query results may be ordered for presentation to an end user.
- results may be ordered by the IP-based directory, the aggregator, and/or the directory services application executing on device 110 .
- Such results may be ordered, for example, alphabetically or by geographic proximity to a specified location.
- results are ordered in accordance with a “premium placement” scheme in which businesses can pay to have their information appear at the top of the query results or highlighted in some other fashion intended to garner the attention of an end user.
- highlighting techniques may include, for example, providing a larger listing or using bold text, background highlighting, animations or the like.
- an aggregator 7804 may be configured to obtain such “premium placement” results from a premium placement directory 7806 based on a query received from a directory services application 7802 , while also obtaining standard directory results from at least one IP-based directory 7808 .
- the query information may also be used to obtain ads from an ads database 7810 for display within the directory services application interface on device 110 . This provides yet another revenue opportunity for a proprietor of aggregator 7804 .
- Premium placement directory information, standard directory information and ads may all be returned from aggregator 7804 to directory services application 7802 .
- Payment for “premium placement” may be based on the display of the premium placement directory information by directory services application 7802 and/or upon the use of directory services application 7802 to place a telephone call to a premium placement business. For example, a payment may be due each time premium placement directory information is displayed or each time a phone call is placed that is attributable to a premium placement entry. The latter payment method is easily implemented because directory services application 7802 is capable of attributing the placement of a call to a particular business entry and can be configured to instantaneously report such information.
- a directory services application in accordance with an embodiment of the present invention may also permit a user to click on or otherwise activate a directory entry to access additional information or functionality associated with a particular business.
- Additional information may be in the form of graphic, audio (e.g., voice) and/or video content that is displayed or played back by device 110 .
- Additional functionality may be in the form of an application interface that allows an end user to place an order or otherwise acquire products or services from the business (e.g., an interface that allows a user to place an order for pizza from a restaurant).
- a business may pay a fee in order to have such information or functionality associated with its entry and/or may pay a separate fee each time such information or functionality is accessed or used.
- Information aggregated from multiple devices 110 can be used to generate valuable reports regarding what types of products and services end users are looking for and which businesses have actually been contacted using the click-to-dial feature.
- a directory services application or other application operating on device 110 may also solicit ratings or rankings information from end users about businesses that they have called via device 110 . Such information may advantageously be used to answer community-based queries such as “What electrician do most people in my neighborhood call?” or “What is the favorite pizza place in my area?”
- a directory services application 7902 executing on device 110 provides click-to-dial reporting information to a dialed calls database 7908 each time an end user uses the click-to-dial feature of application 7902 .
- Database 7908 acquires such information from multiple devices 110 to generate accumulated information regarding which businesses have been dialed using the click-to-dial feature and how many times such businesses have been dialed.
- Dialed calls database 7908 may maintain such information for each of a plurality of geographic locations.
- directory services application 7902 sends a query to an aggregator 7904 .
- Aggregator 7904 distributes the query to multiple directories 7906 , which may include both a premium placement directory 7910 and a standard IP-based directory 7912 as discussed above, and obtains corresponding results in the form of business names, addresses and telephone numbers. Such results may be limited to a particular geographic area.
- Aggregator 7904 queries dialed calls database 7908 with the returned telephone numbers to determine the popularity of each business based on click-to-call volume.
- Aggregator 7904 then returns the results along with the popularity information returned from dialed calls database 7908 to directory services application 7902 .
- Directory services application 7902 then presents the results to the end user. For example, directory services application 79 Y 02 may present all results sorted from most popular to least popular. As another example, directory services application 7902 may present premium placement results followed by ordinary results, wherein the premium placement results and the ordinary results are each sorted by popularity. Still other sorting approaches may be used.
- the popularity of a business is determined based on reported click-to-call volume alone.
- end user feedback such as end user rating or ranking information may additionally or alternatively be solicited via device 110 and used to determine the popularity of a business.
- Directory services application 7902 may also be configured to display end user comments about particular businesses.
- FIG. 80 depicts an embodiment 8000 of a directory services application in accordance with an embodiment of the present invention that includes preferences logic 8002 , contacts integration logic 8004 , ratings logic 8006 and favorites integration logic 8008 . Each of these elements will now be described.
- Preferences logic 8002 allows an end user to “tag” an entry for a business that is listed in the application interface of directory services application 8000 .
- the method by which an entry is tagged may vary depending upon the implementation. Once an entry has been tagged it will subsequently be presented at the top of the list for the relevant business category. Thus, for example, if an end user tags a particular movie theater, that movie theater will appear at the top of the list the next time the movie theater category is selected. If multiple businesses within the same category have been tagged, a sorting algorithm may be used to determine the order in which the tagged businesses appear. For example, a most-recently-used sorting algorithm may be used. Preferences logic 8002 thus allows a user to easily access directory information for a preferred business without having to actually create, maintain or find contact information for the business.
- Contacts integration logic 8004 is configured to allow an end user to add contact information associated with a business identified in the application interface of directory services application 8000 to an address book maintained by a contacts application resident on device 110 .
- Ratings logic 8006 is configured to permit a user to submit ratings information about a particular business identified in the application interface of directory service application 8000 . Such ratings information can then be aggregated by a service provider and used by directory services application 8000 to display community-based ratings for businesses, or to sort business entries by ratings.
- Favorites integration logic 8008 is configured to enable a user to add a business identified in the application interface of directory services application 8000 to a favorites list that may be maintained by directory services application 8000 or a separate application resident on device 110 . Activating an entry in the favorites list will invoke a speed-dial feature that will cause the business to be called.
- GUI screen 8100 associated with a directory services application to an end user.
- GUI screen 8100 includes a list of business categories 8102 and a plurality of entries 8104 corresponding to a selected category within category list 8102 .
- category list 8102 represents a sub-category within a hierarchical list of business categories.
- category list 8102 may represent the category of “pizza restaurants” which itself is a sub-category of the category “restaurants.”
- the directory services application associated with GUI screen 8100 allows a user to navigate among a hierarchical list of business categories and sub-categories in order to find a desired list of businesses.
- category list 8102 represents a “quick access” list of categories that are deemed most useful to a user.
- the quick access list may be automatically compiled based on historical information relating to which categories are most often accessed by an end user. Alternatively or additionally, the quick access list may be manually compiled based on express designation of categories by the end user. The use of a quick access list helps ensure that end users are not presented with categories that they do not often use.
- Category list 8102 may also represent categories that have most recently been accessed by an end user.
- category list 8102 may be sorted alphabetically, by frequency of use, or based on some other sorting algorithm. For manageability, category list 8102 may be limited to some maximum number of entries. End users may be given the option to delete a category from category list 8102 .
- category list 8102 may represent the results of a category search executed by an end user via another GUI screen of the directory services application.
- GUI screen 8200 depicted in FIG. 82 provides additional information 8202 about the selected business. Such information may include an image 8204 , audio and/or video content 8206 , and text 8208 . Such information also includes a telephone number 8210 .
- GUI screen 8200 may be provided from the business itself or from some third party information provider, such as a third party IP-based directory service.
- the information may be provided in a very simple format or may be provided in an elaborate format, using animation, streaming audio/video content, or the like.
- GUI screen 8300 depicted in FIG. 83 Upon activation of telephone number 8210 by an end user, a GUI screen 8300 depicted in FIG. 83 will be displayed. As shown in FIG. 83 , GUI screen 8300 includes a dial button 8302 , a contacts button 8304 , a favorites button 8306 , a bookmark button 8308 , a comment button 8310 and a cancel button 8312 .
- the click-to-dial functionality of the directory services application will be invoked and a telephone call will be placed from device 110 to the selected business.
- the placement of the call via this interface may be reported to an external entity for tracking business popularity or other statistics.
- contacts button 8304 When an end user activates contacts button 8304 , information about the selected business will be imported into an address book maintained by a contacts application resident on device 110 . Depending upon the implementation, this process may involve launching an interactive dialog in which the end user must engage.
- favorites button 8306 When an end user activates favorites button 8306 , the selected business will be tagged such that it will subsequently be presented at the top of the list for the relevant business category. Thus, for example, if an end user activates favorites button 8306 for a particular movie theater, that movie theater will appear at the top of the list the next time the movie theater category is selected. If multiple businesses within the same category have been selected as favorites, a sorting algorithm may be used to determine the order in which the businesses appear.
- bookmark button 8308 When an end user activates bookmark button 8308 , the selected business will be saved to a “bookmarked” business category for easy access during subsequent use of the directory services application.
- comment button 8310 When an end user activates comment button 8310 , the user is presented with an interface by which the end user can submit feedback about the selected business.
- feedback may be submitted in the form of a rating (e.g., a certain number of stars out of 5 stars, a “thumbs up” or “thumbs down”, etc.) and/or as text comments.
- a rating e.g., a certain number of stars out of 5 stars, a “thumbs up” or “thumbs down”, etc.
- Such feedback can then be aggregated by a service provider and then used by the directory services application to display community-based ratings or comments for businesses or to sort business entries by ratings.
- cancel button 8312 When an end user activates cancel button 8312 , the end user terminates the transaction and may be returned, for example, to GUI screen 8100 .
- GUI screens 8200 and 8300 need not be used. For example, activating an entry within GUI screen 8100 may automatically place a phone call to the selected business. Also, activating phone number 8210 within GUI screen 8200 may automatically place a phone call to the selected business.
- Click-to-call records generated by a directory services application in accordance with an embodiment of the present invention may be used to generate a variety of valuable business reports. Such reports may provide a volume of calls per time period, busy hours, a number of entries viewed without calls/skips, a number of hang-ups or unanswered calls or a number of favorite registrations for a particular business.
- Embodiments of the present invention described herein, including systems, methods/processes, and/or apparatuses, may be implemented using one or more processor-based computer systems, such as computer system 8400 shown in FIG. 84 .
- computer system 8400 includes a processing unit 8404 that includes one or more processors or processor cores.
- Processor unit 8404 is connected to a communication infrastructure 8402 , which may comprise, for example, a bus or a network.
- Computer system 8400 also includes a main memory 8406 , preferably random access memory (RAM), and may also include a secondary memory 8408 .
- Secondary memory 8408 may include, for example, a hard disk drive 8422 and/or a removable storage drive 8424 .
- Removable storage drive 8424 may comprise a floppy disk drive, a magnetic tape drive, an optical disk drive, a tape backup, or the like.
- Removable storage drive 8424 reads from and/or writes to a removable storage unit 8432 in a well-known manner.
- Removable storage unit 8432 may comprise a floppy disk, magnetic tape, optical disk, or the like, which is read by and written to by removable storage drive 8424 .
- removable storage unit 8432 includes a computer-readable storage medium having stored therein computer software and/or data.
- secondary memory 8408 may include other similar means for allowing computer programs or other instructions to be loaded into computer system 8400 .
- Such means may include, for example, a removable storage unit 8434 and an interface 8426 .
- Examples of such means may include a memory stick and an industry standard interface (such as a universal serial bus (USB) interface) suitable for interfacing with the memory stick, a memory card and associated card reader, a removable memory chip (such as an EPROM or PROM) and associated socket, a program cartridge and cartridge interface (such as that found in video game devices), and other removable storage units 8434 and interfaces 8426 that allow software and data to be transferred from removable storage unit 8434 to computer system 8400 .
- USB universal serial bus
- Computer system 8400 may further include a display 8410 for presenting user-viewable content rendered by processing unit 8404 and/or optional display interface hardware (not shown in FIG. 84 ) as well as one or more input/output (I/O) devices 8412 for receiving input from or producing output to a user.
- exemplary input devices include a keyboard, mouse, keypad, touch screen, or the like.
- Exemplary output devices include audio devices such as speakers.
- Display 8410 may also be considered an output device.
- Computer system 8400 may also include a communication interface 8414 .
- Communication interface 8414 allows software and data to be transferred between computer system 8400 and external devices. Examples of communication interface 8414 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, or the like.
- Software and data transferred via communication interface 8414 are in the form of signals which may be electronic, electromagnetic, optical, or other signals capable of being received by communication interface 8414 . These signals are provided to communication interface 8414 via a communication path 8442 .
- Communications path 8442 carries signals and may be implemented using wired communication media such as a phone line, coaxial cable or fiber optic cable, as well as wireless communication media such as radio frequency (RF) or infrared communication channels.
- RF radio frequency
- computer program medium and “computer readable medium” are used to generally refer to media such as removable storage unit 8432 , removable storage unit 8434 and a hard disk installed in hard disk drive 8422 .
- Computer program medium and computer readable medium can also refer to memories, such as main memory 8406 and secondary memory 8408 , which can be semiconductor devices (e.g., DRAMs, etc.). These computer program products are means for providing software to computer system 8400 .
- Computer programs are stored in main memory 8406 and/or secondary memory 8408 . Computer programs may also be received via communication interface 8414 . Such computer programs, when executed, enable computer system 8400 to implement features of the present invention as discussed herein. Accordingly, such computer programs represent controllers of the computer system 8400 . Where the invention is implemented using software, the software may be stored in a computer program product and loaded into computer system 8400 using removable storage drive 8424 , interface 8426 , or communication interface 8414 .
- the invention is also directed to computer program products comprising software stored on any computer readable medium.
- Such software when executed in one or more data processing devices, causes a data processing device(s) to operate as described herein.
- Embodiments of the present invention employ any computer readable medium, known now or in the future. Examples of computer readable mediums include, but are not limited to, primary storage devices (e.g., any type of random access memory) and secondary storage devices (e.g., hard drives, floppy disks, CD ROMS, zip disks, tapes, magnetic storage devices, optical storage devices, MEMs, nanotechnology-based storage device, etc.).
- primary storage devices e.g., any type of random access memory
- secondary storage devices e.g., hard drives, floppy disks, CD ROMS, zip disks, tapes, magnetic storage devices, optical storage devices, MEMs, nanotechnology-based storage device, etc.
- a managed services platform in which the platform includes a DMS server and an AS server.
- the DMS server can act as a gateway for communications with one or more computing devices, and the computing devices can be associated with a first entity.
- the AS server can be communicatively coupled with the DMS server.
- the DMS server can be operable to provide a bundle to the first computing device.
- the bundle contains content that at least includes one or more configuration messages and an application set that contains one or more predefined applications.
- the content of the bundle can be determined at least in part by the first entity.
- the arrangement described above can permit safe and secure delivery of content to a portable computing device, as the downloaded material can be from a known and authorized source.
- steps can be taken to ensure that the content that is delivered is authorized to be delivered to a particular mobile device.
- the managed services platform 9010 can communicate with a network 9020 , which can be comprised of any suitable number and type of interconnected communications infrastructure operating in accordance with any suitable type and number of protocols and standards.
- the network 9020 can be accessed through a conventional Internet connection, whether wired or wireless.
- the platform 9010 can include a device management service (DMS) server 9030 and an application service (AS) server 9040 , and the DMS server 9030 and the AS server 9040 can be communicatively coupled to one another such that bi-directional communication exchange between these two components can occur.
- DMS device management service
- AS application service
- the managed services platform 9010 can be configured to communicate with one or more portable computing devices 9050 .
- the DMS server 9030 can serve as a gateway for communications with one or more of the devices 9050 such that the DMS server 9030 is responsible for exchanging messages and data with the devices 9050 or for directing or otherwise overseeing the exchange of messages and data between the devices 9050 and other suitable components.
- the term “DMS server” is defined as a component or a group of components that enable bi-directional communication with at least a portable computing device such that messages, updates, settings or other data can be delivered to such a device.
- the DMS server 9030 can be a computer that includes a processor (not shown), memory (not shown), a computer-readable storage medium (not shown), a network adapter (not shown), and other components known to those skilled in the art.
- a DMS client interface 9060 can be stored on the computer-readable storage medium, or stored to a data storage device that is communicatively linked to the DMS server 9030 .
- the DMS client interface 9060 can interface with the portable computing devices 9050 .
- the DMS client interface 9060 can include a message publisher interface (not shown) that communicates DMS commands to the portable computing devices 9050 and that facilitates a communication service that employs a consolidated polling technique to conduct message exchange.
- This communication service referred to as a heartbeat service, provides a common message transport bus where individual applications running on a managed device can subscribe to receive messages.
- a portable computing device 9050 can be any device that subscribes to or is configured to subscribe to the managed services platform 9010 and that may be communicatively linked to the DMS server 9030 to receive one or more commands from the DMS client interface 9060 .
- a portable computing device 9050 is a tablet, a laptop computer, a smart phone or a communications device that is embedded within another component, such as a vehicle or an appliance.
- a portable computing device 9050 can include a DMS client 9070 and a DMS agent 9080 instantiated thereon.
- the DMS client 9070 and DMS agent 9080 can be implemented as computer-readable program code that, when executed by a processor, implements the various processes described herein.
- a portable computing device 9050 can also include one or more displays 9090 , one or more transceivers 9100 and one or more processors 9110 .
- the transceivers 9100 can enable the device 9050 to communicate with the DMS server 9030 , the AS server 9040 and any other component via any suitable wired or wireless connection.
- DMS client is defined as client-side software instantiated on a portable computing device that establishes a communication link with a DMS server and, among other things, receives DMS commands from the DMS server.
- DMS agent is defined as client-side software that is instantiated on a portable computing device that implements the DMS commands received from the DMS server.
- the DMS agent 9080 can be implemented on the devices 9050 as a component of the DMS client 9070 or on the devices 9050 as a separate component with which the DMS client 9070 communicates.
- the DMS commands can be communicated to a portable computing device 9050 in response to the DMS server 9030 receiving a solicitation or heartbeat from the device 9050 .
- the command can be requested by the DMS client 9070 via the heartbeat, as opposed to being pushed by the DMS server 9030 to the device 9050 .
- the heartbeat service of the portable computing device 9050 can periodically communicate a heartbeat to the DMS server 9030 to indicate that the device 9050 is turned on or active and available to receive DMS commands, which may be available from the DMS server 9030 .
- the term “heartbeat” is defined as a message communicated from a portable computing device to a DMS server that indicates the availability of the portable computing device to receive DMS commands or messages.
- a portable computing device 9050 can be configured to communicate the heartbeat intervals defined by seconds, minutes, hours, days, weeks, a certain event, etc. Such intervals can be static, user configurable, or configurable via the update process.
- the DMS server 9030 can communicate a heartbeat response. If no commands are presently available, the heartbeat response can indicate such to the device 9050 . If one or more commands are available for the device 9050 , the heartbeat response can indicate that one or more commands will be communicated to the device 9050 . For example, the heartbeat response can indicate that the DMS command will be communicated to a device 9050 in response to a next heartbeat, or at a particular time. In this regard, the heartbeat and heartbeat response can include data that facilitates coordination between the DMS server 9030 and the device 9050 for delivery of the commands.
- a next heartbeat generated by the portable computing device 9050 can indicate to the DMS server 9030 the status of the update, the status of the device 9050 or any other relevant data.
- this transport mechanism can permit the delivery of various types of data to the portable computing devices 9050 . It is understood, however, that the system 9000 is not limited to this particular transport mechanism, as other suitable techniques for establishing and maintaining communications in the system 9000 may be used.
- the AS server 9040 can be a computer that includes a processor (not shown), memory (not shown), a computer-readable storage medium (not shown), a network adapter (not shown), and other components known to those skilled in the art.
- An AS client interface 9120 can be stored on the computer-readable storage medium, or stored to a data storage device that is communicatively linked to the AS server 9040 .
- the AS client interface 9120 can interface with the portable computing devices 9050 .
- the AS server 9040 can also host one or more application repositories 9130 , which can offer one or more applications for download to the portable computing devices 9050 .
- An “application repository” is defined as a medium for storing one or more applications for download to a computing device.
- an “application” is defined as software that when installed on a machine enables a user to perform one or more specified tasks.
- the application repository 9130 can offer applications to the devices 9050 on an individual, global or group basis, a process in which several applications are grouped together for download to a device 9050 .
- a suitable entity can add applications to, modify applications in or remove applications from the application repositories 9130 .
- a portable computing device 9050 can include an AS client 9140 , which can be implemented as computer-readable program code that, when executed by a processor, implement the various processes described herein.
- AS client is defined as client-side software instantiated on a portable computing device that establishes a communication link with an AS server and enables the device or facilitates its ability to receive application downloads.
- one or more of the portable computing devices 9050 can be associated with a first entity, while one or more other portable computing devices can be associated with a second entity.
- the first entity or second entity may be an enterprise, such as a private business or a government agency, a family or some other group linked by one or more common factors.
- the phrase “associated with an entity” is defined as a relationship between a first entity and a component, service, employee, agent or other entity such that the first entity maintains at least some control over that component, service, employee, agent or other entity.
- a portable computing device 9050 can be assigned to a first entity such that information relevant to the operation of the first entity is presented on the device 9050 and employees or agents of the first entity can operate the device 9050 on behalf of the first entity.
- all or a portion of the managed services platform 9010 can be hosted by an entity that is distinct from the first and second entities. Such an arrangement can alleviate from the first and second entities the burden of hosting these systems. For example, if the first entity is a private business, the private business may contract with another business to host the managed services platform. Of course, the first entity may wish to host all or a portion of the managed services platform 9010 itself. In addition, different entities may also host portions of the managed services platform 9010 . In particular, a first hosting entity may manage the DMS server 9030 , while a second hosting entity may be responsible for the AS server 9040 .
- a portable computing device 9050 can be assigned to the managed services platform 9010 , and these devices 9050 can be associated with any suitable number of entities.
- a portable computing device 9050 can be configured to communicate with several managed services platforms 9010 .
- a first platform 9010 may serve as a primary platform, while a second platform 9010 may operate as a secondary platform.
- a portable computing device 9050 may communicate with a primary platform 9010 during normal operation but may communicate with a secondary platform 9010 if the primary platform 9010 malfunctions.
- the device 9050 may initially communicate with the secondary platform 9010 upon activation and then can receive instructions to switch to the primary platform 9010 .
- a secondary platform 9010 can also permit additional messages, such as updates or corrective actions, to be sent to the device 9050 , if necessary.
- the secondary platform 9010 can also be used to ensure security by directing the portable computing device 9050 only to an authorized primary platform 9010 such as, for example, when a device 9050 is first activated or following an update.
- a user who is associated with the first entity may be assigned a portable computing device 9050 that is associated with the first entity.
- a private business may purchase or lease a portable computing device 9050 and can assign the device 9050 to one of its employees. If desired, the private business can also assign a single device 9050 to multiple employees in which each of the employees can be assigned log-in credentials to access/operate the single device 9050 . Additional examples of this principle will be presented below.
- the arrangement described above can enable the selective download of applications, settings and other data to be sent to one or more portable computing devices 9050 .
- Such information can be provided to a device 9050 on an individual basis, a group basis or a broadcast basis. Multiple examples of this process and other supporting structures will be presented below. A description will be presented here in which a device 9050 is ready for an initial activation.
- a first entity which may be a private business, wishes to assign a portable computing device 9050 to a person who is associated with the first entity.
- This person may be, for example, an employee, agent or contractor of the business.
- this person may have a performance function that is related to or associated with the business.
- performance function is defined as one or more tasks assigned to a person to be conducted on behalf of the assigning party.
- a performance function can be the duties assigned to an employee or an agent of the business.
- the portable computing device 9050 that is assigned to the person associated with the first entity can have an identification that enables the device 9050 to be uniquely identified from other computing devices 9050 .
- this identification can be used to identify a particular user of a device 9050 , especially if that person is the only user assigned to the device 9050 .
- multiple users may be assigned to a single device 9050 , if so desired.
- the unique identifier for a device 9050 can be a media access control (MAC) address, although other elements can be used for such a task.
- MAC media access control
- the identification can also include information that enables the users of the device 9050 to be distinguished from one another. For example, a user name or other moniker can be included with a MAC address to identify the device 9050 and which user of the device 9050 is currently active or currently wishes to receive/transmit/exchange data.
- the device 9050 can contact the managed services platform 9010 , such as by generating and sending an activation notice to the DMS server 9030 .
- the device 9050 can send the activation notice when the device 9050 is first activated or even during subsequent power up cycles, and this notice can be conducted in accordance with the heartbeat process previously described or some other suitable process.
- activation notice is defined as a notice that is intended to inform a component or a group of components that the element that sent the notice is ready to receive data from the component or group of components.
- the DMS server 9030 can use the unique identifier(s) to identify the device 9050 and, if necessary, the user of the device 9050 .
- the DMS server 9030 may be operable to provide a bundle to the device 9050 , and the contents of the bundle can provision the device 9050 in accordance with one or more predetermined arrangements.
- the phrase “operable to provide a bundle to a computing device” is defined as directly transmitting content to a computing device, indirectly transmitting content to a computing device by directing a component to effect the transmission of content to the computing device or by directing or assisting the portable computing device to seek the delivery of content from a component.
- the content of the bundle can be determined at least in part by the first entity or client to which the portable computing device 9050 is associated.
- the content of the bundle can at least include one or more configuration messages and an application set that contains one or more predefined applications.
- the managed services platform 9010 can provide the bundle to the device 9050 through a series of message exchanges in accordance with a consolidated polling technique (i.e., the heartbeat process).
- the term “bundle” is defined as one or more messages or transmissions that include content that is intended for a particular computing device or group of computing devices or one or more directives that cause a computing device or a group of computing devices to retrieve content from one or more sources.
- content is defined as data, settings or parameters that when received by a computing device, cause the computing device to perform an action that corresponds to the received data, settings or parameters.
- a “configuration message” is defined as one or more messages or transmissions that are designed to cause a computing device to select or adjust one or more operational settings of the computing device.
- a configuration message can include virtual privacy network (VPN) settings, wireless communication settings (such as Wi-Fi settings), location service settings, security certificates, firmware packages or download control settings.
- location service settings can be settings that enable, for example, a managing entity to monitor the whereabouts of the device 9050
- security certificates can be employed for securing communications to and from the device 9050 , such as Internet Protocol (IP) communications.
- IP Internet Protocol
- firmware packages can include one or more firmware releases that include programming/code to effect or facilitate operational adjustments or settings in one or more components of the portable computing device 9050 , as will be explained below.
- Control settings for example, can be used to permit a managing entity or other external party to send messages to or make adjustments to the device 9050 .
- the bundle can include one or more applications, such as application sets that include one or more predefined applications.
- the managed services platform 9000 can take steps to cause the delivery of applications to the portable computing device 9050 or to direct the device 9050 to one or more different components that make such applications available for download.
- the DMS server 9030 can be operable to provide applications to the device 9050 by directly transmitting such data to the device 9050 .
- the DMS server 9050 can direct the AS server 9040 to transmit the applications to the device 9050 or can direct the device 9050 to contact the AS server 9040 to retrieve the applications.
- the device 9050 can also receive applications via any combination of these options listed here.
- the AS server 9040 can host one or more application repositories 9130 , which can offer multiple applications for download to any number of portable computing devices 9050 .
- the application set that is to be sent to a particular computing device 9050 can include a default application set that includes one or more default applications.
- the application set can include a custom application set that includes one or more custom applications.
- a default application set can include applications (i.e., default applications) that have been approved to be installed on all the devices 9050 of a particular group or all devices associated with an entity.
- a custom application set can include applications (i.e., custom applications) that are geared towards a particular characteristic associated with a device 9050 or a user of the device 9050 .
- the content of the bundle provided to a portable computing device 9050 can be based on the identification associated with the device 9050 .
- the configuration messages and/or the applications can be provided to the device 9050 according to the identification associated with the device 9050 .
- the identification associated with the device 9050 can be related to a performance function of an intended user of the device 9050 such that the configuration messages or the applications that are provided to the device 9050 are related to the performance function of the intended user.
- a first entity such as a corporation, may distribute a portable computing device 9050 to an individual, like an employee.
- This employee can have a performance function, such as generating sales of the company's products or services. Because this worker is involved in sales, the bundle to be delivered to his device 9050 can be tailored to that function. That is, the configuration message(s) and the applications that are to be provided to the employee's device 9050 can be related to the employee's job function, which is in sales.
- a configuration message sent to the device 9050 may require the device 9050 to only communicate over a VPN.
- a configuration message for the device 9050 may direct the enablement of a location service on the device 9050 .
- the configuration message may include firmware and other code designed expressly for this employee's sales job.
- the receipt of the configuration messages can cause visible changes to the portable computing device 9050 .
- a firmware package that is delivered to the device 9050 may cause the display 9090 of the device 9050 to present certain GUI elements.
- the GUI elements that are displayed can be associated with the first entity that distributed the device 9050 to the user.
- the first entity can cause the device 9050 to be flashed such that, for example, a company logo or other mark can appear on the display, along with other predetermined visual elements, like a background or other various skins and/or themes.
- This process can be conducted with other devices 9050 that are associated with a second entity such that these devices 9050 can be provisioned to have a look and feel associated with the second entity.
- a default set of applications can be provided to the device 9050 as each employee activates his/her device 9050 or at any other suitable time(s).
- these default applications can be applications that are relevant to each employee's association with the corporation, such as an application for sharing work contacts, an application that presents written articles about the company's industry or an application that is useful for remembering important personal information related to business contacts.
- Default applications can also be made available for retrieval by a group of devices 9050 , such as from an application repository, at any other suitable time. These default applications can simply be made available to the devices 9050 or can be pushed to the devices 9050 when the default applications become available.
- a custom set of applications can be prepared and provided to employees who are part of a specific group or who meet certain requirements. These custom applications can be related to the performance function of an employee or a group of employees. Continuing with the example concerning the sales employee, because this employee may need to visit clients, a navigation application can be provided to that employee's device 9050 . In another example, because this employee will be dealing with numerous clients, an application that manages information concerning business contacts can be provided to the device 9050 . Like the default applications, custom applications can be pushed to the device 9050 or made available at an application repository, whether at activation or during any suitable, subsequent time.
- the managed services platform 9010 can provide services to multiple portable computing devices 9050 . Two or more users of such devices 9050 may be associated with a first entity, although not necessarily so. Similar to the description above, the DMS server 9030 , once it identifies the second device 9050 , can be operable to provide a second bundle to the second device 9050 that is assigned to, for example, an administrative assistant.
- the second bundle can also contain content that at least includes one or more configuration commands and an application set that contains at least predefined applications.
- the second bundle can be provided to the second device 9050 when an activation notice is received from the second device 9050 or by some other suitable act by the second device 9050 .
- the content of the second bundle can be based on the identification associated with the second computing device 9050 such that the configuration messages and/or the application set that are provided to the second device 9050 are done so according to the identification associated with the second device 9050 .
- the identification associated with the second device 9050 can be related to a performance function of a second intended user of the second device 9050 such that the configuration messages or the applications that are provided to the second device 9050 are related to the performance function of the second intended user.
- the performance function of the second intended user is different from the performance function of a first intended user of the first device 9050 described above.
- the content of the bundle provided to the second intended user can be different from the content of the bundle provided to the first intended user of the first device 9050 .
- the DMS server 9030 or some other suitable component can be operable to provide a default set of applications and a custom set of applications for both the first computing device 9050 and the second computing device 9050 .
- the default set of applications can be the same for both the first device 9050 and the second device 9050
- the custom set of applications for the first device 9050 can be different from the custom set of applications for the second device 9050 .
- one of the users may be an employee of the first entity and can be involved in sales.
- This first user can be assigned a first computing device 9050 , which can receive configuration messages and applications that are related to the type of work, i.e., sales, conducted by the first user.
- a second user may be an administrative assistant who is also an employee of the entity and who is assigned a second portable computing device 9050 .
- This second user has a different performance function from that of the first user.
- some of the configuration messages for the second device 9050 assigned to this user may be structured differently from those provided to the first device 9050 that is assigned to the first user.
- the administrative assistant may only be permitted to use the second device 9050 on the entity's campus, which may eliminate the need to set the second device 9050 for permanent use of a VPN.
- some of the applications provided to the first user's device 9050 may be different from those provided to the second device 9050 assigned to the second user.
- the administrative assistant may never travel on the company's behalf, which would obviate the need for provided the second device 9050 with a navigation application.
- one or more applications designed for use by the administrative assistant on the second device 9050 i.e., a custom set of applications, can be different from those of the employee involved in sales.
- some of the applications provided to the sales employee, the administrative assistant and other employees can be common, i.e., a set of default applications, installed on all relevant devices 9050 .
- the presentation of applications to employees or other individuals can be general or selective in nature.
- This control of access to applications can occur when the portable computing device 9050 is initially activated or at any other subsequent time.
- this feature applies to applications that are pushed to a device 9050 without any solicitation from a user or when a user tries to access applications from an application repository.
- a managing entity may control the type of applications that a user of the device 9050 can retrieve from an application repository.
- the managing entity may only present to a user those applications in the application repository that the user is entitled to install on his/her device 9050 , which can be based on, for example, the user's performance function.
- multiple users may be assigned to a single portable computing device 9050 .
- an entity may assign a first user and a second user to a first device 9050 , and both the first user and the second user can set up accounts on the first device 9050 .
- the first device 9050 can be operable to identify the first and second users through various conventional means, like passwords or biometric identification.
- the first device 9050 can provide identification for both the first and second users by, for example, supplying information that identifies which of the first and second users is currently active on the first device 9050 .
- the content of a first bundle provided to a first device 9050 can be based on an identification associated with the first device 9050 .
- the device 9050 can be operable to switch between a first account associated with the first user and a second account associated with the second user.
- the DMS server 9030 can be further operable to provide a second bundle to the first device 9050 based on the identification associated with the first device 9050 .
- the content of the first bundle can be arranged for the first user, and the content of the second bundle can be arranged for the second user, in accordance with the description above.
- the first and second users may have similar or even dissimilar performance functions, and the first and second bundles may include configuration messages and applications geared towards those performance functions.
- the first and second users may be associated with a common entity, such as an employer, but not necessarily so.
- the content of the bundle can be determined, at least in part, by a first entity.
- This first entity can also be responsible for assigning portable computing devices 9050 to one or more users, each of which can be associated with the first entity.
- the first entity may be a corporation that provides devices 9050 to a number of its employees.
- one more application repositories 9130 can be assigned to and associated with the first entity.
- Such an application repository 9130 can have a look and feel that is related to the first entity, which can give a user of the repository 9130 that the repository 9130 is maintained by or at least approved by the first entity.
- a portable computing device 9050 can be provided with access to the application repository 9130 that is assigned to and associated with the first entity.
- the phrase “provided with access to an application repository that is assigned to and associated with the first entity” is defined as a state in which a computing device is authorized to access and retrieve material from an application repository or have material from the application repository pushed to the device in which the application repository is either managed or approved by the first entity.
- the device 9050 can download applications from the application repository 9130 , whether solicited by the device 9050 or pushed to the device 9050 . This relationship means that the default application sets, the custom application sets or both can be selected from an application repository 9130 that is associated with the first entity.
- the first entity can determine which applications are to be part of the application repository 9130 , including the number and types of applications that are to be included in the default application sets, the custom application sets or both. It must be noted, however, that entities other than this first entity may make these determinations, and additional detail on this process will be presented below.
- the first entity referred to above can be responsible for setting up and maintaining the managed services platform 9010 or at least part thereof, in addition to determining the content of the bundles provided to the computing devices 9050 .
- at least part of the managed services platform 9010 can be developed and managed by a second entity that is distinct from the first entity.
- the DMS server 9030 and the AS server 9040 can be hosted by the second entity.
- the second entity can be a managing entity that is responsible for preparing and providing the bundles according to input from the first entity.
- the first entity may be a corporation that assigns portable computing devices 9050 to a number of its employees. While the corporation may set up and manage a managed services platform 9010 —including an application repository 9130 —on its own, the corporation may delegate such responsibilities to some other organization, i.e., the second entity.
- the second entity may be another company that specializes in providing managed services and can, at the direction of the first entity, develop and host the components of the managed services platform 9010 . As part of this assignment, the second entity can develop and maintain the application repository 9130 on behalf of the first entity, which may include approving applications for publication in the repository 9130 .
- the first entity can direct the second entity to prepare the bundles that can be provided to the relevant portable computing devices 9050 , including the pushing of subsequent updates and other content to these devices 9050 .
- the first entity can provide input to the second entity to ensure the second entity properly prepares the bundles.
- the first entity can take on any of these processes on its own accord.
- a managed services system 9200 is shown. Any number of managed services platforms 9010 , as described above, can be implemented into the managed services system 9200 .
- the system 9200 can include one or more application developer portals 9205 , one or more approval portals 9210 , one or more administrator portals 9215 , one or more client portals 9220 and one or more sub-client portals 9225 .
- An overview of the managed services system 9200 will now be presented.
- the application developer portal 9205 is a system that enables one or more application developers to submit applications for publication in one or more, for example, application repositories 9130 . Once an application is submitted for publication, the application developer portal 9205 can forward the application to one or more approval portals 9210 .
- the approval portal 9210 is a system that enables testing and analysis on the submitted application to ensure that the application complies with a set of requirements for publication in the application repository. If the application meets these requirements, the application may be approved, and the approval portal 9210 can forward the approved application to, for example, one or more administrator portals 9215 .
- the approval portal 9210 can also signal the application developer portal 9205 that the submitted application has been approved.
- the administrator portal 9215 is a system that enables the distribution of the approved application to one or more entities or components. Once it receives the approved application, the administrator portal 9215 can, for example, push the application to one or more of the portable computing devices 9050 (see FIG. 86 ) through the managed services platform 9010 (see FIG. 86 ) or can cause the application to be published in the application repository 9130 or to become part of a bundle. In this scenario, the portable computing devices 9050 may be associated with an entity that is responsible for operating or managing the administrator portal 9215 .
- the administrator portal 9215 may also perform one or more other processes, either in lieu of or in addition to the steps listed above.
- the administrator portal 9215 can forward the approved application to one or more of the client portals 9220 , which can serve as a notice that the application is available for publication in one or more application repositories.
- the client portals 9220 can be systems that accept approved applications from, for example, the administrator portal 9215 and can make determinations as to whether to publish the approved application in an application repository.
- the application repository in which the approved application may be published can be associated with a client portal 9220 .
- one of the client portals 9220 may be associated with one or more of the sub-client portals 9225 .
- a client portal 9220 may be associated with a multi-national corporation, and a sub-client portal 9225 may be set up for one or more subsidiaries of the corporation.
- the client portal 9220 may facilitate the availability/publication of applications for the sub-client portals 9225 , such as for application repositories associated with the entities that oversee or operate the sub-client portals 9225 . For example, if the client portal 9220 decides to publish the submitted application in an application repository, the client portal 9220 can forward the application to one or more of the sub-client portals 9225 . At this point, the sub-client portals 9225 can determine whether to publish the application on an application repository associated with the entity overseeing or operating the sub-client portal 9225 .
- the application developer portal 9205 enables one or more application developers to submit one or more applications for possible publication in one or more application repositories.
- the application developer portal 9205 can include several components, such as a display 9230 , memory 9235 , a testing interface 9240 , and approval portal interface 9245 and a processor 9250 .
- the display 9230 can display various types of relevant information, such as one or more applications that have been received from, for example, an application developer.
- the memory 9235 can be any suitable type of memory for storing the submitted applications, as well as instructions for carrying out any of the processes described herein.
- the testing interface 9240 can be configured to permit an application developer to test, analyze, review or otherwise manage any application that it has submitted to the application developer portal 9205 .
- the testing interface 9240 can support wired or wireless communications with one or more testing devices (not shown), which can permit the installation of a submitted application on a testing device.
- a testing device can be similar to a portable computing device 9050 described above or some other similar unit that may eventually install the submitted application.
- the approval portal interface 9245 can support wired or wireless communications with the approval portal 9210 and/or some other suitable component. This connection can permit the application developer portal 9205 to submit applications to the approval portal 9210 for approval and for message or data exchange between the two components.
- Each of the display 9230 , the memory 9235 , the testing interface 9240 and the approval portal interface 9245 can be communicatively coupled to the processor 9250 .
- the processor 9250 can control the operation of each of these components.
- the processor 9250 can be configured or operable to cause the execution of any the processes described herein.
- the approval portal 9210 can permit the review and approval of applications submitted for publication from the application developer portal 9205 . Similar to the application developer portal 9205 , the approval portal 9210 can include a display 9255 , memory 9260 , a testing interface 9270 and a processor 9280 . The approval portal 9210 can also include an administrator portal interface 9265 , an approval engine 9275 and an application developer interface 9285 .
- the display 9255 can display one or more applications that have been submitted for approval, as well as other relevant information.
- the memory 9260 can be any suitable type of memory for storing the applications submitted for approval, as well as instructions for carrying out any of the processes described herein.
- the testing interface 9270 can be configured to conduct wired or wireless communications with one or more testing devices (not shown), which can permit the applications submitted for approval to be downloaded to such devices.
- a testing device can permit the submitted application to be tested in an environment similar to that available on a portable computing device 9050 . As such, the testing device may be similar in structure and capabilities as a portable computing device 9050 , although the testing device is certainly not limited to this arrangement.
- the administrator portal interface 9256 can support wired or wireless communications to enable the approval portal 9210 to send approved applications to the administrator portal 9215 (see FIG. 87 ), as well as to allow message/data exchange between the two systems.
- the administrator portal interface 9265 can be used to permit the approval portal 9210 to conduct wired or wireless communications with other suitable systems or components.
- the application developer interface 9285 can support wired or wireless communications with, for example, the approval portal interface 9245 of the application developer portal 9205 or any other suitable component.
- the approval engine 9275 which can be any suitable combination of hardware and software, can be configured to conduct testing on the submitted application.
- the approval engine 9275 can execute testing or analysis programs on the submitted application to provide an indication as to whether the submitted application complies with any number of approval requirements.
- Each of the display 9255 , the memory 9260 , the administrator portal interface 9265 , the testing interface 9270 and the approval engine 9275 can be communicatively coupled to the processor 9280 .
- the processor 9280 can control the operation of each of these components.
- the processor 9280 can be configured or operable to cause the execution of any the processes described herein.
- the application developer portal 9205 which may also be referred to as a computing device, can be configured to present a first interface to permit application developers to submit applications for approval for selective publication in a first application repository, a second application repository or both first and second application repositories.
- the first application repository can be associated with a first client
- the second application repository can be associated with a second client, although either application repository may be associated with a single client or entity.
- the term “application developer” is defined as an entity that submits an application for approval for publication or at least possible publication in an application repository and includes an entity that actually generates the application or an entity that supervises the generation of the application.
- the phrase “to submit applications for approval for selective publication” is defined as a process in which applications are submitted for an approval process in which it is determined whether the submitted application meets one or more requirements for publication or at least possible publication in one or more application repositories.
- the approval portal 9210 which may also be referred to as a computing device, can be configured to present a second interface to permit the approval of a submitted application for the selective publication in the first application repository and/or the second application repository.
- the term “approval” is defined as a process or state in which an application has been deemed to meet one or more requirements to be eligible for publication or at least available for publication in one or more application repositories. If a submitted application is approved, the approval portal 9210 can be further configured to notify the application developer portal 9205 that the submitted application has been approved, such as through a communication between the application developer interface 9285 and the approval portal interface 9245 .
- an example of an interface 9300 that the application developer portal 9205 can present to permit application developers to submit applications for approval for selective publication is shown.
- the interface 9300 can be one or more GUI elements that provide information to a user and enable the user to take one or more actions.
- the application developer portal 9205 can present a home page 9302 , which can be accessed through, for example, a home tab 9304 .
- the home page 9302 can provide performance data relating to a submitted application once the application is published in the first application repository or the second application repository. Examples of performance data can include the number of times an application has been published in an application repository, how many times the application has been downloaded from the application repository and financial information.
- the home page 9302 can include an application performance section 9306 that can display the amount of revenue generated by a selected application, such as over the course of several months. As an example, this revenue can be generated from users downloading the application from an application repository.
- the home page 9302 can demonstrate other information that is related to the performance of one or more individual applications.
- the home page 9302 can be configured to provide cumulative performance data relating to a plurality of published applications in the first application repository or the second application repository.
- the home page 9302 can include a cumulative performance section 9308 , which can show the amount of revenue that has been generated from a plurality of submitted applications that have been published, such as all published applications. This information can be displayed in relation to any suitable amount of time, such as the monthly performance markers shown in the cumulative performance section 9308 .
- a pie chart 9310 or some other form of displaying cumulative data—can be used to demonstrate the total market share of each of the applications that have been published and downloaded. It is understood, however, that the home page 9302 is not in any way limited to these examples, as other suitable formats can be used to display cumulative performance data of a plurality of applications.
- the home page 9302 can provide other important information.
- the home page 9302 can show the number of applications that have been submitted by a particular application developer.
- the home page 9302 can provide the total number of submitted applications in a particular state, such as the total number of applications that have been published or rejected or are still pending approval. Additional discussion on these states will be presented below. Comments relating to one or more submitted applications may also be presented on the home page 9302 . These comments may be submitted by, for example, application developers, personnel involved in approving the submitted applications or any other suitable entities.
- a date range selection mechanism 9311 can also be provided to enable a user to select a particular date or a range of dates in an effort to focus on performance data or other information associated with a particular temporal period.
- the application developer portal 9205 can be configured such that all of or portions of performance data associated with the submitted applications can be selectively isolated such that access to the performance data is restricted. For example, a password or a biometric identification process may be required to access the performance data, which can effectively prevent unauthorized users from obtaining access to this potentially sensitive data.
- an example of an applications page 9312 is shown, which can be part of the interface 9300 and can be accessed through an applications tab 9313 .
- an application developer can upload one or more applications for approval through this applications page 9312 , such as by selecting an addition feature 9314 .
- One or more submitted applications 9316 can be presented on the applications page 9312 , and these applications can be represented by any suitable type of icon. As part of the display, the name and version of the application 9316 can be shown. Additionally, a rating indicator 9318 can be displayed as part of the presentation of the submitted applications 9316 .
- the rating indicator 9318 can represent an overall rating that is attached to an application 9316 to provide an indication as to, for example, the effectiveness, suitability, performance or utility of the application.
- the rating indicator 9318 can be applied to applications that have been published and downloaded to portable computing devices 9050 and can represent a cumulative grading.
- the cumulative grading can be based on information provided by users who have downloaded and used the published application, for example.
- the rating indicator 9318 can be a grading scale based on a number of stars, which can range from the number zero to the number five, with more stars being hi-lighted as the cumulative grading becomes more favorable for the application.
- Those submitted applications that have not yet been published and cannot be downloaded may typically have no rating indicator 9318 or a rating indicator 9318 that shows that no such grading is available yet.
- none of stars are hi-lighted for a submitted application that has not yet been published and therefore has no grading.
- a star system is a suitable example for a rating indicator, it is understood that other mechanisms can be used to indicate the favorability of an application, such as a color coding system or additional icons or adjustments to the application icons.
- the application developer portal 9205 can assign a status indicator 9320 , which can provide information as to the stage of review for approval for a submitted application 9316 .
- the term “status indicator” is defined as a GUI element that provides an indication as to the stage of approval review for a particular application.
- the status indicator 9320 can be presented proximate to or at least partially directly over the relevant application 9316 .
- the status indicator 9320 can take on several forms, each one representing a particular state.
- a status indicator section 9320 can provide an explanation as to what each status indicator 9320 represents.
- the status indicator 9320 for that submitted application 9316 can indicate that the submitted application is in a pending state, if the submitted application 9316 is under review and has not yet been approved for publication by the approval portal 9210 .
- the status indicator 9320 for the application 9316 can indicate that the application 9316 has been approved for publication or is in an approved state.
- the status indicator 9320 can indicate that the application 9316 is in a published state.
- the status indicator 9320 can indicate that the submitted application 9316 has been rejected or is in a rejected state.
- an application developer or some other suitable entity may have the opportunity to upgrade the application 9316 .
- This process can involve any suitable type of modification, such as debugging or adding new features to the application 9316 .
- the status indicator 9320 can indicate that the application 9316 has been upgraded.
- the status indicator 9320 may indicate multiple states for a particular application 9316 , if applicable. For example, if a submitted application 9316 yet to be approved has been upgraded, then the status indicator 9320 can indicate both states (i.e., submitted and upgraded) for the submitted application 9316 . Moreover, the status indicator 9320 can change its indication to reflect modifications in the state of an application 9316 once such modifications occur.
- indications for the status indicator 9320 are presented in FIG. 90 . It is understood, however, that the interface 9300 is not limited to these particular examples, as any suitable form of indicating the state of an application 9316 can be employed here. Such forms of the status indicator 9320 can include the use of various colors, shapes and different insignia.
- the application developer portal 9205 can be configured to present information associated with a submitted application 9316 uploaded by, for example, an application developer.
- the application developer portal 9205 can be further configured to enable the selection of the information, such as prior to the uploaded application being submitted for approval.
- an application presentation page 9322 is shown, which can present such information.
- a user can select an application 9316 , and the application presentation page 9322 can present various types of information associated with the selected application 9316 .
- Information can be displayed for one or more applications 9316 , and the selected application 9316 can be in any one of the states described above (e.g., pending, approved, etc.).
- Some examples of information that can be presented for a selected application 9316 include an application name 9324 , an application category 9326 , an application version 9328 , an application rating 9330 , a licensing model 9332 , a price 9334 , a description 9336 , a log of edits 9338 , promotional text 9340 or a language selection 9342 .
- a status/release stage 9344 which can correspond to the status indicator 9320 , can be presented for the selected application 9316 .
- An update date 9346 (if appropriate) and a creation date 9348 can be shown for the submitted application 9316 .
- the rating indicator 9318 can also be presented for the submitted application 9316 , if desired.
- the application category 9326 can identify a category to which the selected application 9316 belongs. Examples include social networking, gaming, finance, media, etc.
- the application version 9328 can identify the version of the selected application 9316 (a higher number may indicate a more recent version), while the application rating 9330 can show a rating that has been assigned to the selected application 9316 . Examples of such ratings include one that signifies that the application is suitable for all ages, one that indicates that the application is intended for mature audiences and one that shows that the application has no rating. Other ratings may be used here, as the examples listed above are not meant to be limiting.
- the licensing model 9332 identifies the licensing arrangement that is available for the selected application 9316 .
- the licensing model 9332 can be a floating license, a free license, a pay license, a subscription-based license or a volume license.
- the floating license can be a pool of active licenses that is limited to a certain number of licenses, but members who are part of this number of licenses can be freely exchanged.
- a company may be granted ten licenses for an application. While the number of licenses at any one time may be limited to ten, employees who are part of this group of ten licenses may be swapped with other employees to permit selective access to other workers.
- a subscription-based license is one in which a user may pay on a periodic basis for use of an application 9316 , which may remain in place so long as the payments continue to be made.
- a volume license is one in which discounts may be given for relatively large number of licensees, and the discount may increase as the number of licensees rises.
- the price 9334 can indicate the amount of money involved for any of the licenses described above.
- the description 9336 can be, for example, text that explains the operation of the selected application 9316 and any other relevant points.
- the log of edits 9338 can display all or a portion of any modifications or notes related to such modifications that are involved with the selected application 9316 .
- the promotional text 9340 can present information related to any program or effort to entice users to download and install, whether permanently or on a trial basis, the selected application 9316 .
- the application presentation page 9322 can enable any of the information described above to be modified. For example, a developer of the selected application 9316 can determine what type of licensing model 9332 will be assigned to the application 9316 and the price 9334 associated with such determination. As part of the presentation and modification of the information of the application presentation page 9332 , the language selection 9342 can enable the application developer or some other party to select the language in which such information will be presented or modified.
- the application presentation page 9322 can provide functionality to enable a party to submit the selected application 9316 for approval for publication in an application repository.
- a publish initiator 9344 can be activated, which can, in response, forward the selected application 9316 to the approval portal 9210 for approval.
- the application presentation page 9322 can provide a removal initiator 9346 , which, upon being activated, can remove the selected application 9316 from consideration for approval by the approval portal 9210 .
- the application developer or some other suitable party may wish to take this step if it is deemed, for example, that the selected application 9316 is not ready for review by the approval portal 9210 .
- the application presentation page 9322 may also present one or more features to enable testing of a selected application 9316 .
- the application developer portal 9205 can be configured to push the uploaded (i.e., selected) application 9316 to a testing device, such as a portable computing device 9050 . Once pushed to the testing device, the selected and pushed application 9316 can be tested to determine its suitability for submission to the approval portal 9210 . Any suitable entity can perform the testing, such as (but not limited to) the application developer.
- the application developer portal 9205 can be configured to pull the application 9316 from the testing device, which can be done, for example, following the completion of the testing phase at the application developer portal 9205 . Additional discussion on this feature will be presented below.
- the application presentation page 9322 may include several tabs 9350 , the selection of which may present different types of information to be displayed or otherwise available.
- the selection of a tab 9350 labeled with the word “General” can cause the information described above in relation to FIG. 91 .
- the selection of a tab 9350 labeled with the word “Files” can cause the application developer portal 9205 to display a file page 9352 that presents information related to the files associated with the selection application 9316 , an example of which is shown in FIG. 92 .
- the files that are part of the selected application 9316 and that are uploaded when the application 9316 was submitted for approval can be shown here.
- selection of a tab 9350 noted with the word “Comments” can cause the portal 9205 to show a comments page 9354 , an example of which is shown in FIG. 93 .
- the comments of application developers, testing personnel, administrators or any other suitable entities that are related to the selected application 9316 can be presented here. These comments can relate to various aspects of the application 9316 , such as its features, its performance, its information presented in the General tab 9350 , etc.
- the comments page 9354 can also enable replies to be submitted in response to any comment presented on the comments page 9354 .
- a tab 9350 is one labeled with the term “Statistics.” Selection of this tab 9350 can cause the application developer portal 9205 to present a statistics page 9356 , an example of which is shown in FIG. 94 . Any suitable statistic associated with the selected application 9316 can be displayed on the statistics page 9356 . For example, if the selected application 9316 has been published, the number of times that the application 9316 has been published and the amount of revenue associated with these downloads can be presented. As another example, the grade from the rating indicator 9318 and any reviews of the application 9316 can be presented here. In addition, the number of deletions from units that have installed the application 9316 and the rank of the application 9316 , as compared to other published applications 9316 , can also be displayed.
- the application developer portal 9205 can be configured to provide a publication indicator 9357 and a removal indicator 9359 .
- the publication indicator 9357 and the removal indicator 9359 can be part of, for example, the application presentation page 9322 , the file page 9352 , the comments page 9354 and the statistics page 9356 .
- the application developer or party can activate a publication indicator 9357 . This step can cause the generation of a publication command, and in response, the application developer portal 9205 can forward the application 9316 to the approval portal 9210 . If the application developer or some other party does not believe that the application 9316 is ready to be submitted, the application developer of the party has the option to remove the application 9316 from the application developer portal 9205 by activating the removal indicator 9359 .
- an application 9316 can be pushed to or pulled from a testing device.
- Any suitable computing device can serve as a testing device, and the testing can be performed by any suitable entity (i.e., not just the application developer).
- the interface 9300 can present a devices page 9358 , which can list one or more testing devices 9360 and an example of which is shown in FIG. 95 .
- the devices page 9358 can be accessed through a devices tab 9362 .
- the testing devices 9360 can be listed according to a MAC address, and the devices pages 9358 can also present a short description of the testing devices and when they were added as a testing device.
- a user can select an add button 9364 to add a testing device to the devices page 9358 to enable such a device to begin testing submitted applications 9316 .
- a push/pull indicator 9365 can be activated.
- the push/pull indicator 9365 can be part of the application presentation page 9322 , the file page 9352 , the comments page 9354 and the statistics page 9356 .
- a user can select one of the testing devices 9360 to determine additional information about the selected testing device 9360 or to make edits or selections associated with the selected testing device 9360 .
- a device information page 9365 can be presented, an example of which is shown in FIG. 96 .
- the MAC address of the testing device 9360 can be shown, along with the date the testing device 9360 was added and any update dates associated with the device 9360 .
- the type of firmware installed on the testing device 9360 can be hi-lighted, and additional firmware versions that the testing device 9360 can be flashed with can also be presented. As explained earlier in relation to the portable computing devices 9050 , when the testing device 9360 is flashed with one of these firmware selections, the testing device 9360 can take on a look and feel of an entity that is associated with the selected firmware.
- any applications 9316 that are installed on the testing device 9360 for testing can be presented on the devices page 9358 , such as through selection of an applications tab 9366 .
- a testing device 9360 can be removed as a testing device 9360 via selection of a removal button 9368 and can be messaged, such as through activation of a message button 9370 .
- the devices page 9358 is certainly not limited to the features and arrangements described above, as other elements can be presented here in accordance with other suitable placements.
- An application developer may be a single individual or entity or may consist of a group of individuals or entities. If the application developer is comprised of several individuals or entities, there may be a desire to shield sensitive information from some of these individuals or entities.
- a first company may contract with a second company to develop applications to be uploaded to the application developer portal 9205 .
- information related to the performance of an application 9316 may be presented on the home page 9302 , and, as an example, the first company may consider such information to be confidential and not to be released or disclosed to the second company.
- the interface 9300 can be configured to accommodate the privacy concerns of one or more individuals or entities in situations like this.
- the home page 9302 can include a tab 9372 , which when selected, can present an interface (not shown) that can be similar to the interface 9300 but without displaying sensitive information. That is, a restricted interface can be presented to portions of an application developer team that enables these members to provide applications 9316 in a fashion similar to that described above; however, these members will not be given access to certain types of information, like that related to the performance of an application 9316 . Moreover, this restricted interface may also prevent these members from activating certain features that were described above in relation to the interface 9300 . For example, these restricted members may not be given the opportunity to cause the transmission of uploaded applications 9316 to the approval portal 9210 , with such feature being reserved for a supervisory or managing entity.
- applications 9316 that are uploaded to the application developer portal 9205 can be forwarded to the approval portal 9210 where they can be evaluated for possible publication in one or more application repositories.
- FIG. 97 One example of an interface 9400 that facilitates such an approval process is shown in FIG. 97 .
- the interface 9400 can include an applications page 9402 , which can be accessed via an applications tab 9404 .
- the applications page 9402 in one arrangement, can present one or more applications 9316 that are pending, or waiting to be approved for publication in one or more application repositories. As such, when an application developer uploads an application 9316 in the application developer portal 9205 and releases the application 9316 for approval, the application 9316 can be presented here on the applications page 9402 .
- the approval portal 9210 can signal the application developer portal 9205 (see FIG. 87 ), which can notify the application developer through any suitable manner, such as through displaying one or more messages on the application developer portal 9205 .
- information related to the submitted applications 9316 can be displayed. Examples include a brief description of the application 9316 , the application developer, the category to which the application 9316 pertains, the version of the application 9316 and the date of the last update of the application 9316 . Of course, not all this information is required to be presented as part of the applications page 9402 , and other suitable pieces of information about an application 9316 can be shown here. Moreover, although the applications 9316 shown here are pending applications 9316 that are awaiting approval, applications 9316 that have been approved or published may be presented here, as well. In fact, the applications 9316 presented on the applications page 9402 can be tagged with status indicators and/or ratings indicators, similar to those shown in FIG. 90 .
- an entity that is assigned to approve a submitted application 9316 can select one of the applications 9316 . Once selected, an application review page 9406 can be presented to the entity, an example of which is shown in FIG. 98 .
- the approval portal 9210 through the application review page 9406 , can provide information associated with the submitted application 9316 that has been selected.
- the information to be presented can be similar to that described in relation to FIG. 91 .
- the application review page 9406 can present the application name 9324 , the application category 9326 , the application version 9328 , the application rating 9330 , the licensing model 9332 , the price 9334 , the description 9336 , the log of edits 9338 or the promotional text 9340 .
- the information can also include a language selection (not shown here).
- a status/release stage 9426 , an update date 9428 (if appropriate) and a creation date 9430 can be shown for the submitted application 9316 .
- the status/release stage 9426 can also be presented, which can indicate the stage at which the submitted application 9316 is currently situated.
- the rating indicator 9318 can also be presented for the submitted application 9316 , if desired.
- this information can be based on selections made by the application developer, so corresponding information presented here on the application review page 9406 can be of similar type and content to that of FIG. 91 .
- the application review page 9406 is not necessarily limited in this regard, as other types of information may also be included.
- the interface 9400 can be configured to accommodate such a feature.
- the interface 9400 can also present a files page 9436 , which can be accessed through a tab 9438 .
- An example of the files page 9436 is shown in FIG. 99 .
- the files that are associated with the selected application 9316 can be presented here.
- a comments page (not shown) can be accessed by a tab 9440 , which can permit users to provide or view comments. For example, during testing, those responsible for approving the submitted application 9316 can provide their comments here, and comments from the application developer or some other suitable entity can be displayed here.
- a statistics page 9442 can also be part of the interface 9400 , an example of which is shown in FIG. 100 , and can be accessed through a tab 9444 .
- Information presented on the statistics page 9442 can be related to, for example, the performance of the selected application 9316 .
- the elements that make up the statistics page 9442 can be similar to those described in relation to FIG. 94 , although other parameters can be presented here.
- the interface 9400 of the approval portal 9210 can be further configured to enable a user to approve or reject the submitted application for selective publication in one or more application repositories.
- application review page 9406 can include an approval indicator 9446 and a rejection indicator 9448 .
- the approval indicator 9446 or the rejection indicator 9448 can also be part of the files page 9436 (see FIG. 99 ), the comments page and/or the statistics page 9442 (see FIG. 100 ).
- One or more entities can review, test and/or analyze the submitted application 9316 to determine whether to approve the submitted application for selective publication in an application repository.
- selective publication in relation to an application repository, is defined as the actual publication of an application in an application repository such that the application is ready for download from the repository or an indication that the application is in a condition that would permit it to be published in an application repository.
- the entity responsible for determining the suitability of the submitted application 9316 can ensure that the application 9316 meets or does not violate a set of predefined criteria.
- the predefined criteria can be selected by an entity that is responsible for managing or overseeing an application repository in which the submitted application 9316 is to be published.
- other suitable entities can select the predefined criteria for approval.
- any suitable party can be tasked with approving or rejecting the submitted applications, examples of which will be presented later.
- the predefined criteria against which the submitted applications 9316 are to be reviewed can include any suitable restriction or parameter.
- the criteria may specify that the application 9316 cannot contain content that is not suited for children.
- the criteria may forbid the collection of certain forms of data by the application 9316 , like personal information related to a user or to the user's family.
- the criteria may also require that the application 9316 meet certain security requirements, particularly if the application 9316 will facilitate financial transactions.
- These examples for the predefined criteria are not meant to be limiting, as virtually any suitable requirement can be part of the criteria.
- the predefined criteria for a first application repository may or may not be the same for a second or more application repositories.
- the party responsible for approving the submitted application 9316 can also ensure that the application 9316 is in working order and that it is substantially free of programming of functional defects.
- the interface 9400 can present a testing devices page 9450 , an example of which is shown in FIG. 101 .
- the testing devices page 9450 can be accessed through a tab 9452 and can present a listing of all testing devices 9454 (identified here through their MAC addresses) that can be used to test submitted applications 9316 .
- the information presented on the testing devices page 9450 can be similar to that of the devices page 9358 of the application developer portal 9205 (see FIG. 95 ), although different types of information can be displayed if desired.
- Testing devices 9454 can be added through an addition button 9456 .
- selection of one of the testing devices 9454 can present information and features here that are similar to those presented in relation to FIG.
- Applications 9316 can be pushed to or pulled from the testing devices 9454 through a push/pull button 9458 , which can be positioned on, for example, the application review page 9406 (see FIG. 98 ), the files page 9436 (see FIG. 99 ), the comments page and/or the statistics page 9442 (see FIG. 100 ).
- the approval portal 9210 can be configured to notify the application developer portal 9205 of the approval in response to the selection of the approval indicator 9446 .
- the application developer portal 9205 can take any appropriate steps to ensure that the application developer has been made aware of the approval. For example, the application developer portal 9205 can generate messages to be displayed or broadcast at the portal 9205 or at some other suitable component.
- the approval portal 9205 can be configured to notify other computing devices of the approval of the submitted application 9316 .
- the approval portal 9210 can signal the administrator portal 9215 about the approval of the application 9316 .
- the approval portal 9210 can also forward the approved application 9316 to the administrator portal 9215 .
- the other computing device such as the administrator portal 9215
- the approval portal 9210 can be configured to notify the application developer portal 9205 of the rejection in response to the selection of the rejection indicator 9448 . Similar to the process described above in relation to the receipt of an approval notice, the application developer portal 9205 can take action to inform the application developer and/or any other suitable parties. As part of this feature, the notification may include rejection information that explains why the submitted application 9316 was not approved. This information can be prepared by the party that conducted the review of the application or by some other suitable party.
- the rejection information may specify that the submitted application 9316 contains content that is unsuitable for children or does not include certain mandatory security features.
- This rejection information may also provide guidance for the application developer to modify the rejected application 9316 to ensure its approval during a subsequent review. At this point, the application developer can modify or upgrade the rejected application 9316 and can submit it again in accordance with the discussion presented above.
- the administrator portal 9215 is a system that enables the distribution of approved applications to one or more entities or components. Once it receives an approved application, from the approval portal 9210 , the administrator portal 9215 can, for example, push the application to one or more of the portable computing devices 9050 (see FIG. 86 ) through the managed services platform 9010 (see FIG. 86 ) or can cause the application to be published in an application repository or to become part of a bundle.
- the administrator portal 9215 may also perform one or more other processes once it receives the approved application, either in lieu of or in addition to the steps listed above. For example, the administrator portal 9215 can forward the approved application to one or more of the client portals 9220 , which can serve as a notice that the application is available for publication in one or more application repositories.
- the client portals 9220 can, for example, make determinations as to whether to publish the approved application in an application repository.
- the client portal 9220 may facilitate the availability/publication of applications for the sub-client portals 9225 , such as for application repositories associated with the entities that oversee or operate the sub-client portals 9225 .
- the client portal 9220 can forward the application to one or more of the sub-client portals 9225 .
- the sub-client portals 9225 can determine whether to publish the application on an application repository associated with the entity overseeing or operating the sub-client portal 9225 . Examples of this process will now be presented.
- the administrator portal 9215 can be, for example, a managed services computing device.
- the portal 9215 can be made up of one or more components and can be operated by any suitable entity.
- a block diagram of an example of the administrator portal 9215 is shown in FIG. 102 .
- the portal 9215 can include one or more user interface elements 9500 that can be configured to enable a user to make selections associated with the management of services for a first client and a second client.
- the user interface elements 9500 can include a display 9502 (which can be a touch-screen display or a conventional display), a keyboard or keypad 9504 , a mouse or other pointing object 9506 or a remote device 9508 (a component or a group of components that permit a user to enter data from a remote location).
- a display 9502 which can be a touch-screen display or a conventional display
- a keyboard or keypad 9504 a mouse or other pointing object 9506 or a remote device 9508 (a component or a group of components that permit a user to enter data from a remote location).
- any device that enables a user to enter data into an electronic device can serve as a user interface element 9500 .
- the administrator portal 9215 can also include memory 9510 , an approval portal interface 9512 , one or more client portal interfaces 9514 , a testing interface 9516 and a processor 9518 .
- the portal 9215 can also have a managed services platform interface 9519 .
- the memory 9510 can be any combination of temporary memory and persistent memory, and the approval portal interface 9512 can be used to facilitate wired and/or wireless communications with the approval portal 9210 .
- the client portal interfaces 9514 and the testing interface 9516 can be used to facilitate wired and/or wireless communications with the client portals 9220 (see FIG. 87 ) and testing devices (not shown), respectively.
- the processor 9518 can be coupled to each of the components described above and can be operable to execute operations that will be described herein.
- the administrator portal 9215 can present an interface that can enable a user to manage services for devices/portals associated with the administrator portal 9215 .
- the administrator portal 9215 can be communicatively coupled with a managed services platform 9010 , an example of which was previously described in relation to FIG. 86 .
- the managed services platform interface 9519 can accommodate such communications, whether wireless and/or wired.
- the administrator portal 9215 can communicate with a plurality of portable computing devices 9050 via the DMS server 9030 .
- the administrator portal 9215 can be associated with an application repository 9130 via the application server 9040 . As will be described below, the administrator portal 9215 can manage portable computing devices 9050 and the application repository 9130 through this arrangement.
- the managed services system 9200 can include one or more client portals 9220 (see FIG. 87 ).
- the client portals 9220 can be communicatively coupled to the administrator portal 9215 .
- the administrator portal 9215 can have a relationship with the client portals 9220 , which, as will be fleshed out below, can range from relatively low cooperation in providing applications to a more extensive managerial function.
- FIG. 103 An example of a block diagram of a client portal 9220 is shown in FIG. 103 .
- the structure of the client portal 9220 can be similar to that of the administrator portal 9215 , although the client portal 9220 is not so limited.
- the client portal 9220 can include one or more user interface elements 9520 that can permit a user to make selections associated with the management of services for, for example, a first sub-client and a second sub-client.
- the user interface elements 9520 can include a display 9522 (touch-screen or conventional), a keyboard/keypad 9524 , a pointing object 9526 or a remote device 9528 .
- any device that enables a user to enter data into an electronic device can serve as a user interface element 9520 .
- the client portal 9220 can also include memory 9530 (persistent and/or temporary), an administrator portal interface 9532 , one or more sub-client portal interfaces 9534 , a testing interface 9536 and a processor 9538 .
- the client portal 9220 can also have a managed services platform interface 9540 .
- the administrator portal interface 9532 allows for wireless and/or wired communications with the administrator portal 9215 , while the sub-client portal interface allows for the same with the sub-client portals 9225 (see FIG. 87 ).
- the testing interface 9536 permits wired and/or wireless communications with one or more testing devices (not shown).
- the client portal 9220 can be communicatively coupled (wired and/or wireless) with a managed services platform 9010 through the managed services platform interface 9540 . This arrangement allows the client portal 9220 to communicate with a plurality of portable computing devices 9050 via the DMS server 9030 and to be associated with an application repository 9130 via the AS server 9040 . As such, the client portal 9220 can manage portable computing devices 9050 and the application repository 9130 through this arrangement.
- the managed services system 9200 can include one or more sub-client portals 9225 (see FIG. 87 ).
- the sub-client portals 9225 can be communicatively coupled to a client portal 9220 .
- the client portal 9220 can have a relationship with the sub-client portals 9225 in which the client portals 9220 can provide services to the sub-client portals 9225 , examples of which will be presented below.
- This structure can also allow the administrator portal 9215 to have a relationship with a sub-client portal 9225 , if desired. Examples to which the level of services the administrator portal 9215 can provide to a sub-client portal 9225 will also be presented later.
- the sub-client portals 9225 can have a structure that is similar to that of the client portals 9220 presented in FIG. 103 .
- the components can be essentially the same, which can permit the sub-client portals 9225 to communicate with a managed services platform 9010 , like the client portal 9220 and the administrator portal 9215 .
- the sub-client portal 9225 can include a client portal interface (not shown) to communicate with the client portal 9220 .
- this model is scalable, meaning that additional layers can be added to the system 9200 (see FIG. 87 ). That is, the system 9200 can include, for example, sub-sub-clients portals (not shown), which can be communicatively coupled with a sub-client portal 9225 .
- the sub-client portal 9225 can have a sub-sub-client portal interface (not shown) to permit wireless and/or wired communications with a sub-sub-client.
- each successive portal in this scalable arrangement can also communicate with portable computing devices 9050 through the DMS server 9030 and can be associated with an application repository 9130 through the AS server 9040 .
- the first set of services offered by the administrator portal 9215 focuses on devices that are to be directly managed by the administrator portal.
- the administrator portal 9215 may be operated by a company that has assigned portable computing devices 9050 to its employees, and the company wishes to manage these devices 9050 .
- the company may wish to send messages to the devices 9050 or to package applications, firmware and settings for these devices 9050 .
- the second set of services offered by the administrator portal 9215 is directed to client portals that have established relationships with the administrator portal 9215 , such as the client portals 9220 , the sub-client portals 9225 , the sub-sub-client portals or any subsequent client portals.
- the administrator portal 9215 can be operated by a first company, and a client portal 9220 may be operated by a second company.
- the second company may wish to have the first company manage at least some services for the client portal 9220 .
- the second company may request the first company, through the administrator portal 9215 , to forward to it applications that it receives from the approval portal 9210 that have been approved for publication in an application repository.
- the second company may also ask the first company to manage portable computing devices 9050 on behalf of the second company, which can be done through the administrator portal 9215 . Additional discussion/examples concerning these services will be described below. The material that immediately follows, however, is directed to the first set of services summarized above.
- the administrator portal 9215 can provide an interface 9500 .
- This interface 9500 is shown in FIG. 104 .
- an example of an applications page 9550 is illustrated, which can be accessed through a tab 9552 .
- the applications page 9550 can present one or more applications 9316 and information that is associated with the applications 9316 . Examples of such information can include an application name, a short description, the application developer, the application category, the most recent version and the last date/time that the application 9316 was updated. Of course, other types of information can be presented on the applications page 9550 .
- the applications page 9550 can present applications 9316 in one or more different states or categories.
- a tab 9554 can be selected to show applications 9316 that have been approved by the approval portal 9210 and that have been received by the administrator portal 9215 . These applications 9316 may be categorized as available applications 9316 .
- Another tab 9556 can present applications 9316 that are currently under review at the approval portal 9210 (have not yet met an approval threshold), which may be categorized as pending applications 9316 .
- a tab 9558 can present applications 9316 that have been published in an application repository. These applications 9316 can be categorized as published applications 9316 .
- the administrator portal 9215 can be associated with a managing entity, and the managing entity can be assigned an application repository 9130 (see FIG. 87 ).
- a managing entity can operate or control the administrator portal 9215 or direct another entity to operate or control the portal 9215 .
- a managing entity can be any entity, organization, corporation or individual that is responsible for this operation or control or its direction.
- assigning an application repository 9130 to the managing entity can include the production of an application repository that can be configured to present applications on behalf of the managing entity.
- the managing entity can determine which applications are to be part of the application repository 9130 or can direct another individual or organization to make such determinations under the guidance of the managing entity or not.
- the application repository 9130 can be designed to show that it is associated with the managing entity, such as by appropriate branding of the repository 9130 .
- the managing entity may wish to manage (or have managed) the application repository 9130 and its contents.
- the managing entity when an application 9316 has been approved by and received from the approval portal 9210 , the managing entity, through the administrator portal 9215 , can determine whether to publish the approved application in the application repository 9130 that is assigned to the managing entity.
- one of the approved applications 9316 under the tab 9554 can be selected.
- an application selection page 9560 can be presented, an example of which is shown in FIG. 105 .
- information about the approved application 9316 can be presented, under the tab 9562 . In one arrangement, this information can be similar to that described in relation to FIG. 91 .
- the application selection page 9560 can present the application name 9324 , the application category 9326 , the application version 9328 , the application rating 9330 , the licensing model 9332 , the transactional fee or price 9334 , the description 9336 , the log of edits 9338 or the promotional text 9340 .
- the information can also optionally include a language selection (not shown here).
- a status/release stage 9426 an update date 9428 (if appropriate) and a creation date 9430 can be shown for the submitted application 9316 .
- the rating indicator 9318 (such as a cumulative user rating) can also be presented for the submitted application 9316 , if desired.
- the licensing model 9332 can be selectable from one of the following arrangements: a free model; a subscription-based model; a floating model; a volume model; or a paid model.
- the licensing model 9332 can be selected by the application developer or some other suitable entity, including the entity responsible for the administrator portal 9215 .
- this information can be based on selections made by the application developer at the application developer portal 9205 (see FIG. 87 ), so corresponding information presented here on the application selection page 9560 can be of similar type and content to that of FIG. 91 .
- the application selection page 9560 is not necessarily limited in this regard, as other types of information may be so included.
- the interface 9500 can be configured to accommodate such a feature.
- pending applications 9316 tab 9556
- published applications 9316 tab 9558
- selection of a tab 9564 can permit the viewing of or entering of comments related to pending, available or published applications 9316
- selection of another tab 9566 can enable the viewing of or entry of statistics for such applications 9316 .
- an application 9316 can be, for example, pushed to or pulled from one or more testing devices (not shown). These testing devices may be associated with an entity that is responsible for operating or managing the administrator portal 9215 , such as the managing entity.
- an available application 9316 has been chosen and the user wishes to push the application 9316 to a testing device, the user can do so by selecting a push/pull feature 9568 .
- Such a process can enable an entity to evaluate on a testing device the suitability of an application 9316 for publication in an application repository 9130 .
- the criteria for determining this suitability can be similar to that described earlier in relation to the approval portal 9210 , although different parameters or values may be considered during this evaluation.
- Such a review also, does not necessarily have to be as extensive as that carried out at the approval portal 9210 .
- the entity operating the administrator portal 9215 can take steps to cause the publication of the application 9316 in the repository 9130 .
- the entity can activate a publication feature 9570 to cause the available application 9316 to be published in the relevant application repository 9130 .
- this application repository 9130 can be assigned to or associated with a managing entity that is responsible for operating the administrator portal 9215 .
- anyone with access to the application repository 9130 can install the application 9316 on one or more portable computing devices 9050 . This installation can also occur on an automatic basis, under the direction of the managing entity.
- the application 9316 can be published in other application repositories 9130 , including repositories 9130 that are assigned to or are associated with entities other than the managing entity. Also following publication, the application 9316 can be shown as a published application 9316 on the applications page 9550 (see FIG. 104 ).
- a managing entity can operate the administrator portal 9215 and can have an application repository 9130 assigned to the managing entity.
- the administrator portal 9215 can receive applications 9316 that have been submitted at the application developer portal 9205 and approved at the approval portal 9210 .
- the managing entity can cause the publication of the applications 9316 in the repository 9130 .
- the managing entity can be responsible for the administrator portal 9215 and can oversee the operation of the application developer portal 9205 and the approval portal 9210 . It is understood, however, that the arrangements described herein are not so limited.
- Other suitable entities can operate or be responsible for the application developer portal 9205 , the approval portal 9210 , the administrator portal 9215 or any combination of the three.
- the interface 9500 of the administrator portal 9215 also can enable the management of devices, such as portable computing devices 9050 .
- portable computing devices 9050 For example, referring to FIG. 106 , an example of a devices page 9572 is shown, which can be accessed by a tab 9573 .
- individual portable computing devices 9050 that are associated with the administrator portal 9215 can be displayed and managed.
- the managing entity may be responsible for operating the administrator portal 9215 and may have assigned portable computing devices 9050 to multiple individuals.
- the device 9050 can be listed on the devices page 9572 .
- Information about testing devices for evaluating applications 9316 may also be shown here. At least in this context, reference to a portable computing device 9050 may also refer to a testing device such that all the features and description here may apply to both.
- information associated with the portable computing devices 9050 and displayed on the devices page 9572 can include MAC addresses, creation dates (when the device 9050 was registered with the DMS server 9030 or the administrator portal 9215 , for example), a description of the devices 9050 and an application repository code.
- the description of a portable computing device 9050 can include a description of the performance function associated with the device 9050 .
- the application repository code can provide an indication as to which application repository the portable computing device 9050 is associated. That is, when the portable computing device 9050 registers with the DMS server 9030 and the AS server 9040 , a code that identifies the application repository 9130 that is supported by the AS server 9040 can be registered with the device 9050 . This application repository code can then be presented here at the devices page 9572 or on some other suitable component.
- the administrator portal 9215 may be operated or managed by a managing entity.
- This managing entity may also assign multiple portable computing devices 9050 to numerous individuals, and these individuals may be associated with the managing entity in some way.
- the individuals may be employees or customers of the managing entity.
- the devices page 9572 can be equipped with a searching module 9574 , which can be configured to enable the portable computing devices 9050 to be searched individually.
- searching module 9574 can be configured to enable the portable computing devices 9050 to be searched individually.
- a user can select the identified device(s) 9050 .
- a device details page 9576 can be presented, an example of which is shown in FIG. 107 .
- additional details about the selected portable computing device 9050 can be shown by clicking a tab 9578 .
- operational information 9580 for the selected device 9050 can be presented, examples of which can include the MAC address, the firmware currently installed on the device 9050 , the last date time that the device 9050 was updated (this can refer to any suitable type of update) and the date the device 9050 was added to the devices page 9572 .
- a general name 9582 and description 9584 of the portable computing device 9050 may also be shown.
- the description 9584 can provide details that illustrate the purpose of the portable computing device 9050 or the individual to whom the device 9050 is assigned.
- a listing 9586 of available firmware that can be delivered to the device 9050 can also be presented here.
- the portable computing devices 9050 can be flashed with various types of firmware to set or alter the look and feel of the devices 9050 .
- the device 9050 can be flashed with a particular firmware simply be selecting one of the firmware version in the listing 9586 .
- a portable computing device 9050 can have content, such as firmware or even settings, delivered to the device 9050 on an individual basis.
- Selection of a tab 9588 can cause the presentation of a device application page 9590 , an example of which is shown in FIG. 108 .
- the operational information 9580 of the selected portable computing device 9050 can be shown, if desired.
- the primary purpose of the application page 9590 is to present the applications 9316 that are installed on the selected portable computing device 9050 .
- the applications 9316 that are installed on the device 9050 can be listed in an installation list 9592 .
- applications 9316 that are available to be installed on the selected portable computing device 9050 can be presented in an available list 9594 .
- the applications 9316 in the available list 9594 can be applications 9316 that have been published in one or more application repositories 9130 or have been approved for publication in at least one application repository 9130 .
- Such application repositories 9130 may or may not be assigned to the managing entity responsible for operating the administrator portal 9215 .
- the applications 9316 in either the installed list 9592 or the available list 9594 may be individual applications or may be grouped together as part of a bundle. Moreover, certain information about the applications 9316 in either list 9592 , 9594 can be presented, such as the rating indicator 9318 . In addition, selection of one of the applications 9316 in either list 9592 , 9594 can enable one to view additional information about the selected application 9316 , in accordance with previous descriptions.
- the applications 9316 that are in the available list 9594 can be installed on a portable computing device 9050 .
- the available applications 9316 can be installed on a single portable computing device 9050 .
- a user can simply select and drag an application 9316 from the available list 9594 to the installation list 9592 .
- Any suitable number of applications 9316 can be installed on a selected portable computing device 9050 in accordance with this manner.
- one or more predefined bundles or groups of applications 9316 can be pushed to a selected portable computing device 9316 by simply selecting such a bundle or group and dragging to the installation list 9592 .
- any number of application 9316 or groups or bundles of applications 9316 can be removed from a selected portable computing device 9050 (an individual basis). This process can be accomplished by selecting and dragging the application(s) 9316 from the installation list 9592 to the available list 9594 . Of course, other suitable procedures can be followed to install applications 9316 on the device 9050 or to remove applications 9316 from the device 9050 . For example, a message can be sent to the device 9050 requesting that the user of the device 9050 add/remove the relevant application 9316 . As another example, a message can be sent to another entity requesting that entity to execute the installation/removal process.
- the device details page 9576 , the device application page 9590 or both can offer a messaging feature 9596 to enable messages to be sent to portable computing devices 9050 , such as on an individual basis.
- a message feature 9596 can be activated on either the details page 9576 or the application page 9590 , which can enable one to generate a message to be sent to the selected portable computing device 9050 .
- the message can be simply text-based or can incorporate any combination of icons, animations, audio, video, haptics, etc.
- the messages can be of an ad hoc nature or can be selected from a list of predefined messages.
- the messages can also be generated and sent to the device 9050 on an automatic basis based on an event or can be done so if an entity believes that the generation and transmission of a message is warranted.
- the interface 9500 can also provide information related to one or more users, as shown in FIG. 109 .
- a users page 9596 can present one or more user identifications 9598 and can be accessed by selecting a tab 9599 .
- the user identifications 9598 can be associated with the portable computing devices 9050 .
- the administrator portal 9215 and one or more portable computing devices 9050 can be associated with the managing entity.
- the user identifications 9598 can be associated with these devices 9050 ; thus, the user identifications 9598 can be associated with the managing entity.
- the user identifications 9598 may represent employees, contractors, vendors or other personnel associated with the managing entity.
- the portable computing devices 9050 that are associated with the managing entity can include devices 9050 that are assigned to an application repository 9130 of the managing entity, devices 9050 that are assigned to application developers who develop applications for the application repository 9130 of the managing entity and devices 9050 that are assigned to testing personnel.
- the users page 9598 is not so limited, as user identifications 9598 associated with other personnel or entities may be presented here.
- the administrator portal 9215 is further operable to enable access control to at least some of the portable computing devices 9050 that are associated with the user identifications 9598 .
- the user identification 9598 on the users page 9596 can display general information 9600 about the user. Examples include contact information, MAC address of the device 9050 assigned to the user and/or the date the user identification 9598 was added to the user page 9596 . Additional information about the user can be accessed by selecting the user identification 9598 .
- an information page 9602 can be presented, an example of which is shown in FIG. 110 . The information page 9602 can be accessed by selecting a tab 9604 .
- Virtually any type of information associated with the user identification 9598 can be presented on the information page 9602 .
- Non-limiting examples include the name or title of the user, the user's address, the user's contact information, a Web site associated with the user and a description of any relevant characteristic of the user, such as the job function of the user.
- Account information relating to the user such as whether the user's account is enabled, expired or locked can also be presented.
- the status of any credentials assigned to the user can also be shown here.
- one skilled in the art will appreciate that other forms of information can be part of this presentation, and the preceding examples are certainly not meant to be limiting.
- a roles page 9606 can be accessed by selecting a tab 9608 , as shown in FIG. 111 .
- a role 9610 can be, for example, a job function, a security clearance or some other feature associated with a user.
- a role 9610 can signify that a particular user, identified by a certain user identification 9598 , is assigned a job function of maintaining the operation of the administrator portal 9215 .
- a description 9612 can provide a user-friendly explanation of the corresponding role 9610 .
- the users page 9596 can present, among other things, one or more user identifications 9598 .
- the user identifications 9598 presented on the users page 9596 may be associated with a managing entity that oversees the operation of the administrator portal 9215 .
- the users associated with the user identifications 9598 may serve various roles under the managing entity.
- these users can be grouped in one of several possible categories to make the management of the user identifications 9598 easier.
- the categories can be created based on certain job functions performed by the users. Categories may also be created for vendors or contractors, including the application developers and users responsible for reviewing and approving submitted applications. To access such categories, one of several tabs 9614 can be selected.
- a search function (not shown) can be incorporated into the users page 9596 or some other suitable interface to enable searching of the user identifications 9598 .
- User identifications 9598 can be added through an addition feature 9616 or deleted by a deletion feature 9618 . Some of the information presented herein may be the same for different users, particularly if such users share a single portable computing device 9050 .
- firmware or other software packages can be made available to one or more portable computing devices 9050 , such as through the managed services platform 9010 . Moreover, such a package can be selected at the administrator portal 9215 for delivery to a portable computing device 9050 by making selections at the device details page 9576 (see FIG. 107 ).
- the interface 9500 can include a firmware page 9620 , which can be accessed through a tab 9622 . An example of the firmware page 9620 is shown in FIG. 112 . As an example, the firmware page 9620 can present one or more different firmware packages 9624 .
- a firmware package 9624 is not necessarily limited to firmware, as other forms of software, operational settings and parameters may be part of a firmware package 9624 .
- the receipt of a firmware package 9624 at a portable computing device 9050 can cause the device 9050 to incorporate a certain look and feel associated with that firmware package 9624 .
- the managing entity may wish to assign such devices 9050 to its employees, and the managing entity, through the administrator portal 9215 , can direct a particular firmware package 9624 to these devices 9050 .
- This firmware package 9624 can be configured to cause the devices 9050 that receive the package 9624 to, for example, display user interface elements that are associated with the managing entity.
- the managing entity can develop the firmware package 9624 on its own or can direct another party to do so on the managing entity's behalf.
- firmware package 9624 associated with the managing entity can be delivered to portable computing devices 9050 that are not necessarily associated with or assigned by the managing entity.
- firmware packages 9624 presented on the firmware page 9620 are not necessarily limited to the managing entity that operates the administrator portal 9215 , as the firmware page 9620 can receive packages 9624 from any suitable party.
- the firmware page 9620 can provide information about such packages 9624 .
- Non-limiting examples include the entity to which a firmware package 9624 is associated, the date the package 9624 was created and the date that the package 9624 was last updated.
- an addition feature 9626 can be provided as part of the firmware page 9620 , which can allow firmware packages 9624 to be uploaded to the administrator portal 9215 .
- the firmware packages 9624 can also be updated by activating an update feature 9628 .
- the administrator portal 9215 can generate a notification. This notification can inform a user or another entity that such an update is available for a particular firmware package 9624 . Steps can then be taken to ensure that the relevant portable computing devices 9050 or other components receive the update.
- the firmware page 9620 can provide a search feature 9630 , which can permit a user to search for particular firmware packages 9624 .
- the system 9200 (see FIG. 87 ) can be configured to enable firmware packages 9624 to be submitted, approved and delivered to portable computing devices 9050 , similar to the process described with respect to the publication of applications 9316 . Additional details concerning this feature will be presented below.
- a bundle may contain content that at least includes one or more configuration settings (including firmware packages) or messages, an application set that contains one or more predefined applications or both.
- the interface 9500 can provide a bundles page 9630 , which can be accessed by a tab 9632 .
- An example of a bundles page 9630 is shown in FIG. 113 .
- the bundles page 9630 can present one or more bundles 9634 , and the bundles 9634 may contain similar or dissimilar content in comparison to one another.
- the bundles may be designed for portable computing devices 9050 that are associated with an entity that is managing the administrator portal 9215 or directing another party to manage the portal 9215 . That is, the bundles 9634 may be designed for and assigned to portable computing devices 9050 that are associated with the managing entity.
- the managing entity may have assigned portable computing devices 9050 to members of a sales team of the managing entity and to executives of the managing entity. Examples of a sales team bundle or sales bundle 9636 and an executive team bundle or executive bundle 9638 are shown in FIG. 113 .
- the bundles 9634 can be assigned to one or more performance functions, and the bundles can contain information that is based on their assigned performance functions.
- the information contained in the bundles can include one or more configuration settings, one or more applications or both, and the configuration settings and the applications can be arranged based on the assigned performance functions.
- the managing entity can develop or instruct another party to develop bundles 9634 that are geared towards the performance function of the members of the sales team, i.e., sales.
- the settings and applications in the bundle 9634 can be selected based on their ability to assist a member of the sales team in his/her duties. This process can lead to the creation of the sales bundle 9636 .
- the executive bundle 9638 can be created in a similar manner.
- the bundles 9634 can be created by any suitable party.
- the managing entity can generate the bundles 9634 for the portable computing devices 9050 that are associated with the managing entity.
- the managing entity can direct another party to prepare the bundles 9634 , with the managing entity providing at least some input, for the portable computing devices 9050 .
- Any suitable criteria can be used to determine the type of content that is to be part of a bundle 9634 , such as employee or management feedback and input from consultants or the manufacturer(s) of the portable computing devices 9050 .
- the applications that are part of the bundle 9634 can be selected from the application repository 9130 associated with the managing entity or an application repository 9130 associated with any other suitable party.
- bundles 9634 can be created based on different performance functions, it is anticipated that the content may be different for various bundles 9634 . Some bundles 9634 , however, may contain identical or at least similar content, even if they are designed for different performance functions. Moreover, one or more bundles 9634 or even each bundle 9634 may contain one or more default items or settings that are to be deployed to each associated portable computing device 9050 . Default items or settings may also apply across particular team bundles 9634 . For example, the managing entity may wish that a particular application be installed on each portable computing device 9050 associated with the managing entity or on every portable computing device 9050 that is assigned to members of a sales team that is associated with the managing entity. In fact, bundles 9634 that only contain default items or settings can be created for delivery to all or a portion of relevant portable computing devices 9050 .
- the bundle 9634 can be added to the bundles pages 960 , such as by selection of an addition feature 9640 . These bundles 9634 can be selectively distributed to the relevant portable computing devices 9050 through the managed services platform 9010 (see FIG. 86 and related discussion). In another arrangement, a search feature 9642 can be incorporated into the bundles page 9630 to search for a particular bundle 9634 .
- a bundle application page 9642 can be presented as part of the interface 9500 . This page 9642 can be accessed by selecting a tab 9644 , and an example of the page 9642 is shown in FIG. 114 .
- general information 9644 that is associated with the selected bundle 9634 can be presented on the bundle application page 9642 .
- the general information 9644 can be metadata about the bundle 9634 .
- Examples of the general information 9644 can include the name of the bundle 9634 , the application repository 9130 to which the bundle 9634 is assigned (or to be assigned), a role name (which can give an indication as to the performance function related to the bundle 9634 ), an update date (last time the bundle 9634 was updated) and/or the creation date of the bundle 9634 .
- Additional metadata about the bundle 9634 that can be part of the bundle application page 9642 can include a firmware package 9643 that is assigned to the bundle 9634 , whether location services 9646 are enabled for the bundle 9634 and whether an application repository permission 9648 is allowed.
- Location services 9646 can include services or features that are designed to determine the whereabouts of a portable computing device 9050 and, hence, the user of the device 9050 .
- the administrator portal 9215 or some other component or entity can monitor the whereabouts of the relevant portable computing device 9050 .
- the application repository permission 9648 is a setting that enables the relevant portable computing device 9050 to download and install applications from one or more application repositories 9130 .
- the device 9050 When allowed, the device 9050 can be granted permission to execute such downloads/installations.
- This permission can be extended to multiple application repositories 9130 , each of which may or may not be associated with the administrator portal 9215 or, for example, the managing entity described above.
- the application repository permission 9648 can also be configured to identify the application repositories 9130 to which the permission extends.
- the bundle application page 9642 can show the applications 9316 that are part of the selected bundle 9634 .
- These applications 9316 can be listed in accordance with any suitable protocol, and default applications 9316 can be tagged with an indicator (not shown) designating them as such. Additional information about the applications 9316 can be accessed by selecting an application 9316 , in accordance with previous descriptions (see FIGS. 97-100 ).
- a desktop indicator 9650 and a removable indicator 9652 can be provided.
- a shortcut for the application 9316 may be installed on a display of the relevant portable computing device 9050 .
- the removable indicator 9652 is selected or activated, then the relevant portable computing device 9050 may have permission to remove, uninstall or otherwise deactivate the application 9316 .
- certain configuration settings may be part of the content of a bundle 9634 .
- the bundle 9634 can include VPN settings and Wi-Fi settings, although the bundle 9634 is certainly not limited to these particular examples.
- FIG. 115 an example of a VPN page 9654 is shown, which can be accessed by selecting the tab 9656 .
- a VPN can allow for secure communications for a mobile device.
- a party that assigns or causes to be assigned portable computing devices 9050 to one or more individuals can ensure secure communications between the devices 9050 and other components by incorporating VPN information/settings into a bundle 9634 to be delivered to one or more devices 9050 .
- Any suitable type of information can be part of the VPN page 9654 .
- Several examples of such information can include the general information 9644 associated with the bundle 9634 , a VPN perfect forward security (PFS) indication 9656 (if selected, then VPN PFS may be required for the relevant portable computing device 9050 ), a group name 9658 , a gateway address 9660 , a group password 9662 and an IKE Hash 9664 .
- Other suitable examples of information that can be presented on the VPN page 9654 can include a domain name 9666 , a vendor type 9668 (related to the VPN), an IKE cipher 9670 , an IPsec cipher and hash 9672 and an IKE DH group 9674 . It is understood that the VPN page 9654 is certainly not limited to these particular examples, as other suitable parameters or settings can be presented here.
- Wi-Fi page 9676 is shown, which can be accessed by the tab 9678 . Similar to the VPN page 9654 , the Wi-Fi page 9676 can present the general information 9644 about the bundle 9634 . As is known in the art, a Wi-Fi connection can be useful for establishing communications between two or more wireless components, like the portable computing device 9050 and some other wireless unit. As such, information useful for establishing a Wi-Fi connection for the relevant portable computing device 9050 can be part of the bundle 9634 .
- Examples of such information can include a Wi-Fi security protocol 9680 , an SSID 9682 , a default key ID 9684 and one or more security keys 9686 , such as WEP keys.
- the Wi-Fi page 9676 is not limited to these particular examples, as other suitable parameters or settings can be presented here.
- additional pages can be part of the interface 9500 if additional wireless or wired communication protocols are to be used with the portable computing devices 9050 .
- dedicated pages can be created for short range wireless standards/protocols, like Bluetooth or IEEE 802.15.4, or for wide area networks, both wired and wireless. Additional certificates (not shown) that may be applicable to the VPN page 9654 , the Wi-Fi page 9676 or both can be part of the information described above.
- the content of a bundle 9634 can be edited/modified.
- an editing feature 9688 can be activated.
- the editing feature 9688 can be incorporated into any one of the bundle application page 9642 , the VPN page 9654 or the Wi-Fi page 9676 (see FIGS. 114-116 ).
- a general editing page 9690 can be presented, an example of which is shown in FIG. 117 .
- the general editing page 9690 can be accessed by selecting a tab 9692 .
- one or more configuration settings of the relevant bundle 9634 can be modified.
- a VPN settings indicator 9694 can be selected to require that the portable computing device 9050 that receives the bundle 9634 uses a VPN when conducting communications.
- Other exemplary settings that can be altered for the bundle 9634 include the location services 9646 , which can be enabled or disabled, and whether the application repository permission 9648 is allowed or disallowed.
- a firmware package 9643 can be selected (or changed) to serve as a default firmware package 9643 for the bundle 9634 . It is understood that the general editing page 9690 is not limited to the examples listed above, as other configurations settings can be presented here for editing.
- FIG. 118 an example of a VPN editing page 9696 , which can be accessed by selecting a tab 9698 , is shown.
- any one of the VPN PFS indication 9656 , the group name 9658 , the gateway address 9660 , the group password 9662 , the IKE Hash 9664 , the domain name 9666 , the vendor type 9668 , the IKE cipher 9670 , the IPsec cipher and hash 9672 or the IKE DH group 9674 can be edited in any suitable fashion.
- FIG. 119 an example of a Wi-Fi editing page 9700 is shown. The Wi-Fi editing page 9700 can be selected through the tab 9702 .
- any one of the Wi-Fi security protocol 9680 , the SSID 9682 , the default key ID 9684 or the security keys 9686 can be modified in any suitable fashion.
- a certificates editing page 9704 an example of which is shown in FIG. 120 , can also be presented.
- the certificates editing page 9704 which can be accessed through the tab 9706 , can enable the uploading or removal of any suitable type of certificate 9708 for the bundle 9634 .
- an example of an application editing page 9710 is illustrated, which can be accessed by selecting the tab 9712 .
- the application editing page 9710 can permit applications 9316 to be added to or removed from the bundle 9634 .
- These applications 9316 can be designated for a particular bundle 9634 , and at least some of them may be considered default applications 9316 , either for an entire collection of portable computing devices 9050 or for those devices 9050 that are part of a group (e.g., a sales team or a team of executives).
- the application editing page 9710 can include a bundle application listing 9714 and an available application listing 9716 .
- the bundle application listing 9714 can show the applications 9316 that are currently included as content for the bundle 9634
- the available application listing 9716 can list those applications 9316 that are not currently part of the content for the bundle 9634 but that may be available for being included in the content. Additional information about any of these applications 9316 can be accessed, such as by selecting an application 9316 , as described earlier.
- a user can add applications 9316 to the bundle 9634 by simply clicking and dragging applications 9316 from the available application listing 9716 to the bundle application listing 9714 .
- Applications 9316 can also be removed from the bundle 9634 by clicking and dragging applications 9316 from the bundle application listing 9714 to the available application listing 9716 .
- any edits made can be saved by selecting a save button 9718 or canceled by choosing a cancel button 9720 .
- the bundle 9634 can be stored at any suitable location.
- a bundle 9634 can be stored in an application repository 9130 for eventual delivery to one or more portable computing devices 9050 .
- the content of a bundle 9634 may be stored on a portable computing device 9050 , in the application repository 9130 (i.e., the AS server 9040 ) or some other component.
- the administrator portal 9215 can signal such modifications to the managed services platform 9010 and to the portable computing devices 9050 through the heart beating process (see FIGS. 86 and 87 ).
- any edits made at the editing pages can be dynamically applied to the bundles 9634 that are part of the application repository 9130 or that have already been delivered to a portable computing device 9050 .
- these edits can be propagated according to a predefined schedule to minimize disruptions, as opposed to near real-time delivery.
- a group of portable computing devices 9050 i.e., a group basis.
- an operator of the administrator portal 9215 such as the managing entity, could push applications, firmware updates or operational settings to an identified group of portable computing devices 9050 .
- the devices 9050 assigned to, for example, a specific sales team could be updated with limited interruption to the members of the team.
- the interface 9500 can also provide features to manage portable computing devices 9050 on a larger, even global, scale.
- FIG. 122 an example of a management page 9750 is shown, and the management page 9750 can be accessed by selecting a tab 9752 .
- a hierarchical arrangement 9754 can be displayed, which can show the relationship between the administrator portals 9215 , the client portals 9220 and the sub-client portals 9225 (see also FIG. 87 ).
- An oversight portal 9754 can also be part of the arrangement 9754 , the structure/function of which will be explained below. Additional information will also be provided later to describe the relationship between the entities of the arrangement 9754 . For now, however, the discussion will focus on the administrator portal 9215 .
- the administrator portal 9215 of the arrangement 9754 can be selected on the management page 9750 .
- FIG. 123 an example of an application repository information page 9756 is shown, which can be reached by selecting an administrator portal 9215 on the management page 9750 and a tab 9758 in FIG. 123 .
- the administrator portal 9215 can have one or more application repositories 9130 assigned to the administrator portal 9215 (and, thus, to the entity that oversees operations of the administrator portal 9215 , like the managing entity).
- the information page 9756 can provide information 9759 about the application repository 9130 assigned to the administrator portal 9215 and, for example, the managing entity.
- Examples of such information relating to the application repository 9130 include a name 9760 , a code 9762 that identifies the repository 9130 , a description 9764 and a key 9764 (such as a security key) for the application repository 9130 . Any one of the name 9760 , the code 9762 or the description 9764 can identify the party responsible for the application repository 9130 , such as the managing entity. Additional examples include a creation date 9766 and a most recent update date 9768 for the application repository 9130 . In one arrangement, an identification code 9770 for a parent application repository 9130 and/or an identification code 9772 for a central application repository 9130 can be provided. Additional information about a parent and a central application repository 9130 will be provided later. It is understood that other suitable types of information about the application repository 9130 can be presented on the application repository information page 9756 or some other suitable location or medium.
- Selection of a tab 9774 can enable a user to choose from one or more default pages that present information about default settings or parameters for portable computing devices 9050 .
- these portable computing devices 9050 can be assigned to a particular application repository 9130 , such as the one identified on the application repository information page 9756 (see FIG. 123 ).
- these devices 9050 can be associated with the entity responsible for the application repository 9130 , such as the managing entity.
- these default pages can permit the managing entity to manage all the devices 9050 assigned to the application repository 9130 .
- this process can enable global management of the devices 9050 assigned to a particular entity.
- a general default page 9776 can be accessed by selecting a tab 9778 .
- the default settings can be a package of operating conditions, settings, applications, parameters, etc. that the managing entity wishes to have applied to the portable computing devices 9050 under its control.
- delivery of this content can be in the form of a bundle, similar to the configuration and processes explained in relation to FIGS. 113-121 , the difference being that this content may consist of the minimal requirements designed for all portable computing devices 9050 associated with the administrator portal 9215 .
- default information like a VPN setting 9780 , a firmware package 9782 , a location services setting 9784 and an application repository permission setting 9786 can be presented. These settings can be similar to those described with respect to the bundles 9634 of FIG. 114 .
- the default information/settings presented here can be applied to the portable computing devices 9050 when these devices 9050 register with the managed services platform 9010 .
- edits can be made to these default information/settings and can be propagated to the devices 9050 through the managed services platform 9010 .
- page 9776 is certainly not limited to these examples.
- a default certificates page 9788 is shown, which can be accessed via the tab 9790 .
- the default certificates page 9788 can be assigned to the tab 9774 .
- the default certificates page 9788 can list one or more certificates 9790 that can be applied to the portable computing devices 9050 , such as during registration or at a later time. These may be security certificates, although that is not necessarily the case. Moreover, certificates can be added, removed or upgraded, each of which can be applied to the portable computing devices 9050 .
- the default applications page 9792 which can be accessed by selecting the tab 9794 , can list the applications 9316 that are to be installed on the portable computing devices 9050 as part of a default application set 9796 . That is, the default application set 9796 can be the minimum number of applications 9316 that should be installed on the portable computing devices 9050 that are assigned to the administrator portal 9215 and, optionally, the managing entity. As an example, these applications 9316 can be delivered to the devices 9050 when the devices 9050 register with the managed services platform 9010 or at some other later time. Any suitable amount of information relating to the applications 9316 can be presented here, some of which may be accessed by selecting an application 9316 in accordance with previous discussions.
- the interface 9500 can be configured to enable any of these default settings or applications to be edited.
- the general default page 9776 , the default certificates page 9788 or the default applications page 9792 can include an edit feature 9798 , which when activated, can permit modifications to the settings/applications on its respective default page.
- a general default edit page 9800 can be presented, an example of which is shown in FIG. 127 .
- the VPN setting 9780 , the firmware package 9782 , the location services setting 9784 , the application repository permission setting 9786 or any other default setting can be modified.
- the edit can be propagated to the portable computing devices 9050 through the managed services platform 9010 forthwith, such as by selecting a save feature 9801 , or at a later time.
- the interface 9500 of the administrator portal 9215 can present a schedule rollout option 9802 , which can be used to set a delivery schedule for the editing of the default settings or applications.
- a delivery page 9804 can be presented, an example of which is shown in FIG. 128 .
- a user can select any appropriate time to have the modifications pushed to the portable computing devices 9050 .
- these edits can be effected at a time that will cause minimal disruptions to the users of the devices 9050 , such as during early morning hours.
- Edits can also be made to the default certificates page 9788 and the default applications page 9792 and delivered to the devices 9050 in a similar manner.
- An example of an applications edit page 9806 is shown in FIG. 129 .
- an available applications list 9808 and a current default applications list 9810 can be presented.
- the current default applications list 9810 can show those applications 9316 that are currently part of the default application set 9796 (see FIG. 126 ).
- the available application list 9808 meanwhile, can display the applications 9316 that are available to be part of the current default applications list 9810 and, hence, the default applications list 9796 .
- a user can simply click and drag applications 9316 from the available application list 9808 to the current default applications list 9810 to enable the application(s) to be added to the portable computing devices 9050 on a broadcast or global basis. As an option, such a delivery could be scheduled using the schedule rollout option 9802 . As an option, information about the applications 9316 can be reviewed or accessed here, similar to previous descriptions.
- a user can simply drag one or more applications 9316 from the current default applications list 9810 to the available application list 9808 .
- This change can be executed throughout the portable computing devices 9050 through the managed services platform 9010 .
- the modification can occur in real-time or can be conducted at a later time, such as through the activation of the schedule rollout option 9802 .
- information about the various users of the portable computing devices 9050 associated with the administrator portal 9215 can be obtained by selecting the tab 9812 , which can cause a users page 9814 to be presented.
- An example of the users page 9814 is shown in FIG. 130 .
- the presentation and functions here can be similar to that described in relation to FIG. 109 .
- the users page 9814 can present one or more user identifications 9816 that display general information 9818 about the corresponding user.
- additional information about the user can be accessed by selecting the user identification 9816 , similar to the process described in relation to FIGS. 110 and 111 .
- an information page 9820 can be presented, an example of which is shown in FIG. 131 .
- the information page 9820 can be accessed by selecting a tab 9822 .
- a roles page 9824 can be accessed by selecting a tab 9826 , as shown in FIG. 132 .
- the roles page 9824 here can present information similar to that described in relation to FIG. 111 .
- the information presented here on pages 9820 and 9824 can be similar to the information described with respect to FIGS. 110 and 111 , although other forms of information can be added to or excluded from the pages 9820 , 9824 .
- the users page 9814 can present, among other things, one or more user identifications 9816 .
- the user identifications 9816 presented on the users page 9814 may be associated with a managing entity that oversees the operation of the administrator portal 9215 .
- the users associated with the user identifications 9816 may serve various roles under the managing entity, and the users can be grouped in one of several possible categories to make the management of the user identifications 9816 easier, similar to those described in relation to FIG. 109 . To access such categories, one of several tabs 9826 can be selected.
- a search function (not shown) can also be incorporated into the users page 9814 or some other suitable interface to enable searching of the user identifications 9816 .
- User identifications 9816 can be added through an addition feature 9828 or deleted by a deletion feature 9830 .
- Some of the information presented herein may be the same for different users, particularly if such users share a single portable computing device 9050 . While the features described in FIGS. 130-132 are similar to those written about in relation to FIGS. 109-111 , there are some additional elements that are part of the former that will be described below.
- the interface 9500 of the administrator portal 9215 allows for global or broadcast management of such devices 9050 .
- these devices 9050 can be assigned to a particular application repository 9130 and an entity responsible for operating the administrator portal 9215 , such as the managing entity.
- a devices page 9850 is shown, which can be accessed by selecting the tab 9852 .
- the portable computing devices 9050 associated with the administrator portal 9215 can be presented in a devices list 9854 .
- the devices list 9854 can show all the devices 9050 that are associated with the administrator portal 9215 .
- Various types of information about the portable computing devices 9050 like a name, MAC address and the application repository 9130 to which the device 9050 is assigned—can be presented in the devices list 9854 .
- the devices list 9854 may display a high number of portable computing devices 9050 .
- the devices list 9854 can be configured to group the devices 9050 in accordance with several predefined categories. For example, portable computing devices 9050 can be grouped together according to a performance function of users assigned to the devices 9050 . As a more specific example, the portable computing devices 9050 assigned to a sales team can be grouped together and given an identity that provides an indication of the sales team grouping.
- the devices list 9854 can include a search feature (not shown) to enable searching of individual portable computing devices 9050 or groups of such devices 9050 .
- the portable computing devices 9050 of the devices list 9854 can include devices 9050 that have registered with the managed services platform 9010 and are assigned to the administrator portal 9215 .
- Such devices 9050 can be referred to as provisioned portable computing devices 9050 .
- a provisioned device 9050 can take on those elements, like settings, firmware, applications, that the entity that assigns such devices 9050 wishes the devices 9050 to have.
- the managing entity can set, for example, the default settings, default applications, bundles, etc. that the managing entity wants to be incorporated into the portable computing devices 9050 that the managing entity assigns to individuals.
- the devices page 9850 can be configured to enable automatic provisioning of a portable computing device 9050 .
- the devices page 9850 can include an available devices list 9870 that shows portable computing devices 9050 that are not provisioned devices 9050 , unlike those in the devices list 9854 .
- a non-provisioned device 9050 can be a portable computing device 9050 that may not yet be assigned to the administrator portal 9215 and may not include one or more elements or features (firmware, applications, settings) that have been implemented in the provisioned portable computing devices 9050 .
- a non-provisioned portable computing device 9050 may be assigned to a portal other than the administrator portal 9215 or may not be assigned by the managing entity.
- a non-provisioned device 9050 may be a device 9050 that has not yet registered with the managed services platform 9010 .
- permission to provision the non-provisioned device 9050 may need to be obtained from one or more parties.
- a user of the administrator portal 9215 can provision one or more non-provisioned devices 9050 by dragging them from the available devices list 9870 to the devices list 9854 .
- the portable computing device 9050 can receive content (e.g., in a bundle) to make it a provisioned device 9050 , such as default settings, default firmware, default applications.
- a bundle 9634 (see FIG. 113 ) can be delivered to the newly-provisioned portable computing device 9050 .
- the content can be received at the device 9050 through the managed services platform 9010 , in real-time or at a scheduled time. For those devices 9050 that have not yet registered with the managed services platform 9050 , the content can be received once a device 9050 initiates such registration.
- the devices page 9850 can also be configured to allow one or more provisioned portable computing devices 9050 to return to a non-provisioned state. For instance, a user can drag a provisioned device 9050 from the devices list 9854 to the available devices list 9870 . Such a step can cause all or at least a portion of the modifications that were made to put the device 9050 in a provisioned state to be removed, altered or deleted to return the device 9050 to a non-provisioned state. This change can be effected right away or scheduled at a later time.
- the devices page 9850 may include a messaging feature 9872 .
- the messaging feature 9858 can also be incorporated into other pages (see FIGS. 123-126 and 130 ).
- messages can be sent to the portable computing devices 9050 on a broadcast or global basis via the managed services platform 9050 . This may or may not include all the devices 9050 assigned to the administrator portal 9215 . As such, the administrator portal 9215 can quickly and efficiently disseminate messages to its assigned devices 9050 . In one arrangement, such messages can be sent to groups of portable computing devices 9050 , based on the relevance of the message to those groups. Other factors may be considered when deciding on the reach of the message delivery to the devices 9050 , such as security, urgency, content, etc. If desired, in addition to global and group messaging, messages can be transmitted to a device 9050 on an individual basis, similar to that described in relation to FIGS. 106-108 .
- the administrator portal 9215 can be configured to manage a large number of portable computing devices 9050 assigned to the administrator portal 9215 . These devices 9050 may also be associated with a managing entity. This management, as has been presented, can include the selective delivery of applications and/or settings to an application repository 9130 associated with the administrator portal 9215 and to the devices 9050 . There are other portals that may operate in a similar fashion.
- the managed services system 9200 can include one or more client portals 9220 and one or more sub-client portals 9225 .
- the client portals 9220 can be communicatively coupled to one or more administrator portals 9215
- the sub-client portals 9225 can be communicatively coupled to one or more client portals 9220 .
- the administrator portal 9215 can have a working relationship with any number of the client portals 9220 and any number of the sub-client portals 9225 .
- each of the participant portals in the system 9200 can have working relationships with any other portal in the system 9200 .
- the operator of a portal can determine the parameters of such a relationship and to which portal(s) such a relationship may extend.
- a downstream portal is defined as a portal that is communicatively coupled to a parent portal
- an upstream portal is defined as a portal that is communicatively coupled to a child portal.
- the client portals 9220 can be referred to as a downstream portal in relation to the administrator portal 9215 .
- the client portals 9220 can also be considered as an upstream portal in relation to the sub-client portals 9225 .
- the managed services system 9200 is scalable such that additional entities can be incorporated into the system 9200 , and these additional entities include any suitable number of upstream and downstream portals.
- a sub-sub-client portal (not shown) could be part of the system 9200 and could be communicatively coupled to one or more sub-client portals 9225 .
- Another example of the scalability of the system 9200 is the oversight portal 9754 of FIG. 122 . This portal 9754 can be communicatively coupled to have a working relationship with the administrator portal 9215 , similar to the arrangement between the administrator portal 9215 and the client portal(s) 9220 .
- additional upstream portals may be incorporated into the system 9200 such that the oversight portal 9754 can also be designated as a downstream portal.
- the basic structure presented in FIGS. 87 and 122 is a mere fraction of the complexity that can be reached in the system 9200 , given the scalability of the system 9200 .
- other portals in the managed services system 9200 can be configured to implement an arrangement and processes that are similar to that described above for the administrator portal 9215 .
- the structure of the client portal 9220 can be similar to that of the administrator portal 9215 (see FIGS. 102 and 103 ).
- the client portal 9220 can be configured to receive applications from an application developer portal after the applications are approved by an approval portal.
- the application developer portal, the approval portal or both can be the application developer portal 9205 and the approval portal 9210 of FIGS. 87 and 88 .
- the application developer portal 9205 and the approval portal 9205 can be operated or managed by any suitable entity.
- a party that manages the administrator portal 9215 can also manage the application developer portal 9205 and the approval portal 9210 .
- the managing entity described above can also manage the application developer portal 9205 and the approval portal 9210 .
- one or more parties different from the entity can be assigned to manage the application developer portal 9205 or the approval portal 9210 .
- the application developer portal and/or the approval portal associated with the client portal 9220 can be separate and distinct from the application developer portal 9205 and the approval portal 9210 of FIGS. 87 and 88 . That is, the party responsible for the client portal 9220 may wish to create or direct the creation of an application submission and approval process specifically for the client portal 9220 .
- the operation and structure of the application developer portal and approval portal associated with the client portal 9220 can be similar in structure and operation to those portals 9205 , 9210 described in relation to FIGS. 87 and 88 (see also FIGS. 89-101 ).
- any suitable entity or entities can manage these portals.
- the client portal 9220 may have a managing entity that is responsible for the operation of the client portal 9220 and its associated application developer and approval portals.
- the client portal 9220 can selectively publish the applications that it receives. Further, in one embodiment, the client portal 9220 can communicate with a managed services platform 9010 and can be assigned an application repository 9130 .
- the managed services platform 9010 and the application repository 9130 may be the same ones utilized by and assigned to the administrator portal 9215 .
- the client portal 9220 may utilize a managed services platform 9010 and/or be assigned an application repository 9130 that is different from those associated with the administrator portal 9215 .
- the client portal 9220 can be configured and operated in a manner similar to that of the administrator portal 9215 , the client portal 9220 can include an interface similar to the interface 9500 of the administrator portal 9215 , as described above in relation to FIGS. 104-133 . That is, the client portal 9220 can facilitate testing and publication of one or more applications 9316 , where the applications 9316 can be published in an application repository 9130 that is associated with the client portal 9220 (see FIGS. 104-105 ). The client portal 9220 can also manage portable computing devices 9050 associated with the client portal 9220 on an individual basis, such as enabling the installation/removal of applications 9316 from the devices 9050 and the transmission of messages to the devices (see FIGS. 106-108 ).
- the client portal 9220 can also permit one to access information about users of the portable computing devices 9050 (see FIGS. 109-111 ) and to manage firmware for the devices (see FIG. 112 ). Also like the administrator portal 9215 , the client portal 9220 can be configured to generate, maintain and distribute bundles 9634 to the portable computing devices 9050 (see FIGS. 113-121 ). As such, the client portal 9220 can also enable the distribution of content (e.g., configuration settings, applications) to the devices 9050 on a group basis. Additionally, the client portal 9220 can permit maintenance/monitoring of its application repository 9130 and global management of portable computing devices 9050 , as outlined in FIGS. 124-133 .
- content e.g., configuration settings, applications
- content e.g., settings, certificates, firmware, applications, etc.
- delivery real-time or scheduled
- all the features described with respect to the administrator portal 9215 may apply to the client portal 9220 .
- This principle may also extend to other portals, like the sub-client portals 9225 and the oversight portal 9754 and any other upstream or downstream portals.
- the administrator portal 9215 has been described as having the capability of managing portable computing devices 9050 and application repositories 9130 that are associated with or assigned to or by the administrator portal 9215 .
- the administrator portal 9215 can offer a second set of services that are directed to client portals that have established relationships with the administrator portal 9215 , such as the client portals 9220 , the sub-client portals 9225 , the sub-sub-client portals or any subsequent client portals.
- a first client portal 9220 and a second client portal 9220 may be communicatively coupled to and have a working relationship with an administrator portal 9215 (see FIG. 87 ).
- the first client portal 9220 can be assigned a first application repository 9130 that is associated with the first client portal 9220
- the second client portal 9220 may be assigned a second application repository 9130 that is associated with the second client portal 9220 .
- the administrator portal 9215 can be operated and/or managed by the managing entity described above, and the first client portal 9220 can be operated and/or managed by a first client.
- the second client portal 9220 can be managed by a second client.
- the administrator portal 9215 can show an arrangement that demonstrates an application repository relationship between a managing entity associated with the administrator portal 9215 and the first and second clients.
- the first and second clients may be organizations, companies, individuals, groups, etc. that desire to have the managing entity provide services for the first and second clients through the first client portal 9220 and the second client portal 9220 .
- the first client portal 9220 , the second client portal 9220 or both may be associated with one or more sub-client portals 9225 (see FIGS. 87 and 122 ).
- the first client can be associated with one or more first sub-clients
- the second client can be associated with one or more second sub-clients.
- the arrangement therefore, can demonstrate an application repository relationship between the managing entity, the first and second client and the first and second sub-clients, if such sub-clients exist.
- the sub-clients may also be organizations, companies, individuals, groups, etc, that want to have the first and/or second clients provide services for them through the first sub-client portal 9225 and the second sub-client portal 9225 .
- the managed services system 9200 is readily scalable, these types of relationships can exist at any level among the different portals. Moreover, relationships can be forged between portals that are more than one degree apart in terms of vertical separation.
- the administrator portal 9215 and a sub-client portal 9225 can be configured to enable the administrator portal 9215 to provide services for the sub-client portal 9225 .
- the administrator portal 9215 can receive applications 9316 from the approval portal 9210 , as submitted at the application developer portal 9205 .
- the administrator portal 9215 can receive a notification of an application 9316 that has met an approval threshold.
- the administrator portal 9215 can cause the presentation of the application 9316 .
- the presentation of the application may or may not result in the application 9316 being published in an application repository 9130 associated with, for example, the administrator portal 9215 , being delivered to one or more portable computing devices 9050 associated with, for example, the administrator portal 9215 or both.
- the administrator portal 9215 can also cause the transmission of the availability of the application 9316 to the first client portal 9220 for publication in the first application repository 9130 .
- the administrator portal 9215 can cause the transmission of the availability of the application 9316 to the second client portal 9220 for publication in the second application repository 9130 .
- the transmission of the availability of the application 9316 to the first client portal 9220 and the second client portal 9220 for publication can include different scenarios.
- the transmission of the availability of the application 9316 for publication can provide a notice of such availability, and the first and second clients can review the application for publication suitability.
- the process of review can be similar to that described in relation to the administrator portal 9215 .
- the first or second clients determine that the available application is suitable for publication, the first or second client portal 9220 can cause the application to be published in the appropriate application repository 9130 .
- the first or second clients, through the first or second client portals 9220 also have the option of directing the installation of the application 9316 on relevant portable computing devices 9050 on an individual, group or global (broadcast) basis. This process can be similar to that presented for the administrator portal 9215 .
- the transmission of the availability of the application 9316 for publication can result in the automatic publication of the application 9316 in the relevant application repository 9130 , the delivery of the application 9316 to the relevant devices 9050 or both. That is, the first and second clients may rely on the judgment of the managing entity to make the determination of whether to publish an application 9316 on their behalf.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
A managed services platform and method of operation of same are described herein. The platform can include a device management service (DMS) server in which the DMS server can act as a gateway for communications with one or more computing devices, and the computing devices are associated with a first entity. The platform can also include an application service (AS) server in which the AS server is communicatively coupled with the DMS server. When a first computing device contacts the DMS server, the DMS server is operable to provide a bundle to the first computing device. As an example, the bundle contains content that at least includes one or more configuration messages and an application set that contains one or more predefined applications. The content of the bundle can be determined at least in part by the first entity.
Description
- This application is a continuation of U.S. patent application Ser. No. 13/179,510, filed on Jul. 9, 2011 and U.S. patent application Ser. No. 13/179,514, filed on Jul. 9, 2011, each of which is a continuation-in-part of U.S. patent application Ser. No. 12/639,139, filed on Dec. 16, 2009, which claims priority to U.S. Provisional Patent Application No. 61/139,090, filed Dec. 19, 2008, each of which is incorporated by reference herein in its entirety.
- The present invention relates to systems and methods for managing and offering services to networked devices.
- The use of applications, commonly referred to as “apps,” has become prevalent over the past few years. To meet this demand, several entities have developed services to enable users of mobile devices to download apps to such devices. For example, Apple, Inc. of Cupertino, Calif. offers an interface to permit apps to be uploaded from app developers and for users to search, select and possibly purchase apps for download to Apple devices. As part of this process, the company offers a software development kit (SDK) to developers for guidance on creating these apps, and the apps must be approved by Apple before being made available to users. In addition, Apple shares with the app developers the revenue that is generated by the downloads. Other companies, such as Google, Inc. of Mountain View, Calif. and Research In Motion, Ltd., of Waterloo, Ontario, Canada, also offer interfaces for developers to create and upload apps and for users to retrieve such software.
- Thus, there are multiple companies that offer this service, and it is expected that the number of them doing so will increase. While this recent development has established a new platform for the delivery of software to a wide variety of mobile devices, general oversight of this process is lacking. This aspect can be particularly troublesome in an enterprise setting. For example, a company may be leery of allowing employees to access and download apps from these services onto its work devices because the employer has no control over the process. A similar concern exists in a personal or family environment because a parent will not have any control over his/her child's activities in this area. In fact, supervisory authorities, like employers and parents, have very little control over mobile devices that are distributed to their subordinates.
- As described herein, telephony and digital media services may be provided to a plurality of locations, such as to a plurality of homes and offices, though the deployment of telephony and digital media services devices to the locations, wherein each device is configured to function as a voice, data and media information center. A services platform in accordance with an embodiment of the present invention enables entities to deploy, manage optimize and monitor a network of such devices in a turnkey fashion.
- In accordance with one embodiment of the present invention, the services platform is implemented on one or more computers and includes at least a device monitoring subsystem, a device management subsystem and a user interface. The device monitoring subsystem and the device management subsystem are each communicatively connected to a plurality of devices that provide telephony and digital media services to one or more end users. The device monitoring subsystem is operable to monitor each of the plurality of devices. The device management subsystem is operable to manage each of the plurality of devices. The user interface is communicatively connected to the services platform and is operable to provide access to functionality of at least one of the subsystems.
- A managed services platform is also described herein. The platform can include a device management service (DMS) server in which the DMS server acts as a gateway for communications with one or more computing devices and the computing devices are associated with a first entity. The platform can also include an application service (AS) server in which the AS server is communicatively coupled with the DMS server. When a first computing device contacts the DMS server, the DMS server can be operable to provide a bundle to the first computing device. Providing a bundle can mean direct transmission of content to the first device, indirect transmission of content by directing a source to transmit such content to the first device, through messaging the first device to obtain or retrieve content from a source or any combination of these alternatives. In one arrangement, the bundle can contain content that at least includes one or more configuration messages and an application set that contains one or more predefined applications. The content of the bundle is determined at least in part by, for example, the first entity. In another arrangement, the first computing device can include a display, and the configuration messages can cause the display to present graphical user interface (GIU) elements that are associated with the first entity.
- As an example, the application set can include a default application set that contains one or more default applications. The default application set can be selected from an application repository that is associated with the first entity. As another example, the application set can include a custom application set that includes one or more custom applications, which can also be from an application repository that is associated with the first entity.
- The content of the bundle provided to the first computing device can be based on an identification associated with the first computing device. As an example, the identification associated with the first computing device can be a unique identifier assigned to the first computing device. In addition, the configuration commands or the application set can be provided to the first computing device according to the identification associated with the first computing device. In one arrangement, the identification associated with the first computing device can be related to a performance function of a first intended user of the first computing device such that the configuration commands or the application set that are provided to the first computing device are related to the performance function of the first intended user.
- The DMS server can be further operable to provide a second bundle to a second computing device. This second bundle can contain content that at least includes one or more configuration messages and an application set that contains at least predefined applications. The content of the second bundle provided to the second computing device, like the first computing device, can be based on an identification associated with the second computing device such that the configuration messages or the application set are provided to the second computing device according to the identification associated with the second computing device. Also similar to the first computing device, the identification associated with the second computing device can be related to a performance function of a second intended user of the second computing device such that the configuration messages or the application set that are provided to the second computing device are related to the performance function of the second intended user. The performance function of the second intended user may be different from the performance function of an intended user of the first computing device. If so, the content of the bundle provided to the second computing device may be different from the content of the bundle provided to the first computing device.
- The DMS server can be further operable to provide a default set of applications and a custom set of applications for both the first computing device and the second computing device. As an example, the default set of applications can be the same for both the first computing device and the second computing device. In contrast, the custom set of applications for the first computing device may be different from the custom set of applications for the second computing device, particularly if the performance functions of the users of such devices are different. The first intended user and the second intended user may be both associated with the first entity, although not necessarily so.
- The first computing device can include a DMS client, and the first computing device can contact the DMS server through a consolidated polling technique, although communications between these components are not limited to such an arrangement. In any event, the bundle may be provided to the first computing device through a series of message exchanges using the consolidated polling technique.
- In one particular arrangement but without limitation, the DMS server and the AS server can be hosted by a second entity that is distinct from the first entity. The second entity may be a managing entity that is responsible for preparing and providing the bundles according to input from the first entity.
- In response to the receipt of the bundle, the first computing device can be provided with access to an application repository that is assigned to and associated with the first entity. The first device can also be provided with access to one or more other application repositories, which may be associated with the first entity or other entities, i.e., second entity, third entity, etc.
- The content of the bundle provided to the first computing device can be based on an identification associated with the first computing device, and the DMS server can be further operable to provide a second bundle to the computing device based on the identification associated with the first computing device. For example, a first user and a second user can be both assigned to the first computing device, and the first computing device can provide an identification for both the first user and the second user of the first computing device. The content of the bundle can be arranged for the first user, and the content of the second bundle can be arranged for the second user. As an example, the first user and the second user can both be associated with the first entity.
- A method of managing services for a first client is also described herein. The method can include the steps of receiving an activation notice in which the activation notice is from a first computing device that is associated with the first client and in response to the receipt of the activation notice, providing a bundle to the first computing device. The method can also include the steps of maintaining an application repository that is associated with the first client and presenting the application repository to the first computing device based on an identification of the first computing device.
- In one embodiment, the bundle can contain content that at least includes one or more configuration messages and an application set that contains one or more predefined applications. The application set can include a default application set or a custom application set, and the default application set can contain one or more default applications from the application repository. In contrast, the custom application set can contain one or more custom applications from the application repository. In another embodiment, the first computing device can include a display, and the configuration messages are arranged to cause the display to present graphical user interface (GUI) elements that are associated with the first client.
- As an example, providing the bundle to the first computing device further includes providing the bundle to the first computing device based on the identification of the first computing device. The identification of the first computing device can be related to, for example, a performance function of a first intended user of the first computing device. Thus, providing the bundle to the first computing device further includes providing the bundle to the first computing device such that the content of the bundle is related to the performance function of the first intended user. The bundle provided to the first computing device can include a first default application set or a first custom application set. The first default application set or the first custom application set can be based on the performance function of the first intended user.
- The method can further include the step of receiving a second activation notice in which the second activation notice is from a second computing device that is associated with the first client. In response to the receipt of the second activation notice, a second bundle can be provided to the second computing device. The options for providing a second bundle to a second computing device can be similar to that described above in relation to the first computing device. The method can also include the step of presenting the application repository to the second computing device based on an identification of the second computing device.
- As an example, providing the second bundle to the second computing device can further include providing the second bundle to the second computing device based on the identification of the second computing device. The identification of the second computing device can be related to a performance function of a second intended user of the second computing device. Moreover, providing the second bundle to the second computing device can further include providing the second bundle to the second computing device such that the content of the second bundle is related to the performance function of the second intended user. The content of the second bundle for the second computing device may be different from the content of the bundle for the first computing device if the performance function of the second intended user is different from the performance function of the first intended user.
- In one embodiment, the second bundle provided to the second computing device can include a second default application set or a second custom application set, and the second default application set or the second custom application set can be based on the performance function of the second intended user. The default application set for the second computing device can be the same as the first default application set for the first computing device. Additionally, the second custom application set for the second computing device may be different from the first custom application set if the performance function of the second intended user is different from the performance function of the first intended user. The first intended user and the second intended user may be both associated with the first client, although not necessarily so.
- Providing the bundle to the first computing device at least partly comprises providing the bundle to the first computing device through, for example, a series of messages exchanges using a consolidated polling technique. It is understood, however, that other communication methods can be used.
- The activation notice can be received by a DMS server and the application repository is maintained by an AS server. The DMS server and the AS server can be hosted by an entity that is different from the first client. As an example, the entity that hosts the DMS server and the AS server can provide the bundle as a service for the first client in which the first client provides input to the entity for the bundle.
- The method can also include the step of receiving a second activation notice from the first computing device. In response to the receipt of the second activation notice, a second bundle can be provided to the first computing device. It can be determined that a first user and a second user are both assigned to the first computing device. As such, the bundle can be sent to the first computing device for the first user, and the second bundle can be sent to the second computing device for the second user. The first user can have a first performance function, and the second user can have a second performance function. In one arrangement, the content of the bundle can be related to the first performance function of the first user and the content of the second bundle can be related to the second performance function of the second user. The content of the bundle may be different from the content of the second bundle if the first performance function of the first user is different from the second performance function on the second user. As an example, the first user and the second user may be both associated with the first client, although not necessarily so.
- Another managed services platform is described herein. The platform can have a DMS server in which the DMS server is a gateway for communications with one or more computing devices. The computing devices may be associated with a first client. This platform can also include an AS server that is communicatively coupled with the DMS server. When one of the computing devices is activated, the DMS server can be operable to flash the activated first computing device to cause the first computing device to incorporate, for example, a GUI layout that is associated with the first client. The AS server is also operable to maintain an application repository that includes at least applications that are associated with and at least partially determined by the first client. The activated first computing device can be provided with access to these applications.
- A second computing device may be activated, and the second computing device can be associated with a second client. The DMS server can be operable to flash the activated second computing device to cause the second computing device to incorporate a GUI layout that is associated with the second client. Further, the AS server can be operable to maintain an application repository that includes at least applications that are associated with and at least partially determined by the second client. The activated second computing device is provided with access to the applications.
- In one arrangement, in addition to the first managed services platform, a second managed services platform is described herein. The second platform can include a second DMS server in which the second DMS server can be a gateway for communications with one or more second computing devices and the second computing devices are associated with a second client. The second platform can also include a second AS server that is communicatively coupled with the second DMS server. When one of the second computing devices is activated, the second DMS server can be operable to flash the activated second computing device to cause the second computing device to incorporate a graphical user interface (GUI) layout that is associated with the second client. The second AS server can be operable to maintain a second application repository that includes at least applications that are associated with and at least partially determined by the second client. The activated second computing device can be provided with access to the applications of the second application repository. There can be any suitable number of managed services platforms for servicing any suitable number of portable computing devices. The first managed services platform or the second managed services platform can be hosted by, for example, a managing entity that is distinct from the first client and the second client.
- A method of managing services is described herein. The method can include the step of receiving a first activation notice from a first computing device that is associated with a first client. In response to the receipt of the first activation notice, one or more configuration messages can be transmitted, and these messages can be arranged to cause the first computing device to incorporate a GUI layout that is associated with the first client. The method can also include the step of maintaining an application repository that includes at least applications that are associated with and at least partially determined by the first client. The activated first computing device is provided with access to the applications. A second activation notice can be received from a second computing device that is associated with a second client. In response to the receipt of the second activation notice, one or more configuration messages can be transmitted, and the messages can be arranged to cause the second computing device to incorporate a GUI layout that is associated with the second client. The method can also include the step of maintaining another application repository that includes at least applications that are associated with and at least partially determined by the second client. The activated second computing device can be provided with access to the applications.
- A computer program product is also described herein. The computer program product can include a computer readable storage medium having stored thereon computer readable program code. When executed by a system including a processor and a memory, the computer readable program code can cause the system to receive an activation notice in which the activation notice is from a first computing device that is associated with the first client. In response to the receipt of the activation notice, the code can cause the system to further provide a bundle to the first computing device and maintain an application repository that is associated with the first client. The code can further cause the system to present the application repository to the first computing device based on an identification of the first computing device.
- A portable computing device is also described herein. The device can include a display that is configured to display GUI elements that are associated with a client and a transceiver that is configured to communicate with a managed services platform. The device can also include a processor that is communicatively coupled to both the display and the transceiver. The processor is operable to instruct the transceiver to transmit an activation notice to the managed services platform and in response to the activation notice, receive from the managed services platform a first bundle that is associated with the client and that is arranged to cause the display to display GUI elements that are associated with the client. The first bundle can include predefined applications in which the content of the first bundle can be determined at least in part by the client.
- In this context, receiving a first bundle from the managed services platform can refer to several different alternatives. For example, content of the bundle can be directly received from the managed services platform or indirectly from another component under the direction or assistance of the managed services platform. As another example, the managed services platform can direct the portable computing device to retrieve or obtain content from a source. Content of the bundle can also be delivered to the portable computing device in accordance with any combination of these alternatives or other suitable techniques. In one embodiment, the predefined applications can be selected from an application repository that is associated with the client, although not necessarily so.
- The activation notice can include an identification that is unique to the portable computing device. At least some of the content of the first bundle can be based on the identification of the portable computing device. In one arrangement, the identification of the portable computing device can be related to a performance function of an intended user of the portable computing device such that at least some of the content of the first bundle is related to the performance function. In another arrangement, responsive to the receipt of the first bundle, the portable computing device can be configured to gain access to an application repository that is associated with the client.
- The processor can be further operable to switch between a first account associated with a first user and a second account associated with a second user. Here, the first bundle can be assigned to the first account, and the processor can be further operable to, in response to a second activation notice associated with the second account, receive a second bundle assigned to the second account. The content of the first bundle assigned to the first account can be related to a first performance function, and the content of the second bundle is related to a second performance function. As an example, the first user and the second user may be both associated with the client.
- In one arrangement, the portable computing device can be configured to communicate with the managed services platform through the use of a consolidated polling technique. It is understood however, that other techniques may be employed to effect such a communication.
- A method of operating a portable computing device is also described herein. The method can include the steps of transmitting an activation notice to a managed services platform and in response to the activation notice, receiving from the managed services platform a first bundle that is associated with a client. In response to the receipt of the first bundle, GUI elements that are associated with a client can be displayed. The first bundle includes predefined applications, and the content of the first bundle is determined at least in part by the client. As an option, the predefined applications of the first bundle can be from an application repository that is associated with the client.
- Transmitting an activation notice to the managed services platform can further include transmitting an identification that is unique to the portable computing device. In addition, at least some of the content of the first bundle can be based on the identification of the portable computing device. In one particular arrangement, the identification of the portable computing device can be related to a performance function of an intended user of the portable computing device such that at least some of the content of the first bundle is related to the performance function. Responsive to the receipt of the first bundle, access to an application repository that is associated with the client can be gained or permitted.
- The method can further include the step of switching between a first account associated with a first user and a second account associated with a second user in which the first bundle can be assigned to the first account. In response to a second activation notice associated with the second account, a second bundle can be received in which the second bundle can be assigned to the second account. The content of the first bundle assigned to the first account can be related to a first performance function, and the content of the second bundle can be related to a second performance function. As an example but without limitation, the first user and the second user can be both associated with the client.
- In one arrangement, communications with the managed services platform can be conducted through a consolidated polling technique. It is understood, however, that other suitable techniques for communications with the platform are within contemplation here.
- Another method of operating a portable computing device is described herein. This method can include the steps of receiving the portable computing device based on an assigned performance function and transmitting an activation notice from the portable computing device to a managed services platform. For example, a company may assign the computing device to one of its employees who has a particular job function, and the employee may then cause an activation notice to be transmitted from the computing device. The method can also include the step of receiving—from the managed services platform—a first bundle that can be associated with a client (e.g., the employee) and that can be related to the assigned performance function. In response to the receipt of the first bundle, GUI elements that are associated with the client can be displayed. As an example, the client may assign the performance function. In addition, the first bundle may include predefined applications, and the content of the first bundle can be determined at least in part by the client based on the performance function.
- A computer program product is also described herein. The computer program product can be a computer readable storage medium having stored thereon computer readable program code. When executed by a system including a processor and a memory, the computer readable program code can cause the system to transmit an activation notice to a managed services platform and in response to the activation notice, receive from the managed services platform a first bundle that is associated with a client. In response to the receipt of the first bundle, the program code can also cause the system to display GUI elements that are associated with a client. The first bundle may include predefined applications, and the content of the first bundle can be determined at least in part by the client.
- A system for approving applications is also described herein. The system can include a first computing device that can be configured to present a first interface to permit application developers to submit applications for approval for selective publication in a first application repository associated with a first client and a second application repository associated with a second client. The system can also include a second computing device that can be communicatively coupled to the first computing device. The second computing device can be configured to present a second interface to permit the approval of submitted applications for the selective publication in the first application repository and the second application repository. If a submitted application is approved, the second computing device can be configured to notify the first computing device that the submitted application has been approved.
- The first computing device can be further configured to enable the upload of applications prior to being submitted for approval. In addition, the first computing device can be further configured to present an uploaded application and information associated with the uploaded application. As an example, the information includes one or more of the following items: an application name; a language type; a category; a version; a rating; a licensing model; or a transaction price. The first computing device can be further configured to enable the selection of the information prior to the uploaded application being submitted for approval. In one arrangement, the first computing device can be further configured to push the uploaded application to or pull the uploaded application from a testing device.
- The second computing device can be further configured to enable a user to permit the rejection of a submitted application. In addition, the second computing can be further configured to notify the first computing device when the submitted application has been rejected.
- The first computing device can be further configured to present one or more of the submitted applications. In one arrangement, the submitted applications can be assigned a status indicator at the first computing device that provides information as to the stage of review for approval for a submitted application. For example, once an application is submitted for approval, the status indicator can indicate the submitted application as being in a pending state. As another example, once a submitted application is approved for publication, the status indicator can indicate the approved application as being in an approved state. In yet another example, once an approved application is published in either the first application repository or the second application repository, the status indicator can indicate the published application as being in a published state. Conversely, if a submitted application is rejected for approval for publication, the status indicator may indicate the submitted application as being rejected. In addition, if an application has been upgraded, the status indicator may indicate the application as being upgraded. The upgraded application can be a submitted application, a published application or a rejected application.
- The first computing device can be further configured to provide performance data relating to a submitted application once the application is published in the first application repository or the second application repository. In addition, the first computing device can be further configured to provide cumulative performance data relating to a plurality of published applications in the first application repository or the second application repository. As an option, the first computing device can be further configured to selectively isolate performance data relating to submitted applications such that access to such performance data is restricted. This can prevent sensitive data from being seen by unauthorized individuals, for example.
- The second computing device, in one arrangement, can be further configured to receive the submitted application, and the second interface can enable the selection of an approval indicator or a rejection indicator. If the submitted application is approved, the second computing device may notify the first computing device of the approval of the submitted application upon the selection of the approval indicator. The second computing device can be further configured to notify the first computing device of the rejection of a submitted application upon the selection of the rejection indicator. As another option, the second computing device can be further configured to provide the first computing device with rejection information when notifying the first computing device of the rejection of the submitted application.
- The second computing device can be further configured to present the submitted application and to provide information associated with the submitted application. The following items are examples of such information: an application name; a language type; a category; a version; a rating; a licensing model; or a transaction price.
- In one arrangement, the second computing device can be further configured to push the submitted application to or pull the submitted application from a testing device. The second computing device can be further configured to notify a third computing device that the submitted application has been approved. The third computing device can be configured to notify operators of the first application repository and the second application repository of the approval of the submitted application.
- A method for approving applications is also described herein. The method can include the step of presenting a first interface to permit application developers to submit applications for approval for selective publication in a first application repository associated with a first client and a second application repository associated with a second client. The method can also include the steps of presenting a second interface to permit the approval of submitted applications for the selective publication in the first application repository and the second application repository. If a submitted application is approved, the application developer can be notified that the submitted application has been approved.
- The method can further include the steps of enabling the upload of applications prior to being submitted for approval and presenting an uploaded application and information associated with the uploaded application. As an example, the information can include one or more of the following items: an application name; a language type; a category; a version; a rating; a licensing model; or a transaction price. The method can also include the step of enabling the selection of the information prior to the uploaded application being submitted for approval.
- One or more of the applications can be tested. As such, the method can include the steps of pushing the uploaded application to a testing device or pulling the uploaded application from a testing device.
- In another arrangement, the method can include the steps of enabling a user to permit the rejection of a submitted application and notifying the application developer that the submitted application has been rejected. The method can also include the steps of presenting one or more of the submitted applications and assigning a status indicator to the presented submitted applications. In particular, the status indicator can provide information as to the stage of review for approval for a submitted application. For example, once an application is submitted for approval, assigning a status indicator can include assigning a status indicator to the submitted application that indicates that the application is in a pending state. As another example, once a submitted application is approved for publication, assigning a status indicator can include assigning a status indicator to the approved application that indicates that the application is in an approved state. In yet another example, once an approved application is published in either the first application repository or the second application repository, assigning a status indicator can include assigning a status indicator to the published application that indicates that the application is in a published state.
- There are several other examples to consider. Specifically, if a submitted application is rejected for approval for publication, assigning a status indicator can include assigning a status indicator that indicates that the submitted application is in a rejected state. If an application has been upgraded, assigning a status indicator can include assigning a status indicator that indicates that the application is upgraded. The upgraded application can be a submitted application, a published application or a rejected application.
- The method can also include the step of providing performance data relating to a submitted application once the application is published in the first application repository or the second application repository. Cumulative performance data relating to a plurality of published applications in the first application repository or the second application repository may also be provided. The method can also include the step of selectively isolating performance data relating to submitted applications such that access to such performance data is restricted.
- In one embodiment, the method can include the steps of receiving the submitted application and enabling the selection of an approval indicator or a rejection indicator. As an example, the submitted application may be approved, and a notification of the approval of the submitted application can be provided upon the selection of the approval indicator. As another example, a notification of the rejection of a submitted application can be provided upon the selection of the rejection indicator. Providing a notification of the rejection of the submitted application can include providing rejection information when providing notification of the rejection of the submitted application. The method can further include the steps of presenting a third interface that is configured to indicate that the submitted application has been approved and notifying operators of the first application repository and the second application repository of the approval of the submitted application.
- Another method for approving applications is also described herein. The method can include the step of presenting a first interface that is configured to permit an application developer to submit an application for approval for selective publication in a first application repository associated with a first client and in a second application repository associated with a second client. The method can also include the steps of presenting a second interface that is configured to enable the approval of the submitted application, approving the submitted application and notifying the application developer that the submitted application has been approved. The method can also include the step of notifying a managing entity that the submitted application is available for publication in the first application repository that is assigned to and associated with the first client and available for publication in the second application repository that is assigned to and associated with the second client. The term “available for publication” is defined as actually being published or being in a condition that enables publication.
- A computing device for accepting applications for selective publication in multiple application repositories is also described herein. The computing device can include a display that is configured to present one or more applications that may be received from an application developer and a processor that can be communicatively coupled to the display. The processor can be operable to receive a publication command for a submitted application and in response to the receipt of the publication command, can cause the transmission of the submitted application to an approval entity for at least possible publication of the submitted application in a first application repository assigned to a first client and in a second application repository assigned to a second client. “At least possible publication” includes actual publication of the application in the first or second application repositories or a condition in which the application is able to be published in the first or second application repositories.
- The processor can be further operable to cause the display of performance data relating to the submitted application once the submitted application is published in the first application repository or the second application repository. In addition, the processor can be further operable to receive a notification that the submitted application has been approved for publication in the first application repository or the second application repository.
- A method for accepting applications for selective publication in multiple application repositories is also described herein. The method can include the steps of receiving one or more applications and receiving a publication command for a submitted application. The term “publication command” is defined as an indication that an application is to be submitted or has been submitted for approval for publication in an application repository. In response to the receipt of the publication command, the submitted application can be sent to an approval entity for at least possible publication of the submitted application in a first application repository assigned to a first client and in a second application repository assigned to a second client.
- The method can also include the step of presenting performance data relating to the submitted application once the submitted application is published in the first application repository or the second application repository. In addition, the method can include the step of receiving a notification that the submitted application has been approved for publication in the first application repository or the second application repository.
- A computing device for accepting and approving applications for selective publication in multiple application repositories is also described herein. The device can include a display that is configured to present one or more applications that are submitted for approval and a processor that is communicatively coupled to the display. The processor can be operable to receive an approval command for a submitted application. An “approval command” is defined as an indication that a submitted application meets the requirements for at least possible publication in an application repository. In response to the receipt of the approval command, the processor can be further operable to notify a managing entity that the submitted application is available for publication in a first application repository assigned to a first client and in a second application repository assigned to a second client.
- In one arrangement, the computing device is communicatively coupled to a developer computing device and the processor is further operable to notify the developer computing device when the submitted application has been made available for publication in the first client application repository and the second client application repository. In another arrangement, the processor can be further operable to receive a rejection command for a submitted application and in response to the receipt of the rejection command, notify the developer computing device of the rejection of the submitted application.
- Yet another method for accepting and approving applications for selective publication in multiple application repositories is described herein. The method can include the steps of presenting one or more applications that are submitted for approval and receiving an approval command for a submitted application. In response to the receipt of the approval command, a managing entity can be notified that the submitted application is available for publication in a first application repository assigned to a first client and in a second application repository assigned to a second client. The method can further include the step of notifying a developer computing device when the submitted application has been made available for publication in the first client application repository and the second client application repository. In another arrangement, the method can include the steps of receiving a rejection command for a submitted application and in response to the receipt of the rejection command, notifying the developer computing device of the rejection of the submitted application.
- A computer program product is described herein. The computer program product can include a computer readable storage medium having stored thereon computer readable program code. When executed by a system comprising a processor and a memory, the program code causes the system to receive one or more applications and receive a publication command for a submitted application. The program code can also cause the system to—in response to the receipt of the publication command—send the submitted application to an approval entity for at least possible publication of the submitted application in a first application repository assigned to a first client and in a second application repository assigned to a second client.
- Yet another computer program product is described herein. The computer program product can include a computer readable storage medium having stored thereon computer readable program code. When executed by a system comprising a processor and a memory, the program code causes the system to present one or more applications that are submitted for approval and receive an approval command for a submitted application. The program code can also cause the system to—in response to the receipt of the approval command—notify a managing entity that the submitted application is available for publication in a first application repository assigned to a first client and in a second application repository assigned to a second client.
- A managed services portal is also described herein in which the portal can include one or more user interface elements that can be configured to enable a user to make selections associated with the management of services for a first client portal and a second client portal. The first client portal can be assigned a first application repository that is associated with the first client portal, and the second client portal can be assigned a second application repository that is associated with the second client portal. The managed services portal can also include a processor that is communicatively coupled to the user interface elements. The processor can be operable to receive a notification of an application that has met an approval threshold, and to cause the presentation of the application. The processor can be further operable to cause the transmission of the availability of the application to the first client portal for publication in the first application repository and to cause the transmission of the availability of the application to the second client portal for publication in the second application repository.
- In one arrangement, the managed services portal can be associated with a managing entity, and the managing entity can be assigned a third application repository. The third application repository can be associated with the managed services portal, and the processor can be further operable to cause the publication of the application in the third application repository.
- The processor can be further operable to cause the presentation of the application in an available category or an in-house category or to cause the presentation of an application that has not yet met an approval threshold in a pending category. The processor can be further operable to cause the presentation of an application that has been published in a third application repository in a published category. The presentation of the application may include an identification of the application and one or more of the following exemplary, non-limiting parameters: a description of the application; an identification of the developer of the application; a category of the application; a version of the application; a creation date of the application; a most recent update of the application; a rating of the application; a licensing model of the application; a cumulative user rating of the application; or a transactional fee for the application. In one arrangement, the licensing model is selectable from one of the following exemplary, non-limiting arrangements: a free model; a subscription-based model; a floating model; a volume model; or a paid model.
- The processor can be further operable to cause the application to be pushed to or pulled from one or more testing devices. In addition, the managed services portal and the testing device can both be associated with a managing entity.
- In another arrangement, the processor can be further operable to cause a global addition of the application to a plurality of portable computing devices or a global removal of the application from the plurality of portable computing devices. The managed services portal can be associated with a managing entity, one or more portable computing devices may also be associated with the managing entity, and a display can be one of the user interface elements. In this case, the processor can be further operable to cause the presentation of at least some of the portable computing devices on the display. As an example, the presentation of the portable computing devices can be such that the portable computing devices are segmented into one or more distinct groups. As another example, the managed services portal can also include a searching feature that is configured to enable the portable computing devices to be searched individually or by the groups.
- In one embodiment, the processor can be further operable to generate a message for selective transmission to the portable computing devices such that the message can be sent to the portable computing devices on an individual basis, a group basis or a broadcast basis. Also, the presentation of a portable computing device may include a listing of applications that are installed on the portable computing device or that are available for installation on the portable computing device. Further, the processor can be further operable to enable the installation of applications on a portable computing device or the removal of applications on the portable computing device on an individual basis, a group basis or a broadcast basis. The processor can further be operable to enable the management of certificates on the portable computing devices on an individual basis, a group basis or a broadcast basis.
- As an example, one of the user interface elements can be a display, and the processor can be further operable to cause an arrangement to be shown on the display. The arrangement may demonstrate an application repository relationship between the managed services portal, the first client portal and the second client portal. In another embodiment, the first client portal can be associated with one or more first sub-client portals or the second client portal can be associated with one or more second sub-client portals. The arrangement can further demonstrate an application repository relationship between the managed services computing portal, the first and second client portals and the first and second sub-client portals, if such sub-client portals exist. As an example, the arrangement that the processor is operable to cause to be shown on the display can be a hierarchical arrangement.
- In one embodiment, the processor can be further operable to cause the selective presentation of information relating to an application repository associated with the managed services portal. In addition, the processor can be operable to cause the selective presentation of information relating to an application repository associated with the first client portal, the first sub-client portal, the second client portal or the second sub-client portal.
- As an example, the presented information may include at least one of the following: identification of an application repository managing entity and one or more security keys; identification of one or more certificates; or identification of settings or applications. As another example, the settings can include one or more of a VPN setting, a location services setting, an application repository control setting or a firmware setting. The processor can be further operable to cause an editing of the settings, the certificates or the applications. In yet another example, the processor can be further operable to present a schedule rollout option to set a delivery schedule for the editing of the settings, the certificates or the applications.
- Delivery of any settings, certificates or applications may be intended for portable computing devices that may be assigned to the application repository associated with the managed services portal. In one arrangement, the settings and the applications may be default settings and default applications. Also, the processor can be further operable to receive a control notification, and in response to the receipt of the control notification, the managed services portal can be operable to control the operation of the first application repository of the first client portal, the second application repository of the second client portal, an application repository of the first sub-client portal or an application repository of the second sub-client portal.
- The managed services portal can be operable to control the operation of the first application repository of the first client portal, the application repository of the first sub-client portal, the second application repository of the second client portal and the application repository of the second sub-client portal. This control can be by at least one of causing the publication of the application in the first client portal application repository, the second client portal application repository, the first sub-client portal application repository or the second sub-client portal application repository or causing the selective presentation of information relating to the first client portal application repository, the second client portal application repository, the first sub-client portal application repository or the second sub-client portal application repository.
- The processor can be further operable to receive a control notification. In response to the receipt of the control notification, the managed services portal can be operable to provide settings or applications to portable computing devices that are assigned to the first client portal, the second client portal, the first sub-client portal or the second sub-client portal. As an example, the settings and the applications may be default settings and default applications. When the processor receives the control notification, the processor can be further operable to generate messages and cause them to be transmitted to the portable computing devices that are assigned to the first client portal, the second client portal, the first sub-client portal or the second sub-client portal.
- One or more portable computing devices may be associated with the first client portal, the first sub-client portal, the second client portal or the second sub-client portal, and the processor can be further operable to receive a control notification. In response to the receipt of the control notification, the processor can be further operable to selectively cause the removal or modification of one or more applications installed on the portable computing devices of the first client portal, the first sub-client portal, the second client portal or the second sub-client portal. In response to the receipt of the control notification, the processor can be further operable to also cause the installation of one or more applications on the portable computing devices of the first client portal, the first sub-client portal, the second client portal or the second sub-client portal. In one arrangement, the processor can be further operable to cause the removal, modification or installation of the applications on an individual basis, a group basis or a global basis.
- The managed services portal may be associated with a managing entity, and one or more portable computing devices may be associated with the managing entity. The processor can be further operable to cause the presentation of user identifications that may be associated with the portable computing devices. The portable computing devices that are associated with the managing entity can include portable computing devices that may be assigned to an application repository of the managing entity, portable computing devices that are assigned to application developers who develop applications for the application repository of the managing entity or portable computing devices that are assigned to testing personnel. The processor can be further operable to enable access control to at least some of the portable computing devices that are associated with the user identifications.
- One or more portable computing devices may be associated with the first client portal or the second client portal, and the processor can be further operable to receive a control notification. In response to the control notification, the processor can be further operable to cause the presentation of user identifications that are associated with the portable computing devices that are associated with the first client portal or the second client portal.
- One or more additional portable computing devices may be associated with the first client portal or the second client portal. The processor can be further operable to cause the presentation of at least some of the portable computing devices associated with the first client portal or the second client portal on the display. The portable computing devices may be presented as available portable computing devices or provisioned portable computing devices. The processor can be further operable to cause an available portable computing device to become a provisioned portable computing device if, for example, the processor receives a control notification.
- In yet another embodiment, the processor can be further operable to receive a notification that a firmware update is available for one or more portable computing devices that are associated with the first client portal and to receive a notification that a firmware update is available for one or more portable computing devices that are associated with the second client portal. The processor can be further operable to cause the transmission of the availability of the firmware update for the first client portal portable computing devices to the first client portal and cause the transmission of the availability of the firmware update for the second client portal portable computing devices to the second client portal.
- The processor can be further operable to cause the presentation of one or more bundles. As an example, the bundles can be assigned to one or more performance functions, and the bundles can contain information that may be based on their assigned performance function. In addition, the information contained in the bundles can include one or more configuration settings or one or more applications, and the configuration settings and the applications may be arranged based on the assigned performance function. The processor can be further operable to enable the information contained in the bundles to be edited such that the configuration settings or the applications may be modified.
- In another embodiment, the bundles may be designated for users associated with a managing entity, and the managed services portal can be associated with the managing entity or the bundles may be associated with the first client portal or the second client portal. The processor can be further operable to enable the managing entity to modify the bundles associated with the first client portal or the second client portal if, for example, the managed services portal has respective authority from the first client portal and the second client portal. In another arrangement, the processor can be further operable to selectively generate a modification signal in response to the information contained in a bundle being edited such that modifications of the configuration settings or the applications may be dynamically effected on one or more portable computing devices that have already received the bundles.
- A method for managing services is also described herein. The method can include the step of enabling a user to make selections associated with the management of services for a first client portal and a second client portal. The first client portal can be assigned a first application repository that can be associated with the first client portal, and the second client portal can be assigned a second application repository that can be associated with the second client portal. The method can also include the steps of receiving a notification of an application that has met an approval threshold, presenting the application, transmitting the availability of the application to the first client portal for publication in the first application repository and transmitting the availability of the application to the second client portal for publication in the second application repository.
- In one arrangement, enabling the user to make selections associated with the management of services for a first client portal and a second client portal further includes enabling the user to make the selections through a managed services portal that can be associated with a managing entity. The managed services portal can be assigned a third application repository, and the method can further include publishing the application in the third application repository.
- As an example, presenting the application further includes presenting the application in an available category, an in-house category or a published category. The method can also include the step of presenting an application that has not yet met an approval threshold in a pending category. As another example, presenting the application can further include presenting the application in the published category if the application has been published in a third application repository.
- Presenting the application can further include presenting an identification of the application and one or more of the following exemplary, non-limiting parameters: a description of the application; an identification of the developer of the application; a category of the application; a version of the application; a creation date of the application; a most recent update of the application; a rating of the application; a licensing model of the application; a cumulative user rating of the application; or a transactional fee for the application. The licensing model can be selectable from one of the following arrangements: a free model; a subscription-based model; a floating model; a volume model; or a paid model.
- The method can further include the step of pushing the application to or pulling the application from one or more testing devices. As an example, the testing devices can be associated with a managing entity. The method can also include the steps of performing a global addition of the application to a plurality of portable computing devices or performing a global removal of the application from the plurality of portable computing devices.
- One or more portable computing devices can be associated with a managed services portal, and the method can further include presenting at least some of the portable computing devices associated with the managed services portal. Presenting the portable computing devices can further include presenting the portable computing devices such that the portable computing devices are segmented into one or more distinct groups. In another embodiment, the method also includes the steps of presenting a searching feature that is configured to enable searching of the portable computing devices and searching the portable computing devices in accordance with an individual or group basis. The method can further include the steps of generating a message for selective transmission to the portable computing devices and transmitting the message to the portable computing devices on an individual basis, a group basis or a broadcast basis. In another embodiment, presenting the portable computing devices can further include presenting a listing of applications that are installed on a portable computing device or that are available for installation on the portable computing device.
- The method can also include the step of enabling the installation of applications on a portable computing device or the removal of applications on the portable computing device on an individual basis, a group basis or a broadcast basis. Similarly, the method can include the step of enabling the management of certificates on the portable computing devices on an individual basis, a group basis or a broadcast basis.
- In one embodiment, the method can include the step of displaying an arrangement that demonstrates an application repository relationship between a managed services portal and the first and second client portals. As an example, the managed services portal may oversee the management of services for the first client portal and the second client portal. The first client portal can be associated with one or more first sub-client portals, or the second client portal can be associated with one or more second sub-clients portals. The arrangement can further demonstrate an application repository relationship between the managed services computing device, the first and second client portals and first and second sub-client portals, if such sub-client portals exist. As an example, the arrangement can be in a hierarchical form.
- The method can also include the step of selectively presenting information relating to an application repository associated with the managed services portal and the step of selectively presenting information relating to an application repository for the first client portal, the first sub-client portal, the second client portal or the second sub-client portal. As an example, the presented information can include at least one of the following: identification of an application repository managing entity and one or more security keys; identification of one or more certificates; or identification of settings or applications. As another example, the settings can include one or more of a VPN setting, a location services setting, an application repository control setting or a firmware setting.
- The method can also include the steps of editing the settings or the applications, and presenting a schedule rollout option to set a delivery schedule for the editing of the settings or the applications. The method may also include the step of delivering settings or applications to portable computing devices that are assigned to the managed services computing device. As an example, the settings and the applications can be default settings and default applications.
- In another arrangement, the method can further include the steps of receiving a control notification, and in response to the receipt of the control notification, at least partially controlling the operation of the application repository of the first client portal, the application repository of the second client portal, an application repository of the first sub-client portal or an application repository of the second sub-client portal. In one example, controlling the operation of the application repository of the first client portal, the application repository of the first sub-client portal, the application repository of the second client portal and the application repository of the second sub-client portal is conducted by at least one of causing the publication of the application in the first client portal application repository, the second client portal application repository, the first sub-client portal application repository or the second sub-client portal application repository or causing the selective presentation of information relating to the first client portal application repository, the second client portal application repository, the first sub-client portal application repository or the second sub-client portal application repository.
- The method can include the steps of receiving a control notification, and in response to the receipt of the control notification, providing settings or applications to portable computing devices that are assigned to the first client portal, the second client portal, the first sub-client portal or the second sub-client portal. As an example, the settings and the applications are default settings and default applications. When the control notification is received, messages to be delivered to the portable computing devices that are assigned to the first client portal, the second client portal, the first sub-client portal or the second sub-client portal can be generated. The method can further include the step of transmitting the messages to the portable computing devices that are assigned to the first client portal, the second client portal, the first sub-client portal or the second sub-client portal.
- One or more portable computing devices are associated with the first client portal, the first sub-client portal, the second client portal or the second sub-client portal, and the method can further include the steps of receiving a control notification, and in response to the receipt of the control notification, selectively causing the removal or modification of one or more applications installed on the portable computing devices of the first client portal, the first sub-client portal, the second client portal or the second sub-client portal. Also in response to the receipt of the control notification, the method can further include the step of causing the installation of one or more applications on the portable computing devices of the first client portal, the first sub-client portal, the second client portal or the second sub-client portal. As an example, the removal, modification or installation of the applications is on an individual basis, a group basis or a global basis.
- In another embodiment, one or more portable computing devices may be associated with a managed computing services device, and the method can further include the step of presenting user identifications that are associated with the portable computing devices. The portable computing devices that are associated with the managed services portal may include portable computing devices that are assigned to an application repository associated with the managed services portal, portable computing devices that are assigned to application developers who develop applications for the application repository of the managing entity and portable computing devices that are assigned to testing personnel.
- The method can further include the step of enabling access control to at least some of the portable computing devices that are associated with the user identifications. One or more portable computing devices may be associated with the first client portal or the second client portal. Thus, the method can further include receiving a control notification and in response to the control notification, presenting user identifications that are associated with the portable computing devices that are associated with the first client portal or the second client portal. One or more additional portable computing devices may be associated with the first client portal or the second client portal, and the method may further include presenting at least some of the portable computing devices associated with the first client portal or the second client portal.
- Presenting the portable computing devices associated with the first client portal or the second client portal can include, for example, presenting the portable computing devices associated with the first client portal or the second client portal as available portable computing devices. The method can further include the step of converting an available portable computing device to a provisioned portable computing device if a control notification is received.
- In another arrangement, the method can include the steps of receiving a notification that a firmware update is available for one or more portable computing devices that are associated with the first client portal and receiving a notification that a firmware update is available for one or more portable computing devices that are associated with the second client portal. As such, the method can include the steps of transmitting the availability of the firmware update for the first client portable computing devices to the first client portal and transmitting the availability of the firmware update for the second client portable computing devices to the second client portal.
- In yet another arrangement, the method can further include the step of presenting one or more bundles in which the bundles can be assigned to one or more performance functions. As an example, the bundles can contain information that is based on their assigned performance function. As another example, the information contained in the bundles may include one or more configuration settings or one or more applications, and the configuration settings and the applications can be arranged based on the assigned performance function. The method can further include the step of enabling the information contained in the bundles to be edited such that the configuration settings or the applications may be modified.
- As another example, the bundles may be designated for users associated with a managed services computing device, or the bundles may be designated for the first client portal and the second client portal. The method can also include the step of enabling the managed services portal to modify the bundles designated for the first client portal and the second client portal if the managing entity has respective authority from the first client portal and the second client portal. The method can further include the step of selectively generating a modification signal in response to the information contained in a bundle being edited such that modifications of the configuration settings or the applications may be dynamically effected on one or more portable computing devices that have already received the bundles.
- Another method of managing services is described herein. The method can include the step of presenting an interface to enable selections associated with the management of services for a first client portal and a second client portal. The first client portal can be assigned a first application repository that can be associated with the first client portal, and the second client portal can be assigned a second application repository that can be associated with the second client portal. The method can also include the steps of receiving a notification of an application that has met an approval threshold and transmitting the availability of the application to the first client portal for publication in the first application repository. The availability of the application can be transmitted to the second client portal for publication in the second application repository.
- Another managed services portal that is associated with a managing entity is described herein. The managed services portal can include one or more user interface elements configured to enable a user to make selections associated with the management of services for a first client portal and a second client portal. The first client portal can be assigned a first application repository that can be associated with the first client portal, the second client portal can be assigned a second application repository that can be associated with the second client portal and the managing entity can be assigned a third application repository that can be associated with the managing entity. The managed services portal can also include a processor that can be communicatively coupled to the user interface elements. As an example, the processor can be operable to receive a notification of an application that has met an approval threshold, cause the presentation of the application, cause the transmission of the availability of the application to the first client portal for publication in the first application repository, cause the transmission of the availability of the application to the second client portal for publication in the second application repository and cause the publication of the application in the third application repository.
- Yet another method of managing services is described herein. The method can include the step of presenting an interface to enable selections associated with the management of services for a first client portal and a second client portal by a managed services portal. The first client portal can be assigned a first application repository that can be associated with the first client portal, and the second client portal can be assigned a second application repository that can be associated with the second client portal. The method can also include the steps of receiving a notification of an application that has met an approval threshold, transmitting the availability of the application to the first client portal for publication in the first application repository and transmitting the availability of the application to the second client portal for publication in the second application repository. The method can also include the step of publishing the application in a third application repository that is assigned to and associated with the managed services portal.
- A method for managing configuration updates for a first client portal and a second client portal is described herein. The method can include the steps of receiving a notification that a first configuration update is available for the first client portal and that a second configuration update is available for the second client portal and notifying the first client portal that the first configuration update is available for one or more portable computing devices that are associated with the first client portal. The first client portal can determine whether to provide the first configuration update to the first client portal portable computing devices. This method can further include the step of notifying the second client portal that the second configuration update is available for one or more portable computing devices that are associated with the second client portal. The second client portal can determine whether to provide the second configuration update to the second client portal portable computing devices.
- The method can further include the step of notifying—through the first client portal—a first sub-client portal that is associated with the first client portal that the first configuration update is available for one or more portable computing devices that are associated with the first-sub client portal. The first sub-client portal may determine whether to provide the first configuration update to the first sub-client portal portable computing devices. As an example, the configuration update can at least include a firmware update.
- A managed services computing device for managing one or more bundles is also described herein. The managed services computing device can include one or more user interface elements configured to enable a user to assign a first bundle to a first performance function category, assign a second bundle to a second performance function category and select the contents of the first and second bundles. The managed services computing device can also include a processor that can be communicatively coupled to the user interface elements. As an example, the processor can be operable to generate the first and second bundles by loading the contents of the first and second bundles and to direct the storage of the first and second bundles for selective transmission to one or more portable computing devices.
- The processor can be further operable to, in response to an editing process conducted through the user interface elements, correspondingly edit the contents of the first bundle or the second bundle. As an example, the first bundle and the second bundle may have been respectively received at a first portable computing device and a second portable computing device and the processor is further operable to generate a signal that is configured to cause the contents of the first bundle on the first portable computing device or the contents of the second bundle on the second portable computing device to be correspondingly edited.
- A method for managing one or more bundles is also described herein. The method can include the steps of assigning a first bundle to a first performance function category, assigning a second bundle to a second performance function category, selecting the contents of the first and second bundles, generating the first and second bundles by loading the contents of the first and second bundles and moving to storage the first and second bundles for selective transmission to one or more portable computing devices. The method can also include the steps of editing the contents of the first bundle or the second bundle, forwarding the first bundle to a first portable computing device, forwarding the second bundle to a second portable computing device, detecting the editing of the contents of the first bundle or the second bundle and generating a signal that is configured to cause the contents of the first bundle or the second bundle to be correspondingly edited.
- Yet another managed services platform is described herein. The managed services platform can include a first computing device that can be configured to present a first interface to permit application developers to submit applications for eventual publication, a second computing device that can be communicatively coupled to the first computing device and that can be configured to present a second interface to permit the approval of submitted applications and a third computing device that can be communicatively coupled to the second computing device. The third computing device can be configured to receive a notification from the second computing device that a submitted application has been approved, transmit the availability of the approved application to a first client portal for publication in a first application repository that is associated with the first client portal and transmit the availability of the approved application to a second client portal for publication in a second application repository that is associated with the second client portal.
- A method of managing applications is also described herein. The method can include the steps of receiving an application that has been submitted for approval for possible publication in a first application repository that may be associated with a first client portal and a second application repository that may be associated with a second client portal and approving the submitted application for the possible publication in the first application repository and the second application repository. The method can also include the steps of receiving a notification that the submitted application has been approved and in response to the receipt of the notification, transmitting the availability of the approved application to the first client portal for publication in the first application repository. In response to the receipt of the notification, the availability of the approved application can be transmitted to the second client portal for publication in the second application repository.
- A method of managing applications is also described herein. The method can include the step of receiving a notification that an application submitted for approval for possible publication in a first application repository that is associated with a first client portal and for possible publication in a second application repository that is associated with a second client portal has been approved. In response to the receipt of the notification, the availability of the approved application can be transmitted to the first client portal for publication in the first application repository. Also in response to the receipt of the notification, the availability of the approved application can be transmitted to the second client portal for publication in the second application repository.
- A computer program product is also described herein. The computer program product can include a computer readable storage medium having stored thereon computer readable program code. When executed by a system that includes a processor and a memory, the program code causes the system to enable a user to make selections associated with the management of services for a first client portal and a second client portal. The first client portal can be assigned a first application repository that can be associated with the first client portal, and the second client portal can be assigned a second application repository that can be associated with the second client portal. The program code can also cause the system to receive a notification of an application that has met an approval threshold, to present the application, to transmit the availability of the application to the first client portal for publication in the first application repository and to transmit the availability of the application to the second client portal for publication in the second application repository.
- A client computing device associated with a first client is also described herein. The client computing device includes one or more user interface elements configured to enable a user to make selections associated with the management of services for the first client. The client computing device can be assigned a first application repository. The client computing device includes a processor that is communicatively coupled with the user interface elements. The processor can be operable to receive a notification of the availability of an application for publication into the client computing device application repository. The notification can be from a managing computing device that may also provide notification of the availability of the application for publication into an application repository associated with a second client computing device. The processor can also be operable to selectively cause the publication of the available application into the client computing device application repository.
- The processor can be further operable to generate a publication notice for transmission to the managing computing device when the available application is published in the client computing device application repository. In addition, the client computing device can be communicatively coupled with a sub-client computing device that may be associated with a sub-client and may be assigned a sub-client computing device application repository. When the available application is published in the client computing device application repository, the processor can be further operable to generate a notification for transmission to the sub-client computing device that the application is available for publication in the sub-client computing device application repository.
- A system is also described herein in which the system can include a first computing device that can be associated with a first application repository and that can be configured to receive a notification of the availability of an application for publication in the first application repository, and in response, to selectively cause the publication of the available application in the first application repository. The system can also include a sub-client computing device that can be communicatively coupled to the first computing device and that can be associated with a sub-client. The sub-client computing device can be assigned a sub-client application repository. The sub-client computing device can be configured to receive a second notification of the availability of the application for publication in the sub-client computing device application repository when the application is published in the first application repository.
- A method for managing services for a first client is also described herein. The method can include the step of receiving a notification of the availability of an application for publication into an application repository associated with the first client portal. The notification can be from a managing computing device that can also provide notification of the availability of the application for publication into an application repository associated with a second client portal. The method can also include the step of selecting the available application for publication into the first client portal application repository such that the application is available for download from the first client portal application repository to computing devices that are associated with the first client portal but not for computing devices that are associated with the second client portal.
- The method can also include the step of generating a publication notice for transmission to the managing computing device when the available application is published in the first client portal application repository. As an example, the client computing device can be communicatively coupled with a sub-client computing device that can be associated with a sub-client and that can be assigned a sub-client computing device application repository. When the available application is published in the first client portal application repository, the method can further include the step of generating a notification for transmission to the sub-client computing device that the application is available for publication in the sub-client computing device application repository.
- A method for managing applications of a client portal and a sub-client portal is also described herein in which the client portal can be assigned a client portal application repository and the sub-client portal can be assigned a sub-client portal application repository. The method can include the step of receiving a notification of the availability of an application for publication in the client portal application repository, selecting the application for publication in the client portal application repository and in response to the publication of the application in the client portal application repository, notifying the sub-client portal of the availability of the application for publication in the sub-client portal application repository.
- A managed services computing device for managing configuration updates for a first client portal and a second client portal is also described herein. The managed services computing device can include a processor. The processor can be operable to receive a notification that a first configuration update is available for the first client portal and that a second configuration update is available for the second client portal. The processor can also be operable to generate a notification for the first client portal that the first configuration update is available for one or more portable computing devices that are associated with the first client portal. The first client portal can determine whether to provide the first configuration update to the first client portal portable computing devices. The processor can also be operable to generate a notification for the second client portal that the second configuration update is available for one or more portable computing devices that are associated with the second client portal. The second client portal may determine whether to provide the second configuration update to the second client portal portable computing devices.
- A managed services portal is also described herein. The managed services portal can include one or more user interface elements configured to enable a user to make selections associated with the management of services for one or more portable computing devices and a processor that can be communicatively coupled to the user interface elements. The processor can be operable to receive a request to determine a status of one or more of the portable computing devices or to cause an action to occur on one or more of the portable computing devices. The processor can be further operable to provide the status of the one or more portable computing devices or to effect the action on the one or more portable computing devices. The processor can be further operable to provide the status of the one or more portable computing devices or to effect the action on the one or more portable computing devices on an individual basis, a group basis or a global basis.
- As an example, a display can be one of the user interface elements, and the processor can be further operable to cause the presentation of at least some of the portable computing devices on the display. The managed services portal can also include a searching module that can be configured to enable the portable computing devices to be searched individually or by groups.
- In one arrangement, the processor can be further operable to effect the action on the one or more portable computing devices by generating a message for transmission to the portable computing devices and causing the delivery of the message to the portable computing devices. In another arrangement, the processor can be further operable to provide the status of the one or more portable computing devices by causing the presentation of a listing that includes applications that may be installed on a portable computing device or a listing that may include applications that may be available to be installed on the portable computing device.
- The processor can be further operable to effect the action on the one or more portable computing devices by causing the installation of applications on the portable computing devices or by causing the removal of applications from the portable computing devices. As an example, the installation of applications and the removal of applications may be executed in real-time or in accordance with a delivery schedule. The processor can be further operable to provide the status of the one or more portable computing devices by providing location information of the portable computing devices.
- The processor can be further operable to effect the action on the one or more portable computing devices by causing one or more of the following: locking at least a portion of a portable computing device; unlocking at least a portion of a portable computing device; logging a user in a portable computing device; logging a user out of a portable computing device; wiping at least a portion of the data on a portable computing device; restoring at least a portion of the data on a portable computing device that has been deleted from the portable computing device; resetting a portable computing device to one or more default settings; adding a user to a portable computing device; removing a user from a portable computing device; or ringing a portable computing device.
- The processor can be further operable to effect the action on the one or more portable computing devices by causing the delivery of content to the one or more portable computing devices. For example, the content can include one or more configuration settings or a firmware package. As another example, the delivery of content can be executed in real-time or in accordance with a delivery schedule.
- The processor can also be further operable to provide the status of the one or more portable computing devices by causing the presentation of user identifications that are associated with the portable computing devices. In another arrangement, the processor can be further operable to effect the action on the one or more portable computing devices by controlling access to a portable computing device that may be associated with one or more of the user identifications.
- The processor can be further operable to provide the status of the one or more portable computing devices by presenting the one or more portable computing devices as available portable computing devices or as provisioned portable computing devices. The processor can be further operable to effect the action on the one or more portable computing devices by causing an available portable computing device to become a provisioned portable computing device.
- In another arrangement, the processor can be further operable to cause the presentation of one or more bundles in which the bundles may be assigned to one or more performance functions, and the bundles can contain information that can be based on the assigned performance functions. As an example, the information can include configuration settings or applications. The applications may be default applications, and the processor can be further operable to enable an application to be designated as a default application for a bundle.
- The processor can be further operable to effect the action on the one or more portable computing devices by causing the delivery of a bundle to the portable computing devices. Moreover, the processor can be further operable to effect the action on the one or more portable computing devices by generating a modification signal in response to the information contained in a bundle being edited such that modifications of such information may be dynamically effected on portable computing devices that have already received the bundle.
- As an example, the configuration settings include one or more of the following: a password profile; a wireless protocol profile; a VPN profile; a hardware profile; or a certificate profile. The configuration settings may include one or more policies, and the policies can define one or more actions to be executed in response to a detected event. The policies can include one or more of the following: a VPN policy; a proxy policy; a blacklist policy; a whitelist policy; or a report policy.
- For example, the policy can be the VPN policy, and the action can include the implementation of one or more VPN settings. As another example, the policy can be the proxy policy, and the action can include the enablement of a proxy. In yet another example, the policy can be the blacklist policy, and the action can include blocking the download or installation of an application. In yet another example, the policy can be the whitelist policy, and the action can include allowing the download or installation of an application. In yet another example, the policy can be the report policy, and the action can include reporting a characteristic of the portable computing device.
- The processor can be further operable to cause the presentation of user identifications. As an example, the processor can be further operable to manage user identifications by at least controlling the access of the user identifications.
- A method for managing services is also described herein. The method can include the steps of enabling a user to make selections associated with the management of services for one or more portable computing devices and receiving a request to determine a status of one or more of the portable computing devices or to cause an action to occur on one or more of the portable computing devices. The method can also include the step of providing the status of the one or more portable computing devices or to effecting the action on the one or more portable computing devices. The status of the one or more portable computing devices can be provided or the action on the one or more portable computing devices can be effected on an individual basis, a group basis or a global basis.
- The method can further include the steps of presenting at least some of the portable computing devices on the display, and enabling the portable computing devices to be searched individually or by groups. As an example, the action on the one or more portable computing devices can be effected by generating a message for transmission to the portable computing devices and causing the message to be sent to the portable computing devices.
- As another example, the status of the one or more portable computing devices can be provided by presenting a listing that includes applications that can be installed on a portable computing device or a listing that can include applications that may be available to be installed on the portable computing device. The action on the one or more portable computing devices can be effected by selectively causing the installation of applications on the portable computing devices or selectively causing the removal of applications from the portable computing devices. Causing the installation of applications and the removal of applications can be such that the installation and removal may be executed in real-time or in accordance with a delivery schedule.
- The status of the one or more portable computing devices can be provided by providing location information of the portable computing devices. The action on the one or more portable computing devices can be effected by one or more of the following: locking at least a portion of a portable computing device; unlocking at least a portion of a portable computing device; logging a user in a portable computing device; logging a user out of a portable computing device; wiping at least a portion of the data on a portable computing device; restoring at least a portion of the data on a portable computing device that has been deleted from the portable computing device; resetting a portable computing device to one or more default settings; adding a user to a portable computing device; removing a user from a portable computing device; or ringing a portable computing device.
- The action on the one or more portable computing devices can be effected by delivering content to the one or more portable computing devices. For example, the content can include one or more configuration settings or a firmware package. The method can further include the step of executing the delivery of content in real-time or in accordance with a delivery schedule. The status of the one or more portable computing devices can be provided by causing the presentation of user identifications that are associated with the portable computing devices. Also, the action on the one or more portable computing devices can be effected by controlling access to a portable computing device that may be associated with one or more of the user identifications. As another example, the status of the one or more portable computing devices can be provided by presenting the one or more portable computing devices as available portable computing devices or as provisioned portable computing devices. As yet another example, the action on the one or more portable computing devices can be effected by causing an available portable computing device to become a provisioned portable computing device.
- The method can further include the step of presenting one or more bundles in which the bundles may be assigned to one or more performance functions, and the bundles can contain information that may be based on the assigned performance functions. As an example, the information of the bundles can include configuration settings or applications. As another example, the applications can be default applications, and the method can further include the step of designating an application as a default application for a bundle.
- In one arrangement, the action on the one or more portable computing devices can be effected by causing a bundle to be sent to the portable computing devices. In another arrangement, the action on the one or more portable computing devices can be effected by generating a modification signal in response to the information contained in a bundle being edited such that modifications of such information may be dynamically effected on portable computing devices that have already received the bundle.
- As an example, the configuration settings may include one or more of the following: a password profile; a wireless protocol profile; a VPN profile; a hardware profile; or a certificate profile. As another example, the configuration settings can include one or more policies, and the policies may define one or more actions to be executed in response to a detected event. For example, the policies may include one or more of the following: a VPN policy; a proxy policy; a blacklist policy; a whitelist policy; or a report policy.
- In one embodiment, the policy can be the VPN policy, and the action may include the implementation of one or more VPN settings. In another embodiment, the policy can be the proxy policy, and the action may include the enablement of a proxy. In another embodiment, the policy can be the blacklist policy, and the action may include blocking the download or installation of an application. In yet another embodiment, the policy can be the whitelist policy, and the action can include allowing the download or installation of an application. In yet another embodiment, the policy can be the report policy, and the action may include reporting a characteristic of the portable computing device.
- The method can also include the steps of presenting user identifications and managing user identifications by at least controlling the access of the user identifications.
- A managed services portal is also described herein. The managed services portal can include a display that can be configured to present representations of one or more portable computing devices and a processor that can be communicatively coupled to the display. The processor can be operable to receive a request to populate at least one of the portable computing devices with a bundle and to direct the delivery of the bundle to the portable computing devices. The bundle can include configuration settings and applications that may be selected at least partially based on performance functions associated with the portable computing devices. It is important to note that for all embodiments and arrangements described herein, content may be delivered to any number of portable computing devices, including on an individual basis, and is not necessarily limited to being delivered in bundles.
- As an example, the configuration settings include one or more of the following: a password profile; a wireless protocol profile; a VPN profile; a hardware profile; or a certificate profile. Also, the configuration settings may include one or more policies, and the policies define one or more actions to be executed in response to a detected event. For example, the policies include one or more of the following: a VPN policy; a proxy policy; a blacklist policy; a whitelist policy; or a report policy.
- A method of managing services is also described herein. The method can include the steps of presenting representations of one or more portable computing devices, receiving a request to populate at least one of the portable computing devices with a bundle and directing the delivery of the bundle to the portable computing devices. The bundle can include configuration settings and applications that are selected at least partially based on performance functions associated with the portable computing devices.
- In one arrangement, the configuration settings can include one or more of the following: a password profile; a wireless protocol profile; a VPN profile; a hardware profile; or a certificate profile. The configuration settings can include one or more policies, and the policies may define one or more actions to be executed in response to a detected event. The policies may include one or more of the following: a VPN policy; a proxy policy; a blacklist policy; a whitelist policy; or a report policy.
- Another method of managing services is described herein. The method can include the steps of presenting representations of one or more portable computing devices, generating one or more bundles that include configurations settings and applications that are selected at least partially based on performance functions associated with the portable computing devices, receiving a request to populate at least one of the portable computing devices with a bundle and directing the delivery of the bundle to the portable computing devices.
- Another managed services portal is described herein. The managed services portal can include one or more user interface elements that can be configured to enable a user to make selections associated with the management of services for a first set of portable computing devices and to enable a user to make selections associated with the management of services for a second set of portable computing devices. The managed services portal can also include a processor that can be communicatively coupled to the user interface elements. The processor can be operable to receive a first request to determine a status of one or more of the portable computing devices of the first set or to cause an action to occur on one or more of the portable computing devices of the first set and to provide the status of the one or more portable computing devices of the first set or to effect the action on the one or more portable computing devices of the first set. The processor can be further operable to provide the status of the one or more portable computing devices of the first set or to effect the action on the one or more portable computing devices of the first set on an individual basis, a group basis or a global basis.
- The processor can also be operable to receive a second request to determine a status of one or more of the portable computing devices of the second set or to cause an action to occur on one or more of the portable computing devices of the second set. If authorized, the processor can also be operable to provide the status of the one or more portable computing devices of the second set or to effect the action on the one or more portable computing devices of the second set. The processor can be further operable to provide the status of the one or more portable computing devices of the second set or to effect the action on the one or more portable computing devices of the second set on an individual basis, a group basis or a global basis.
- As an example, the first set of portable computing devices can be associated with a first entity, and the second set of portable computing devices can be associated with a second entity. As another example, the first entity can be a managing entity responsible for operating the managed services portal.
- A display is one of the user interface elements, and the processor can be further operable to cause the presentation of at least some of the portable computing devices of the second set on the display. The method can further include a searching module that can be configured to enable the portable computing devices of the second set to be searched individually or by groups.
- The processor can be further operable to effect the action on the one or more portable computing devices of the second set by, for example, generating a message for transmission to the portable computing devices and causing the delivery of the message to the portable computing devices. As another example, the processor can be further operable to provide the status of the one or more portable computing devices of the second set by causing the presentation of a listing that includes applications that are installed on a portable computing device of the second set or a listing that includes applications that are available to be installed on the portable computing device of the second set. The processor can also be further operable to effect the action on the one or more portable computing devices of the second set by causing the installation of applications on the portable computing devices of the second set or causing the removal of applications from the portable computing devices of the second set. The installation of applications and the removal of applications can be executed in real-time or in accordance with a delivery schedule.
- In one arrangement, the processor can be further operable to provide the status of the one or more portable computing devices of the second set by providing location information of the portable computing devices of the second set. The processor can be further operable to effect the action on the one or more portable computing devices of the second set by causing one or more of the following: locking at least a portion of a portable computing device of the second set; unlocking at least a portion of a portable computing device of the second set; logging a user in a portable computing device of the second set; logging a user out of a portable computing device of the second set; wiping at least a portion of the data on a portable computing device of the second set; restoring at least a portion of the data on a portable computing device of the second set that has been deleted from the portable computing device of the second set; resetting a portable computing device of the second set to one or more default settings; adding a user to a portable computing device of the second set; removing a user from a portable computing device of the second set; or ringing a portable computing device of the second set.
- The processor can be further operable to effect the action on the one or more portable computing devices of the second set by causing the delivery of content to the one or more portable computing devices of the second set. As an example, the content can include one or more configuration settings or a firmware package. The delivery of content can be executed in real-time or in accordance with a delivery schedule.
- The processor can be further operable to provide the status of the one or more portable computing devices of the second set by causing the presentation of user identifications that are associated with the portable computing devices of the second set. Moreover, the processor can be operable to effect the action on the one or more portable computing devices of the second set by controlling access to a portable computing device of the second set that may be associated with one or more of the user identifications.
- The processor can be further operable to cause the presentation of one or more bundles. As an example, the bundles can be assigned to one or more performance functions, and the bundles can contain information that may be based on the assigned performance functions. As a more specific example, the information may include configuration settings or applications. The applications may be default applications, and the processor can be further operable to enable an application to be designated as a default application for a bundle.
- The processor can be further operable to effect the action on the one or more portable computing devices of the second set by causing the delivery of a bundle to the portable computing devices of the second set. In another arrangement, the processor can be operable to effect the action on the one or more portable computing devices of the second set by generating a modification signal in response to the information contained in a bundle being edited such that modifications of such information may be dynamically effected on portable computing devices of the second set that have already received the bundle.
- As an example, the configuration settings can include one or more of the following: a password profile; a wireless protocol profile; a VPN profile; a hardware profile; or a certificate profile. As another example, the configuration settings can include one or more policies, and the policies may define one or more actions to be executed in response to a detected event. For example, the policies can include one or more of the following: a VPN policy; a proxy policy; a blacklist policy; a whitelist policy; or a report policy.
- In one embodiment, the policy can be the VPN policy, and the action may include the implementation of one or more VPN settings, while in another embodiment, the policy can be the proxy policy, and the action may include the enablement of a proxy. In another embodiment, the policy may be the blacklist policy, and the action cam includes blocking the download or installation of an application. In another embodiment, the policy can be the whitelist policy, and the action can include allowing the download or installation of an application. In yet another embodiment, the policy can be the report policy, and the action may include reporting a characteristic of the portable computing device.
- The processor can be further operable to cause the presentation of user identifications. In addition, the processor can be further operable to manage user identifications by at least controlling the access of the user identifications.
- Another method for managing services is also described herein. The method can include the steps of enabling a user to make selections associated with the management of services for one or more portable computing devices of a first set, enabling the user to make selections associated with the management of services for one or more portable computing devices of a second set, receiving a request to determine a status of one or more of the portable computing devices of the first set or to cause an action to occur on one or more of the portable computing devices of the first set and providing the status of the one or more portable computing devices of the first set or effecting the action on the one or more portable computing devices of the first set. The status of the one or more portable computing devices of the first set can be provided or the action on the one or more portable computing devices of the first set can be effected on an individual basis, a group basis or a global basis.
- The method can also include the steps of receiving a second request to determine a status of one or more portable computing devices of the second set or to cause an action to occur on one or more of the portable computing devices of the second set and if authorized, providing the status of the one or more portable computing devices of the second set or effecting the action on the one or more portable computing devices of the second set. The status of the one or more portable computing devices of the second set can be provided or the action on the one or more portable computing devices of the second set can be effected on an individual basis, a group basis or a global basis. The first set of portable computing devices can be associated with a first entity, and the second set of portable computing devices can be associated with a second entity. The first entity can be a managing entity responsible for operating the managed services portal.
- The method can further include the steps of presenting at least some of the portable computing devices of the second set on the display and enabling the portable computing devices of the second set to be searched individually or by groups. In one arrangement, the action on the one or more portable computing devices of the second set can be effected by generating a message for transmission to the portable computing devices of the second set and causing the message to be sent to the portable computing devices of the second set.
- In another arrangement, the status of the one or more portable computing devices of the second set can be provided by presenting a listing that includes applications that can be installed on a portable computing device of the second set or a listing that can include applications that may be available to be installed on the portable computing device of the second set.
- In yet another arrangement, the action on the one or more portable computing devices of the second set can be effected by selectively causing the installation of applications on the portable computing devices of the second set or selectively causing the removal of applications from the portable computing devices of the second set. As an example, causing the installation of applications and the removal of applications can be such that the installation and removal may be executed in real-time or in accordance with a delivery schedule.
- In one embodiment, the status of the one or more portable computing devices of the second set can be provided by providing location information of the portable computing devices of the second set. In another embodiment, the action on the one or more portable computing devices of the second set can be effected by one or more of the following: locking at least a portion of a portable computing device of the second set; unlocking at least a portion of a portable computing device of the second set; logging a user in a portable computing device of the second set; logging a user out of a portable computing device of the second set; wiping at least a portion of the data on a portable computing device of the second set; restoring at least a portion of the data on a portable computing device of the second set that has been deleted from the portable computing device of the second set; resetting a portable computing device of the second set to one or more default settings; adding a user to a portable computing device of the second set; removing a user from a portable computing device of the second set; or ringing a portable computing device of the second set.
- The action on the one or more portable computing devices of the second set can be effected by delivering content to the one or more portable computing devices of the second set. As an example, the content can include one or more configuration settings or a firmware package. The method can also include the step of executing the delivery of content in real-time or in accordance with a delivery schedule.
- In another embodiment, the status of the one or more portable computing devices of the second set can be provided by causing the presentation of user identifications that are associated with the portable computing devices of the second set. In yet another embodiment, the action on the one or more portable computing devices of the second set can be effected by controlling access to a portable computing device of the second set that is associated with one or more of the user identifications.
- The method can also include the step of presenting one or more bundles. For example, the bundles can be assigned to one or more performance functions, and the bundles may contain information that can be based on the assigned performance functions. The information of the bundles can include configuration settings or applications. The applications, for example, can be default applications, and the method can further include the step of designating an application as a default application for a bundle.
- In one arrangement, the action on the one or more portable computing devices of the second set can be effected by causing a bundle to be sent to the portable computing devices of the second set. In another arrangement, the action on the one or more portable computing devices of the second set can be effected by generating a modification signal in response to the information contained in a bundle being edited such that modifications of such information may be dynamically effected on portable computing devices of the second set that have already received the bundle.
- As an example, the configuration settings include one or more of the following: a password profile; a wireless protocol profile; a VPN profile; a hardware profile; or a certificate profile. As another example, the configuration settings may include one or more policies, and the policies may define one or more actions to be executed in response to a detected event. The policies can include, for example, one or more of the following: a VPN policy; a proxy policy; a blacklist policy; a whitelist policy; or a report policy.
- In one arrangement, the policy can be the VPN policy, and the action can include the implementation of one or more VPN settings. In one embodiment, the policy can be the proxy policy, and the action can include the enablement of a proxy. In another embodiment, the policy can be the blacklist policy, and the action may include blocking the download or installation of an application. In another embodiment, the policy can be the whitelist policy, and the action may include allowing the download or installation of an application. In yet another embodiment, the policy can be the report policy, and the action includes reporting a characteristic of the portable computing device.
- The method can also include the step of presenting user identifications. The method can further include the step of managing user identifications by at least controlling the access of the user identifications.
- A managed services portal that can be operated by a first entity is also described herein. The managed services portal can include one or more user interface elements that can be configured to enable the first entity to make selections associated with the management of services for portable computing devices associated with a second entity. The managed services portal can also include a processor that can be communicatively coupled to the user interface elements. The processor can be operable to receive a request to determine a status of one or more of the portable computing devices of the second entity or to cause an action to occur on one or more of the portable computing devices of the second entity. If authorized, the processor can be operable to provide the status of the one or more portable computing devices of the second entity or to effect the action on the one or more portable computing devices of the second entity. The processor can be further operable to provide the status of the one or more portable computing devices of the second entity or to effect the action on the one or more portable computing devices of the second entity on an individual basis, a group basis or a global basis.
- Another method for managing services is described herein. The method can include the steps of enabling a management entity to make selections associated with the management of services for one or more portable computing devices associated with a second entity, receiving a request from the management entity to determine a status of one or more of the portable computing devices of the second entity or to cause an action to occur on one or more of the portable computing devices of the second entity and if authorized and in response to the request, providing the status of the one or more portable computing devices of the second entity or effecting the action on the one or more portable computing devices of the second entity. The status of the one or more portable computing devices of the second entity can be provided or the action on the one or more portable computing devices of the second entity can be effected on an individual basis, a group basis or a global basis.
- Embodiments are also directed to a supervisory portal systems and methods. In one method, a user interface element is presented to manage or control one or more portable computing devices. An input can be received from the user interface element to manage or control all of or a subset set of the one or more child devices. In response to receiving the input, a directive, content or a message can be transmitted to the child device. In this way, supervisory oversight of the one or more child portable computing devices can be provided.
- Further features and advantages of the invention, as well as the structure and operation of various embodiments of the invention, are described in detail below with reference to the accompanying drawings. It is noted that the invention is not limited to the specific embodiments described herein. Such embodiments are presented herein for illustrative purposes only. Additional embodiments will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein.
- The accompanying drawings, which are incorporated herein and form part of the specification, illustrate the present invention and, together with the description, further serve to explain the principles of the invention and to enable a person skilled in the relevant art(s) to make and use the invention.
-
FIG. 1 depicts exemplary elements of a system for providing telephony and digital media services to a location, such as a home or office. -
FIG. 2 is a back perspective view of an exemplary telephony and digital media services device. -
FIG. 3 is a block diagram of an exemplary system for providing telephony and digital media services. -
FIG. 4 is a block diagram of an exemplary alternative system for providing telephony and digital media services. -
FIG. 5 is a block diagram of an exemplary system for providing telephony and digital media services that supports multiple devices and handsets via an adapter unit in an environment in which a telecommunication carrier provides Voice over Internet Protocol (VoIP) service. -
FIG. 6 is a block diagram of an exemplary system for providing telephony and digital media services that supports multiple devices and handsets via an adapter unit in an environment in which a telecommunications carrier provides POT service. -
FIG. 7 is a block diagram of an exemplary system for providing telephony and digital media services that supports multiple devices and handsets via an adapter unit in an environment in which a telecommunications carrier provides VoIP service. -
FIG. 8 is a block diagram of an exemplary system for providing telephony and digital media services that supports multiple devices and handsets via an adapter unit in an environment in which a telecommunications carrier provides POT service. -
FIG. 9 depicts an embodiment in which an adapter unit within a system for providing telephony and digital media service provides PBX-like features to a user of a computer connected to the adapter unit. -
FIG. 10 is a hardware block diagram of an exemplary telephony and digital media services device. -
FIG. 11 is a hardware block diagram of an exemplary telephony and digital media services device designed for office environments. -
FIG. 12 is a block diagram of an exemplary architecture of a telephony and digital media services device. -
FIG. 13 is a block diagram that depicts exemplary system elements of a telephony and digital media services device. -
FIG. 14 is a block diagram of an exemplary application framework that may be implemented by a telephony and digital media services device. -
FIG. 15 depicts an exemplary application installation package that may be provided from a remote application server to a telephony and digital media services device. -
FIG. 16 depicts an exemplary application manager that comprises two movie applications. -
FIG. 17 depicts an exemplary manager movie portion of an application manager. -
FIG. 18 depicts an exemplary theme movie portion of an application manager. -
FIG. 19 is a diagram that illustrates an exemplary process for handling an asynchronous event associated with an inactive application during execution of an active application. -
FIG. 20 is a diagram depicting the overlaying of a first application movie with a second application movie pursuant to an asynchronous event handling protocol in accordance with an embodiment of the present invention. -
FIG. 21 is a diagram depicting the use of an exemplary watchdog timer to monitor application liveliness. -
FIG. 22 illustrates an application that includes an exemplary first movie that comprises the business logic of the application and an exemplary second movie that comprises the graphical assets of the application. -
FIG. 23 is a block diagram of an exemplary system for logging and reviewing application usage information, system configuration information and system health information associated with one or more telephony and digital media services devices. -
FIG. 24 depicts an exemplary interface screen that may be presented by an exemplary system for reviewing application usage information associated with one or more telephony and digital media services devices. -
FIG. 25 depicts another exemplary interface screen interface screen that may be presented by an exemplary system for reviewing application usage information associated with one or more telephony and digital media services devices. -
FIG. 26 depicts an exemplary interface screen that may be presented by an exemplary system for reviewing application usage information, system configuration information and system health information associated with one or more telephony and digital media services devices. -
FIG. 27 is a front perspective view of an exemplary handset. -
FIG. 28 is a back view of an exemplary handset. -
FIG. 29 is a front perspective view of an exemplary handset docking station. -
FIG. 30 is a back perspective view of an exemplary handset docking station. -
FIG. 31 depicts an exemplary home graphical user interface (GUI) screen that may be displayed by an exemplary telephony and digital media services device. -
FIG. 32 depicts an exemplary GUI screen for a telephony application. -
FIG. 33 depicts an exemplary GUI screen for a call log application. -
FIG. 34 depicts an exemplary GUI screen for a voicemail application. -
FIG. 35 depicts an exemplary GUI screen for a contacts application. -
FIG. 36 depicts an exemplary GUI screen for a weather application. -
FIG. 37 depicts an exemplary GUI screen for a movie showtimes application. -
FIG. 38 depicts an exemplary GUI screen for a media application in which a photos interface is displayed. -
FIG. 39 depicts an exemplary GUI screen for a media application in which a music interface is displayed. -
FIG. 40 depicts a further exemplary GUI screen for a media application in which a music interface is displayed. -
FIG. 41 depicts an exemplary GUI screen for a media application in which a videos interface is displayed. -
FIGS. 42 and 43 depict an exemplary GUI screen for a video player application. -
FIG. 44 depicts an exemplary GUI screen for a media application in which a podcasts interface is displayed. -
FIG. 45 depicts a further exemplary GUI screen for a media application in which a podcasts interface is displayed. -
FIG. 46 depicts an exemplary GUI screen for a cameras application. -
FIG. 47 depicts an additional exemplary GUI screen for a cameras application. -
FIG. 48 depicts an exemplary GUI screen for a news application. -
FIG. 49 depicts an additional exemplary GUI screen for a news application. -
FIG. 50 depicts an exemplary GUI screen for a horoscopes application. -
FIG. 51 depicts an additional exemplary GUI screen for a horoscopes application. -
FIG. 52 depicts an exemplary GUI screen for a recipes application. -
FIG. 53 depicts an additional exemplary GUI screen for a recipes application. -
FIG. 54 depicts an exemplary GUI screen for a calendar application. -
FIG. 55 depicts an additional exemplary GUI screen for a calendar application. -
FIG. 56 depicts an exemplary GUI screen for an Internet radio application. -
FIG. 57 depicts an exemplary GUI screen for a stocks application. -
FIG. 58 depicts an exemplary GUI screen for an Internet video application. -
FIG. 59 depicts an exemplary GUI screen for an Internet-based photo application. -
FIG. 60 depicts an exemplary GUI screen for an alarm application. -
FIG. 61 depicts an additional exemplary GUI screen for an alarm application. -
FIG. 62 depicts an exemplary GUI screen for a screensaver application. -
FIG. 63 depicts an exemplary GUI screen for a directory services application. -
FIG. 64 depicts an exemplary GUI screen for a memos application. -
FIG. 65 depicts an exemplary GUI screen for a television (TV) programming guide application. -
FIG. 66 depicts an exemplary GUI screen for a network setup application. -
FIG. 67 depicts an additional exemplary GUI screen for a network setup application. -
FIG. 68 depicts an exemplary GUI screen for an advanced network setup application. -
FIG. 69 depicts an exemplary GUI screen for a home control application. -
FIG. 70 depicts an exemplary overlay interface for performing home control functions associated with a selected room that may be displayed over the GUI screen ofFIG. 69 . -
FIG. 71 depicts a further exemplary overlay interface for performing a selected home control function that may be displayed over the GUI screen ofFIG. 69 . -
FIG. 72 is a block diagram of an exemplary system that includes a services platform for enabling entities to deploy, manage optimize and monitor a network of telephony and multimedia services devices. -
FIG. 73 depicts four main areas of an exemplary application store life cycle. -
FIG. 74 depicts an exemplary GUI screen that may be used to provide an interface to application store. -
FIG. 75 is a block diagram that shows an example of how a content aggregation subsystem may be used to aggregate content from multiple content providers. -
FIG. 76 is a block diagram of an exemplary system that obtains directory services information from a single IP-based directory for presentation on a telephony and digital media services device. -
FIG. 77 is a block diagram of an exemplary system in accordance that obtains directory services information from multiple IP-based directories for presentation on a telephony and digital media services device. -
FIG. 78 is a block diagram of an exemplary system in accordance that obtains premium placement directory services information, standard directory services information and advertisements for presentation on a telephony and digital media services device. -
FIG. 79 is a block diagram of an exemplary system that uses click-to-dial reporting to provide community-based popularity information for presentation on a telephony and digital media services device. -
FIG. 80 depicts various components of an exemplary directory services application. -
FIGS. 81-83 depict exemplary GUI screens of a directory services application. -
FIG. 84 depicts an exemplary computer system that may be used to implement various features. -
FIG. 85 is a block diagram of an exemplary application store. -
FIG. 86 illustrates an example of a system that includes a managed services platform. -
FIG. 87 illustrates an example of a managed services system. -
FIG. 88 illustrates an example of an application developer portal and an approval portal. -
FIG. 89 illustrates an example of an interface that can permit application developers to submit applications. -
FIG. 90 illustrates an example of an applications page. -
FIG. 91 illustrates an example of an application presentation page. -
FIG. 92 illustrates an example of a file page that can present information related to files. -
FIG. 93 illustrates an example of a comments page. -
FIG. 94 illustrates an example of a statistics page. -
FIG. 95 illustrates an example of a devices page, which can list one or more testing devices. -
FIG. 96 illustrates an example of a device information page. -
FIG. 97 illustrates an example of an interface that facilitates an approval process. -
FIG. 98 illustrates an example of an application review page. -
FIG. 99 illustrates an example of a files page. -
FIG. 100 illustrates an example of a statistics page. -
FIG. 101 illustrates an example of a testing devices page. -
FIG. 102 illustrates a block diagram of an exemplary administrator portal. -
FIG. 103 illustrates a block diagram of an exemplary client portal. -
FIG. 104 illustrates an example of an applications page. -
FIG. 105 illustrates an example of an application selection page. -
FIG. 106 illustrates an example of a devices page. -
FIG. 107 illustrates an example of a device details page. -
FIG. 108 illustrates an example of a device application page. -
FIG. 109 illustrates an example of a users page that can present one or more user identifications. -
FIG. 110 illustrates an example of an information page. -
FIG. 111 illustrates an example of a roles page. -
FIG. 112 illustrates an example of a firmware page. -
FIG. 113 illustrates an example of a bundles page. -
FIG. 114 illustrates an example of a bundle application page. -
FIG. 115 illustrates an example of a VPN page. -
FIG. 116 illustrates an example of a Wi-Fi page. -
FIG. 117 illustrates an example of a general editing page. -
FIG. 118 illustrates an example of a VPN editing page. -
FIG. 119 illustrates an example of a Wi-Fi editing page. -
FIG. 120 illustrates an example of a certificates editing page. -
FIG. 121 illustrates an example of an application editing page. -
FIG. 122 illustrates an example of a management page. -
FIG. 123 illustrates an example of an application repository information page. -
FIG. 124 illustrates an example of a general default page. -
FIG. 125 illustrates an example of a default certificates page. -
FIG. 126 illustrates an example of a default applications page. -
FIG. 127 illustrates an example of a general default edit page. -
FIG. 128 illustrates an example of a delivery page. -
FIG. 129 illustrates an example of an applications edit page. -
FIG. 130 illustrates an example of a users page. -
FIG. 131 illustrates an example of an information page. -
FIG. 132 illustrates an example of a roles page. -
FIG. 133 illustrates an example of a devices page. -
FIG. 134 illustrates an example of an interface that can be useful for enabling the management of portable computing devices. -
FIG. 135 illustrates an example of a devices page. -
FIG. 136 illustrates an example of a device information page. -
FIG. 137 illustrates an example of a location page. -
FIG. 138 illustrates an example of a menu. -
FIG. 139 illustrates an example of a firmware page. -
FIG. 140 illustrates an example of a bundles page. -
FIG. 141 illustrates an example of a bundle information page. -
FIG. 142 illustrates an example of a profile menu. -
FIG. 143 illustrates an example of a wireless or Wi-Fi profile page. -
FIG. 144 illustrates an example of a VPN profile page. -
FIG. 145 illustrates an example of a hardware profile page. -
FIG. 146 illustrates an example of a certificate profile page. -
FIG. 147 illustrates an example of a policy page. -
FIG. 148 illustrates an example of a proxy policy page. -
FIG. 149 illustrates an example of a VPN policy page. -
FIG. 150 illustrates an example of a blacklist policy page. -
FIG. 151 illustrates an example of a whitelist policy page. -
FIG. 152 illustrates an example of a report policy page. -
FIG. 153 illustrates an example of an application page. -
FIG. 154 illustrates an example of an application edit page. -
FIG. 155 illustrates an example of a bundle devices page. -
FIG. 156 illustrates an example of a users page. -
FIG. 157 illustrates an example of an application interface. -
FIG. 158 illustrates an example of an application information page. -
FIG. 159 illustrates an example of a users page. -
FIG. 160 illustrates an example of a user control page. -
FIG. 161 illustrates an example of a user identification page for a supervisory portal system. -
FIG. 162 illustrates an example of a user authentication page for a supervisory portal system. -
FIG. 163 illustrates an example of a home page for an administrator of a supervisory portal system. -
FIG. 164 illustrates an example of a home page for an administrator of a supervisory portal system in which information is displayed for a selected child user. -
FIG. 165 illustrates an example of an applications page for an administrator of a supervisory portal system. -
FIG. 166 illustrates an example of a devices page for an administrator of a supervisory portal system. -
FIG. 167 illustrates an example of a usage page for an administrator of a supervisory portal system. -
FIG. 168 illustrates an example of a location page for an administrator of a supervisory portal system. -
FIG. 169 illustrates an example of a wish list page for an administrator of a supervisory portal system. -
FIG. 170 illustrates an example of an allowances page for an administrator of a supervisory portal system. -
FIG. 171 is an example of a supervisory portal method. - Applicants expressly disclaim any rights to any third-party trademarks or copyrighted images included in the figures. Such marks and images have been included for illustrative purposes only and constitute the sole property of their respective owners.
- The features and advantages of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.
- The following detailed description refers to the accompanying drawings that illustrate exemplary embodiments; however, the scope of the present claims is not limited to these embodiments. Thus, embodiments beyond those shown in the accompanying drawings, such as modified versions of the illustrated embodiments, may nevertheless be encompassed by the present claims.
- References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” or the like, indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to implement such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
- Several definitions that apply throughout this document will now be presented. The term “exemplary” as used herein is defined as an example or an instance of an object, apparatus, system, entity, composition, method, step or process. The term “gateway” is defined as an element or a group of elements that enable or facilitate the transfer of communication signals from one component or network to another. The term “communicatively coupled” is defined as a state in which two or more components are connected such that communication signals are able to be exchanged between the components on a unidirectional or bidirectional manner, either wirelessly, through a wired connection or a combination of both. A “computing device” is defined as a component or a group of components that are configured to process and/or present data to a user or another component or group of components. The term “identification” is defined as information or data that is used to uniquely distinguish a component or a group of components from other components or groups of components. The term “set” is defined as a collection of one or more. A “portable computing device” is defined as a mobile or fixed communication device that presents a user interface to a user and that is capable of being managed.
- The term “managing entity” is defined as an entity or a group of entities that are assigned to oversee or are otherwise responsible for an operation, act, component or service on behalf of a separate entity or group of entities. A “user interface element” is defined as a component or a group of components that enables a user to interact with a machine. The term “graphical user interface element” is defined as an image or a portion of an image that presents information to a user or allows the user to interact with a device through a display. An “interface” is defined as a component, system or arrangement or groups thereof that enable information/data to be entered into a machine.
- A “display” is defined as a component or a group of components that present information/data in visual form. A “processor” is defined as a component or a group of components that at least execute instructions. A “transceiver” is defined as a component or a group of components that transmit signals, receive signals or transmit and receive signals, whether wirelessly or through a hard-wired connection. The term “managed services platform” is a collection of one or more components that manage services for one or more portable computing devices by controlling the exchange of messages and data with the portable computing devices. The term “portal” is defined as any combination of components or systems that permit a user or another system or component to input, output, manage, generate, process or manipulate data or to control another component or system and can include hardware, software or any suitable combination of hardware and software. The term “firmware” is defined as a software component or components that lend to the state and user interface of a device, including a complete image of a device or an edit or modification to an existing image on a device. Examples include micro-code, a bootloader, a kernel, a root file system and the dissemination of configuration of details, updates (such as updates to artifacts of a running system), profiles and settings.
-
FIG. 1 depicts elements of asystem 100 for providing telephony and digital media services to a location, such as a home or office, in accordance with an embodiment of the present invention. As used herein, the term “digital media services” broadly refers to any service that is based on the transfer and/or presentation of digital content to a user. As shown, inFIG. 1 ,system 100 includes a telephony and digital media services device (“device”) 110 and associatedhandsets 120. - As shown in
FIG. 1 ,device 110 includes adisplay 112.Display 112 is used to provide a graphical user interface (GUI) that enables a user to initiate, manage and experience telephony and digital media services provided bysystem 100. In one embodiment,display 112 comprises a color LCD display with a capacitive touch screen panel. In such an embodiment, a user may interact with the GUI by touchingdisplay 112 with a finger. -
Handsets 120 provide a means for extending the telephony services, and optionally other services, ofdevice 110 to other areas within a given location, such as to other areas within a home or office. As shown inFIG. 1 , eachhandset 120 includes a user interface that comprises both adisplay 122, such as a color LCD display, and akeypad 124. Eachhandset 120 may be placed in acorresponding docking station 126.Docking station 126 provides an interface by which a battery internal to a handset may be recharged and also provides a means for supporting a handset when it is not in use. -
Handsets 120 are configured to wirelessly communicate withdevice 110 for the purposes of providing telephony services and to optionally provide other services to a user. In one embodiment, such communications are carried out in accordance with the Digital Enhanced Cordless Telecommunications (DECT) standard published by the European Telecommunications Standards Institute (ETSI). Thus, in one embodiment,device 110 is configured to act as a DECT base station andhandsets 120 are configured to act as DECT handsets. Other communication configurations will be discussed elsewhere herein, as thedevice 110 may be arranged to communicate with other units in addition to or in lieu of thehandsets 120. -
FIG. 2 is a back perspective view ofdevice 110. As shown inFIG. 2 ,device 110 includes aninterface 202 for connecting to a power supply, such as an AC adapter as well as aninterface 204 for connecting to a network, such as a local area network or wide area network. In one embodiment,interface 204 comprises an Ethernet interface, such as a 10/100/1000 megabit per second (Mbps) Ethernet interface.Device 110 may also include an internal wireless network adapter, such as an 802.11 wireless network adapter, for providing network connectivity. As will be described in more detail herein, such network connectivity may be utilized bydevice 110 for providing telephony services and/or certain digital media services to a user. - The foregoing provides by way of introduction only a brief description of certain implementations of
device 110 andhandsets 120 that comprise a portion of telephony and digital mediaservice delivery system 100. Additional details concerning such implementations, as well as various alternative implementations, will be described in detail herein. - In order to provide telephony services and certain digital media services,
device 110 andhandsets 120 may be communicatively connected to a telecommunications carrier and/or Internet Protocol (IP) network. Various manners of implementing such connectivity will now be described with reference toFIGS. 3-8 . -
FIG. 3 depicts connectivity aspects of afirst example installation 300. Ininstallation 300,device 110 is communicatively connected to a remotetelecommunication carrier switch 302 and is configured to receive Voice over Internet Protocol (VoIP) telephony services therefrom via a VoIP connection. The VoIP connection may be implemented, for example, over a broadband data service such as Digital Subscriber Line (DSL), Integrated Services Digital Network (IDSN), data over cable, T1/T3, optical carrier, carrier-class Ethernet, satellite, cellular or any other suitable data service. The various physical transport media used for implementing such data services are well known. In one embodiment,device 110 connects to the appropriate data service via an Ethernet interface or WiFi interface, although these are only examples. The broadband data service may be also used bydevice 110 to provide other services, such as digital media services, to a user. - In one embodiment of
installation 300,carrier switch 302 acts as a Session Initiation Protocol (SIP) server anddevice 110 acts as a SIP client for the purposes of conducting VoIP telephony services.Handsets 120 are wirelessly connected todevice 110 using the well-known DECT protocol, which is used to extend telephony services to each handset. A limitation ofinstallation 300 is that the installation is limited to onedevice 110, which is configured to act as a DECT base station. -
FIG. 4 depicts connectivity aspects of an alternative example installation 400. In installation 400, acarrier switch 402 is configured to perform shared trunking. This arrangement allows multiple devices, includingdevice 110 and additional device(s) 410, to be associated with the same telephone number for the purposes of receiving incoming telephony calls. As shown inFIG. 4 , a separate VoIP connection is maintained betweencarrier switch 402 and each device. Additionally, each device is associated with one or more handsets (e.g.,device 110 is associated withhandsets 120, each of device(s) 410 is associated with corresponding handset(s) 420) and communicates wirelessly therewith using DECT. A limitation of installation 400 is that the handsets associated with one device cannot communicate with handsets associated with another device through standard DECT intercom mechanisms because each handset is configured to communicate with a different DECT base station. -
FIG. 5 depicts an alternate installation 500 that supportsmultiple devices 506 andhandsets 508 via anadapter unit 504 in an environment in which a telecommunication carrier provides VoIP service. In installation 500,devices 506 do not act as DECT base stations but instead are configured to operate as DECT clients in a like manner tohandsets 508.Adapter unit 504 is installed on-site along withdevices 506 andhandsets 508 and is connected to aremote carrier switch 502.Adapter unit 504 includes an Analog Terminal Adapter (ATA) andDECT base station 510. As will be appreciated by persons skilled in the relevant art(s), an ATA comprises an adapter that allows a Plain Old Telephony System (POTS) telephone to interface to a VoIP provider. - In installation 500,
devices 506 andhandsets 508 perform telephony-related operations by communicating via the DECT protocol with the DECT base station within ATA andDECT base station 510. Installation 500 also advantageously supports the operation of legacy POTS equipment (such as POTS telephones, fax machines and security systems) by allowing such equipment to be connected via a POTS interface to the ATA within ATA andDECT base station 510. -
Adapter unit 504 further includes a Wi-Fi access point (i.e., an IEEE 802.11 access point) and/orEthernet switch 512. This element provides access to the Internet via an IP link. As shown inFIG. 5 , the IP link may be supported by the same data service and physical transport media used to support the VoIP connection withcarrier switch 502. In an embodiment, each ofdevices 506 is communicatively connected to Wi-Fi access point/Ethernet switch 512 for the purpose of accessing digital media that may be used to provide services to a user. In an alternate implementation, Wi-Fi access point/Ethernet switch 512 is not integrated withinadapter unit 504 but instead comprises one or more separate stand-alone devices. -
FIG. 6 depicts an installation 600 that supportsmultiple devices 606 andhandsets 608 via anadapter unit 604 in an environment in which a telecommunications carrier provides POTS service. In installation 600,devices 606 do not act as DECT base stations but instead are configured to operate as DECT clients in a like manner tohandsets 608.Adapter unit 604, which includes aDECT base station 610 and a Wi-Fi access point and/orEthernet switch 612, is installed on-site along withdevices 606 andhandsets 608.DECT base station 610 is connected to acarrier switch 602 via a POTS interface. -
Devices 606 andhandsets 608 perform telephony-related operations by communicating via the DECT protocol withDECT base station 610. Legacy POTS equipment may be connected to a POTS interface to receive POTS service directly fromcarrier switch 602. - Wi-Fi access point/
Ethernet switch 612 provides access to the Internet via an IP link that is not associated withcarrier switch 602. Such IP link may be provided using any known data service/physical transport media combination. In an embodiment, each ofdevices 606 is communicatively connected to Wi-Fi access point/Ethernet switch 612 for the purpose of accessing digital media that may be used to provide services to a user. In an alternate implementation, Wi-Fi access point/Ethernet switch 612 is not integrated withinadapter unit 604 but instead comprises one or more separate stand-alone devices. -
FIG. 7 depicts an alternate installation 700 that supportsmultiple devices 706 andhandsets 708 via anadapter unit 704 in an environment in which a telecommunications carrier provides VoIP service. In installation 700, VoIP services are provided directly todevices 706 andhandsets 708. To achieve this,adapter unit 704 is installed on-site along withdevices 706 andhandsets 708.Adapter unit 704 includes an ATA and a Session Initiation Protocol (SIP)proxy 710 that is communicatively connected to acarrier switch 702 via a VoIP connection.Adapter unit 704 also includes a Wi-Fi access point and/orEthernet switch 712 that is communicatively connected tocarrier switch 702 via an IP link and to ATA andSIP proxy 710. - The SIP proxy within ATA and
SIP proxy 710 allowsdevices 706 to register with it and maintains a local numbering plan. Thus, SIP proxy essentially operates as a home private branch exchange (PBX). The SIP proxy in turn registers withcarrier switch 702. Communication between eachdevice 706 and the SIP proxy is via Wi-FI access point/Ethernet switch 712. Preferably, eachhandset 708 is also capable of communicating with the SIP proxy via Wi-Fi or some other protocol capable of supporting SIP communication. - In installation 700, the ATA within ATA and
SIP proxy 710 can provide a POTS interface for providing telephony service to legacy POTS equipment. Wi-Fi access point/Ethernet switch 712 can be used bydevices 706 to access digital media for providing services to a user. Wi-Fi access point/Ethernet switch 712 may either be integrated withinadapter unit 704 or comprise one or more separate stand-alone devices. -
FIG. 8 depicts an alternate installation 800 that supportsmultiple devices 806 andhandsets 808 via anadapter unit 804 in an environment in which a telecommunications carrier provides POTS service. In installation 800, VoIP services are provided directly todevices 806 andhandsets 808. To achieve this,adapter unit 804 is installed on-site along withdevices 806 andhandsets 808.Adapter unit 804 includes a Foreign Exchange Office (FXO) gateway (SIP server) 810 that is connected via a POTS interface to acarrier switch 802.Adapter unit 804 further includes a Wi-Fi access point and/orEthernet switch 812 that provides access to the Internet via an IP link and that is connected toFXO gateway 810. -
FXO gateway 810 allowsdevices 806 to register with it and maintains a local numbering plan. Thus,FXO gateway 810 essentially operates as a home PBX. Communication between eachdevice 806 andFXO gateway 810 is via Wi-Fi access point/Ethernet switch 812. Preferably, eachhandset 808 is also capable of communicating withFXO gateway 810 via Wi-Fi or some other protocol capable of supporting SIP communication. FXO gateway in turn communicates withcarrier switch 802 via one or more POTS lines. - In installation 800, legacy POTS equipment may be connected to a POTS interface to receive POTS service directly from
carrier switch 802. Wi-Fi access point/Ethernet switch 812 can be used bydevices 806 to access digital media or other information for providing services to a user. Wi-Fi access point/Ethernet switch 812 may either be integrated withinadapter unit 804 or comprise one or more separate stand-alone devices. - Depending upon the implementation, the adapter unit described above in reference to
FIG. 7 orFIG. 8 may be configured to function as a “mini-PBX,” offering a variety of features to a user acting as administrator. For example, the adapter unit may be configured to present a Web page, Adobe® Flash® movie, or some other interface that provides programmatic control to a user of a computer that is connected to the adapter unit. The computer may be connected to the adapter unit via a wired interface, such as an Ethernet or Universal Serial Bus interface, or via a wireless interface, such as an 802.11 interface. Such a configuration is depicted inFIG. 9 , which shows acomputer 902 connected to anadapter unit 904 having PBX functionality (which may represent, for example,adapter unit 706 ofFIG. 7 oradapter unit 806 ofFIG. 8 ) for the purpose of providing a user with programmatic control over certain features implemented byadapter unit 904. - The adapter unit may be configured to discover new devices or handsets in a location such as a home. The discovery protocol may be implemented, for example, using an IP protocol or via DECT.
- The adapter unit may also be configured to present a list of newly-discovered devices and handsets to the user. The adapter unit may permit a user to assign names, locations and/or extension numbers to the devices/handsets. In an implementation in which the devices and handsets are VoIP devices, the adapter unit may allow a user to define a numbering plan (e.g., 4-digit extensions) and assign numbers to the devices. If DECT is used for communication with the devices, then single-digit identifiers may instead be used due to limitations associated with that protocol. The adapter unit may also be configured to allow a user to assign an owner to a device, wherein the association of an owner with a device may cause other items of information to be associated with the device. Thus, for example, if a particular owner is associated with a device, then the device may be configured with a contact list associated with the particular owner.
- The adapter unit may also be configured to allow a user to manage permissions for each connected device or handset. Such permissions may include, for example: time-of-day restrictions on calls (e.g., no calls after 10:00 PM except for 911 calls); dialing restrictions (e.g., no calls to 1-900 numbers or international numbers); call restrictions (e.g., no outgoing calls or no incoming calls); and restrictions on the ability to modify device settings or add/modify/delete contacts. This list of examples is by no means exhaustive and other types of permissions may be managed as will be appreciated by persons skilled in the relevant art(s).
- The adapter unit may also be configured to present a user with status information associated with each device/handset. Such status information may include, and is not limited to, whether a device is in use, whether a device is still functioning (i.e., whether the device is “alive” or “dead”), and other properties associated with a device.
-
FIG. 10 is a block diagram of anexample hardware architecture 1000 ofdevice 110. This hardware architecture is described by way of example only and is not intended to limit the present invention. Persons skilled in the relevant art(s) will readily appreciate that other hardware architectures may be used to implementdevice 110 that are within the scope and spirit of the present invention. - As shown in
FIG. 10 ,hardware architecture 1000 includes an embedded processor andsystem controller hub 1002 that is connected to a plurality of peripheral devices or chips. The embedded processor is preferably one that has been designed for use in portable and low-power applications, such as Mobile Internet Devices (MIDs). The system controller hub comprises a chipset that handles peripheral input/output (I/O) and performs memory and power management functions for the embedded processor. In one embodiment, the embedded processor comprises a 1.1 Gigahertz (GHz) Intel® Atom™ processor designed and sold by Intel Corporation of Santa Clara, Calif., and the system controller hub comprises the Intel® System Controller Hub US15W Chipset, also designed and sold by Intel Corporation of Santa Clara, Calif., although this is only one example; other processors can be implemented into thearchitecture 1000. - As shown in
FIG. 10 ,hardware architecture 1000 includes volatile system memory in the form of SDRAM (Synchronous Dynamic Random Access Memory) 1004. In one embodiment, the embedded processor supports an integral 64-bit-wide 4-Gigabits (Gbits) of DDR2 (Double Data Rate 2) SDRAM clocked at 533 Megahertz (MHz). In such an embodiment,SDRAM 1004 may comprise four 512 Megabit (Mbit) DDR2 SDRAM 667 MHz integrated circuits (ICs) directly mounted onto a motherboard along with embedded processor andsystem controller hub 1002. The capacity may be increased from 512 Megabytes (MB) to 1 gigabyte (GB) by populating the board with four 1 Gbit ICs instead. However, these are only examples, and other DDR2 SDRAM configurations, other types of SDRAM, or other types of volatile memory may be used. -
Hardware architecture 1000 also includes non-volatile memory in the form of a managedNAND flash memory 1006, although other forms of non-volatile memory may be used. In one embodiment, managedNAND flash memory 1006 comprises a 512 MB or 1 GB MMC NAND flash memory that is mounted on a motherboard along with embedded processor andsystem controller hub 1002. The use of an MMC NAND flash memory avoids the inclusion indevice 110 of spinning media storage devices, such as hard disk drives or optical drives. The use of an MMC NAND flash memory also means that it is not necessary to employ wear-leveling and error correction when using a file system such as YAFFS2 and that an EXT3 file system can be used instead. -
Hardware architecture 1000 further includes achip 1008 for storing the system BIOS. In one embodiment,chip 1008 comprises an 8 Mbit NOR flash memory that is connected to the system controller hub via a Low Pin Count (LPC) bus, although this is only an example. - Power management functions are performed in
hardware architecture 1000 by apower management chip 1010. In one embodiment,power management chip 1010 comprises an Intel® Mobile Voltage Positioning chip designed and sold by Intel Corporation of Santa Clara, Calif. that is connected to embedded processor andsystem controller hub 1002 via an Inter-Integrated Circuit (I2C) bus.Power management chip 1010 is used to sequence power to embedded processor andsystem controller hub 1002. As a secondary function, a subset of a plurality of general purpose input/output (GPIO) connections ofpower management chip 1010 are used to connect to a Joint Test Action Group (JTAG) interface of a DECT processor 1012 (to be described below). This enables updating of the firmware ofDECT processor 1012 in a manner that minimizes the likelihood that the firmware will be left in an unrecoverable state. -
Hardware architecture 1000 also includes aDECT processor 1012. In one embodiment,DECT processor 1012 comprises a DECT base station processor that supports up to five handsets. In an implementation in whichDECT processor 1012 has no explicit hardware reset input, a GPIO connection from the embedded processor may be used to reset the device by turning its power supply off and then on again. - A Universal Serial Bus (USB) is used to transfer audio (e.g., up to four channels of audio) in each direction between
DECT processor 1012 and the system controller hub.DECT processor 1012 may be configured to act as the bus master and drive the USB bus. In an implementation in which the maximum speed of the USB bus is 4.096 MHz,DECT processor 1012 may drive the USB bus with a bit clock rate of 2.048 MHz. - In one embodiment, universal asynchronous receivers/transmitters (UARTS) on the system controller hub and
DECT processor 1012 implement a 115200 baud channel that is used to transfer control and data packets between the two. Packets on this link are encapsulated using Serial Line IP (SLIP) (as documented in Request for Comments: 1055, published by the Internet Engineering Task Force, June 1988). Layered on top of this is a cordless telephone application programming interface (CTAPI) protocol. The CTAPI protocol comprises request, response and event message types. These message types all have a common header and, optionally, some data. Responses and events are asynchronous; each request is tagged with a sufficiently unique identifier that is copied into a header of the corresponding response. The identifier is used to match responses with their originating requests. - To perform an API operation (e.g., obtain firmware version number, go off-hook, update handset name, etc.), a main application running on the embedded processor sends a request message to
DECT processor 1012 or to one ofhandsets 120 viaDECT processor 1012. The message recipient performs the requested actions and returns a response. Additionally, a spontaneous action such as a handset going off-hook or propagating a name or address book update can generate an event message to be sent fromDECT processor 1012 to the embedded processor. - In one embodiment,
DECT processor 1012 is configured to execute acoustic echo cancellation (AEC) software. In accordance with such an embodiment, a microphone andspeakers 1024 internal todevice 110 are connected directly toDECT processor 1012 whenever speakerphone functionality ofdevice 110 is in use. During high-fidelity audio playback, however, speaker andmicrophone 1024 are connected to anaudio codec 1022. - As noted above,
hardware architecture 1000 includes an internal microphone andspeakers 1024. The microphone may comprise a mono microphone and the speakers may comprise stereo speakers with an associated stereo amplifier. The speakers may be driven by anaudio codec 1022. In one embodiment,audio codec 1022 comprises a 2-channel audio codec such as the Intel® High Definition Audio (HDA) system designed and sold by Intel Corporation of Santa Clara, Calif. In such an embodiment,audio codec 1022 connects to embedded processor andsystem controller hub 1002 via an HDA bus. - A stereo jack may be provided on
device 110 for connecting headphones or an external amplifier and speakers toaudio codec 1022. In one embodiment, when a plug is inserted into this jack, the internal speakers are automatically disconnected and their amplifier is powered down. The state of this jack may be determined by software. - As described above in reference to
FIG. 1 ,device 110 includes anLCD display 1016. As shown inFIG. 10 ,LCD display 1016 connects to embedded processor andsystem controller hub 1002 via a low-voltage differential signaling (LVDS) connection over twisted pair copper cables. In one example implementation,LCD display 1016 comprises a thin film transistor (TFT) LCD display that has a 7 inch (17.8 centimeter (cm)) wide screen and supports 24-bit color.LCD display 1016 may provide an active viewing area of 152.4 millimeters (mm)×91.4 mm, support a pixel format of 800×480 pixels, and have a pixel pitch of 0.1805 (H)×01.905 (V).LCD display 1016 may further provide a 15:9 aspect ratio, a display mode that is normally white, LED backlighting, and a brightness of approximately 350 candelas per square meter (cd/m2). - In an embodiment,
LCD display 1016 may be used in both a transmissive mode and a reflective mode. In accordance with such an embodiment, a color display may be used when in the transmissive mode and a very low-power monochrome display may be used when in the reflective mode. In further accordance with such an embodiment, the LCD backlight for the transmissive mode may be provided by white light emitting diodes (LEDs). In particular, multiple LEDs may be connected in series into three chains in order to equalize their brightness. These chains may then be powered in parallel. LEDs from all three chains may be interleaved to minimize the impact of a single chain burning out. In one implementation, up to 60 milliamps (mA) of current at 25.6 Volts (V) is provided to drive the backlight. Two signals may be used to control the backlight operation. The first signal enables/disables the backlight and the second signal is pulse-width modulated to generate a voltage that varies the brightness of the backlight. - As also described above in reference to
FIG. 1 , a touch panel is integrated withLCD display 1016 to provide a user interface todevice 110. The touch panel includes an integrated programmable system on chip (PSOC)controller 1014 that is connected to embedded processor andsystem controller hub 1002 via a USB bus. - In one embodiment, the touch panel comprises a 7 inch capacitive touch panel having a glass surface. As will be appreciated by persons skilled in the relevant art(s), capacitive touch panels are highly responsive to the touch of a finger, but do not respond to other types of touches. Consequently, the use of such a panel reduces the chance of false touches from jewelry, clothing or other contaminants. Furthermore, it is expected that such a glass capacitive touch panel will be more durable and last longer than other types of touch panels such as resistive touch panels. A glass capacitive touch panel will also have less of an impact on screen brightness as compared to resistive touch panels.
-
Hardware architecture 1000 further includes an internal Wi-Fi controller 1018 for supporting wireless networking. Wi-Fi controller 1018 is connected to embedded processor andsystem controller hub 1002 via a USB interface. In one embodiment, Wi-Fi controller 1018 comprises an 802.11b/g controller. In an alternative embodiment Wi-Fi controller 1018 comprises an 802.11b/g/n controller. Wi-Fi controller 1018 may include an integrated internal antenna. -
Hardware architecture 1000 also includes anEthernet chip 1020 that supports wired networking in accordance with the Ethernet protocol. In one embodiment,Ethernet chip 1020 comprises a 10/100/1000 Mbps Ethernet chip. As shown inFIG. 10 ,Ethernet chip 1020 is connected to embedded processor andsystem controller hub 1002 via a PCI Express (PCIe) bus. An external RJ45 jack is provided ondevice 110 to facilitate connection toEthernet chip 1020. -
Hardware architecture 1000 may further include an external USB 2.0 port (not shown inFIG. 10 ) that connects to embedded processor andsystem controller hub 1002 via a USB bus. Also not shown inFIG. 10 is a power supply that is connected tohardware architecture 1000 and supplies power thereto. In one embodiment the power supply comprises a 5V, 4 A AC power supply. -
FIG. 11 depicts analternate hardware architecture 1100 for adevice 110 that has been designed specifically for office environments.Hardware architecture 1100 may be thought of as a modified version ofhardware architecture 1000 ofFIG. 10 , or vice versa. As shown inFIG. 11 ,hardware architecture 1100 does not include a DECT processor for wireless handset support or a Wi-FI controller for 802.11 wireless networking. These features may be deemed less useful or not useful in an office environment. -
Hardware architecture 1100, however, does include some additional elements as compared tohardware architecture 1000. These include aBluetooth® adapter 1126, anEthernet switch 1130, and a Power over Ethernet (PoE) connector. -
Bluetooth® adapter 1126 allows an end user to invoke the telephony features ofdevice 110 using a Bluetooth® cordless headset or like device.Bluetooth® adapter 1126 may be connected to embedded processor andsystem controller hub 1102 via a USB bus. In a further embodiment,hardware architecture 1100 may also include an integrated charger that allows an end user to charge the battery or batteries of a Bluetooth® cordless headset or like device by plugging the device into a USB port, mini-USB port, or other suitable port ofdevice 110. -
Ethernet switch 1130 comprises a multi-port (e.g., two-port) Ethernet switch with an additional port host interface via PCIe.Ethernet switch 1130 provides a convenient Internet pass-through for other network-capable devices (e.g., personal computers, laptops, printers, storage devices, or the like) that might be used in an office environment. Because it is a switch,Ethernet switch 1130 allows multiple Ethernet devices to be connected to a single Ethernet connection in a non-interfering manner. -
PoE connector 1130 comprises a connector that allows power to be delivered todevice 110 via an Ethernet connection. In one embodiment,PoE connector 1130 comprises an eight-pin RJ-45 connector that uses two pairs for power (two for + and two for −) as well as the normal two pairs for data (1-2, 3-6). A switching regulator with good isolation (transformer and opto-coupler). - Although not shown in
FIG. 11 ,hardware architecture 1100 may further include a fingerprint scanner that allowsdevice 110 to be placed in a locked/unlocked state by only authorized user(s). Such protection may be deemed desirable in an office environment. In a further embodiment, the configuration of device 110 (e.g., owner, phone number, contacts, etc.) may be determined based on the fingerprint used to unlockdevice 110. - The other components shown in
FIG. 11 (embedded processor andsystem controller hub 1102,SDRAM 1104, managedNAND 1106,BIOS 1108,power management 1110,touch panel controller 1114,LCD display 1116,audio codec 1122 and microphone/speakers 1124) are generally similar to like-named elements ofhardware architecture 1000, although certain implementation details may vary. In addition, both of the embodiments shown inFIGS. 10 and 11 can include components for wide area networks (WAN), wired or wireless. These components will not be described herein for the sake of brevity. -
FIG. 12 is a block diagram of anexample software architecture 1200 ofdevice 110. As shown inFIG. 11 ,software architecture 1200 includes a plurality of software components running atop an embedded processor andperipherals 1202. As noted above, the embedded processor preferably comprises a processor designed for use in portable and low-power applications, such as Mobile Internet Devices (MIDs), and in one embodiment comprises an Intel® Atom™ processor designed and sold by Intel Corporation of Santa Clara, Calif. - The embedded processor executes an
operating system 1204 that provides a context for the execution of system and application processes that will be described in more detail herein. In one embodiment,operating system 1204 comprises a Linux-based operating system, such as an Ubuntu® MID Edition operating system based on Linux kernel release 2.6.24, although this is only an example. In one embodiment,operating system 1204 is optimized through custom configuration for a small size and rapid startup. - Certain system and/or application processes that run in the context of
operating system 1204 are designed to interact with hardware peripherals that are communicatively connected to the embedded microprocessor. To facilitate such interaction,software architecture 1200 includes a plurality ofdevice drivers 1210, each of which provides an abstraction layer between a hardware peripheral and the system and/or application processes that use it. - As shown in
FIG. 12 ,device drivers 1210 include adevice driver 1212 for facilitating interaction with a display, adevice driver 1214 for facilitating interaction with a touch panel associated with the display, adevice driver 1216 for facilitating interaction with a Universal Serial Bus (USB) device or port, adevice driver 1218 for facilitating interaction with a power management device, and adevice driver 1220 for facilitating interaction with a managed NAND flash memory. These are only examples, andother device drivers 1210 may be used depending on the hardware peripherals present in telephony and digitalmedia services device 110. - As further shown in
FIG. 12 ,software architecture 1200 also includes a plurality of sharedsystem libraries 1220 that contain code and data that may be used to provide services to independent programs running in the context ofoperating system 1204.System libraries 1220 includecodecs 1222,cryptographic functions 1224, homedevice management services 1226, andother system libraries 1228. -
Codecs 1222 are utilized for performing compression and decompression of multimedia content such as images, audio content and video content.Codecs 1222 may include, for example, codecs for compressing/decompressing images in accordance with one or more of the JPEG, TIFF, PNG, GIF and BMP image compression formats, codecs for compressing/decompressing audio content in accordance with one or more of the MP3, WAV, WMA and RealAudio audio compression formats, and codecs for compressing/decompressing video content in accordance with one or more of the MPEG-2, MPEG-4part 2, MPEG-4 part 10 (H.264),WMV 9, DivX, VC1 and FLV compression formats. However, these are only examples and other types of codecs may be used. -
Cryptographic functions 1224 comprises a library of cryptographic algorithms and tools that may be utilized for encrypting and decrypting data. End-userdevice management services 1226 include functions necessary to implement protocols for remotely managing end-user devices, such as protocols in accordance with the DSL Forum Technical Specifications TR-069/TR-111. - As shown in
FIG. 12 ,software architecture 1200 also includes an operating system (OS)abstraction layer 1206 that runs atopoperating system 1204.OS abstraction layer 1206 serves to insulate any component running above it (e.g. application player 1208 and applications 1240) from any idiosyncrasies ofoperating system 1204. This serves to localize the efforts of porting applications to a single component. -
Software architecture 1200 further includes a plurality ofclass modules 1230.Class modules 1230 comprise libraries, such as C and/or C++ libraries, that may be used by certain applications to perform certain functions. In one embodiment,class modules 1230 define function calls that can be made available to one or more applications running in the context ofapplication player 1208. For example,class modules 1230 may define ActionScript function calls that can be made available to one or more Shockwave Flash (SWF) applications that are executed byapplication player 1208. As will be described in more detail herein,class modules 1230 may be downloaded to telephony and digitalmedia services device 110 along with applications that they support. -
Class modules 1230 include an application (app) manager/loader 1232 which provides functionality for an application (app)manager application 1244, amedia player 1234 that provides functionality for applications that play back digital media, and aVoIP module 1236 that provides functionality for aVoIP telephony application 1246.VoIP module 1236 may provide, for example, access to SIP functionality, audio engine functionality and DECT functionality used in performing VoIP telephony operations.Class modules 1230 also includeadditional class modules 1238 as well.Additional class modules 1238 may include, for example, APIs for sending requests to Web services made available over a Wide Area Network (WAN) such as the Internet and receiving content responsive to the requests. - Software architecture further includes an
application player 1208. In one embodiment,application player 1208 comprises an Adobe® Flash® Player or an equivalent Flash® player, suitable for executing Shockwave Flash (.swf) files to display vector-based animations, to stream audio and video content, and to allow various forms of user interaction.Application player 1208 may comprise, for example, a Flash®-compatible player that has been optimized for embedded environments. In accordance with such an embodiment,application player 1208 provides support for an embedded scripting language called ActionScript, which is based on ECMAScript.Application player 1208 may provide native support for a plurality of ActionScript function calls. Furthermore, as noted above,class modules 1230 may define additional ActionScript function calls that can be used by one or more applications that are executed byapplication player 1208. -
Software architecture 1200 further includes a plurality ofapplications 1240, each of which may be executed byapplication player 1208.Applications 1240 may comprise Flash® applications.Applications 1240 may be selectively executed by users to invoke telephony or digital media services provided bydevice 110. Where an application provides digital media services, such services may be provided using functionality and/or data stored locally with respect todevice 110 as well as using remotely-located functionality and/or data, such as functionality and/or data obtained over a WAN such as the Internet. For example, provision of a digital media service may entail invoking a Web service via the Internet. - As shown in
FIG. 12 , these applications may include a status/monitoring application 1242, an application (app)manager 1244, aVoIP telephone 1246, a local ornetwork calendar 1248, aYouTube™ application 1250, atraffic monitoring application 1252, anews application 1254, analarm clock 1256, and other applications 1258. - Other applications 1258 may include for example, a calculator, a local or network address book, a media player, an Internet radio/video application, a weather application, a comics application, a to-do list application, a world clocks application, a countdown timer (e.g., days until Christmas), a games application (e.g., solitaire, Soduko, Tetris, etc.), a Web browser, an e-mail application, a city guide application, a wireless cameras application, a home monitoring application, a home control application (e.g. lights, audio/video (A/V) system, HVAC, UPnP), a Flickr™ photos application, a Google™ talk application, a map application, a directory services/yellow pages application, an EPG (TV Guide) application, a word of the day application, a joke of the day application, a quotations application, a dictionary application, a movie times application, a delivery services application, an RSS reader, a stock ticker, or a social networking application, such as a Ning™ or Facebook™ application. Various features associated with certain ones of these applications will be described in more detail herein.
- The use of Flash® applications to implement the various GUI screens of
device 110 provides distinct advantages over using more traditional programming languages such as C or C++. For example, development of GUI screens using Flash® is simpler and easier as compared to programming bit maps in C code. Furthermore, because Flash® files are small, a complex GUI screen may be rendered smoothly and at very high speeds. Also the use of Flash® applications provides a distinct separation between the implementation of a GUI screen and the underlying functionality, such that the GUI screen may be constructed, revised or upgraded without affecting underlying programs. -
FIG. 13 is a block diagram that depictssystems software elements 1300 of the software architecture ofdevice 110 in accordance with an embodiment of the present invention. As shown inFIG. 13 ,systems software elements 1300 include aBIOS 1302, aboot loader 1304, anoperating system 1306, afile system 1308, and system files 1310. Each of these elements will now be described. -
BIOS 1302 defines a software interface between the operating system and the platform firmware and hardware ofdevice 110.BIOS 1302 is stored in non-volatile memory that is connected to a system controller hub withindevice 110 and is executed automatically at system startup. In one embodiment,BIOS 1302 is stored in an 8 Mbit NOR flash memory that is connected to the system controller hub via an LPC bus. - In one implementation,
BIOS 1302 comprises a software interface defined in accordance with the Extensible Firmware Interface (EFI) specification. As will be appreciated by persons skilled in the relevant art(s), EFI comprises an improved replacement of the legacy BIOS used by all IBM PC-compatible computers. EFI has a modular structure that provides a set of modular interfaces that replace the traditional BIOS interfaces. EFI dramatically shortens boot times and improves the reliability of the boot architecture while providing full legacy support. - In an embodiment,
BIOS 1302 may also be thought of as encompassing a video BIOS. The video BIOS provides a set of video-related functions that are used by programs to access video hardware withindevice 110. The video BIOS may comprise for example an Intel® Embedded Graphics Driver (IEGD) video BIOS, developed and sold by Intel Corporation of Santa Clara, Calif., although this is only an example. - In one embodiment of the present invention,
BIOS 1302 outputs a splash screen to the display ofdevice 110 during system startup. In a further embodiment, system hardware allows a video feed to be overlaid upon the splash screen prior to initialization of a graphic sub-system. In such an embodiment, the video feed functionality may be used to overlay a visual progress indicator upon the splash screen during system startup. The visual progress indicator may comprise a status bar, text, or some other visual indicator of the progress of the loading ofBIOS 1302 and booting of the operating system. This visual progress indicator can advantageously be used both by developers during manufacturing and end-users after deployment to monitor device performance. Such a visual progress indicator can be displayed even in an instance where initialization of the graphic sub-system has failed. -
Boot loader 1304 comprises a program that is launched byBIOS 1302 during system startup and that is configured to loadoperating system 1306 ofdevice 110. As noted above, in one embodiment,operating system 1306 comprises a Linux-based operating system, such as an Ubuntu® MID Edition operating system based on Linux kernel release 2.6.24, that has been optimized through custom configuration for a small size and rapid startup. -
Boot loader 1304 and the files that compriseoperating system 1306 are each stored within afile system 1308 implemented using non-volatile storage. In one embodiment, the non-volatile storage comprises a managed NAND flash memory that is connected to a system controller hub withindevice 110. - In one implementation,
file system 1308 comprises two distinct file systems: a Virtual File Allocation Table (VFAT) file system that is used to storeboot loader 1304 and an EXT3 file system that is used to store operating system files and application files. A VFAT file system may be required for storingboot loader 1304 in an implementation in whichBIOS 1302 comprises an EFI BIOS that can only read files from a VFAT file system. - In order to ensure system operability, in a further embodiment, a fail-safe version of the operating system kernel is stored in the VFAT file system while another updateable version of the operating system kernel is stored in the EXT3 file system. The fail-safe version of the operating system and
boot loader 1304 are not updateable (or are only updateable in a highly restricted manner), thereby providing a means for starting up the system even when the updateable version of the operating system kernel is corrupted (e.g., due to a failed update). In such a case, the fail-safe version of the operating system can be booted from the VFAT file system and can load its file system from VFAT into volatile memory (e.g., SDRAM) and run out of the volatile memory. This allows for files in the EXT3 file system to be repaired without fear of overwriting the kernel. This approach also allows for diagnostic testing and the establishment of a network connection to a known server to download the latest stable version of the system firmware (operating system and applications). - In one embodiment,
boot loader 1304 selects the fail-safe kernel instead of the updateable kernel image based on a flag stored in non-volatile storage, which as noted above may comprise a managed NAND flash memory. This flag may be set to select the fail-safe kernel by a process monitor daemon when the process monitor daemon determines that the operating system has been in an unresponsive state for a period of time that equals or exceeds a predetermined period of time. The flag may also be set to select the fail-safe kernel when the system first boots and may be reset to select the updateable kernel upon successful startup of the operating system and process monitor daemon. If the system fails to boot, then a subsequent attempt to boot will force the fail-safe kernel image to boot. - In an embodiment in which the non-volatile memory comprises a managed NAND flash memory, certain features may be implemented to ensure that the EXT3 file system is written to as seldom as possible in order to extend the useful life of the managed NAND flash memory. These features may include, for example, configuring applications that access the EXT3 file system to ensure that such applications do not frequently write files to the file system and configuring the length of a journaling interval of the EXT3 file system so that the lifetime of the managed NAND flash memory will extend beyond the expected lifetime of
device 110. Another feature that may be used to extend the life of the managed NAND flash memory comprises turning off a feature of the EXT3 file system that records the last access time of a file. These features are provided by way of example, and other features not described here may be used to extend the life of the managed NAND flash memory. -
System files 1308 comprise shared libraries that contain code and data that may be used to provide services to independent programs running in the context ofoperating system 1306. In an embodiment, the number of system files 1308 maintained on the system is kept to a minimum to conserve system resources. Such files may be stored in an EXT3 file system as described above and updated or added to as needed to support system and application programs. - In one implementation,
BIOS 1302,boot loader 1304,operating system 1306 andsystem files 1308 are all updateable. As noted above, restrictions may be placed on updatingboot loader 1304 and a fail-safe version ofoperating system 1306 that reside in a VFAT filing system in order to ensure that those software modules do not become corrupted. Safe updates ofBIOS 1302 may be achieved by maintaining separate version ofBIOS 1302 within the same non-volatile memory, such that a first version ofBIOS 1302 can be updated while a second version ofBIOS 1302 may be maintained in case the update of the first version ofBIOS 1302 fails, thereby resulting in the corruption of the first version. - As will be described in more detail in this section, the software architecture of
device 110 provides a framework that supports a variety of applications, including applications that delivery telephony and digital media services to an end user. To ensure thatdevice 110 may be deployed by a variety of different service providers (e.g., telecommunications companies, multi system operators, Internet Service Providers, or the like), the application framework supports multiple GUI themes and languages, proprietary protocols, and incremental deployment of applications. The application framework also provides an infrastructure within which a variety of different applications can operate and co-exist without any preconceived notion of what those applications may be. For example, althoughdevice 110 may support VoIP telephony,device 110 may nevertheless be deployed without a VoIP telephony application. - The application framework also provides a modular approach for deploying applications such that a common set of application can be deployed for different service providers. Application deployment models supported by the framework include subscription models in which a user of
device 110 determines at runtime which applications are to be installed as well as a model in which a static set of applications are deployed that are updated monolithically. Because multiple applications may be deployed, each of which may generate asynchronous events, the application framework also provides a method for synchronizing applications. -
FIG. 14 is a block diagram of anapplication framework 1400 that may be implemented bydevice 110. As shown inFIG. 14 ,application framework 1400 includes anapplication player 1402 that is analogous toapplication player 1208 described above in reference toFIG. 12 .Application player 1402 provides native support for a plurality of ActionScript function calls. In the absence of desired functionality,application player 1402 may be enhanced by adding custom software libraries, such as custom C/C++ libraries, that define additional ActionScript function calls. Such libraries are denotedclass modules 1406 inFIG. 14 and are analogous toclass modules 1230 described above in reference toFIG. 12 . Aclass module 1406 may be introduced in conjunction with a new application. Also,several class modules 1406 may be provided as part of an initial deployment to assist applications with common functionality such as usage monitoring and language translations. - As shown in
FIG. 14 ,class modules 1406 may include an applicationmanager class module 1410, aninternationalization class module 1412, a status/monitoring class module 1414, aVoIP class module 1416, a YouTube™ class module 1418, as well as other class modules. YouTube™ class module 1418 is representative of a class module that provides an API for allowing an application to request and obtain digital content from a Web service such as YouTube™. -
Application framework 1400 further includes anapplication manager 1404, which in an embodiment comprises one or more movie applications.Application manager 1404 may also be thought of as encompassing correspondingclass module 1410, which serves to extend the functionality thereof.Application manager 1404 comprises the launching point for all applications on the system. - In particular,
application manager 1404 is configured to interrogatecorresponding class module 1410 for a list of available applications, which in one embodiment is acquired from a local XML file. In one embodiment, the list contains sets of Uniform Resource Locators (URLs) that identify an icon movie and application movie corresponding to each application.Application manager 1404 can then display each application icon accordingly via the GUI provided by touch-panel display ofdevice 110. When a user selects an icon,application manager 1404 invokes the corresponding application URL. Because the icons are themselves small applications, they can advantageously be configured to include animations, or to include intelligence for presenting dynamically-changing data such as current weather conditions, stock prices, or time of day. - The following provides an example of an XML configuration file that lists two applications:
-
<apps> <app name= “Phone” version=“1.0” GUID=“00df-3434-cccc-3422”> <icon url= “file://apps/phone/icon_phone.swf”/> <app url=file://apps/phone/app_phone.swf/> </app> <app name=“YouTube” version=“1.0” GUID=“00df-3664-aacc-3555”> <icon url=“file://apps/youtube/icon_youtube.swf”> <app url=file://apps/youtube/app_youtube.swf/> </app> </apps> - As mentioned above, depending on the deployment model, new and updated applications may be distributed as part of a monolithic update, or incrementally on a device or subscriber basis. In one example of an incremental approach,
application manager 1404 is configured to query a remotely-located application server for the latest list of available applications. A user may also optionally be allowed to select certain applications. In response, the application server returns a list that identifies an installation package for each of the various applications. The identification for each installation package may comprise a URL. The following provides an example of such a list: -
<apps> <app name=“App1” install=“http://www.customer.com/app1.tar”/> <app name=“App2” install=“http://www.customer.com/app2.tar”/> </apps> - In the foregoing example, each installation package comprises an archive file.
Application manager 1404 may be configured to retrieve and install the applications by executing a shell script (which may be denoted, for example, “install.sh”) that is contained in each installation package archive. Once the installation process is complete,application manager 1404 updates the local XML file that contains the list of all installed applications. Similarly, if a user wishes to remove an application,application manager 1404 can be invoked to execute an uninstall shell script that was provided as part of the installation package. -
FIG. 15 depicts anexample installation package 1500 that may be provided from a remote application server todevice 110 in accordance with one embodiment of the present invention. As shown inFIG. 15 ,application package 1500 includes an installscript 1502 that may be executed to install an application, anuninstall script 1504 that may be executed to uninstall an application, anicon movie 1506 that may be executed to display an icon representative of the application within a GUI, anapplication movie 1508 that may be executed to deliver the functionality of the application to a user, and alanguage file 1510 that may be used to provide representations of text elements to be displayed by the application in one or more languages. - A sample directory structure of an application installed on
device 110 is as follows: -
/tango /apps /guid /install.sh /uninstall.sh /icon_app1.swf /app_app1.swf /language.xml
In the foregoing, “install.sh” is the name of an install shell script, “uninstall.sh” is the name of an uninstall shell script, “icon_appl.swf” is the name of the icon movie used to represent the application on the GUI, “app_appl.swf” is the name of the application movie, and “language.XML” is an XML file that includes representations of text elements to be displayed by the application in one or more languages. -
FIG. 16 depicts an embodiment of the invention in whichapplication manager 1404 comprises two Flash® movie applications: amanager movie 1602, which may be denoted “manager.swf”, and atheme movie 1604, which may be denoted “theme.swf”. The prefix .swf denotes a Shockwave Flash file. This embodiment will now be described in more detail. -
Manager movie 1602 consists of three layers as illustrated inFIG. 17 : awatermark layer 1702, atheme layer 1704 and asplash screen layer 1706.Watermark layer 1702 is optional and is reserved for a branding statement that is viewable via transparent application layers. Above that,theme layer 1704 serves as a container in whichtheme movie 1604 is loaded.Splash screen layer 1706 is visible during initialization time. Oncetheme movie 1604 has been loaded,splash screen layer 1706 becomes transparent.Splash screen layer 1706 may contain minimal graphical assets. - One purpose of
theme movie 1604 is to provide a vehicle by which a serviceprovider deploying device 110 can customize the look and feel of the GUI ofdevice 110.Theme movie 1604 consists of four layers as illustrated inFIG. 18 : anicon layer 1802, anapplication layer 1804, a status bar layer 1806 and ascreen saver layer 1808.Icon layer 1802 is used to present small graphic representations of the various applications that are available ondevice 110. Each icon presented withinicon layer 1802 itself comprises a movie.Application layer 1804 is reserved for the application movies that are executed byapplication player 1402. Within this layer, multiple applications can be stacked. When a user selects an icon, the corresponding application is launched by pushing it onto the application layer stack, hidingicon layer 1802. When the application stack is emptied,icon layer 1802 becomes visible again. Status bar layer 1806 is used to display common information such as titles, navigational buttons and date/time.Screen saver layer 1808 may optionally be overlaid on the other three layers whendevice 110 has been active for some period of time. The conditions under whichscreen saver layer 1808 is displayed and the content of the layer may be configurable by a user. - The foregoing application framework further provides common components for alerts, keyboards, a movie player, options, and a photo viewer. Applications may interact with these components via ActionScript listener objects.
- With continued reference to
FIG. 18 , when a user launches an application, the application is granted focus and is thus presented inapplication layer 1804 hiding thelower icon layer 1802. Thus, when an application is running, icon movies continue to run inicon layer 1802 although they are hidden. In one implementation ofapplication framework 1400, a user must exit an active application in order to execute another application. This approach may be deemed suitable for a majority of use cases. However, there are certain scenarios that may require a different approach. For example, consider the case in which an asynchronous network event arrives at aclass module 1406, but the Flash® movie corresponding to the class module is not active. - As a specific example, assume that a YouTube™ application is active at the time an incoming telephone call arrives at
VoIP class module 1416. Desired behavior may be that the YouTube™ application would be paused, a VoIP telephone application would be instantiated on the GUI foreground, and a user would be allowed to answer or ignore the telephone call. If the user chose to answer the call, then the telephone application would remain active. However, if the user chose to ignore the call, then the telephone application would be dismissed and the YouTube application would regain focus and automatically resume. - To implement this behavior, an embodiment of the invention espouses a solution that allows a
class module 1406 to surface an asynchronous event during a period when its corresponding application movie is not active. In accordance with this embodiment, each icon movie associated with an application is required to register an event listener with its corresponding class module. When an asynchronous event is raised by the class module, the corresponding icon movie is notified directly. Subsequently, the icon movie requests thatapplication manager 1404 launch the application represented by the icon movie—for example, the icon movie may request thatapplication manager 1404 launch a specified application URL. Prior to executing the URL, a function of the currently-active application is called (which may be denoted “onFocusOut”) to allow the currently-active application to take action (e.g., pausing a movie). Next,application manager 1404 launches the URL and the corresponding application (“the event application”) is displayed in the foreground. During initialization, the trigger event is passed to the event application as a means to communicate context. When the event application is eventually dismissed, a function associated with the underlying inactive application (which may be denoted “onFocusIn”) is called to allow that application to take further action (e.g., resume playback of a movie). - The foregoing process will now be described in reference to a
specific example process 1900 illustrated inFIG. 19 . As shown inFIG. 19 , the process begins atstep 1912 when aphone class module 1902 notifies a correspondingphone icon movie 1904 of an asynchronous event—namely, an incoming telephone call. As discussed above,phone icon movie 1904 previously registered an event listener withphone class module 1902 that makes such notification possible. - At
step 1914, responsive to being notified of the event,phone icon movie 1904 requests thatapplication manager 1404 launch the appropriate application for handling the event, which in this case is anincoming call application 1908. Requesting thatapplication manager 1404 launchincoming call application 1908 may comprise requesting thatapplication manager 1404 launch a specified URL associated withincoming call application 1908. - Prior to launching
incoming call application 1908,application manager 1404 places a function call to a currently-activeYouTube™ application 1906 as shown atstep 1916. This function call is denoted “onFocusOut” inFIG. 19 . Placement of this function call allowsYouTube™ application 1906 to take some action in advance of launching ofincoming call application 1908. This action may comprise, for example, pausing playback of a movie or some other action. - At
step 1918, after placing the onFocusOut function call,application manager 1404 launches incoming call application 1908 (for example, by launching a specified URL associated with the application) and passes the incoming call event toapplication 1908 for appropriate handling. At this point, the interface forincoming call application 1908 is overlaid on top of YouTube™ application interface inapplication layer 1804 oftheme movie 1604. This is depicted inFIG. 20 , which showsincoming call application 1908 andYouTube™ application 1906 executing at different Z orders withinapplication layer 1804. Thecall application 1908 interface may allow the user to perform a variety of actions, including answering the incoming call or ignoring the incoming call. Answering the call may cause yet another application to be launched to perform necessary functions or the necessary functions may be handled exclusively byincoming call application 1908 depending upon the implementation. - In
process 1900, it is assumed that the user chooses to ignore the call through some form of interaction with a GUI ofincoming call application 1908 or through inaction. In this case, the fact that the call was ignored 1920 is reported fromincoming call application 1908 tophone class module 1902 as shown atstep 1920. After the call has been ignored,incoming call application 1908 is dismissed either automatically or through some user action. The dismissal of the application is reported toapplication manager 1404 as shown atstep 1922 at whichpoint application manager 1404 removesincoming call application 1908 fromapplication layer 1804. - At
step 1924, afterincoming call application 1908 has been dismissed,application manager 1404 places a function call to currently inactiveYouTube™ application 1906 as shown atstep 1924. This function call is denoted “onFocusIn” inFIG. 19 . Placement of this function call allowsYouTube™ application 1906 to take some action responsive to the dismissal ofincoming call application 1908. This action may comprise, for example, resuming playback of a movie or some other action. - It is noted that an application can leverage multiple class modules. For example, if an address book application required support for click-to-dial, e-mail and SMS, it could leverage VoIP, e-mail and SMS class modules. This example introduces an interesting issue. If a user activated a click-to-dial function from the address book, an out-bound call would be initiated from the VoIP class module. The user would need to operate the phone. Given the event listening feature discussed above, the event associated with placing a call would surface accordingly, resulting in the phone application being launched in the foreground. The address book application need only have knowledge of the APIs exposed by the VoIP module. The application framework implements the rest.
- In one embodiment of the present invention, software watchdog timers are used to monitor application liveliness.
FIG. 21 provides a diagram illustrating such an approach. As shown inFIG. 21 , after anapplication process 2102 has been launched,application process 2102 sends aregistration message 2112 to register itself with aprocess monitor daemon 2104. After registration,application process 2102 periodically sendsmessages 2114 to processmonitor daemon 2104 to prove that it is still operating. Upon receipt of eachmessage 2114,process monitor daemon 2104 resets a watchdog timer. Ifprocess monitor daemon 2104 fails to receive a message fromapplication process 2102 after a period of time that is greater than or equal to the maximum value of the watchdog timer, denotedsilent period 2116 inFIG. 21 ,process monitor daemon 2104 assumes thatapplication process 2102 is unresponsive, terminatesapplication process 2102, and then restarts it as denoted byreference numeral 2118 inFIG. 21 . - Application restart behavior may be configurable on a per-application basis. In one embodiment, one can define the maximum number of restarts per time before an application is considered to be in a state of perennial failure and the action to take in that case. Actions may include uninstalling the application (running an uninstall script that is associated with the application) or rebooting the entire system. The user may be presented with an on-screen dialog in either case. Also, in certain implementations, such actions will not be undertaken while a telephone call is in progress.
-
Process monitor daemon 2104 may also be configured to monitor the operating condition of the operating system ofdevice 110 using a watchdog timer in a like manner to that described above in reference toFIG. 21 . If the watchdog timer expires before the operating system sends a reporting message to processmonitor daemon 2104, then processmonitor daemon 2104 forces a reboot of the operating system. - Different service providers may wish to deploy the same application. However, each service provider may want the application to reflect its own graphical theme. To simplify the porting effort, an embodiment of the invention implements each application as two movies. An example of this is depicted in
FIG. 22 , which shows anapplication 2200 that comprises afirst movie 2202 that comprises the business logic of the application and asecond movie 2204 that comprises the graphical assets of the application. This approach advantageously allows an application to be ported by simply replacingtheme movie 2204, removing most of the risks of regression. - In accordance with an embodiment of the invention, multiple language support is achieved by enabling applications to query
application manager 1404 for text translation. The active language can be defined on a user or device basis. Whenapplication manager 1404 launches an application, it will pass a unique application identifier, which may be referred to as a global unique identifier (GUID), to the application using an application programming interface (API). This API may be denoted the “startApplication” API. Subsequently, the launched application passes the GUID, an identifier of the text to be translated, and optionally the language to translate to. If the language parameter is not provided,application manager 1404 uses a system default language (e.g., English).Application manager 1404 returns the corresponding text in the selected language from a language XML file associated with the application. The functions for querying for and obtaining text translation may be included withininternationalization class module 1412 inFIG. 14 . - An embodiment of the present invention provides the ability to log application usage, system configuration and system health to a remote server. At the application level, each application notifies status/
monitoring class module 1414 of page transitions and other events, such as placing a phone call, clicking a button, or entering a search term. The amount of detail reported may vary from application to application.Application manager 1404 also contacts status/monitoring class module 1414 to report application launch and exit events. In an embodiment, application launch occurs when a user activates an application icon and application exit occurs when a user returns back to the icon screen. - As represented by
FIG. 23 , status/monitoring class module 1414 accumulates the reported event information in event logs and periodically sends the logs to a configuredremote logging server 2302. In one embodiment, status/monitoring class module 1414 will attempt to send this data every five minutes by default. Iflogging server 2302 is not reachable, status/monitoring class module 1414 will append new events to the log and then will attempt to send the data again. The number of events that may be added to a log may be limited to some predefined number. Events may be marked with timestamps indicative of the time at which each event occurred. In one embodiment, the timestamps are stored as relative offsets so as not to rely on the time of day setting on eachspecific device 110. In accordance with such an embodiment, the offsets may be converted to a time-of-day timestamp atlogging server 2302. -
Logging server 2302 is configured to receive a sequence of logs from a plurality of deployeddevices 110 and to add each log record to adatabase 2304, which is shown inFIG. 23 . A front end, such as a Web front end, executing on a computer 2306 may then be used to provide a human-friendly interface for viewing the data. Where a Web front end is used, the Web pages may comprise PHP programs that perform Structured Query Language (SQL) queries on the data and allow a user to examine aspects such as the top applications used by a specific group of users or the amount of time customers spend in different applications. Understanding which applications are most popular is valuable to service providers deploying applications viadevices 110. Such information can be used, for example, to perform trend spotting and to drive new application development. -
FIG. 24 depicts anexample interface screen 2400 that may be presented by computer 2306 in accordance with an embodiment of the present invention. As shown inFIG. 24 ,interface screen 2400 presents abar chart 2402 showing an execution frequency 2404 of a plurality of applications 2406 that comprise a plurality of most used applications. Each application 2406 is represented by a different colored bar, as shown by alegend 2408. -
FIG. 25 depicts anotherexample interface screen 2500 that may be presented by computer 2306 in accordance with an embodiment of the present invention. As shown inFIG. 25 ,interface screen 2500 presents apie chart 2502 showing a frequency of use of a plurality of applications as a percentage of a total frequency of use over a given time period. Each application is represented by a different colored sector of the pie chart, as shown bylegend 2504. - Periodic updates received by
logging server 2302 may also serve as a device heartbeat, allowinglogging server 2302 to present a status of active or dead devices. The front end presented by computer 2306 may include a Web interface that shows a list ofdevices 110 associated with a particular customer and a visual indicator of the last heartbeat status of eachsuch device 110. An example of such aninterface 2600 is shown inFIG. 26 . As shown in that figure,interface 2600 includes acolumn 2612 that displays a last heartbeat date and time for a plurality of devices associated with a customer. - Other information that may be obtained by
logging server 2602 and provided byinterface 2600 includes a total number of devices associated with thecustomer 2602, a total number of devices associated with the customer that are currently online 2604, a most popular application for the day 2606 (based on customer usage), a MAC address for eachdevice 2608, a comment for eachdevice 2610, a number of application records for each device 2614 (which itself comprises a link to the application records), a number of phone records for each device 2616 (which itself comprises a link to the phone records), a number of boot records for each device 2618 (which itself comprises a link to the boot records), a number of applied updates for each device 2620 (which itself comprises a link to information about the applied updates), a number of group memberships for each device 2622 (which itself comprises a link to information about the group memberships), a start date for eachdevice 2624, an end date for eachdevice 2626, and a link to device usage information for eachdevice 2628. The information collected and presented byserver 2302 may be useful for performing status monitoring, troubleshooting, upgrading and service provisioning. - In an embodiment,
logging server 2602,database 2304 and computer 2306 each comprise part of a device monitoring subsystem that is described in Section II.G.2 below. - Example implementation
details concerning handset 120 will now be provided. As discussed above in reference toFIG. 1 , eachhandset 120 includes a user interface that comprises both adisplay 122 and akeypad 124. In an embodiment,display 122 comprises a 2 in. (5.1 mm) 18-bit color TFT LCD display having an active viewing area of 31.68 mm×39.6 mm, a pixel format of 176×220 pixels, a pixel size of 0.18 mm×0.18 mm, LED backlighting, and a maximum brightness of 350 cd/m2.Keypad 124 comprises a standard telephone keypad including 10 numbers, “*” and “#” keys. In an embodiment, each key is implemented using a pressure membrane switch that is responsive to 180 grams of pressure. - As shown in
FIG. 27 ,handset 120 further comprises user interface navigation controls in the form of a 4-way scroll pad 2714 and a selection/activation button 2716 (also referred to as an “OK” button). - As further shown in
FIG. 27 ,handset 120 includes amicrophone 2706 andspeaker 2708 for conducting a telephone call in a normal mode. As shown inFIG. 28 ,handset 120 also includes a rear-facingspeaker 2802 for conducting a phone call in a speakerphone mode. Aspeakerphone button 2704 is provided for activating the speakerphone mode. An earpiece andmicrophone connector 2804 is provided for plugging in a wired headset. To control speaker volume, a “volume up”button 2710 and a “volume down”button 2712 are provided on one side ofhandset 120. Amute button 2702 is also provided to turn offmicrophone 2706 during a telephone call. -
Handset charging contacts 2718 are provided at the bottom ofhandset 120. Whenhandset 120 is placed in a corresponding docking station 126 (as shown inFIGS. 1 , 29 and 30),handset charging contacts 2718 come into contact with dockingstation charging contacts 3002. This allowsdocking station 126 to charge a battery internal tohandset 120. In one embodiment, the battery internal tohandset 120 comprises a 550 mAh Lithium-Ion battery. The battery is accessible for replacement via aremovable back plate 2806.Docking station 126 also includes aconnector 2902 for receiving power via an AC adapter. In one embodiment, the AC adapter comprises a 5V/500 milliampere-hour (mAh) AC adapter. - As described above, in one embodiment,
handset 120 is configured to act as a DECT client that wirelessly communicates withdevice 110 which acts as a DECT base station. In accordance with such an embodiment,handset 120 may include DECT firmware that supports features such as two- or three-party conferencing, an enhanced graphical user interface, uploadable ringtones (e.g., MIDI and MP3), a synchronized address book, and remotely managed firmware upgrades. - As discussed above in reference to
FIG. 1 , adevice 110 in accordance with an embodiment of the present invention includes adisplay 112 that is used to provide a GUI by which a user may initiate, manage and experience telephony and digital media services. Example GUI screens by which the user may perform such functions will now be described. The example GUI screens described in this section are particularly suitable for use with an embodiment ofdevice 110 in which display 112 comprises a color LCD display and integrated capacitive touch screen panel. In accordance with such an embodiment, a user may interact with the GUI by touchingdisplay 112 with a finger. For example, a user may touch a portion ofdisplay 112 corresponding to a graphic element in order to activate or select that element. However, the GUI screens described in this section are not limited to such an implementation and other forms of interaction may be used. -
FIG. 31 depicts an examplehome GUI screen 3100 in accordance with an embodiment of the present invention. As shown inFIG. 31 , examplehome GUI screen 3100 comprises a plurality oficons 3104, each of which is representative of a different application that may be executed ondevice 110. In an embodiment, an application is launched when a user activates an icon associated with the application. An exception to this isicon 3120 which, when activated, will display addition application icons. As noted above, in an embodiment, activation of an icon may comprise touching the icon ondisplay 112, although other forms of activation may be used depending upon the implementation.Home GUI screen 3100 also includes astatus bar 3102.Status bar 3102 includes anicon 3112 representative ofhome GUI screen 3100, a name 3114 (“Home”) associated withhome GUI screen 3100, and an indication of thecurrent date 3116 andtime 3118. - As discussed elsewhere herein, each icon on
home screen 3100 may comprise a Shockwave Flash movie that is executed within an icon layer of a theme movie displayed ondisplay 112. Likewise,status bar 3102 may comprise a Shockwave Flash movie that is executed within a status bar layer of the theme movie. Various example GUI screens described below also include a status bar that may be implemented in a like manner. -
FIG. 32 depicts anexample GUI screen 3200 for a telephony application in accordance with an embodiment of the present invention. As shown inFIG. 32 ,example GUI screen 3200 includes astatus bar 3202 and atelephony application interface 3204. Telephony application interface may comprise a Shockwave Flash movie that is executed within an application layer of a theme movie displayed ondisplay 112. Various example GUI screens described below also include application interfaces that may be implemented in a like manner. -
Status bar 3202 includes anicon 3212 representative of the telephony application, a name 3214 (“Phone”) associated with the telephony application, an indication of thecurrent date 3216 andtime 3218 and a “home”button 3220. When a user activates “home”button 3220, the user will be returned tohome GUI screen 3100. -
Telephony application interface 3204 includes akeypad 3230 that can be used to enter a telephone number 3262 which appears in adisplay window 3254. Any numbers entered in this fashion can be deleted using adelete button 3256.Display window 3254 also includes an indication of acall status 3260. In the example GUI depicted inFIG. 32 , the call status is “connected.” -
Telephony application interface 3204 further includes abutton 3240 for increasing the volume at which the audio content of a call will be heard and abutton 3242 for decreasing the volume. Avolume indicator 3244 provides a graphical indication of the current volume level. A “redial”button 3246 may be activated to automatically dial the most-recently dialed number. A “mute”button 3248 may be activated to turn off a microphone associated withdevice 110 during a telephone call. A “flash”button 3250 may be activated to perform special services that may be provided by the telephony application such as, for example, three-way calling, call waiting, conference calling, or call transfers. A “call”button 3252 may be activated to place a call to the number shown indisplay window 3254. -
Telephony application interface 3204 also includes a “contacts”button 3232 that when activated causes a contacts application to be launched, a “call logs”button 3234 that when activated causes a call logs application to be launched, a “messages”button 3236 that when activated causes a voicemail application to be launched, and a “handsets”button 3238. -
FIG. 33 depicts anexample GUI screen 3300 for a call log application in accordance with an embodiment of the present invention. As shown inFIG. 33 ,example GUI screen 3300 includes astatus bar 3302 and a calllog application interface 3304. -
Status bar 3302 includes anicon 3312 representative of the call log application, a name 3314 (“Call Log”) associated with the call log application, an indication of thecurrent date 3316 andtime 3318, a “phone”button 3320 and a “home”button 3322. When a user activates “phone”button 3320,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 3322, the user will be returned tohome GUI screen 3100. - Call
log application interface 3304 displays all or a portion of alog 3330 of previously-placed outgoing and incoming telephone calls. To page up through log 3330 a “page up”button 3332 may be activated and to page down a “page down”button 3334 may be activated. Apage indicator 3336 indicates which of one or more pages oflog 3330 is currently being displayed. To see incoming calls only, an “incoming”tab 3338 may be activated, to see outgoing calls only an “outgoing”tab 3340 may be activated, and to return to a list of all incoming and outgoing calls an “all”tab 3342 may be activated. For each call listed inlog 3330, the following information is displayed: a name of a calling/calledparty 3344, a phone number associated with the calling/calledparty 3346, a date/time of theprevious call 3348 and a duration of theprevious call 3350. To select a call listed inlog 3330, the horizontal bar that provides information about the call may be activated. Calllog application interface 3304 further includes a “remove”button 3352 that can be used to remove a selected entry fromlog 3330 and a “remove all”button 3354 that can be used to remove all incoming and/or outgoing entries fromlog 3330. -
FIG. 34 depicts anexample GUI screen 3400 for a voicemail application in accordance with an embodiment of the present invention. As shown inFIG. 34 ,example GUI screen 3400 includes astatus bar 3402 and avoicemail application interface 3404. -
Status bar 3402 includes anicon 3412 representative of the voicemail application, a name 3414 (“Voicemail”) associated with the voicemail application, an indication of thecurrent date 3416 andtime 3418, a “phone”button 3420 and a “home”button 3422. When a user activates “phone”button 3420,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 3422, the user will be returned tohome GUI screen 3100. -
Voicemail application interface 3404 displays all or a portion of alist 3430 of saved voicemail messages. To page up through list 3430 a “page up”button 3432 may be activated and to page down a “page down”button 3434 may be activated. Apage indicator 3436 indicates which of one or more pages oflist 3430 is currently being displayed. For each voicemail message inlist 3430, the following information is displayed: a name of a party that left thevoicemail message 3438, aphone number 3440 associated with the party that left the voicemail message, and a date/time 3442 that the voicemail message was left. To select a voicemail message listed inlist 3430, the horizontal bar that provides information about the voicemail may be activated. -
Voicemail application interface 3404 further includes a “play”button 3444 for playing a selected voicemail message, a “rewind”button 3446 for rewinding the content of a selected voicemail message, and a “fast forward”button 3448 for fast forwarding the content of a selected voicemail message. Abutton 3450 is provided for increasing the volume at which the content of a voicemail message will be heard and abutton 3452 is provided for decreasing the volume. A volume indicator 3454 provides a graphical indication of the current volume level. A “mute”button 3456 is also provided for turning off the audio output associated with a voicemail message. -
FIG. 35 depicts anexample GUI screen 3500 for a contacts application in accordance with an embodiment of the present invention. As shown inFIG. 35 ,example GUI screen 3500 includes astatus bar 3502 and acontacts application interface 3504. -
Status bar 3502 includes anicon 3512 representative of the contacts application, a name 3514 (“Contacts”) associated with the contacts application, an indication of thecurrent date 3516 andtime 3518, a “phone”button 3520 and a “home”button 3522. When a user activates “phone”button 3520,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 3522, the user will be returned tohome GUI screen 3100. -
Contacts application interface 3504 displays all or a portion of alist 3530 of user contacts. To page up through list 3530 a “page up”button 3532 may be activated and to page down a “page down”button 3534 may be activated. Apage indicator 3536 indicates which of one or more pages oflist 3530 is currently being displayed. To view contacts starting with a particular letter of the alphabet, one a series ofbuttons 3538 corresponding to each letter of the alphabet may be activated. For each contact inlist 3530, the following information is displayed: a name of thecontact 3540, afirst phone number 3542 associated with the contact, and asecond phone number 3544 associated with the contact. To select a contact from among those inlist 3530, the horizontal bar that provides information about the contact may be activated. -
Contacts application interface 3504 further includes an “add name”button 3546 that when activated launches a dialog for adding a person to list 3530 and an “add group” button 3548 that when activated launches a dialog for adding a group of people to list 3530. -
FIG. 36 depicts anexample GUI screen 3600 for a weather application in accordance with an embodiment of the present invention. As shown inFIG. 36 ,example GUI screen 3600 includes astatus bar 3602 and aweather application interface 3604. -
Status bar 3602 includes anicon 3612 representative of the weather application, a name 3614 (“Weather”) associated with the weather application, an indication of thecurrent date 3616 andtime 3618, a “phone”button 3620 and a “home”button 3622. When a user activates “phone”button 3620,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 3622, the user will be returned tohome GUI screen 3100. -
Weather application interface 3604 includes adisplay area 3630 that provides weather information for aparticular location 3632. In the example ofFIG. 36 , the particular location is “Phoenix, Ariz.” The particular location may be one of a series of predefined locations for which weather information is available. To view weather information for a preceding location in the series a “page up”button 3634 is provided. To view weather information for a subsequent location in the series a “page down”button 3636 is provided. An “add”button 3638 is provided that, when activated, launches a dialog by which a location may be added to the series of locations. A “remove”button 3640 is also provided that, when activated, launches a dialog by which a location may be removed from the series of locations. Abutton 3642 allows a user to select whether temperatures should be displayed in degrees Fahrenheit (° F.) or degrees Celsius (° C.). A “video”button 3644 is provided that allows a user to watch weather-related video content such as a video feed from a weather camera or the like. -
FIG. 37 depicts anexample GUI screen 3700 for a movie showtimes application in accordance with an embodiment of the present invention. As shown inFIG. 37 ,example GUI screen 3700 includes astatus bar 3702 and a movieshowtimes application interface 3704. -
Status bar 3702 includes anicon 3712 representative of the movie showtimes application, a name 3714 (“Showtimes”) associated with the movie showtimes application, an indication of thecurrent date 3716 andtime 3718, a “phone”button 3720 and a “home”button 3722. When a user activates “phone”button 3720,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 3722, the user will be returned tohome GUI screen 3100. - Movie
showtimes application interface 3704 includes a first display area that displays all or a portion of a list ofmovie theaters 3730 associated with aparticular location 3732. In the example ofFIG. 37 , the particular location is “Boca Raton Fla.” To page up through list 3730 a “page up”button 3734 may be activated and to page down a “page down”button 3736 may be activated. Apage indicator 3738 indicates which of one or more pages oflist 3730 is currently being displayed. To select a movie theater from among those inlist 3730, the horizontal bar that provides information about the movie theater may be activated. - Movie
showtimes application interface 3704 also includes a second display area that displays all or a portion of a list of movies and associatedshowtimes 3740 associated with a movie theater selected in the first display area. To page up through list 3740 a “page up”button 3742 may be activated and to page down a “page down”button 3744 may be activated. Apage indicator 3746 indicates which of one or more pages oflist 3740 is currently being displayed. - A “change location”
button 3748 is provided that, when activated, launches a dialog by which a user can select a different location for which to obtain movie showtime information. -
FIG. 38 depicts anexample GUI screen 3800 for a media application in accordance with an embodiment of the present invention. As shown inFIG. 38 ,example GUI screen 3800 includes astatus bar 3802 and amedia application interface 3804. -
Status bar 3802 includes anicon 3812 representative of the media application, a name 3814 (“Media”) associated with the media application, an indication of thecurrent date 3816 andtime 3818, a “phone”button 3820 and a “home”button 3822. When a user activates “phone”button 3820,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 3822, the user will be returned tohome GUI screen 3100. -
Media application interface 3804 comprises four different interfaces, only one of which may be shown at any given time: a photos interface that may be selected by activating a “photos”tab 3830, a music interface that may be selected by activating a “music”tab 3832, a videos interface that may be selected by activating a “videos”tab 3834, and a podcasts interface that may be selected by activating a “podcasts”tab 3836. InFIG. 38 , the photos interface is currently being displayed. As shown in that figure, the photos interface includes adisplay area 3840 within which a plurality of digital photos is displayed. The displayed photos may comprise one page in a series of pages of digital photos. To page up through the series a “page up”button 3842 may be activated and to page down a “page down”button 3844 may be activated. Apage indicator 3846 indicates which of one or more pages in the series of pages is currently being displayed. -
FIG. 39 depicts aGUI screen 3900 for the aforementioned media application in which the music interface is displayed. As shown inFIG. 39 , the music interface includes a display area that displays all or a portion of a list ofsongs 3930. To page up through list 3930 a “page up”button 3932 may be activated and to page down a “page down” button 3934 may be activated. Apage indicator 3936 indicates which of one or more pages oflist 3930 is currently being displayed. For each song inlist 3930 the following information is provided: a performer of thesong 3942 and thesong title 3944. A song inlist 3930 may be selected by activating the horizontal bar upon which the song information is provided. - The music interface further includes a “play”
button 3946 for playing a selected song, a “rewind”button 3948 for rewinding the content of a selected song, and a “fast forward”button 3950 for fast forwarding the content of a selected song. Abutton 3952 is provided for increasing the volume at which the audio content of a song will be heard and abutton 3954 is provided for decreasing the volume. Avolume indicator 3956 provides a graphical indication of the current volume level. A “mute”button 3956 is also provided for turning off the audio output associated with a song. - The music interface allows song information to be displayed in two formats. The list format shown in
FIG. 39 may be obtained by activating a firstdisplay format button 3938. An icon format shown inGUI interface screen 4000 ofFIG. 40 may be obtained by activating a seconddisplay format button 3940. As shown inFIG. 40 , when the icon format is selected, adisplay area 4002 is presented that displays an icon associated with each song. The song performer and title is displayed below each icon. -
FIG. 41 depicts aGUI screen 4100 for the aforementioned media application in which the videos interface is displayed. As shown inFIG. 41 , the videos interface includes a display area that displays all or a portion of a collection ofmovies 4102. To page up through collection 4102 a “page up”button 4104 may be activated and to page down a “page down”button 4106 may be activated. Apage indicator 4108 indicates which of one or more pages ofcollection 4102 is currently being displayed. For each movie incollection 4108 the following information is provided: a graphic icon representative of the movie and the name of the movie. A movie incollection 4102 may be selected by activating the icon associated with the movie. - The videos interface allows movies to be displayed in two formats. A list format in which information about each movie is provided in a horizontal bar may be obtained by activating a first
display format button 4110. The icon format shown inFIG. 41 may be obtained by activating a seconddisplay format button 4112. -
FIG. 42 depicts aGUI screen 4200 for a video player application in accordance with an embodiment of the present invention. In one embodiment, the video player application is launched andGUI interface screen 4200 is presented to a user when the user activates a movie incollection 4102 that is displayed withinGUI screen 4100. - As shown in
FIG. 42 ,GUI interface screen 4200 includes adisplay area 4202 for displaying video content such as video content associated with a movie.GUI interface screen 4200 also includes a “back”button 4204 that allows a user to terminate the playback of the video content and return to a previously-viewed GUI screen, a “play”button 4208 that allows a user to play the video content, a “rewind”button 4206 that allows a user to rewind the video content, a “fast forward”button 4210 that allows a user to fast forward the video content, abutton 4214 that allows a user to increase the volume of audio content associated with the video content, abutton 4212 that allows a user to decrease the volume of the audio content, and a “mute”button 4216 that allows the user to turn off the audio content entirely. - In
FIG. 42 ,display area 4202 displays a message that indicates that video content is being loaded.FIG. 43 depicts another view ofGUI interface screen 4200 in whichvideo content 4302 associated with a movie is playing indisplay area 4202. -
FIG. 44 depicts aGUI screen 4400 for the aforementioned media application in which the podcasts interface is displayed. As shown inFIG. 44 , the podcasts interface includes a display area that displays all or a portion of a list ofpodcast providers 4402. To page up through list 4402 a “page up”button 4404 may be activated and to page down a “page down” button 4406 may be activated. Apage indicator 4408 indicates which of one or more pages oflist 4402 is currently being displayed. Aname 4414 is provided for each podcast provider inlist 4402. A podcast provider inlist 4402 may be selected by activating the horizontal bar upon which the song information is provided. - Control over the playback and volume of audio content of a podcast is provided using an
interface 4416 that includes elements that are substantially similar to elements described above inexample GUI screen 4000 ofFIG. 40 . - The podcasts interface allows podcast provider information to be displayed in two formats. The list format shown in
FIG. 44 , in which information about each podcast provider is displayed in a horizontal bar, may be obtained by activating a firstdisplay format button 4410. An icon format shown inGUI interface screen 4500 ofFIG. 45 may be obtained by activating a seconddisplay format button 4412. As shown inFIG. 45 , when the icon format is selected, adisplay area 4502 is presented that displays an icon associated with each podcast provider. The name of the podcast provider is displayed below each icon. -
FIG. 46 depicts anexample GUI screen 4600 for a cameras application in accordance with an embodiment of the present invention. As shown inFIG. 46 ,example GUI screen 4600 includes astatus bar 4602 and a cameras application interface 4604. -
Status bar 4602 includes anicon 4612 representative of the cameras application, a name 4614 (“Cameras”) associated with the cameras application, an indication of thecurrent date 4616 andtime 4618, a “phone”button 4620 and a “home”button 4622. When a user activates “phone”button 4620,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 4622, the user will be returned tohome GUI screen 3100. - Cameras application interface 4604 includes a first display area that displays all or a portion of a list of
cameras 4630 that are capable of providing a video feed todevice 110. To page up through list 4630 a “page up”button 4632 may be activated and to page down a “page down”button 4634 may be activated. Apage indicator 4636 indicates which of one or more pages oflist 4630 is currently being displayed. For each camera identified inlist 4630, aname 4638 is provided. To select a camera from among those inlist 4630, the horizontal bar that provides the name of the camera may be activated. - Cameras application interface 4604 also includes a second display area that displays video content received from a selected camera in a
preview window 4640. A “view”button 4642 may be activated to allow a user to view the video content from the selected camera in a furthercameras application interface 4702 which is depicted inexample GUI screen 4700 ofFIG. 47 . As shown inFIG. 47 ,cameras application interface 4702 includes an expandedwindow 4704 in which video content from the selected camera is displayed as well as a camera control interface that includes a “zoom out”button 4706, a “zoom in”button 4708, a “pan left”button 4712, a “pan right”button 4714, a “tilt up”button 4716 and a “tilt down”button 4710. As will be appreciated by persons skilled in the relevant art(s), these buttons may be used to control pan, tilt and zoom features of cameras that support such functionality. -
FIG. 48 depicts anexample GUI screen 4800 for a news application in accordance with an embodiment of the present invention. As shown inFIG. 48 ,example GUI screen 4800 includes astatus bar 4802 and anews application interface 4804. -
Status bar 4802 includes anicon 4812 representative of the news application, a name 4814 (“News”) associated with the news application, an indication of thecurrent date 4816 andtime 4818, a “phone”button 4820 and a “home”button 4822. When a user activates “phone”button 4820,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 4822, the user will be returned tohome GUI screen 3100. -
News application interface 4804 includes adisplay area 4830 that displays all or a portion of a collection of news sources that are capable of feeding news articles todevice 110. To page backwards through the collection of news sources a “page backward”button 4836 may be activated and to page forward a “page forward”button 4838 may be activated. Apage indicator 4840 indicates which of one or more pages of the collection is currently being displayed. For each news source identified indisplay area 4830, a graphic icon (such as icon 4832) is provided and a name of the news source (such as name 4834) is provided. To obtain news from a news source identified indisplay area 4830, the icon representing the news source may be activated. - If a user activates a news source icon, a further news application interface is provided by which news articles from the selected source may be viewed. An example of such an
interface 4902 is depicted inexample GUI screen 4900 ofFIG. 49 . As shown inFIG. 49 ,interface 4902 includes adisplay area 4904 that presents content associated with a news article. Such content may include for example a title of thenews article 4912, a graphic or video associated with thenews article 4912, and text associated with the news article which is displayed in atext display area 4916. A user may scroll the text displayed withintext display area 4916 up and down by activating a “scroll up”button 4918 and a “scroll down”button 4920 respectively. - Additional news articles from the same news source may be available on one or more preceding or subsequent pages viewable within
display area 4904. To access such articles, a “page backward”button 4906 or a “page forward”button 4908 may be activated. Apage indicator 4910 indicates which of one or more pages of news articles is currently being displayed. A “back” button may be activated to return toGUI screen 4800 ofFIG. 48 . -
FIG. 50 depicts anexample GUI screen 5000 for a horoscopes application in accordance with an embodiment of the present invention. As shown inFIG. 50 ,example GUI screen 5000 includes astatus bar 5002 and ahoroscopes application interface 5004. -
Status bar 5002 includes anicon 5012 representative of the horoscopes application, a name 5014 (“Horoscopes”) associated with the horoscopes application, an indication of thecurrent date 5016 andtime 5018, a “phone”button 5020 and a “home”button 5022. When a user activates “phone”button 5020,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 5022, the user will be returned tohome GUI screen 3100. -
Horoscopes application interface 5004 includes a display area that displays a graphic icon representing each sign of the zodiac (such as icon 5030) and an associated name (such as name 5032). To obtain a current horoscope for a zodiac sign identified inhoroscopes application interface 5004, the icon representing the zodiac sign may be activated. - If a user activates a zodiac sign icon, a further horoscopes interface is provided in which a current horoscope for the activated zodiac sign may be viewed. An example of such an
interface 5102 is depicted inexample GUI screen 5100 ofFIG. 51 . As shown inFIG. 51 ,interface 5102 displays the name of therelevant zodiac sign 5104, anicon 5106 that represents the relevant zodiac sign, and atext display area 5108 in which the horoscope text for the relevant zodiac sign is displayed. A user may scroll the text displayed withintext display area 5108 up and down by activating a “scroll up”button 5110 and a “scroll down”button 5112 respectively. A “back”button 5114 may be activated to return toGUI screen 5000 ofFIG. 50 . -
FIG. 52 depicts anexample GUI screen 5200 for a recipes application in accordance with an embodiment of the present invention. As shown inFIG. 52 ,example GUI screen 5200 includes astatus bar 5202 and arecipes application interface 5204. -
Status bar 5202 includes anicon 5212 representative of the recipes application, a name 5214 (“Recipes”) associated with the recipes application, an indication of thecurrent date 5216 andtime 5218, a “phone”button 5220 and a “home”button 5222. When a user activates “phone”button 5220,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 5222, the user will be returned tohome GUI screen 3100. -
Recipes application interface 5204 includes adisplay area 5230 that displays all or a portion of a collection of recipes. To page backwards through the collection of recipes a “page backward”button 5236 may be activated and to page forward a “page forward”button 5238 may be activated. Apage indicator 5240 indicates which of one or more pages of the collection is currently being displayed. For each recipe identified indisplay area 5230, a graphic icon (such as icon 5232) is provided and a name of the recipe (such as name 5234) is provided. To obtain details concerning a recipe identified indisplay area 5230, the icon representing the recipe may be activated. - If a user activates a recipe icon, a further recipes interface is provided in which recipe details may be viewed. An example of such an
interface 5302 is depicted inexample GUI screen 5300 ofFIG. 53 . As shown inFIG. 53 ,interface 5302 displays the name of therelevant recipe 5304, a picture orgraphic icon 5306 that represents the relevant recipe, and atext display area 5308 in which the recipe text for the relevant recipe is displayed. A user may scroll the text displayed withintext display area 5308 up and down by activating a “scroll up”button 5310 and a “scroll down”button 5312 respectively. A “back”button 5314 may be activated to return toGUI screen 5300 ofFIG. 53 . -
FIG. 54 depicts anexample GUI screen 5400 for a calendar application in accordance with an embodiment of the present invention. As shown inFIG. 54 ,example GUI screen 5400 includes astatus bar 5402 and acalendar application interface 5404. -
Status bar 5402 includes anicon 5412 representative of the news application, a name 5414 (“News”) associated with the news application, an indication of thecurrent date 5416 andtime 5418, a “phone”button 5420 and a “home”button 5422. When a user activates “phone”button 5420,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 5422, the user will be returned tohome GUI screen 3100. -
Calendar application interface 5404 comprises two different interfaces, only one of which may be shown at any given time: a monthly calendar interface that may be selected by activating a “month”tab 5436 and a daily calendar interface that may be selected by activating a “day”tab 5438. InFIG. 54 , the monthly calendar interface is currently being displayed. As shown in that figure, the monthly calendar interface includes adisplay area 5430 within which a monthly calendar is displayed. Activating a particular date within the monthly calendar will cause the daily calendar interface to be displayed for that date. An “up arrow”button 5432 allows a user to display a previous month withindisplay area 5430 and a “down arrow”button 5434 allows a user to display a subsequent month withindisplay area 5430. -
FIG. 55 depicts aGUI screen 5500 for the aforementioned calendar application in which the daily calendar interface is displayed. As shown inFIG. 55 , the daily calendar interface includes a temporally-ordered list of scheduled daily activities orappointments 5504 corresponding to a particular date which is displayed in awindow 5502. To page up through list 5504 a “page up”button 5506 may be activated and to page down a “page down”button 5508 may be activated. Apage indicator 5510 indicates which of one or more pages oflist 5504 is currently being displayed. For each scheduled appointment or activity scheduled inlist 5504 an appointment/activity time 5520 anddescriptor 5522 is displayed. An “add”button 5512 may be activated to launch a dialog by which a new appointment or activity may be added tolist 5504. A “remove”button 5514 may be activated to remove a selected appointment or activity fromlist 5504. To change the date for which calendar information is being displayed to a previous date a “backward arrow”button 5516 may be activated and to change the date to a subsequent date a “forward arrow” 5518 button may be activated. -
FIG. 56 depicts anexample GUI screen 5600 for an Internet radio application in accordance with an embodiment of the present invention. In an embodiment, the Internet radio application comprises an application premised on SIRIUS® Internet radio service offered by SIRIUS XM Radio of New York, N.Y. As shown inFIG. 56 ,example GUI screen 5600 includes astatus bar 5602 and acalendar application interface 5604. -
Status bar 5602 includes anicon 5612 representative of the Internet radio application, a name 5614 (“Sirius”) associated with the Internet radio application, an indication of thecurrent date 5616 andtime 5618, a “phone”button 5620 and a “home”button 5622. When a user activates “phone”button 5620,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 5622, the user will be returned tohome GUI screen 3100. - Internet
radio application interface 5604 comprises two different interfaces, only one of which may be shown at any given time: a categories interface that may be selected by activating a “categories”tab 5652 and a controls interface that may be selected by activating a “controls”tab 5654. InFIG. 56 , the categories interface is currently being displayed. As shown in that figure, the categories interface includes a first display area that displays all or a portion of a list ofradio categories 5630. To page up through list 5630 a “page up”button 5632 may be activated and to page down a “page down”button 5634 may be activated. Apage indicator 5636 indicates which of one or more pages ofcategory list 5630 is currently being displayed. Aname 5638 is provided for each category inlist 5630. A category inlist 5630 may be selected by activating the horizontal bar upon which the category name is provided. - As further shown in
FIG. 56 , the categories interface further includes a second display area that displays all or a portion of a collection ofradio channels 5640 corresponding to a selected radio category inlist 5630. To page up through collection 5640 a “page up”button 5642 may be activated and to page down a “page down”button 5644 may be activated. Apage indicator 5646 indicates which of one or more pages ofcollection 5640 is currently being displayed. For each channel displayed incollection 5640, agraphic icon 5648 representing the channel and aname 5650 of the channel is displayed. A channel incollection 5640 may be selected for listening by activating the icon associated with the channel. -
FIG. 57 depicts anexample GUI screen 5700 for a stocks application in accordance with an embodiment of the present invention. As shown inFIG. 57 ,example GUI screen 5700 includes astatus bar 5702 and astocks application interface 5704. -
Status bar 5702 includes anicon 5712 representative of the stocks application, a name 5714 (“Stocks”) associated with the stocks application, an indication of thecurrent date 5716 andtime 5718, a “phone”button 5720 and a “home”button 5722. When a user activates “phone”button 5720,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 5722, the user will be returned tohome GUI screen 3100. -
Stocks application interface 5704 includes a first display area that displays all or a portion of a list ofstocks 5730. To page up through list 5730 a “page up”button 5732 may be activated and to page down a “page down”button 5734 may be activated. Apage indicator 5736 indicates which of one or more pages oflist 5730 is currently being displayed. For each stock identified inlist 5730 the following information is provided: astock symbol 5738, acurrent share price 5740, avisual indicator 5742 of whether the current share price is up or down for the day, and anamount 5744 by which the current share price is up or down for the day. A stock inlist 5730 may be selected by activating the horizontal bar upon which the stock symbol is provided. A user may activate an “add”button 5746 to launch a dialog by which a stock may be added tolist 5730. A user may also activate a “remove”button 5748 to remove a selected stock fromlist 5730. -
Stocks application interface 5704 further includes asecond display area 5750 that provides details about a stock selected fromlist 5730. As shown inFIG. 57 ,second display area 5750 includes awindow 5752 that displays textual information about the relevant stock such as opening price, high price, low price and volume for the current day. As further shown inFIG. 57 ,second display area 5750 further includes astock chart 5754 that graphically depicts the performance of the relevant stock for the current day. By activating stock chart 5754 a user may access additional charts associated with the relevant stock. -
Stock application interface 5704 also includes a dynamically-updatedstock ticker 5756 which displays stock symbols and associated share prices for a variety of stocks in a scrolling fashion. -
FIG. 58 depicts anexample GUI screen 5800 for an Internet video application in accordance with an embodiment of the present invention. In an embodiment, the Internet video application comprises an application premised on a YouTube™ Web service offered by YouTube LLC of San Bruno, Calif. As shown inFIG. 58 ,example GUI screen 5800 includes astatus bar 5802 and an Internetvideo application interface 5804. -
Status bar 5802 includes anicon 5812 representative of the Internet video application, a name 5814 (“You Tube”) associated with the Internet video application, an indication of thecurrent date 5816 andtime 5818, a “phone”button 5820 and a “home”button 5822. When a user activates “phone”button 5820,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 5822, the user will be returned tohome GUI screen 3100. - Internet
video application interface 5804 comprises four different interfaces, only one of which may be shown at any given time: a video search interface that may be selected by activating a “search”button 5842, a featured videos interface that may be selected by activating a “featured”button 5844, a top-rated videos interface that may be selected by activating a “top rated”button 5846 and a popular videos interface that may be selected by activating a “popular”button 5848. InFIG. 58 , the top-rated videos interface is currently being displayed. As shown in that figure, the top-rated videos interface includes adisplay area 5830 that displays all or a portion of a collection of top-ratedvideos 5830. To page up through the collection a “page up”button 5832 may be activated and to page down a “page down”button 5834 may be activated. Apage indicator 5836 indicates which of one or more pages of the collection is currently being displayed. For each video identified in the collection, anicon 5838 and aname 5840 is displayed. A video incollection 5830 may be selected for playback by activating the icon associated with the video. -
FIG. 59 depicts anexample GUI screen 5900 for an Internet-based photo application in accordance with an embodiment of the present invention. In an embodiment, the Internet-based photo application comprises an application premised on a Flickr™ Web service offered by Yahoo! Inc. of Sunnyvale, Calif. As shown inFIG. 59 ,example GUI screen 5900 includes astatus bar 5902 and an Internet-basedphoto application interface 5904. -
Status bar 5902 includes anicon 5912 representative of the Internet-based photo application, a name 5914 (“Flickr”) associated with the Internet-based photo application, an indication of thecurrent date 5916 andtime 5918, a “phone”button 5920 and a “home”button 5922. When a user activates “phone”button 5920,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 5922, the user will be returned tohome GUI screen 3100. - Internet-based
photo application interface 5904 comprises two different interfaces, only one of which may be shown at any given time: a personal photos interface that may be selected by activating a “my photos” button 5938 and a search interface that may be selected by activating a “search”button 5940. InFIG. 59 , the search interface is currently being displayed. As shown in that figure, the results from a search premised on the query terms “Andy Warhol” has returned a collection ofphotos 5930. To page up through the collection a “page up”button 5932 may be activated and to page down a “page down”button 5934 may be activated. Apage indicator 5936 indicates which of one or more pages of the collection is currently being displayed. A photo incollection 5930 may be selected for viewing in a larger window by activating the photo. -
FIG. 60 depicts anexample GUI screen 6000 for an alarm application in accordance with an embodiment of the present invention. As shown inFIG. 60 ,example GUI screen 6000 includes astatus bar 6002 and analarm application interface 6004. -
Status bar 6002 includes anicon 6012 representative of the alarm application, a name 6014 (“Alarm”) associated with the alarm application, an indication of thecurrent date 6016 andtime 6018, a “phone”button 6020 and a “home”button 6022. When a user activates “phone”button 6020,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 6022, the user will be returned tohome GUI screen 3100. -
Alarm application interface 6004 includes an alarm on/offbutton 6036 that a user may activate to turn on or off an alarm. Awindow 6030 displays a time at which the alarm will sound. A “backward arrow” button may be activated to select a previous time while a “forward arrow” button may be activated to select a subsequent time. -
Alarm application interface 6004 further includes all or a portion of alist 6040 of audio files that may be used as an alarm. To page backward through list 6040 a “page backward”button 6042 may be activated and to page forward a “page forward”button 6044 may be activated. Apage indicator 6044 indicates which of one or more pages oflist 6040 is currently being displayed. For each audio file identified inlist 6040, anaudio source 6048 and a descriptor associated with theaudio file 6050 is displayed. System-provided alarms as well as digital music files may be used as the alarm. For system-provided alarms, the audio source is listed as “alarm” and the descriptor of the audio file denotes the alarm type. For digital music files, the audio source is the performer of the digital music and the descriptor provides a name of the song. To select an audio file displayed inlist 6040 as the alarm, the horizontal bar that provides information about the audio file may be activated. -
Alarm application interface 6004 allows audio file information to be displayed in two formats. The list format shown inFIG. 60 may be obtained by activating a firstdisplay format button 6052. An icon format shown inGUI interface screen 6100 ofFIG. 61 may be obtained by activating a seconddisplay format button 6054. As shown inFIG. 61 , when the icon format is selected, adisplay area 6102 is presented that displays anicon 6104 associated with each audio file. A playback button 6106, atitle 6108 andperformer 6110 may be displayed below each icon. -
FIG. 62 depicts anexample GUI screen 6200 for a screensaver application in accordance with an embodiment of the present invention. As shown inFIG. 62 ,example GUI screen 6200 includes astatus bar 6202 and ascreensaver application interface 6204. -
Status bar 6202 includes anicon 6212 representative of the screensaver application, a name 6214 (“Screensaver”) associated with the screensaver application, an indication of thecurrent date 6216 andtime 6218, a “phone”button 6220 and a “home”button 6222. When a user activates “phone”button 6220,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 6222, the user will be returned tohome GUI screen 3100. -
Screensaver application interface 6204 includes all or a portion of alist screensavers 6230 that may be activated by a user for display after a predetermined period of device inactivity. To page up through list 6230 a “page up”button 6232 may be activated and to page down a “page down”button 6234 may be activated. Apage indicator 6236 indicates which of one or more pages oflist 6230 is currently being displayed. To select a screensaver, a user may activate one of the screensavers displayed inlist 6230. -
Screensaver application interface 6204 further includes awindow 6240 that displays the current amount of delay (i.e., time of device inactivity) that must occur before a selected screensaver will be displayed. The amount of delay may be decreased by activating a “left arrow”button 6242 or increased by activating a “right arrow”button 6244. Awindow 6246 displays a preview of a currently selected screensaver. A screensaver configuration may be saved by activating a “save”button 6238. A “back”button 6248 is also provided onscreensaver application interface 6204 that, when activated, causes a previously-displayed GUI screen to be displayed. -
FIG. 63 depicts anexample GUI screen 6300 for a directory services application in accordance with an embodiment of the present invention. As shown in FIG. 63,example GUI screen 6300 includes astatus bar 6302 and a directoryservices application interface 6304. -
Status bar 6302 includes anicon 6312 representative of the directory services application, a name 6314 (“Find A . . . ”) associated with the directory services application, an indication of thecurrent date 6316 andtime 6318, a “phone”button 6320 and a “home”button 6322. When a user activates “phone”button 6320,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 6322, the user will be returned tohome GUI screen 3100. - Directory
services application interface 6304 includes a first display area that displays all or a portion of a list ofbusiness categories 6330. To page up through list 6330 a “page up”button 6334 may be activated and to page down a “page down”button 6336 may be activated. Apage indicator 6338 indicates which of one or more pages oflist 6330 is currently being displayed. To select a business category from among those inlist 6330, the horizontal bar that provides information about the business category may be activated. - Directory
services application interface 6304 further includes a second display area that displays all or a portion of a list ofbusinesses 6340 of the type currently selected inlist 6330. The businesses are selected based on proximity to aparticular location 6332. In the example ofFIG. 63 , the particular location is “Boca Raton Fla.” To page up through list 6340 a “page up”button 6342 may be activated and to page down a “page down”button 6344 may be activated. Apage indicator 6346 indicates which of one or more pages oflist 6340 is currently being displayed. For each business identified inlist 6340, a name, address and phone number is provided. A “telephone”button 6350 associated with each business may be activated to place a telephone call to the business viadevice 110. - A “change location”
button 6348 is provided that, when activated, launches a dialog by which a user can select a different location for which to obtain directory services information. -
FIG. 64 depicts anexample GUI screen 6400 for a memos application in accordance with an embodiment of the present invention. As shown inFIG. 64 ,example GUI screen 6400 includes astatus bar 6402 and amemos application interface 6404. -
Status bar 6402 includes anicon 6412 representative of the memos application, a name 6414 (“Memos”) associated with the memos application, an indication of thecurrent date 6416 andtime 6418, a “phone”button 6420 and a “home”button 6422. When a user activates “phone”button 6420,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 6422, the user will be returned tohome GUI screen 3100. -
Memos application interface 6404 includes a first display area that displays all or a portion of a list ofmemos 6430. Each memo may comprise a task, appointment or reminder that a user might wish to make note of. To page up through list 6430 a “page up”button 6432 may be activated and to page down a “page down”button 6434 may be activated. Apage indicator 6436 indicates which of one or more pages oflist 6430 is currently being displayed. For each memo identified inlist 6430 the following information is provided: atext descriptor 6450 of the subject matter of the memo and adate 6452 andtime 6454 associated with the memo (such as the date and time the memo was created).List 6430 may be temporally-ordered. A memo inlist 6430 may be selected for viewing by activating the horizontal bar upon which the memo information is provided. A user may activate an “add”button 6446 to launch a dialog by which a memo may be added tolist 6430. A user may also activate a “remove”button 6448 to remove a selected memo fromlist 6430. -
Memos application interface 6404 further includes awindow 6438 that displays the text content of a memo selected fromlist 6430. A user may scroll the text displayed withinwindow 6438 up and down by activating a “scroll up”button 6440 and a “scroll down”button 6442 respectively. -
FIG. 65 depicts anexample GUI screen 6500 for a television (TV) programming guide application in accordance with an embodiment of the present invention. As shown inFIG. 65 ,example GUI screen 6500 includes astatus bar 6502 and a TV programmingguide application interface 6504. -
Status bar 6502 includes anicon 6512 representative of the TV programming guide application, a name 6514 (“TV Programs”) associated with the TV programming guide application, an indication of thecurrent date 6516 and time 6518, a “phone”button 6520 and a “home”button 6522. When a user activates “phone”button 6520,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 6522, the user will be returned tohome GUI screen 3100. - TV programming
guide application interface 6504 includes adisplay area 6530 that provides TV programming information for a plurality of TV channels across a plurality of time slots. To view information about other channels than those currently shown in display area 6530 a user may activate either a “page up”button 6532 or a “page down”button 6534. Apage indicator 6536 indicates which of one or more pages of channel information is currently being displayed. To view programming information for previous time slots a user may activate a “backward”button 6538 and to view programming information for subsequent time slots a user may activate a “forward”button 6540. -
FIG. 66 depicts anexample GUI screen 6600 for a network setup application in accordance with an embodiment of the present invention. As shown inFIG. 66 ,example GUI screen 6600 includes astatus bar 6602 and a networksetup application interface 6604. -
Status bar 6602 includes anicon 6612 representative of the network setup application, a name 6614 (“Network Setup”) associated with the network setup application, an indication of thecurrent date 6616 andtime 6618, a “phone”button 6620 and a “home” button 6622. When a user activates “phone”button 6620,GUI screen 3200 for a telephony application will be displayed. When a user activates “home” button 6622, the user will be returned tohome GUI screen 3100. - In
FIG. 66 , networksetup application interface 6604 is overlaid by anetwork selection interface 6630 that allows a user to select a wireless network to whichdevice 110 may attempt to connect. As further shown in that figure,network selection interface 6630 displays all or a portion of alist 6632 of detected wireless networks. To page up through list 6632 a “page up”button 6634 may be activated and to page down a “page down”button 6636 may be activated. Apage indicator 6638 indicates which of one or more pages oflist 6632 is currently being displayed. For each wireless network identified inlist 6632, avisual indicator 6642 of the strength of the wireless signal and aname 6644 of the wireless network is provided. Optionally, avisual indicator 6646 of whether the network is encrypted and aconnection status 6648 may also be provided. A “back”button 6640 is also provided innetwork selection interface 6630 to allow a user to return to networksetup application interface 6604. -
FIG. 67 depicts an additionalexample GUI screen 6700 for a network setup application in accordance with an embodiment of the present invention. As shown inFIG. 67 ,example GUI screen 6700 includes astatus bar 6702 and a network setup application interface. -
Status bar 6702 includes anicon 6712 representative of the network setup application, a name 6714 (“Network . . . ”) associated with the network setup application, an indication of thecurrent date 6716 and time 6718, a “phone”button 6720 and a “home”button 6722. When a user activates “phone”button 6720,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 6722, the user will be returned tohome GUI screen 3100. - In
FIG. 67 , the network setup application interface is overlaid by anencrypted network interface 6704 that allows a user to enter an encryption key for setting up or logging into an encrypted wireless network. As further shown in that figure, encryptednetwork setup interface 6704 displays akeyboard 6730 that may be used to type an encryption key that appears in awindow 6732. The user may save the key by activating a “save”button 6734. A “back” button 6740 is also provided to allow a user to return to the normal network setup application interface. -
FIG. 68 depicts anexample GUI screen 6800 for an advanced network setup application in accordance with an embodiment of the present invention. As shown inFIG. 68 ,example GUI screen 6800 includes astatus bar 6802 and an advanced networksetup application interface 6804. -
Status bar 6802 includes anicon 6812 representative of the advanced network setup application, a name 6814 (“Network Setup”) associated with the advanced network setup application, an indication of the current date 6816 andtime 6818, a “phone”button 6820 and a “home”button 6822. When a user activates “phone”button 6820,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 6822, the user will be returned tohome GUI screen 3100. - Advanced network
setup application interface 6804 displays all or a portion of alist 6830 of network-related information and parameters, some of which may be configurable. To page up through list 6830 a “page up”button 6832 may be activated and to page down a “page down”button 6834 may be activated. Apage indicator 6836 indicates which of one or more pages oflist 6830 is currently being displayed. As shown inFIG. 68 , information/parameters provided withinlist 6830 include a connection status, a network type, a network name, a security protocol type, an encryption key, whether Dynamic Host Configuration Protocol (DHCP) is used and whether proxy is used. A “back”button 6838 is provided to allow a user to return to the normal network setup application interface. -
FIG. 69 depicts anexample GUI screen 6900 for a home control application in accordance with an embodiment of the present invention. As shown inFIG. 69 ,example GUI screen 6900 includes astatus bar 6902 and a homecontrol application interface 6904. -
Status bar 6902 includes anicon 6912 representative of the home control application, a name 6914 (“Home Control”) associated with the home control application, an indication of thecurrent date 6916 andtime 6918, a “phone”button 6920 and a “home”button 6922. When a user activates “phone”button 6920,GUI screen 3200 for a telephony application will be displayed. When a user activates “home”button 6922, the user will be returned tohome GUI screen 3100. - Home
control application interface 6904 displays all or a portion of alist 6930 of rooms for which home control functionality may be provided. To page up through list 6930 a “page up”button 6932 may be activated and to page down a “page down”button 6934 may be activated. A page indicator 6936 indicates which of one or more pages oflist 6930 is currently being displayed. As shown inFIG. 69 , such rooms may include, for example, a living room, a family room, a home theater, a main office, a master bedroom and a dining room. A room may be selected by activating the horizontal bar upon which the room name is displayed. - Once a room has been selected an overlay interface for performing home control functions associated with the selected room may be displayed.
Example GUI screen 7000 ofFIG. 70 shows such anoverlay interface 7002. As shown in that figure,overlay interface 7002 displays all or a portion of acollection 7004 of home control functions for a living room. To page forward through collection 7004 a “page forward”button 7006 may be activated and to page backward a “page backward”button 7008 may be activated. Apage indicator 7010 indicates which of one or more pages ofcollection 7004 is currently being displayed. Each home control function incollection 7004 is represented by an associated icon and text. The home control functions shown inFIG. 70 include “Watch TV,” “Watch DVD” and “Play CD.” A user may select a home control function by activating the icon associated with the function. A “back”button 7012 is provided to return to the original home control application interface. - Once a home control function for a room has been selected a further overlay interface for performing the selected function may be displayed.
Example GUI screen 7100 ofFIG. 71 shows such an overlay interface which is configured to control a TV. As shown in that figure,overlay interface 7102 includes achannel selection interface 7104, afunction navigation interface 7106 and an audio/video control interface 7108 for a TV. An on/offbutton 7110 is provided for powering the TV on and off and a “back”button 7112 is provided to return to the previous overlay interface. -
FIG. 72 depicts asystem 7200 in accordance with an embodiment of the present invention that includes aservices platform 7202 for enabling entities to deploy, manage optimize and monitor a network of devices 7204 (such as a network of devices 110) in a turnkey fashion. As shown inFIG. 72 ,services platform 7202 includes adevice management subsystem 7212, adevice monitoring subsystem 7214, anapplication store 7216, anapplication intelligence subsystem 7218 and acontent aggregation subsystem 7220. -
System 7200 further includes acomputer 7230 that provides a Web-based user interface for easy access to the functionality provided byservices platform 7202. Such a Web-based user interface may include, for example, a control panel for user access assignment and administration. Although only asingle computer 7230 is shown inFIG. 72 , any number of such computers may be provided to accessservices platform 7202. - Depending upon the implementation,
services platform 7202 may include less than all ofsubsystems -
Device management subsystem 7212 is responsible for reliably communicating updated firmware and device configuration to deployed devices. These types of operations may be focused on a single device, various sub-sets of devices, or applied to all devices onnetwork 7204. For example, a firmware update may be applied to a small community of devices as a test prior to updating theentire network 7204 of devices. This is critical to prevent a network of end users from having a negative experience. - Device configuration information may include but is not limited to GUI configuration, brand information, applications, or the like.
- The ability to provision the network of devices is a critical component, especially when telephony is involved. Depending upon the implementation, this may involve integration with an existing telephony infrastructure. An embodiment of the present invention provides a “faceless” Web service that enables customers to populate a device configuration database.
Device management subsystem 7212 then communicates those parameters to devices innetwork 7204. An embodiment of the invention also provides a provisioning application to administrators so as to support provisioning of small trials as a sales tool. - A firmware image for a particular deployment may comprise a boot loader, kernel, file system, a branded framework application, and optionally DECT firmware for both a device and associated handsets. In one embodiment, these images are provided from
device management subsystem 7212 to end user devices via File Transfer Protocol (FTP).Device management subsystem 7212 may include an import mechanism that maps the firmware images to particular device product line. Once a firmware image has been imported, an administrator may then explicitly instruct that the image be deployed to a specific group of devices onnetwork 7204. This could equate to single device or tens of thousands. As devices complete the upgrade process, they will register the firmware update withdevice monitoring subsystem 7214. - In an embodiment,
device management subsystem 7212 provides a unique deployment process for each of four categories of firmware updates: (1) new device initial start-up; (2) new application; (3) software version updates; and (4) fixes. - The process for new device initial start-up occurs automatically and no scheduling is required. Between the time of manufacture to end user activation, software upgrades may have occurred. Upon initial start-up, a set-up wizard executing on a
device 110 automatically “checks in” withdevice management sub-system 7212 to pull down the latest version of the code. - The deployment of new applications is scheduled by a telecommunications carrier or other entity that administers
network 7204 and pushed. Such applications may be communicated to end users via proactive promotion, and deployment may include post-delivery notification. - Software version updates may be dependent upon expansion of a feature set or technology progression (e.g., a new version of a video codec). Such updates may not be urgent in nature any may not produce a visible difference to an end user. In an embodiment, such updates are communicated from
device management subsystem 7212 to a device using a non-intrusive awareness notification, such as a simple update in a settings screen of the device. - Fixes may be required as determined via support teams. Fixes may be global or individual in nature. Depending upon the severity and impact to the user, it may be desirable for the implementation of such fixes to be as “invisible” to an end user as possible. Different types of fixes include scheduled global fixes, immediate global fixes and individual fixes
- Scheduled global fixes may be planned and pushed from
device management subsystem 7212 to devices onnetwork 7204. Such fixes may be non-interruptive in nature. - In the event a global fix must be immediately deployed (e.g., the severity of the problem is high),
device management subsystem 7212 may cause a device to display an interruptive, non-dismissable dialog box with messaging that an important download is in progress and apologizing for any inconvenience. - Support representatives may be required to update an individual device to implement a fix. This may occur, for example, when a support representative is troubleshooting with an end user. To facilitate this,
device management subsystem 7212 is configured to allow a release to be pushed to a device on demand. Also, devices may be configured to automatically check for the latest firmware upon re-boot. In this case, a support representative may request that an end user reboot his/her device. Devices may also provide an automatic update tool as part of a device settings application and may be directed to utilize the tool by a support representative to pull the latest update. - In an embodiment,
device management subsystem 7212 is configured to minimize device interruption and required end-user activity while keeping end users appropriately notified. To this end,device management subsystem 7212 may be configured to perform one or more of the following functions: (1) confirm prior to download that a target device is currently inactive; (2) not disrupt any customer-initiated activity in progress; (3) wait for a target device to return to an idle state before deployment; (4) display to the user a notification message such as “update in progress, please wait”; (5) cause a device “version number” to be updated on a settings screen of a device when all updates have been deployed; (6) after delivery of a new application update, deliver a notification message to the user (such as “Congratulations, you have new features to enjoy from . . . ”) that can be deleted or saved by the user. -
Device management subsystem 7212 may also be configured to obtain necessary end user permissions prior to delivery of new applications or firmware updates. For example, a global permission may be obtained via a general notification during new device initial start-up. Alternatively or additionally, individual permissions may be obtained for each download. For example,device management subsystem 7212 may be configured to display a message on a device requesting permission to deliver a firmware update and provide an interface by which an end user can provide a yes or no decision.Device management system 7212 will take the appropriate action based on the end user decision. -
Device management subsystem 7212 may deploy a firmware update automatically in certain instances. For example, this may occur at new device initial start-up as mentioned above. In an embodiment, logic that automatically checks for the most recent software version is embedded in a set-up wizard that is executed by a device during initial start-up. This ensures that each new end user has the latest approved software and application set in the event devices have been shelved for periods of time prior to purchase/deployment. - A firmware update may also be automatically triggered in the event that a periodic check function implemented by device monitoring subsystem 7214 (described below) determines that a device does not have the latest firmware code.
- An automatic firmware update may also be triggered upon device re-boot in an embodiment in which devices are configured to automatically check for the latest firmware upon re-boot.
- Ideally, service providers will deploy firmware updates when devices are least likely to be in use (e.g., 1 A.M.-4 A.M.). Accordingly, in one implementation,
device management subsystem 7212 allows an approved firmware update to be deployed immediately (upon command execution) or at a future set time via pre-programming - Preferably, every application is responsible for implementing its own provisioning solution. To simplify field trials of a telephony application and customer deployments, an embodiment of the invention implements this support as part of the solution. A provision database exposes a Web service that enables a customer's existing telephony infrastructure to populate a device's telephony parameters. A change in configuration triggers notification of the device. The device will in turn retrieve the latest configurations via Hypertext Transfer Protocol (HTTP). This does not suggest that a physical file needs to be created on the file system of the provisioning server. Again, the device contacts
device monitoring subsystem 7214 to log the event. - The Web-based user interface provided on
computer 7230 provides administrative functions required for device management. In an embodiment, it allows assignment of view, approval and update authorization and implements a hierarchy for various levels of access. Example access levels may include: (1) view only (fortier 1 support representatives; the platform may be able to manage potentially hundreds or thousands of view access grants); (2) view and individual device deployment (fortier 2 support representatives, allowing them to proactively push the latest software version to an individual device at a time); (3) view and global device deployment (for managers that have access and authority to push a global or group targeted update); (4) view and release approval; (5) product managers (required to approve any new application global updates prior to such updates being made available for deployment); (6) technical managers (required to approve any software upgrades or fixes prior to such upgrades/fixes being made available for deployment); and (7) system administration (employees with access to assign and manage the above access). - In an embodiment, the Web-based interface implemented on
computer 7230 is uncluttered and simple by design. It easily accommodates a change of look and feel (e.g., logo and brand color palette) so that it may be tailored for individual service providers. The user interface may also be configured to take into consideration scalability by providing easy search functionality to locate an individual device, or subsets of devices, among many thousands. Such device searching may permit devices to be searched for based on MAC ID, customer name, billing telephone number, zip code, etc. - Main sections of the user interface may include administration, device monitoring (as will be described in more detail below) and device management. In an embodiment, the device management interface allows for selection, approvals, push and monitoring of all upgrades. It may further include firmware history that provides a reference guide to version control. The firmware history may indicate when an update occurred, what was updated, why it was updated, who approved the update, and when the most recent update occurred. The device management interface may further include the ability to manage (view, create, add, change, delete) assigned groups of devices. The user interface may further include an “about device upgrades” section that comprises a central source for device management policies, procedures and frequently asked questions (FAQs). This section may be customizable by a service provider for their internal use.
-
FIG. 26 , described above in reference to the application framework ofdevice 110 provides an example of a Web-based user interface screen for interacting withdevice management subsystem 7212/device monitoring subsystem 7214. -
Device monitoring subsystem 7214 is configured to perform functions such as identifying a device's firmware version, installed applications, and activity. These functions may be important in providing customer support.Device monitoring subsystem 7214 also provides a reporting interface that allows near real time data to be presented to accurately understand device state, health and performance. Such reports may be provided for an individual device or for large groups of devices to provide global, visual views for executive management reporting. - By allowing a network of devices (such as network 7204) to be surveyed,
device monitoring subsystem 7214 allows administrators as well as customer support representatives to determine what firmware a device is executing, the health of that device, as well as the frequency and the manner in which the device is used. Such information may be used for individual device insight and action as well as to monitor and report on devices on an aggregated basis. - In an embodiment,
device monitoring subsystem 7214 is configured to report the following information about a device: connection state, if in active or fail-safe mode, current firmware version, information on when historical updates were applied and frequency of usage (daily, weekly, etc.). This information may be made available to customer support representatives so that they can take appropriate action in the event of a customer issue. - In an embodiment,
device monitoring subsystem 7214 is configured to allow an administrator to query near real time statistics of deployed device and applications. For example, an administrator may determine what percentage of all registered devices is actively connected. The aggregate number may be used as a metric of overall performance and also as an important tool for customer retention teams. For example, such data can provide such teams with the ability to proactively contact those customers that have purchased and registered a device but for some reason are not currently connected. Additionally,device monitoring subsystem 7214 may be queried to identify any devices not currently using the most current firmware version and to initiate an investigation as to why such devices are not accepting pushed updates. - In one implementation, the Web-based user interface to
device monitoring subsystem 7214 provides administrative functions necessary for device monitoring. It may implement a set of access levels such as was previously described in reference todevice management subsystem 7212. However, it may expand functionality to allow authorization to specified tiers to run subset or global reports. - In an embodiment, the Web-based interface to
device monitoring subsystem 7214 is configured to take into consideration scalability by providing easy search functionality to locate an individual device, or subsets of devices, among many thousands. Such device searching may permit devices to be searched for based on MAC ID, customer name, billing telephone number, zip code, etc. Additionally, the Web-based interface todevice monitoring subsystem 7214 may provide the capability to generate predetermined queries and to display query results in various manners (text or visual). -
FIG. 26 , described above in reference to the application framework ofdevice 110 provides an example of a Web-based user interface screen for interacting withdevice management subsystem 7212/device monitoring subsystem 7214. -
Application store 7216 comprises a portal that promotes application development in a managed subscription-based model. New applications are developed by authorized developers, verified by a regional organization, and subsequently released to the public via this platform. Revenue sharing is supported. - In one implementation,
application store 7216 comprises a repository of Flash applications thatdevice 110 and like devices can subscribe to, which may be offered for free, or at a nominal fee to an end user. -
FIG. 73 depicts four main areas of the applicationstore life cycle 7300. As shown inFIG. 73 , the life cycle begins with thedevelopment 7302 of the applications. Applications may be developed by any number of entities including a developer ofdevice 110, service providers that provide services viadevice 110, and independent developers. Such applications are tested 7304 and uploaded to a services database. Once applications have been validated, they can then be distributed 7306 to selected (or global) devices by an administrator. At this point, the selected devices in the field would now be capable of browsing 7308 and subscribing to the new application. - As shown in
FIG. 73 , application store life cycle begins withdevelopment 7302. - In one embodiment, before a developer is eligible to submit applications, they must first register. This may involve creating a profile consisting of contact information, technical experience and account information for revenue sharing purposes. Once registered, a developer may become a Beta tester of his/her own applications. In addition, necessary terms and conditions may be required for developers to view and accept.
- In an embodiment, application development involves working within predefined guidelines. By conforming to such guidelines, a developer may ensure that the application will behave correctly on all
devices 110. - To assist the development community, encourage their interest in creating new applications, and provide them with the aforementioned guidelines, a Web-based developers program may be made available under an appropriate license. The Web-based developers program may comprise a Software Development Kit (SDK) and additional tools and resources.
- In an embodiment, the Web-based developers program includes but is not limited to: (1) an introduction and overview; (2) a getting started guide for development on a personal computer (PC) and installing the SDK; (3) a programming guide for a Flash player used by
device 110; (4) a description of how applications work within the application framework ofdevice 110; (5) a “Hello World” program; (6) additional sample code via simple program examples; (7) user interface and design information, including guidelines and Actionscript code for common design elements and components; (8) an emulator that allows the application to be developed and tested on a PC prior to migrating the application todevice 110; (9) go-to-market insight, including information about target audiences, most popular categories and the like; (10) application lifecycle information, including information about managing updates and changes; and (11) frequently asked questions. - The resource pool for developers may also include an Internet-based developers' blog or community forum.
- Developers may be provided with development devices and software that allow them to test and optimize their applications prior to submission. Some means of support for questions and assistance may further be provided.
- A service provider may require that an approved ITL (Independent Test Lab) certify an application at the developer's expense before it will be accepted for publishing.
- Once an application has been created and tested by a developer, it may be packaged for distribution, approved and published. Life cycle management may also be accommodated for.
- Once various application components have been developed and tested to run on a device such as
device 110, they may be packaged as defined for a target platform and uploaded accordingly. The upload process may be configured to identify the application as vendor specific or generic. - The developer may be required to package up several resources to satisfy deployment requirements. For example, the developer may be required to supply an application store icon and information movie. These two movies can then be utilized by
application store 7216 when a user is browsing for applications to install. Once an application has been selected to be installed, the runtime requirements may require an icon movie and application movie. Optionally, a supporting native library and language file may also be provided. There may be instances when an application requires additional files. In addition, pricing requirements may need to be specified and included with the submitted package. - At this point in time, the developer can test the application through
application store 7216 and seek any necessary approvals from a developer ofdevice 110 or a service provider based upon agreed upon terms and conditions. For example, if a serviceprovider positions device 110 as a family device, a term and condition may state that explicit content is not permitted. - Once approved, the application package may be uploaded and published as generally available, or to a certain device platform, and possibly vendor. Global or specified users would now have access to the application.
-
Application store 7216 may enable independent developers, developers ofdevice 110, or service providers (as appropriate) to post updated versions of an application, as well as the ability to delete. - Depending upon the implementation, update and delete capabilities may apply to applications available on
application store 7216, applications already deployed to devices, or both. In certain situations, a published application may be revoked. Such revocation may result in a notification being sent to all subscribed devices and an automatic uninstall of the application. Alternatively, a developer may elect to allow existing users to keep the current application and simply decide to remove the offering from further availability. -
Application store 7216 may also be configured to provide developers with a summary of customer reviews on a per-application basis to promote improvements in future releases. -
Application store 7216 is an application storefront that is executed on the display/touch panel ofdevice 110. Its purpose is to present a list of authorized applications from which the user can optionally install, wherein the list of authorized applications may be a subset of all the applications stored in an application repository. Whether an application is authorized for a particular user may depend upon the identity of the user, upon which vendor is offering the application, and/or upon other alternative or additional factors. Depending upon the implementation, access to application store may be viadevices 110 only or also via an Internet-based customer portal accessible to any browser-enabled system or device. - Certain applications may have associated costs to the end user. When these applications are purchased, a charge is processed to the appropriate subscriber account. To facilitate this,
application store 7216 may be integrated with a billing system administered by a service provider. - Research has validated that consumers want to be able to choose from a range of applications and services, and then tailor them to their individual needs. Since
device 110 may be accessible to various family members in a home, it may be configured to distinguish between individual users. A device so configured may present a list of applications to all users and then allow for presentation of a particular application within a single active user's profile. -
FIG. 85 is a block diagram of anexemplary application store 8500 in accordance with one embodiment of the present invention. As shown inFIG. 85 ,application store 8500 includes a repository ofapplications 8502 that are suitable for downloading to and installation and execution upon one or more networked telephony and digital media devices such as those described elsewhere herein. Each application stored inrepository 8502 may comprise an application package such as was described elsewhere herein that includes: (1) an application movie that is executable by an application player installed on each of the network devices; (2) an install script that, when executed by a networked device, installs the application movie on the device; (3) an uninstall script that, when executed by a networked device, uninstalls the application movie from the device, and (4) an icon movie that, when executed by an application player installed on a networked device, presents a graphical representation of the application movie to a GUI of the device and that is operable to invoke the application movie after installation thereof on the device. - As further shown in
FIG. 85 ,application store 8500 further includes at least afirst vendor interface 8504 and asecond vendor interface 8506.First vendor interface 8504 is associated with a first vendor (e.g., a telecommunications company, multi system operator, Internet Service Provider, or the like) and is operable to provide access to a first subset of the applications stored inapplication repository 8502 for downloading to and installation and execution upon a first plurality of networked devices. The first plurality of networked devices are associated with one or more customers or subscribers of the first vendor, denoted first vendor users 1-n inFIG. 85 . -
Second vendor interface 8506 is associated with a second vendor that is different than the first vendor and is operable to provide access to a second subset of the applications stored inapplication repository 8502 for downloading to and installation and execution upon a second plurality of networked devices. The second plurality of networked devices are associated with one or more customers or subscribers of the second vendor, denoted second vendor users 1-n inFIG. 85 . - Although only two
vendor interfaces FIG. 85 , it is to be understood that any number of vendor interfaces may be used in accordance with an embodiment of the present invention. - First and
second vendor interfaces device 110. The storefront may comprise, for example, a GUI such as that described above in reference toFIG. 74 . Becauseapplication store 8500 includes a different interface for each vendor, each vendor may advantageously customize the “look and feel” of its associated interface. For example, each vendor may include vendor-specific branding or other user-viewable content within its associated interface. As another example, each vendor may include vendor-specific functionality or features within its associated interface. - The subset of applications made available via
first vendor interface 8504 may be entirely different from that made available viasecond vendor interface 8506. Alternatively, the subsets of applications made available via each vendor interface may be overlapping or even identical. The system shown inFIG. 85 advantageously enables each vendor to selectively determine which applications will be made available to its customers and/or subscribers. Applications may also be customized to include functionality or user-viewable information uniquely associated with a particular vendor. - In view of the breadth of potential application additions and limited screen real estate of certain implementations of
device 110 in comparison to a PC, a user interface toapplication store 7216 may be designed for convenience and simplicity while planning for expansion in navigation and caring for complexities. For example, categorization of applications may be used to assist a user in searching for applications. Example categories include genre, paid vs. free, most popular, highest rated, or newest. - Additionally, as
device 110 may comprise a device that is accessible to an entire family, it may be configured to require a password before providing access toapplication store 7216. This feature may be used, for example, by parents to prevent unauthorized application purchases by their children. -
FIG. 74 depicts oneexample GUI screen 7400 that may be used to provide an interface toapplication store 7216 in accordance with an embodiment of the present invention. As shown inFIG. 74 ,example GUI screen 7400 includes astatus bar 7402 and anapplication store interface 7404. -
Application store interface 7404 includes a first display area that displays all or a portion of a list ofapplication categories 7410. To page up through list 7410 a “page up”button 7412 may be activated and to page down a “page down”button 7414 may be activated. To select an application category from among those inlist 7410, the horizontal bar that displays the title of the application category may be activated. -
Application store interface 7404 further includes a second display area that displays all or a portion of a collection ofapplications 7416 that fall within the category currently selected inlist 7410. To page up through collection 7416 a “page up”button 7418 may be activated and to page down a “page down”button 7420 may be activated. Apage indicator 7422 indicates which of one or more pages ofcollection 7416 is currently being displayed. For each application identified incollection 7416, anicon 7424, aname 7426 and a rating 7428 (which may be based on end user feedback and/or some other source) is provided. To select an application from among those incollection 7416, the icon associated with the application may be activated. A “checkout”button 7430 may be activated to launch a dialog by which a selected application may be purchased for download and installation to adevice 110. - As developers submit applications, a formal process may be used to validate the applications before releasing them to the general public. This process may include provisioning devices that will participate in a Beta program. Any Beta device may be able to install newly uploaded applications for early review. The goal is to protect the public from any rough applications that introduce a negative experience.
- The network administrator may manage the various users on the platform including subscribers, developers, managers, and customer support representatives.
- The network administrator may be able to provision groups of devices. These groups can be assigned various rights that determine their role on the network. To be subjected to early application access, the Beta permission would be granted.
- A Web-based interface for the developers program and
application store 7216 provides a face of the platform and may facilitate its successful implementation. In one embodiment, the Web-based interface includes four areas that correspond to the four stages of the application store life cycle—namely, develop, test, deploy and browse. Such a Web-base interface may be simple in design and easy to navigate. -
Application intelligence subsystem 7218 is configured to provide application usage analysis by tracking specific application metrics. Such functionality advantageously enables valuable trend spotting for end-user-driven, new application development. -
Application intelligence subsystem 7218 may be configured to deliver vital usage analysis by tracking specific application metrics. Such metrics may be of value to marketing teams, product management teams, customer retention teams and developers. In one embodiment,application intelligence subsystem 7218 enables a user to view a ranking of most frequently used/least used applications for all end users in the aggregate or for some subset of end users.Application intelligence subsystem 7218 may also provide statistics on day of week/time of day usage behavior. - In addition to the benefits offered to the service providers and developers, the data may be extended to end users. For example, end users may be notified which applications are the most popular applications.
-
Application intelligence subsystem 7218 may also be configured to permit end users to rate applications and to share such ratings information in the aggregate with other end users. - A system administrator may have the ability to grant or deny entities the ability to generate and view application intelligence reports. Given customer proprietary information policies, the usage behavior of individual devices is securely protected.
- In an embodiment, a Web-based interface to
application intelligence subsystem 7218 is visual in nature, and has the capability to produce executive level reports. Such reports may be transferable to standard Microsoft® PowerPoint® (developed and sold by Microsoft Corporation of Redmond, Wash.) presentations.FIGS. 24 and 25 , described elsewhere herein, depict example Web-based interface screens that may be used to report application intelligence information in accordance with various implementations. -
Content aggregation subsystem 7220 is configured to remove the burden on service providers of individually having to manage delivery of content to devices withinnetwork 7204 from multiple content providers.Content aggregation subsystem 7220 provides a pre-packaged content solution with personalization, recurring revenue, ad insertion and aggregated billing opportunities. By managing content processing/transcoding, caching and user preferences,content aggregation subsystem 7220 can optimize the performance of a device withinnetwork 7204 by alleviating the content processing needs of the device. -
FIG. 75 is a block diagram 7500 that shows howcontent aggregation subsystem 7220 may be used to aggregate content from multiple content providers in accordance with an embodiment of the present invention. As shown in that figure, a plurality of content providers—namely,content providers device 110. Such content may include for example video content, audio content, graphic content, text content, or any other form of content that can be delivered over a network.Device 110 uses such content to a plurality of content-based applications—namely content-basedapplications - Content provided to
device 110 bycontent provider 7502 a is processed entirely bydevice 110. Such processing may include content processing via ActionScript functionality of a Flash player executing ondevice 110, via a dedicated C/C++ class module which is a part of a software architecture ofdevice 110, or via various codecs for audio, video and images that also form a part of the software architecture ofdevice 110. - In contrast, content provided to
device 110 bycontent providers content aggregation subsystem 7220. Such processing may include, for example, audio or video transcoding.Content aggregation subsystem 7220 may also cache content so that it need not be retrieved bysubsystem 7220 each time it is requested by a device. Any of a variety of caching protocols may be used.Content aggregation subsystem 7220 may also filter or modify content based on user preferences. Processed content is then provided fromcontent aggregation subsystem 7220 todevice 110 for use in supporting content-based applications 7504 a-7504 d. Since a certain amount of content processing has already been performed bycontent aggregation subsystem 7220, the amount of processing that must be performed bydevice 110 is reduced. This helps improve performance bydevice 110. -
Content aggregation subsystem 7220 may perform additional functions such as the insertion of ads into content prior to delivery todevice 110.Content aggregation subsystem 7220 can advantageously provide a source of recurring revenue to an administrator of the subsystem. The subsystem can also aggregate services provided by multiple content providers to a single bill. - As discussed above with respect to
FIG. 63 ,device 110 may include a directory services application that allows a user to search for businesses within various service categories. Businesses may be selected based on geographic proximity to a particular location. Once a business has been found, the user can activate a telephone button icon associated with the business to place a telephone call directly from the directory services application interface (also referred to herein as “click-to-call”). In an embodiment, the directory services application also supports text messaging to a business in accordance with a Short Message Service (SMS) protocol. - As shown in
FIG. 76 , adirectory services application 7602 executing ondevice 110 may obtain directory services information in real-time from a single IP-baseddirectory 7604. In particular,directory services application 7602 sends a query via the Internet to IP-baseddirectory 7604. The query may specify, for example, a name of a business, a category of businesses, or one or more search keywords. The query may also include geographic information, such as city, state or zip code in order to obtain location-specific results. Based on the query, the IP-based directory will return one or more results in the form of business names, addresses and telephone numbers. IP-baseddirectory 7604 may comprise a directory provided by any of a wide variety of IP-based directory service providers. - As shown in
FIG. 77 , adirectory services application 7702 executing ondevice 110 may also obtain directory services information in real-time from multiple IP-based directories, such asdirectories directory services application 7702 sends a query to anaggregator 7704 that is configured to distribute the query to each of the multiple directories. The query may be formulated in the manner described above in regard toFIG. 76 .Aggregator 7704 then receives query results A, query results B and query results C from IP-baseddirectories directory services application 7702. Aggregating directory information in this fashion may be beneficial in that it may provide an end user with access to more comprehensive directory information. Certain IP-based directories may also provide certain types of information that other IP-based directories don't. Furthermore, if a first IP-based directory is currently being built, a second IP-based directory may also be used as a fallback directory in case the first IP-based directory is not capable of delivering adequate results. - In either of the scenarios depicted in
FIGS. 76 and 77 , query results may be ordered for presentation to an end user. Depending upon the implementation, results may be ordered by the IP-based directory, the aggregator, and/or the directory services application executing ondevice 110. Such results may be ordered, for example, alphabetically or by geographic proximity to a specified location. - In one embodiment, results are ordered in accordance with a “premium placement” scheme in which businesses can pay to have their information appear at the top of the query results or highlighted in some other fashion intended to garner the attention of an end user. Such highlighting techniques may include, for example, providing a larger listing or using bold text, background highlighting, animations or the like. As shown in
FIG. 78 , anaggregator 7804 may be configured to obtain such “premium placement” results from apremium placement directory 7806 based on a query received from adirectory services application 7802, while also obtaining standard directory results from at least one IP-baseddirectory 7808. The query information may also be used to obtain ads from anads database 7810 for display within the directory services application interface ondevice 110. This provides yet another revenue opportunity for a proprietor ofaggregator 7804. Premium placement directory information, standard directory information and ads may all be returned fromaggregator 7804 todirectory services application 7802. - Payment for “premium placement” may be based on the display of the premium placement directory information by
directory services application 7802 and/or upon the use ofdirectory services application 7802 to place a telephone call to a premium placement business. For example, a payment may be due each time premium placement directory information is displayed or each time a phone call is placed that is attributable to a premium placement entry. The latter payment method is easily implemented becausedirectory services application 7802 is capable of attributing the placement of a call to a particular business entry and can be configured to instantaneously report such information. - A directory services application in accordance with an embodiment of the present invention may also permit a user to click on or otherwise activate a directory entry to access additional information or functionality associated with a particular business. Additional information may be in the form of graphic, audio (e.g., voice) and/or video content that is displayed or played back by
device 110. Additional functionality may be in the form of an application interface that allows an end user to place an order or otherwise acquire products or services from the business (e.g., an interface that allows a user to place an order for pizza from a restaurant). A business may pay a fee in order to have such information or functionality associated with its entry and/or may pay a separate fee each time such information or functionality is accessed or used. - Information aggregated from
multiple devices 110 can be used to generate valuable reports regarding what types of products and services end users are looking for and which businesses have actually been contacted using the click-to-dial feature. A directory services application or other application operating ondevice 110 may also solicit ratings or rankings information from end users about businesses that they have called viadevice 110. Such information may advantageously be used to answer community-based queries such as “What electrician do most people in my neighborhood call?” or “What is the favorite pizza place in my area?” - One implementation of the present invention that uses click-to-dial reporting to provide community-based popularity information will now be described in reference to
FIG. 79 . As shown in that figure, adirectory services application 7902 executing ondevice 110 provides click-to-dial reporting information to a dialed callsdatabase 7908 each time an end user uses the click-to-dial feature ofapplication 7902.Database 7908 acquires such information frommultiple devices 110 to generate accumulated information regarding which businesses have been dialed using the click-to-dial feature and how many times such businesses have been dialed. Dialed callsdatabase 7908 may maintain such information for each of a plurality of geographic locations. - When an end user solicits directory information from
directory services application 7902,directory services application 7902 sends a query to anaggregator 7904.Aggregator 7904 distributes the query tomultiple directories 7906, which may include both apremium placement directory 7910 and a standard IP-baseddirectory 7912 as discussed above, and obtains corresponding results in the form of business names, addresses and telephone numbers. Such results may be limited to a particular geographic area.Aggregator 7904 then queries dialedcalls database 7908 with the returned telephone numbers to determine the popularity of each business based on click-to-call volume.Aggregator 7904 then returns the results along with the popularity information returned from dialedcalls database 7908 todirectory services application 7902.Directory services application 7902 then presents the results to the end user. For example, directory services application 79Y02 may present all results sorted from most popular to least popular. As another example,directory services application 7902 may present premium placement results followed by ordinary results, wherein the premium placement results and the ordinary results are each sorted by popularity. Still other sorting approaches may be used. - In the foregoing example of
FIG. 79 , the popularity of a business is determined based on reported click-to-call volume alone. In additional embodiments, end user feedback such as end user rating or ranking information may additionally or alternatively be solicited viadevice 110 and used to determine the popularity of a business.Directory services application 7902 may also be configured to display end user comments about particular businesses. -
FIG. 80 depicts anembodiment 8000 of a directory services application in accordance with an embodiment of the present invention that includespreferences logic 8002,contacts integration logic 8004,ratings logic 8006 andfavorites integration logic 8008. Each of these elements will now be described. -
Preferences logic 8002 allows an end user to “tag” an entry for a business that is listed in the application interface ofdirectory services application 8000. The method by which an entry is tagged may vary depending upon the implementation. Once an entry has been tagged it will subsequently be presented at the top of the list for the relevant business category. Thus, for example, if an end user tags a particular movie theater, that movie theater will appear at the top of the list the next time the movie theater category is selected. If multiple businesses within the same category have been tagged, a sorting algorithm may be used to determine the order in which the tagged businesses appear. For example, a most-recently-used sorting algorithm may be used.Preferences logic 8002 thus allows a user to easily access directory information for a preferred business without having to actually create, maintain or find contact information for the business. -
Contacts integration logic 8004 is configured to allow an end user to add contact information associated with a business identified in the application interface ofdirectory services application 8000 to an address book maintained by a contacts application resident ondevice 110. -
Ratings logic 8006 is configured to permit a user to submit ratings information about a particular business identified in the application interface ofdirectory service application 8000. Such ratings information can then be aggregated by a service provider and used bydirectory services application 8000 to display community-based ratings for businesses, or to sort business entries by ratings. -
Favorites integration logic 8008 is configured to enable a user to add a business identified in the application interface ofdirectory services application 8000 to a favorites list that may be maintained bydirectory services application 8000 or a separate application resident ondevice 110. Activating an entry in the favorites list will invoke a speed-dial feature that will cause the business to be called. - One implementation of a click-to-call user interface flow in accordance with an embodiment of the present invention will now be described with reference to
FIGS. 81 , 82 and 83. As shown inFIG. 81 , the flow begins with the presentation of aGUI screen 8100 associated with a directory services application to an end user.GUI screen 8100 includes a list ofbusiness categories 8102 and a plurality ofentries 8104 corresponding to a selected category withincategory list 8102. - In an embodiment,
category list 8102 represents a sub-category within a hierarchical list of business categories. Thus, for example,category list 8102 may represent the category of “pizza restaurants” which itself is a sub-category of the category “restaurants.” In one implementation, the directory services application associated withGUI screen 8100 allows a user to navigate among a hierarchical list of business categories and sub-categories in order to find a desired list of businesses. - In one embodiment,
category list 8102 represents a “quick access” list of categories that are deemed most useful to a user. The quick access list may be automatically compiled based on historical information relating to which categories are most often accessed by an end user. Alternatively or additionally, the quick access list may be manually compiled based on express designation of categories by the end user. The use of a quick access list helps ensure that end users are not presented with categories that they do not often use.Category list 8102 may also represent categories that have most recently been accessed by an end user. - Depending upon the implementation,
category list 8102 may be sorted alphabetically, by frequency of use, or based on some other sorting algorithm. For manageability,category list 8102 may be limited to some maximum number of entries. End users may be given the option to delete a category fromcategory list 8102. - In a further embodiment,
category list 8102 may represent the results of a category search executed by an end user via another GUI screen of the directory services application. - Once an end user has activated one of
entries 8104 shown inGUI screen 8100, aGUI screen 8200 depicted inFIG. 82 will be displayed.GUI screen 8200 providesadditional information 8202 about the selected business. Such information may include animage 8204, audio and/orvideo content 8206, andtext 8208. Such information also includes atelephone number 8210. - The information presented in
GUI screen 8200 may be provided from the business itself or from some third party information provider, such as a third party IP-based directory service. The information may be provided in a very simple format or may be provided in an elaborate format, using animation, streaming audio/video content, or the like. - Upon activation of
telephone number 8210 by an end user, aGUI screen 8300 depicted inFIG. 83 will be displayed. As shown inFIG. 83 ,GUI screen 8300 includes adial button 8302, acontacts button 8304, afavorites button 8306, abookmark button 8308, acomment button 8310 and a cancelbutton 8312. - When an end user presses
dial button 8302, the click-to-dial functionality of the directory services application will be invoked and a telephone call will be placed fromdevice 110 to the selected business. As noted above, the placement of the call via this interface may be reported to an external entity for tracking business popularity or other statistics. - When an end user activates
contacts button 8304, information about the selected business will be imported into an address book maintained by a contacts application resident ondevice 110. Depending upon the implementation, this process may involve launching an interactive dialog in which the end user must engage. - When an end user activates
favorites button 8306, the selected business will be tagged such that it will subsequently be presented at the top of the list for the relevant business category. Thus, for example, if an end user activatesfavorites button 8306 for a particular movie theater, that movie theater will appear at the top of the list the next time the movie theater category is selected. If multiple businesses within the same category have been selected as favorites, a sorting algorithm may be used to determine the order in which the businesses appear. - When an end user activates
bookmark button 8308, the selected business will be saved to a “bookmarked” business category for easy access during subsequent use of the directory services application. - When an end user activates
comment button 8310, the user is presented with an interface by which the end user can submit feedback about the selected business. Depending upon the implementation, such feedback may be submitted in the form of a rating (e.g., a certain number of stars out of 5 stars, a “thumbs up” or “thumbs down”, etc.) and/or as text comments. Such feedback can then be aggregated by a service provider and then used by the directory services application to display community-based ratings or comments for businesses or to sort business entries by ratings. - When an end user activates cancel
button 8312, the end user terminates the transaction and may be returned, for example, toGUI screen 8100. - It should be noted that depending upon the implementation, either or both of
GUI screens GUI screen 8100 may automatically place a phone call to the selected business. Also, activatingphone number 8210 withinGUI screen 8200 may automatically place a phone call to the selected business. - Click-to-call records generated by a directory services application in accordance with an embodiment of the present invention may be used to generate a variety of valuable business reports. Such reports may provide a volume of calls per time period, busy hours, a number of entries viewed without calls/skips, a number of hang-ups or unanswered calls or a number of favorite registrations for a particular business.
- Embodiments of the present invention described herein, including systems, methods/processes, and/or apparatuses, may be implemented using one or more processor-based computer systems, such as
computer system 8400 shown inFIG. 84 . As shown inFIG. 84 ,computer system 8400 includes aprocessing unit 8404 that includes one or more processors or processor cores.Processor unit 8404 is connected to acommunication infrastructure 8402, which may comprise, for example, a bus or a network. -
Computer system 8400 also includes amain memory 8406, preferably random access memory (RAM), and may also include asecondary memory 8408.Secondary memory 8408 may include, for example, ahard disk drive 8422 and/or aremovable storage drive 8424.Removable storage drive 8424 may comprise a floppy disk drive, a magnetic tape drive, an optical disk drive, a tape backup, or the like.Removable storage drive 8424 reads from and/or writes to aremovable storage unit 8432 in a well-known manner.Removable storage unit 8432 may comprise a floppy disk, magnetic tape, optical disk, or the like, which is read by and written to byremovable storage drive 8424. As will be appreciated by persons skilled in the relevant art(s),removable storage unit 8432 includes a computer-readable storage medium having stored therein computer software and/or data. - In alternative implementations,
secondary memory 8408 may include other similar means for allowing computer programs or other instructions to be loaded intocomputer system 8400. Such means may include, for example, aremovable storage unit 8434 and aninterface 8426. Examples of such means may include a memory stick and an industry standard interface (such as a universal serial bus (USB) interface) suitable for interfacing with the memory stick, a memory card and associated card reader, a removable memory chip (such as an EPROM or PROM) and associated socket, a program cartridge and cartridge interface (such as that found in video game devices), and otherremovable storage units 8434 andinterfaces 8426 that allow software and data to be transferred fromremovable storage unit 8434 tocomputer system 8400. -
Computer system 8400 may further include adisplay 8410 for presenting user-viewable content rendered byprocessing unit 8404 and/or optional display interface hardware (not shown inFIG. 84 ) as well as one or more input/output (I/O)devices 8412 for receiving input from or producing output to a user. Exemplary input devices include a keyboard, mouse, keypad, touch screen, or the like. Exemplary output devices include audio devices such as speakers.Display 8410 may also be considered an output device. -
Computer system 8400 may also include a communication interface 8414. Communication interface 8414 allows software and data to be transferred betweencomputer system 8400 and external devices. Examples of communication interface 8414 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, or the like. Software and data transferred via communication interface 8414 are in the form of signals which may be electronic, electromagnetic, optical, or other signals capable of being received by communication interface 8414. These signals are provided to communication interface 8414 via acommunication path 8442.Communications path 8442 carries signals and may be implemented using wired communication media such as a phone line, coaxial cable or fiber optic cable, as well as wireless communication media such as radio frequency (RF) or infrared communication channels. - As used herein, the terms “computer program medium” and “computer readable medium” are used to generally refer to media such as
removable storage unit 8432,removable storage unit 8434 and a hard disk installed inhard disk drive 8422. Computer program medium and computer readable medium can also refer to memories, such asmain memory 8406 andsecondary memory 8408, which can be semiconductor devices (e.g., DRAMs, etc.). These computer program products are means for providing software tocomputer system 8400. - Computer programs (also called computer control logic, programming logic, or logic) are stored in
main memory 8406 and/orsecondary memory 8408. Computer programs may also be received via communication interface 8414. Such computer programs, when executed, enablecomputer system 8400 to implement features of the present invention as discussed herein. Accordingly, such computer programs represent controllers of thecomputer system 8400. Where the invention is implemented using software, the software may be stored in a computer program product and loaded intocomputer system 8400 usingremovable storage drive 8424,interface 8426, or communication interface 8414. - The invention is also directed to computer program products comprising software stored on any computer readable medium. Such software, when executed in one or more data processing devices, causes a data processing device(s) to operate as described herein. Embodiments of the present invention employ any computer readable medium, known now or in the future. Examples of computer readable mediums include, but are not limited to, primary storage devices (e.g., any type of random access memory) and secondary storage devices (e.g., hard drives, floppy disks, CD ROMS, zip disks, tapes, magnetic storage devices, optical storage devices, MEMs, nanotechnology-based storage device, etc.).
- As noted previously, several companies offer services where a user can search for and download applications to his mobile device. Currently, however, there is no oversight of such a process, and an enterprise may be averse to permitting employees to freely download applications from such services onto company mobile devices. The description contained herein presents several arrangements that address this concern and that present a secure environment for the retrieval and installation of applications on protected enterprise mobile devices or portable units whose access is or should be restricted in some manner.
- To achieve this objective, a managed services platform is presented in which the platform includes a DMS server and an AS server. The DMS server can act as a gateway for communications with one or more computing devices, and the computing devices can be associated with a first entity. The AS server can be communicatively coupled with the DMS server. When a first computing device contacts the DMS server, the DMS server can be operable to provide a bundle to the first computing device. As an example, the bundle contains content that at least includes one or more configuration messages and an application set that contains one or more predefined applications. In another arrangement, the content of the bundle can be determined at least in part by the first entity.
- The arrangement described above can permit safe and secure delivery of content to a portable computing device, as the downloaded material can be from a known and authorized source. In addition, steps can be taken to ensure that the content that is delivered is authorized to be delivered to a particular mobile device. Embodiments that have been described above and those that will be presented below can be used to provide such a system.
- Referring to
FIG. 86 , an example of asystem 9000 that includes a managed services platform 9010 is shown. The managed services platform 9010 can communicate with anetwork 9020, which can be comprised of any suitable number and type of interconnected communications infrastructure operating in accordance with any suitable type and number of protocols and standards. As an example, thenetwork 9020 can be accessed through a conventional Internet connection, whether wired or wireless. In one arrangement, the platform 9010 can include a device management service (DMS)server 9030 and an application service (AS) server 9040, and theDMS server 9030 and the AS server 9040 can be communicatively coupled to one another such that bi-directional communication exchange between these two components can occur. - The managed services platform 9010 can be configured to communicate with one or more
portable computing devices 9050. TheDMS server 9030 can serve as a gateway for communications with one or more of thedevices 9050 such that theDMS server 9030 is responsible for exchanging messages and data with thedevices 9050 or for directing or otherwise overseeing the exchange of messages and data between thedevices 9050 and other suitable components. The term “DMS server” is defined as a component or a group of components that enable bi-directional communication with at least a portable computing device such that messages, updates, settings or other data can be delivered to such a device. - In one arrangement, the
DMS server 9030 can be a computer that includes a processor (not shown), memory (not shown), a computer-readable storage medium (not shown), a network adapter (not shown), and other components known to those skilled in the art. ADMS client interface 9060 can be stored on the computer-readable storage medium, or stored to a data storage device that is communicatively linked to theDMS server 9030. TheDMS client interface 9060 can interface with theportable computing devices 9050. For example, theDMS client interface 9060 can include a message publisher interface (not shown) that communicates DMS commands to theportable computing devices 9050 and that facilitates a communication service that employs a consolidated polling technique to conduct message exchange. This communication service, referred to as a heartbeat service, provides a common message transport bus where individual applications running on a managed device can subscribe to receive messages. - A
portable computing device 9050 can be any device that subscribes to or is configured to subscribe to the managed services platform 9010 and that may be communicatively linked to theDMS server 9030 to receive one or more commands from theDMS client interface 9060. As an example, aportable computing device 9050 is a tablet, a laptop computer, a smart phone or a communications device that is embedded within another component, such as a vehicle or an appliance. In one arrangement, aportable computing device 9050 can include aDMS client 9070 and aDMS agent 9080 instantiated thereon. TheDMS client 9070 andDMS agent 9080 can be implemented as computer-readable program code that, when executed by a processor, implements the various processes described herein. Aportable computing device 9050 can also include one ormore displays 9090, one ormore transceivers 9100 and one ormore processors 9110. Thetransceivers 9100 can enable thedevice 9050 to communicate with theDMS server 9030, the AS server 9040 and any other component via any suitable wired or wireless connection. - The term “DMS client” is defined as client-side software instantiated on a portable computing device that establishes a communication link with a DMS server and, among other things, receives DMS commands from the DMS server. In addition, the term “DMS agent” is defined as client-side software that is instantiated on a portable computing device that implements the DMS commands received from the DMS server. The
DMS agent 9080 can be implemented on thedevices 9050 as a component of theDMS client 9070 or on thedevices 9050 as a separate component with which theDMS client 9070 communicates. - In one embodiment, the DMS commands can be communicated to a
portable computing device 9050 in response to theDMS server 9030 receiving a solicitation or heartbeat from thedevice 9050. In this regard, the command can be requested by theDMS client 9070 via the heartbeat, as opposed to being pushed by theDMS server 9030 to thedevice 9050. - In illustration, the heartbeat service of the
portable computing device 9050 can periodically communicate a heartbeat to theDMS server 9030 to indicate that thedevice 9050 is turned on or active and available to receive DMS commands, which may be available from theDMS server 9030. As used herein, the term “heartbeat” is defined as a message communicated from a portable computing device to a DMS server that indicates the availability of the portable computing device to receive DMS commands or messages. Aportable computing device 9050 can be configured to communicate the heartbeat intervals defined by seconds, minutes, hours, days, weeks, a certain event, etc. Such intervals can be static, user configurable, or configurable via the update process. - When a heartbeat is received from a
portable computing device 9050, theDMS server 9030 can communicate a heartbeat response. If no commands are presently available, the heartbeat response can indicate such to thedevice 9050. If one or more commands are available for thedevice 9050, the heartbeat response can indicate that one or more commands will be communicated to thedevice 9050. For example, the heartbeat response can indicate that the DMS command will be communicated to adevice 9050 in response to a next heartbeat, or at a particular time. In this regard, the heartbeat and heartbeat response can include data that facilitates coordination between theDMS server 9030 and thedevice 9050 for delivery of the commands. After the commands have been executed, a next heartbeat generated by theportable computing device 9050 can indicate to theDMS server 9030 the status of the update, the status of thedevice 9050 or any other relevant data. As will be explained below, this transport mechanism can permit the delivery of various types of data to theportable computing devices 9050. It is understood, however, that thesystem 9000 is not limited to this particular transport mechanism, as other suitable techniques for establishing and maintaining communications in thesystem 9000 may be used. - The AS server 9040 can be a computer that includes a processor (not shown), memory (not shown), a computer-readable storage medium (not shown), a network adapter (not shown), and other components known to those skilled in the art. An AS
client interface 9120 can be stored on the computer-readable storage medium, or stored to a data storage device that is communicatively linked to the AS server 9040. TheAS client interface 9120 can interface with theportable computing devices 9050. The AS server 9040 can also host one or more application repositories 9130, which can offer one or more applications for download to theportable computing devices 9050. An “application repository” is defined as a medium for storing one or more applications for download to a computing device. An “application” is defined as software that when installed on a machine enables a user to perform one or more specified tasks. As will be explained below, the application repository 9130 can offer applications to thedevices 9050 on an individual, global or group basis, a process in which several applications are grouped together for download to adevice 9050. A suitable entity can add applications to, modify applications in or remove applications from the application repositories 9130. - Similar to the DMS arrangement described above, a
portable computing device 9050 can include an ASclient 9140, which can be implemented as computer-readable program code that, when executed by a processor, implement the various processes described herein. The term “AS client” is defined as client-side software instantiated on a portable computing device that establishes a communication link with an AS server and enables the device or facilitates its ability to receive application downloads. - In one arrangement, one or more of the
portable computing devices 9050 can be associated with a first entity, while one or more other portable computing devices can be associated with a second entity. For example, the first entity or second entity may be an enterprise, such as a private business or a government agency, a family or some other group linked by one or more common factors. The phrase “associated with an entity” is defined as a relationship between a first entity and a component, service, employee, agent or other entity such that the first entity maintains at least some control over that component, service, employee, agent or other entity. For example, aportable computing device 9050 can be assigned to a first entity such that information relevant to the operation of the first entity is presented on thedevice 9050 and employees or agents of the first entity can operate thedevice 9050 on behalf of the first entity. - As an example, all or a portion of the managed services platform 9010 can be hosted by an entity that is distinct from the first and second entities. Such an arrangement can alleviate from the first and second entities the burden of hosting these systems. For example, if the first entity is a private business, the private business may contract with another business to host the managed services platform. Of course, the first entity may wish to host all or a portion of the managed services platform 9010 itself. In addition, different entities may also host portions of the managed services platform 9010. In particular, a first hosting entity may manage the
DMS server 9030, while a second hosting entity may be responsible for the AS server 9040. - Virtually any number of
portable computing devices 9050 can be assigned to the managed services platform 9010, and thesedevices 9050 can be associated with any suitable number of entities. In addition, aportable computing device 9050 can be configured to communicate with several managed services platforms 9010. For example, a first platform 9010 may serve as a primary platform, while a second platform 9010 may operate as a secondary platform. In particular, aportable computing device 9050 may communicate with a primary platform 9010 during normal operation but may communicate with a secondary platform 9010 if the primary platform 9010 malfunctions. Moreover, thedevice 9050 may initially communicate with the secondary platform 9010 upon activation and then can receive instructions to switch to the primary platform 9010. The use of a secondary platform 9010 can also permit additional messages, such as updates or corrective actions, to be sent to thedevice 9050, if necessary. The secondary platform 9010 can also be used to ensure security by directing theportable computing device 9050 only to an authorized primary platform 9010 such as, for example, when adevice 9050 is first activated or following an update. - As explained earlier, multiple
portable computing devices 9050 that are associated with numerous entities are contemplated in this arrangement. In addition, a user who is associated with the first entity may be assigned aportable computing device 9050 that is associated with the first entity. For example, a private business may purchase or lease aportable computing device 9050 and can assign thedevice 9050 to one of its employees. If desired, the private business can also assign asingle device 9050 to multiple employees in which each of the employees can be assigned log-in credentials to access/operate thesingle device 9050. Additional examples of this principle will be presented below. - The arrangement described above can enable the selective download of applications, settings and other data to be sent to one or more
portable computing devices 9050. Such information can be provided to adevice 9050 on an individual basis, a group basis or a broadcast basis. Multiple examples of this process and other supporting structures will be presented below. A description will be presented here in which adevice 9050 is ready for an initial activation. - In this example, a first entity, which may be a private business, wishes to assign a
portable computing device 9050 to a person who is associated with the first entity. This person may be, for example, an employee, agent or contractor of the business. As such, this person may have a performance function that is related to or associated with the business. The term “performance function” is defined as one or more tasks assigned to a person to be conducted on behalf of the assigning party. As an example, a performance function can be the duties assigned to an employee or an agent of the business. - The
portable computing device 9050 that is assigned to the person associated with the first entity can have an identification that enables thedevice 9050 to be uniquely identified fromother computing devices 9050. In addition, this identification can be used to identify a particular user of adevice 9050, especially if that person is the only user assigned to thedevice 9050. Of course, multiple users may be assigned to asingle device 9050, if so desired. As an example, the unique identifier for adevice 9050 can be a media access control (MAC) address, although other elements can be used for such a task. If theportable computing device 9050 supports multiple users, then the identification can also include information that enables the users of thedevice 9050 to be distinguished from one another. For example, a user name or other moniker can be included with a MAC address to identify thedevice 9050 and which user of thedevice 9050 is currently active or currently wishes to receive/transmit/exchange data. - When the user activates the assigned
portable computing device 9050, thedevice 9050 can contact the managed services platform 9010, such as by generating and sending an activation notice to theDMS server 9030. Thedevice 9050 can send the activation notice when thedevice 9050 is first activated or even during subsequent power up cycles, and this notice can be conducted in accordance with the heartbeat process previously described or some other suitable process. The term “activation notice” is defined as a notice that is intended to inform a component or a group of components that the element that sent the notice is ready to receive data from the component or group of components. In receipt of the activation notice, theDMS server 9030 can use the unique identifier(s) to identify thedevice 9050 and, if necessary, the user of thedevice 9050. Additionally, theDMS server 9030 may be operable to provide a bundle to thedevice 9050, and the contents of the bundle can provision thedevice 9050 in accordance with one or more predetermined arrangements. The phrase “operable to provide a bundle to a computing device” is defined as directly transmitting content to a computing device, indirectly transmitting content to a computing device by directing a component to effect the transmission of content to the computing device or by directing or assisting the portable computing device to seek the delivery of content from a component. - In one arrangement, the content of the bundle can be determined at least in part by the first entity or client to which the
portable computing device 9050 is associated. In particular, the content of the bundle can at least include one or more configuration messages and an application set that contains one or more predefined applications. As an example, the managed services platform 9010 can provide the bundle to thedevice 9050 through a series of message exchanges in accordance with a consolidated polling technique (i.e., the heartbeat process). - Several definitions of some the terms listed above will now be presented. The term “bundle” is defined as one or more messages or transmissions that include content that is intended for a particular computing device or group of computing devices or one or more directives that cause a computing device or a group of computing devices to retrieve content from one or more sources. The term “content” is defined as data, settings or parameters that when received by a computing device, cause the computing device to perform an action that corresponds to the received data, settings or parameters. A “configuration message” is defined as one or more messages or transmissions that are designed to cause a computing device to select or adjust one or more operational settings of the computing device.
- Turning to the configuration messages, the
DMS server 9030, once it has been contacted by thedevice 9050, can forward one or more of them to thedevice 9050. As an example, a configuration message can include virtual privacy network (VPN) settings, wireless communication settings (such as Wi-Fi settings), location service settings, security certificates, firmware packages or download control settings. Specifically, location service settings can be settings that enable, for example, a managing entity to monitor the whereabouts of thedevice 9050, and security certificates can be employed for securing communications to and from thedevice 9050, such as Internet Protocol (IP) communications. As another example, firmware packages can include one or more firmware releases that include programming/code to effect or facilitate operational adjustments or settings in one or more components of theportable computing device 9050, as will be explained below. Control settings, for example, can be used to permit a managing entity or other external party to send messages to or make adjustments to thedevice 9050. - In addition to the configuration messages, the bundle can include one or more applications, such as application sets that include one or more predefined applications. For example, the managed
services platform 9000 can take steps to cause the delivery of applications to theportable computing device 9050 or to direct thedevice 9050 to one or more different components that make such applications available for download. In one arrangement, theDMS server 9030 can be operable to provide applications to thedevice 9050 by directly transmitting such data to thedevice 9050. Alternatively, theDMS server 9050 can direct the AS server 9040 to transmit the applications to thedevice 9050 or can direct thedevice 9050 to contact the AS server 9040 to retrieve the applications. Thedevice 9050 can also receive applications via any combination of these options listed here. - As noted above, the AS server 9040 can host one or more application repositories 9130, which can offer multiple applications for download to any number of
portable computing devices 9050. In one arrangement, the application set that is to be sent to aparticular computing device 9050 can include a default application set that includes one or more default applications. In addition to or in lieu of the default application set, the application set can include a custom application set that includes one or more custom applications. A default application set can include applications (i.e., default applications) that have been approved to be installed on all thedevices 9050 of a particular group or all devices associated with an entity. In contrast, a custom application set can include applications (i.e., custom applications) that are geared towards a particular characteristic associated with adevice 9050 or a user of thedevice 9050. - As an example, the content of the bundle provided to a
portable computing device 9050 can be based on the identification associated with thedevice 9050. As such, the configuration messages and/or the applications can be provided to thedevice 9050 according to the identification associated with thedevice 9050. In one embodiment, the identification associated with thedevice 9050 can be related to a performance function of an intended user of thedevice 9050 such that the configuration messages or the applications that are provided to thedevice 9050 are related to the performance function of the intended user. - For example, a first entity, such as a corporation, may distribute a
portable computing device 9050 to an individual, like an employee. This employee can have a performance function, such as generating sales of the company's products or services. Because this worker is involved in sales, the bundle to be delivered to hisdevice 9050 can be tailored to that function. That is, the configuration message(s) and the applications that are to be provided to the employee'sdevice 9050 can be related to the employee's job function, which is in sales. For example, because this employee may be using public Wi-Fi networks, a configuration message sent to thedevice 9050 may require thedevice 9050 to only communicate over a VPN. As another example, because the employee may travel frequently, a configuration message for thedevice 9050 may direct the enablement of a location service on thedevice 9050. In addition, the configuration message may include firmware and other code designed expressly for this employee's sales job. - In one arrangement, the receipt of the configuration messages can cause visible changes to the
portable computing device 9050. For example, a firmware package that is delivered to thedevice 9050 may cause thedisplay 9090 of thedevice 9050 to present certain GUI elements. In one particular arrangement but without limitation, the GUI elements that are displayed can be associated with the first entity that distributed thedevice 9050 to the user. The first entity can cause thedevice 9050 to be flashed such that, for example, a company logo or other mark can appear on the display, along with other predetermined visual elements, like a background or other various skins and/or themes. This process can be conducted withother devices 9050 that are associated with a second entity such that thesedevices 9050 can be provisioned to have a look and feel associated with the second entity. - As previously noted, as part of the bundle for each employee, a default set of applications can be provided to the
device 9050 as each employee activates his/herdevice 9050 or at any other suitable time(s). For example, these default applications can be applications that are relevant to each employee's association with the corporation, such as an application for sharing work contacts, an application that presents written articles about the company's industry or an application that is useful for remembering important personal information related to business contacts. Default applications can also be made available for retrieval by a group ofdevices 9050, such as from an application repository, at any other suitable time. These default applications can simply be made available to thedevices 9050 or can be pushed to thedevices 9050 when the default applications become available. - As also referenced earlier, if desired, a custom set of applications can be prepared and provided to employees who are part of a specific group or who meet certain requirements. These custom applications can be related to the performance function of an employee or a group of employees. Continuing with the example concerning the sales employee, because this employee may need to visit clients, a navigation application can be provided to that employee's
device 9050. In another example, because this employee will be dealing with numerous clients, an application that manages information concerning business contacts can be provided to thedevice 9050. Like the default applications, custom applications can be pushed to thedevice 9050 or made available at an application repository, whether at activation or during any suitable, subsequent time. - The managed services platform 9010 can provide services to multiple
portable computing devices 9050. Two or more users ofsuch devices 9050 may be associated with a first entity, although not necessarily so. Similar to the description above, theDMS server 9030, once it identifies thesecond device 9050, can be operable to provide a second bundle to thesecond device 9050 that is assigned to, for example, an administrative assistant. The second bundle can also contain content that at least includes one or more configuration commands and an application set that contains at least predefined applications. The second bundle can be provided to thesecond device 9050 when an activation notice is received from thesecond device 9050 or by some other suitable act by thesecond device 9050. - The content of the second bundle can be based on the identification associated with the
second computing device 9050 such that the configuration messages and/or the application set that are provided to thesecond device 9050 are done so according to the identification associated with thesecond device 9050. The identification associated with thesecond device 9050 can be related to a performance function of a second intended user of thesecond device 9050 such that the configuration messages or the applications that are provided to thesecond device 9050 are related to the performance function of the second intended user. In one arrangement, the performance function of the second intended user is different from the performance function of a first intended user of thefirst device 9050 described above. In this arrangement, the content of the bundle provided to the second intended user can be different from the content of the bundle provided to the first intended user of thefirst device 9050. - In view of these
multiple devices 9050, theDMS server 9030 or some other suitable component can be operable to provide a default set of applications and a custom set of applications for both thefirst computing device 9050 and thesecond computing device 9050. As an example, the default set of applications can be the same for both thefirst device 9050 and thesecond device 9050, while the custom set of applications for thefirst device 9050 can be different from the custom set of applications for thesecond device 9050. - Continuing with the above example, one of the users may be an employee of the first entity and can be involved in sales. This first user can be assigned a
first computing device 9050, which can receive configuration messages and applications that are related to the type of work, i.e., sales, conducted by the first user. A second user may be an administrative assistant who is also an employee of the entity and who is assigned a secondportable computing device 9050. This second user has a different performance function from that of the first user. As such, some of the configuration messages for thesecond device 9050 assigned to this user may be structured differently from those provided to thefirst device 9050 that is assigned to the first user. As an example, the administrative assistant may only be permitted to use thesecond device 9050 on the entity's campus, which may eliminate the need to set thesecond device 9050 for permanent use of a VPN. - Further, some of the applications provided to the first user's
device 9050 may be different from those provided to thesecond device 9050 assigned to the second user. For example, the administrative assistant may never travel on the company's behalf, which would obviate the need for provided thesecond device 9050 with a navigation application. Accordingly, one or more applications designed for use by the administrative assistant on thesecond device 9050, i.e., a custom set of applications, can be different from those of the employee involved in sales. Nevertheless, some of the applications provided to the sales employee, the administrative assistant and other employees can be common, i.e., a set of default applications, installed on allrelevant devices 9050. - As such, the presentation of applications to employees or other individuals can be general or selective in nature. This control of access to applications can occur when the
portable computing device 9050 is initially activated or at any other subsequent time. Moreover, this feature applies to applications that are pushed to adevice 9050 without any solicitation from a user or when a user tries to access applications from an application repository. In the latter scenario, a managing entity may control the type of applications that a user of thedevice 9050 can retrieve from an application repository. For example, the managing entity may only present to a user those applications in the application repository that the user is entitled to install on his/herdevice 9050, which can be based on, for example, the user's performance function. - In certain embodiments, multiple users may be assigned to a single
portable computing device 9050. For example, an entity may assign a first user and a second user to afirst device 9050, and both the first user and the second user can set up accounts on thefirst device 9050. Thefirst device 9050 can be operable to identify the first and second users through various conventional means, like passwords or biometric identification. In addition to providing its own unique identifier, thefirst device 9050 can provide identification for both the first and second users by, for example, supplying information that identifies which of the first and second users is currently active on thefirst device 9050. - Because there may be multiple users for a single
portable computing device 9050, a corresponding number of bundles may be provided to thedevice 9050. As such, the content of a first bundle provided to afirst device 9050 can be based on an identification associated with thefirst device 9050. To accommodate this feature, thedevice 9050 can be operable to switch between a first account associated with the first user and a second account associated with the second user. Additionally, theDMS server 9030 can be further operable to provide a second bundle to thefirst device 9050 based on the identification associated with thefirst device 9050. The content of the first bundle can be arranged for the first user, and the content of the second bundle can be arranged for the second user, in accordance with the description above. The first and second users may have similar or even dissimilar performance functions, and the first and second bundles may include configuration messages and applications geared towards those performance functions. The first and second users may be associated with a common entity, such as an employer, but not necessarily so. - As noted earlier, the content of the bundle can be determined, at least in part, by a first entity. This first entity can also be responsible for assigning
portable computing devices 9050 to one or more users, each of which can be associated with the first entity. For example, the first entity may be a corporation that providesdevices 9050 to a number of its employees. In one arrangement, one more application repositories 9130 can be assigned to and associated with the first entity. Such an application repository 9130 can have a look and feel that is related to the first entity, which can give a user of the repository 9130 that the repository 9130 is maintained by or at least approved by the first entity. - In response to the receipt of a bundle, a
portable computing device 9050 can be provided with access to the application repository 9130 that is assigned to and associated with the first entity. The phrase “provided with access to an application repository that is assigned to and associated with the first entity” is defined as a state in which a computing device is authorized to access and retrieve material from an application repository or have material from the application repository pushed to the device in which the application repository is either managed or approved by the first entity. As an example, thedevice 9050 can download applications from the application repository 9130, whether solicited by thedevice 9050 or pushed to thedevice 9050. This relationship means that the default application sets, the custom application sets or both can be selected from an application repository 9130 that is associated with the first entity. As such, the first entity can determine which applications are to be part of the application repository 9130, including the number and types of applications that are to be included in the default application sets, the custom application sets or both. It must be noted, however, that entities other than this first entity may make these determinations, and additional detail on this process will be presented below. - In one arrangement, the first entity referred to above can be responsible for setting up and maintaining the managed services platform 9010 or at least part thereof, in addition to determining the content of the bundles provided to the
computing devices 9050. For improved efficiency or to lessen the burden on the first entity, at least part of the managed services platform 9010 can be developed and managed by a second entity that is distinct from the first entity. For example, theDMS server 9030 and the AS server 9040 can be hosted by the second entity. As another example, the second entity can be a managing entity that is responsible for preparing and providing the bundles according to input from the first entity. - An example will be presented to help explain this arrangement. Consistent with the examples above, the first entity may be a corporation that assigns
portable computing devices 9050 to a number of its employees. While the corporation may set up and manage a managed services platform 9010—including an application repository 9130—on its own, the corporation may delegate such responsibilities to some other organization, i.e., the second entity. The second entity may be another company that specializes in providing managed services and can, at the direction of the first entity, develop and host the components of the managed services platform 9010. As part of this assignment, the second entity can develop and maintain the application repository 9130 on behalf of the first entity, which may include approving applications for publication in the repository 9130. Further, the first entity can direct the second entity to prepare the bundles that can be provided to the relevantportable computing devices 9050, including the pushing of subsequent updates and other content to thesedevices 9050. In this case, the first entity can provide input to the second entity to ensure the second entity properly prepares the bundles. Of course, the first entity can take on any of these processes on its own accord. - Referring to
FIG. 87 , an example of a managedservices system 9200 is shown. Any number of managed services platforms 9010, as described above, can be implemented into the managedservices system 9200. In one arrangement, thesystem 9200 can include one or moreapplication developer portals 9205, one ormore approval portals 9210, one ormore administrator portals 9215, one ormore client portals 9220 and one or moresub-client portals 9225. An overview of the managedservices system 9200 will now be presented. - The
application developer portal 9205 is a system that enables one or more application developers to submit applications for publication in one or more, for example, application repositories 9130. Once an application is submitted for publication, theapplication developer portal 9205 can forward the application to one ormore approval portals 9210. Theapproval portal 9210 is a system that enables testing and analysis on the submitted application to ensure that the application complies with a set of requirements for publication in the application repository. If the application meets these requirements, the application may be approved, and theapproval portal 9210 can forward the approved application to, for example, one ormore administrator portals 9215. Theapproval portal 9210 can also signal theapplication developer portal 9205 that the submitted application has been approved. - The
administrator portal 9215 is a system that enables the distribution of the approved application to one or more entities or components. Once it receives the approved application, theadministrator portal 9215 can, for example, push the application to one or more of the portable computing devices 9050 (seeFIG. 86 ) through the managed services platform 9010 (seeFIG. 86 ) or can cause the application to be published in the application repository 9130 or to become part of a bundle. In this scenario, theportable computing devices 9050 may be associated with an entity that is responsible for operating or managing theadministrator portal 9215. - The
administrator portal 9215, once it receives the approved application, may also perform one or more other processes, either in lieu of or in addition to the steps listed above. For example, theadministrator portal 9215 can forward the approved application to one or more of theclient portals 9220, which can serve as a notice that the application is available for publication in one or more application repositories. Theclient portals 9220 can be systems that accept approved applications from, for example, theadministrator portal 9215 and can make determinations as to whether to publish the approved application in an application repository. As an example, the application repository in which the approved application may be published can be associated with aclient portal 9220. - In one arrangement, one of the
client portals 9220 may be associated with one or more of thesub-client portals 9225. In one example but without limitation, aclient portal 9220 may be associated with a multi-national corporation, and a sub-client portal 9225 may be set up for one or more subsidiaries of the corporation. In this arrangement, theclient portal 9220 may facilitate the availability/publication of applications for thesub-client portals 9225, such as for application repositories associated with the entities that oversee or operate thesub-client portals 9225. For example, if theclient portal 9220 decides to publish the submitted application in an application repository, theclient portal 9220 can forward the application to one or more of thesub-client portals 9225. At this point, thesub-client portals 9225 can determine whether to publish the application on an application repository associated with the entity overseeing or operating thesub-client portal 9225. - The preceding overview is not meant to be limiting, as it is merely one example of a managed services system and its operating processes. Each of the components shown in
FIG. 87 , however, will be discussed in more detail below, beginning with theapplication developer portal 9205 and theapproval portal 9210. - Referring to
FIG. 88 , exemplary block diagrams of theapplication developer portal 9205 and theapproval portal 9210 are shown. As explained earlier, theapplication developer portal 9205 enables one or more application developers to submit one or more applications for possible publication in one or more application repositories. To facilitate this operation, theapplication developer portal 9205 can include several components, such as adisplay 9230,memory 9235, atesting interface 9240, andapproval portal interface 9245 and aprocessor 9250. Thedisplay 9230 can display various types of relevant information, such as one or more applications that have been received from, for example, an application developer. Thememory 9235 can be any suitable type of memory for storing the submitted applications, as well as instructions for carrying out any of the processes described herein. - The
testing interface 9240 can be configured to permit an application developer to test, analyze, review or otherwise manage any application that it has submitted to theapplication developer portal 9205. For example, thetesting interface 9240 can support wired or wireless communications with one or more testing devices (not shown), which can permit the installation of a submitted application on a testing device. As an example, a testing device can be similar to aportable computing device 9050 described above or some other similar unit that may eventually install the submitted application. Theapproval portal interface 9245 can support wired or wireless communications with theapproval portal 9210 and/or some other suitable component. This connection can permit theapplication developer portal 9205 to submit applications to theapproval portal 9210 for approval and for message or data exchange between the two components. - Each of the
display 9230, thememory 9235, thetesting interface 9240 and theapproval portal interface 9245 can be communicatively coupled to theprocessor 9250. In addition, theprocessor 9250 can control the operation of each of these components. Theprocessor 9250 can be configured or operable to cause the execution of any the processes described herein. - As explained above, the
approval portal 9210 can permit the review and approval of applications submitted for publication from theapplication developer portal 9205. Similar to theapplication developer portal 9205, theapproval portal 9210 can include adisplay 9255,memory 9260, atesting interface 9270 and aprocessor 9280. Theapproval portal 9210 can also include anadministrator portal interface 9265, an approval engine 9275 and anapplication developer interface 9285. - The
display 9255 can display one or more applications that have been submitted for approval, as well as other relevant information. Thememory 9260 can be any suitable type of memory for storing the applications submitted for approval, as well as instructions for carrying out any of the processes described herein. Thetesting interface 9270 can be configured to conduct wired or wireless communications with one or more testing devices (not shown), which can permit the applications submitted for approval to be downloaded to such devices. A testing device can permit the submitted application to be tested in an environment similar to that available on aportable computing device 9050. As such, the testing device may be similar in structure and capabilities as aportable computing device 9050, although the testing device is certainly not limited to this arrangement. - The administrator portal interface 9256 can support wired or wireless communications to enable the
approval portal 9210 to send approved applications to the administrator portal 9215 (seeFIG. 87 ), as well as to allow message/data exchange between the two systems. Of course, theadministrator portal interface 9265 can be used to permit theapproval portal 9210 to conduct wired or wireless communications with other suitable systems or components. Similarly, theapplication developer interface 9285 can support wired or wireless communications with, for example, theapproval portal interface 9245 of theapplication developer portal 9205 or any other suitable component. In one arrangement, the approval engine 9275, which can be any suitable combination of hardware and software, can be configured to conduct testing on the submitted application. For example, the approval engine 9275 can execute testing or analysis programs on the submitted application to provide an indication as to whether the submitted application complies with any number of approval requirements. - Each of the
display 9255, thememory 9260, theadministrator portal interface 9265, thetesting interface 9270 and the approval engine 9275 can be communicatively coupled to theprocessor 9280. In addition, theprocessor 9280 can control the operation of each of these components. Theprocessor 9280 can be configured or operable to cause the execution of any the processes described herein. - Examples of the operation of the
application developer portal 9205 and theapproval portal 9210 will now be presented. Theapplication developer portal 9205, which may also be referred to as a computing device, can be configured to present a first interface to permit application developers to submit applications for approval for selective publication in a first application repository, a second application repository or both first and second application repositories. In one arrangement, the first application repository can be associated with a first client, and the second application repository can be associated with a second client, although either application repository may be associated with a single client or entity. The term “application developer” is defined as an entity that submits an application for approval for publication or at least possible publication in an application repository and includes an entity that actually generates the application or an entity that supervises the generation of the application. The phrase “to submit applications for approval for selective publication” is defined as a process in which applications are submitted for an approval process in which it is determined whether the submitted application meets one or more requirements for publication or at least possible publication in one or more application repositories. - The
approval portal 9210, which may also be referred to as a computing device, can be configured to present a second interface to permit the approval of a submitted application for the selective publication in the first application repository and/or the second application repository. The term “approval” is defined as a process or state in which an application has been deemed to meet one or more requirements to be eligible for publication or at least available for publication in one or more application repositories. If a submitted application is approved, theapproval portal 9210 can be further configured to notify theapplication developer portal 9205 that the submitted application has been approved, such as through a communication between theapplication developer interface 9285 and theapproval portal interface 9245. - Referring to
FIG. 89 , an example of aninterface 9300 that theapplication developer portal 9205 can present to permit application developers to submit applications for approval for selective publication is shown. As an example, theinterface 9300 can be one or more GUI elements that provide information to a user and enable the user to take one or more actions. As part of theinterface 9300, theapplication developer portal 9205 can present ahome page 9302, which can be accessed through, for example, ahome tab 9304. - In one arrangement, the
home page 9302 can provide performance data relating to a submitted application once the application is published in the first application repository or the second application repository. Examples of performance data can include the number of times an application has been published in an application repository, how many times the application has been downloaded from the application repository and financial information. In this case, thehome page 9302 can include anapplication performance section 9306 that can display the amount of revenue generated by a selected application, such as over the course of several months. As an example, this revenue can be generated from users downloading the application from an application repository. Of course, one skilled in the art will appreciate that thehome page 9302 can demonstrate other information that is related to the performance of one or more individual applications. - In another arrangement, the
home page 9302 can be configured to provide cumulative performance data relating to a plurality of published applications in the first application repository or the second application repository. For example, thehome page 9302 can include acumulative performance section 9308, which can show the amount of revenue that has been generated from a plurality of submitted applications that have been published, such as all published applications. This information can be displayed in relation to any suitable amount of time, such as the monthly performance markers shown in thecumulative performance section 9308. As part of thecumulative performance section 9308, apie chart 9310—or some other form of displaying cumulative data—can be used to demonstrate the total market share of each of the applications that have been published and downloaded. It is understood, however, that thehome page 9302 is not in any way limited to these examples, as other suitable formats can be used to display cumulative performance data of a plurality of applications. - In addition to performance data, the
home page 9302 can provide other important information. For example, thehome page 9302 can show the number of applications that have been submitted by a particular application developer. As part of this feature, thehome page 9302 can provide the total number of submitted applications in a particular state, such as the total number of applications that have been published or rejected or are still pending approval. Additional discussion on these states will be presented below. Comments relating to one or more submitted applications may also be presented on thehome page 9302. These comments may be submitted by, for example, application developers, personnel involved in approving the submitted applications or any other suitable entities. A daterange selection mechanism 9311 can also be provided to enable a user to select a particular date or a range of dates in an effort to focus on performance data or other information associated with a particular temporal period. - The
application developer portal 9205 can be configured such that all of or portions of performance data associated with the submitted applications can be selectively isolated such that access to the performance data is restricted. For example, a password or a biometric identification process may be required to access the performance data, which can effectively prevent unauthorized users from obtaining access to this potentially sensitive data. - Referring to
FIG. 90 , an example of anapplications page 9312 is shown, which can be part of theinterface 9300 and can be accessed through anapplications tab 9313. As an example, an application developer can upload one or more applications for approval through thisapplications page 9312, such as by selecting anaddition feature 9314. One or more submittedapplications 9316 can be presented on theapplications page 9312, and these applications can be represented by any suitable type of icon. As part of the display, the name and version of theapplication 9316 can be shown. Additionally, arating indicator 9318 can be displayed as part of the presentation of the submittedapplications 9316. Therating indicator 9318 can represent an overall rating that is attached to anapplication 9316 to provide an indication as to, for example, the effectiveness, suitability, performance or utility of the application. As an example, therating indicator 9318 can be applied to applications that have been published and downloaded toportable computing devices 9050 and can represent a cumulative grading. The cumulative grading can be based on information provided by users who have downloaded and used the published application, for example. - In this case, the
rating indicator 9318 can be a grading scale based on a number of stars, which can range from the number zero to the number five, with more stars being hi-lighted as the cumulative grading becomes more favorable for the application. Those submitted applications that have not yet been published and cannot be downloaded may typically have norating indicator 9318 or arating indicator 9318 that shows that no such grading is available yet. In this example, none of stars are hi-lighted for a submitted application that has not yet been published and therefore has no grading. While a star system is a suitable example for a rating indicator, it is understood that other mechanisms can be used to indicate the favorability of an application, such as a color coding system or additional icons or adjustments to the application icons. - In one embodiment, the
application developer portal 9205 can assign astatus indicator 9320, which can provide information as to the stage of review for approval for a submittedapplication 9316. The term “status indicator” is defined as a GUI element that provides an indication as to the stage of approval review for a particular application. As an example, thestatus indicator 9320 can be presented proximate to or at least partially directly over therelevant application 9316. Thestatus indicator 9320 can take on several forms, each one representing a particular state. Moreover, astatus indicator section 9320 can provide an explanation as to what eachstatus indicator 9320 represents. - For example, once an
application 9316 is submitted for approval, thestatus indicator 9320 for that submittedapplication 9316 can indicate that the submitted application is in a pending state, if the submittedapplication 9316 is under review and has not yet been approved for publication by theapproval portal 9210. In another example, once a submittedapplication 9316 is approved for publication, thestatus indicator 9320 for theapplication 9316 can indicate that theapplication 9316 has been approved for publication or is in an approved state. In yet another example, once an approvedapplication 9316 is published in one or more application repositories, thestatus indicator 9320 can indicate that theapplication 9316 is in a published state. In contrast, if a submittedapplication 9316 is rejected for approval for publication, thestatus indicator 9320 can indicate that the submittedapplication 9316 has been rejected or is in a rejected state. - In one arrangement, following the submission of an
application 9316, an application developer or some other suitable entity may have the opportunity to upgrade theapplication 9316. This process can involve any suitable type of modification, such as debugging or adding new features to theapplication 9316. In this case, if a submittedapplication 9316 is upgraded, thestatus indicator 9320 can indicate that theapplication 9316 has been upgraded. These upgrades can occur once anapplication 9316 is submitted for approval for publication (i.e., a submitted application), once theapplication 9316 has been published or after it has been rejected. - The
status indicator 9320 may indicate multiple states for aparticular application 9316, if applicable. For example, if a submittedapplication 9316 yet to be approved has been upgraded, then thestatus indicator 9320 can indicate both states (i.e., submitted and upgraded) for the submittedapplication 9316. Moreover, thestatus indicator 9320 can change its indication to reflect modifications in the state of anapplication 9316 once such modifications occur. - Several examples of indications for the
status indicator 9320 are presented inFIG. 90 . It is understood, however, that theinterface 9300 is not limited to these particular examples, as any suitable form of indicating the state of anapplication 9316 can be employed here. Such forms of thestatus indicator 9320 can include the use of various colors, shapes and different insignia. - In one arrangement, the
application developer portal 9205, through theinterface 9300, can be configured to present information associated with a submittedapplication 9316 uploaded by, for example, an application developer. Theapplication developer portal 9205 can be further configured to enable the selection of the information, such as prior to the uploaded application being submitted for approval. Referring toFIG. 91 , anapplication presentation page 9322 is shown, which can present such information. For example, a user can select anapplication 9316, and theapplication presentation page 9322 can present various types of information associated with the selectedapplication 9316. Information can be displayed for one ormore applications 9316, and the selectedapplication 9316 can be in any one of the states described above (e.g., pending, approved, etc.). - Some examples of information that can be presented for a selected
application 9316 include anapplication name 9324, anapplication category 9326, anapplication version 9328, anapplication rating 9330, alicensing model 9332, aprice 9334, adescription 9336, a log ofedits 9338,promotional text 9340 or alanguage selection 9342. In addition, a status/release stage 9344, which can correspond to thestatus indicator 9320, can be presented for the selectedapplication 9316. An update date 9346 (if appropriate) and a creation date 9348 can be shown for the submittedapplication 9316. Therating indicator 9318 can also be presented for the submittedapplication 9316, if desired. - The
application category 9326 can identify a category to which the selectedapplication 9316 belongs. Examples include social networking, gaming, finance, media, etc. Theapplication version 9328 can identify the version of the selected application 9316 (a higher number may indicate a more recent version), while theapplication rating 9330 can show a rating that has been assigned to the selectedapplication 9316. Examples of such ratings include one that signifies that the application is suitable for all ages, one that indicates that the application is intended for mature audiences and one that shows that the application has no rating. Other ratings may be used here, as the examples listed above are not meant to be limiting. - The
licensing model 9332 identifies the licensing arrangement that is available for the selectedapplication 9316. For example, thelicensing model 9332 can be a floating license, a free license, a pay license, a subscription-based license or a volume license. In particular, the floating license can be a pool of active licenses that is limited to a certain number of licenses, but members who are part of this number of licenses can be freely exchanged. For example, a company may be granted ten licenses for an application. While the number of licenses at any one time may be limited to ten, employees who are part of this group of ten licenses may be swapped with other employees to permit selective access to other workers. In the case of a free license, no financial transaction is required for download and use of theapplication 9316, while a pay license can be a one-time, up-front payment to do so. A subscription-based license is one in which a user may pay on a periodic basis for use of anapplication 9316, which may remain in place so long as the payments continue to be made. A volume license is one in which discounts may be given for relatively large number of licensees, and the discount may increase as the number of licensees rises. Theprice 9334 can indicate the amount of money involved for any of the licenses described above. - The
description 9336 can be, for example, text that explains the operation of the selectedapplication 9316 and any other relevant points. The log ofedits 9338 can display all or a portion of any modifications or notes related to such modifications that are involved with the selectedapplication 9316. Thepromotional text 9340 can present information related to any program or effort to entice users to download and install, whether permanently or on a trial basis, the selectedapplication 9316. - In addition to presenting information associated with the selected
application 9316, theapplication presentation page 9322 can enable any of the information described above to be modified. For example, a developer of the selectedapplication 9316 can determine what type oflicensing model 9332 will be assigned to theapplication 9316 and theprice 9334 associated with such determination. As part of the presentation and modification of the information of theapplication presentation page 9332, thelanguage selection 9342 can enable the application developer or some other party to select the language in which such information will be presented or modified. - The
application presentation page 9322 can provide functionality to enable a party to submit the selectedapplication 9316 for approval for publication in an application repository. For example, a publishinitiator 9344 can be activated, which can, in response, forward the selectedapplication 9316 to theapproval portal 9210 for approval. In another arrangement, theapplication presentation page 9322 can provide a removal initiator 9346, which, upon being activated, can remove the selectedapplication 9316 from consideration for approval by theapproval portal 9210. The application developer or some other suitable party may wish to take this step if it is deemed, for example, that the selectedapplication 9316 is not ready for review by theapproval portal 9210. - The
application presentation page 9322 may also present one or more features to enable testing of a selectedapplication 9316. For example, theapplication developer portal 9205 can be configured to push the uploaded (i.e., selected)application 9316 to a testing device, such as aportable computing device 9050. Once pushed to the testing device, the selected and pushedapplication 9316 can be tested to determine its suitability for submission to theapproval portal 9210. Any suitable entity can perform the testing, such as (but not limited to) the application developer. As another example, theapplication developer portal 9205 can be configured to pull theapplication 9316 from the testing device, which can be done, for example, following the completion of the testing phase at theapplication developer portal 9205. Additional discussion on this feature will be presented below. - The
application presentation page 9322 may includeseveral tabs 9350, the selection of which may present different types of information to be displayed or otherwise available. For example, the selection of atab 9350 labeled with the word “General” can cause the information described above in relation toFIG. 91 . In addition, the selection of atab 9350 labeled with the word “Files” can cause theapplication developer portal 9205 to display afile page 9352 that presents information related to the files associated with theselection application 9316, an example of which is shown inFIG. 92 . In one arrangement, the files that are part of the selectedapplication 9316 and that are uploaded when theapplication 9316 was submitted for approval can be shown here. - Similarly, selection of a
tab 9350 noted with the word “Comments” can cause the portal 9205 to show acomments page 9354, an example of which is shown inFIG. 93 . Here, the comments of application developers, testing personnel, administrators or any other suitable entities that are related to the selectedapplication 9316 can be presented here. These comments can relate to various aspects of theapplication 9316, such as its features, its performance, its information presented in theGeneral tab 9350, etc. Thecomments page 9354 can also enable replies to be submitted in response to any comment presented on thecomments page 9354. - Another example of a
tab 9350 is one labeled with the term “Statistics.” Selection of thistab 9350 can cause theapplication developer portal 9205 to present astatistics page 9356, an example of which is shown inFIG. 94 . Any suitable statistic associated with the selectedapplication 9316 can be displayed on thestatistics page 9356. For example, if the selectedapplication 9316 has been published, the number of times that theapplication 9316 has been published and the amount of revenue associated with these downloads can be presented. As another example, the grade from therating indicator 9318 and any reviews of theapplication 9316 can be presented here. In addition, the number of deletions from units that have installed theapplication 9316 and the rank of theapplication 9316, as compared to other publishedapplications 9316, can also be displayed. These examples here are not meant to be limiting, as other suitable types of statistics can be presented on thestatistics page 9356. Moreover, theapplication developer portal 9205 can be configured to present other types oftabs 9350, as those described here are intended to be exemplary in nature. - The
application developer portal 9205 can be configured to provide a publication indicator 9357 and a removal indicator 9359. The publication indicator 9357 and the removal indicator 9359 can be part of, for example, theapplication presentation page 9322, thefile page 9352, thecomments page 9354 and thestatistics page 9356. When the application developer or any other suitable party is ready to submit theapplication 9316 for approval, the application developer or party can activate a publication indicator 9357. This step can cause the generation of a publication command, and in response, theapplication developer portal 9205 can forward theapplication 9316 to theapproval portal 9210. If the application developer or some other party does not believe that theapplication 9316 is ready to be submitted, the application developer of the party has the option to remove theapplication 9316 from theapplication developer portal 9205 by activating the removal indicator 9359. - As noted earlier, an
application 9316 can be pushed to or pulled from a testing device. Any suitable computing device can serve as a testing device, and the testing can be performed by any suitable entity (i.e., not just the application developer). To facilitate this process, theinterface 9300 can present adevices page 9358, which can list one ormore testing devices 9360 and an example of which is shown inFIG. 95 . Thedevices page 9358 can be accessed through adevices tab 9362. Although not so limited, thetesting devices 9360 can be listed according to a MAC address, and thedevices pages 9358 can also present a short description of the testing devices and when they were added as a testing device. A user can select anadd button 9364 to add a testing device to thedevices page 9358 to enable such a device to begin testing submittedapplications 9316. To push anapplication 9316 to or pull anapplication 9316 from atesting device 9360, a push/pull indicator 9365 can be activated. As an example, the push/pull indicator 9365 can be part of theapplication presentation page 9322, thefile page 9352, thecomments page 9354 and thestatistics page 9356. - As an option, a user can select one of the
testing devices 9360 to determine additional information about the selectedtesting device 9360 or to make edits or selections associated with the selectedtesting device 9360. When such atesting device 9360 is selected, adevice information page 9365 can be presented, an example of which is shown inFIG. 96 . As an example, the MAC address of thetesting device 9360 can be shown, along with the date thetesting device 9360 was added and any update dates associated with thedevice 9360. The type of firmware installed on thetesting device 9360 can be hi-lighted, and additional firmware versions that thetesting device 9360 can be flashed with can also be presented. As explained earlier in relation to theportable computing devices 9050, when thetesting device 9360 is flashed with one of these firmware selections, thetesting device 9360 can take on a look and feel of an entity that is associated with the selected firmware. - In another arrangement, any
applications 9316 that are installed on thetesting device 9360 for testing can be presented on thedevices page 9358, such as through selection of anapplications tab 9366. Moreover, atesting device 9360 can be removed as atesting device 9360 via selection of aremoval button 9368 and can be messaged, such as through activation of amessage button 9370. Thedevices page 9358 is certainly not limited to the features and arrangements described above, as other elements can be presented here in accordance with other suitable placements. - An application developer may be a single individual or entity or may consist of a group of individuals or entities. If the application developer is comprised of several individuals or entities, there may be a desire to shield sensitive information from some of these individuals or entities. For example, a first company may contract with a second company to develop applications to be uploaded to the
application developer portal 9205. As noted above, information related to the performance of anapplication 9316 may be presented on thehome page 9302, and, as an example, the first company may consider such information to be confidential and not to be released or disclosed to the second company. Theinterface 9300 can be configured to accommodate the privacy concerns of one or more individuals or entities in situations like this. - For example, the
home page 9302 can include a tab 9372, which when selected, can present an interface (not shown) that can be similar to theinterface 9300 but without displaying sensitive information. That is, a restricted interface can be presented to portions of an application developer team that enables these members to provideapplications 9316 in a fashion similar to that described above; however, these members will not be given access to certain types of information, like that related to the performance of anapplication 9316. Moreover, this restricted interface may also prevent these members from activating certain features that were described above in relation to theinterface 9300. For example, these restricted members may not be given the opportunity to cause the transmission of uploadedapplications 9316 to theapproval portal 9210, with such feature being reserved for a supervisory or managing entity. - As previously explained,
applications 9316 that are uploaded to theapplication developer portal 9205 can be forwarded to theapproval portal 9210 where they can be evaluated for possible publication in one or more application repositories. One example of aninterface 9400 that facilitates such an approval process is shown inFIG. 97 . Theinterface 9400 can include anapplications page 9402, which can be accessed via anapplications tab 9404. Theapplications page 9402, in one arrangement, can present one ormore applications 9316 that are pending, or waiting to be approved for publication in one or more application repositories. As such, when an application developer uploads anapplication 9316 in theapplication developer portal 9205 and releases theapplication 9316 for approval, theapplication 9316 can be presented here on theapplications page 9402. Once the submittedapplication 9316 has been received at theapproval portal 9210, theapproval portal 9210 can signal the application developer portal 9205 (seeFIG. 87 ), which can notify the application developer through any suitable manner, such as through displaying one or more messages on theapplication developer portal 9205. - As part of presenting
applications 9316 on theapplications page 9402, information related to the submittedapplications 9316 can be displayed. Examples include a brief description of theapplication 9316, the application developer, the category to which theapplication 9316 pertains, the version of theapplication 9316 and the date of the last update of theapplication 9316. Of course, not all this information is required to be presented as part of theapplications page 9402, and other suitable pieces of information about anapplication 9316 can be shown here. Moreover, although theapplications 9316 shown here are pendingapplications 9316 that are awaiting approval,applications 9316 that have been approved or published may be presented here, as well. In fact, theapplications 9316 presented on theapplications page 9402 can be tagged with status indicators and/or ratings indicators, similar to those shown inFIG. 90 . - From the
applications page 9402, an entity that is assigned to approve a submittedapplication 9316 can select one of theapplications 9316. Once selected, anapplication review page 9406 can be presented to the entity, an example of which is shown inFIG. 98 . Here, theapproval portal 9210, through theapplication review page 9406, can provide information associated with the submittedapplication 9316 that has been selected. - In one arrangement, the information to be presented can be similar to that described in relation to
FIG. 91 . In particular, theapplication review page 9406 can present theapplication name 9324, theapplication category 9326, theapplication version 9328, theapplication rating 9330, thelicensing model 9332, theprice 9334, thedescription 9336, the log ofedits 9338 or thepromotional text 9340. As an option, the information can also include a language selection (not shown here). In addition, a status/release stage 9426, an update date 9428 (if appropriate) and acreation date 9430 can be shown for the submittedapplication 9316. The status/release stage 9426 can also be presented, which can indicate the stage at which the submittedapplication 9316 is currently situated. Therating indicator 9318 can also be presented for the submittedapplication 9316, if desired. - As noted earlier, this information can be based on selections made by the application developer, so corresponding information presented here on the
application review page 9406 can be of similar type and content to that ofFIG. 91 . Of course, theapplication review page 9406 is not necessarily limited in this regard, as other types of information may also be included. Although in most arrangements, the entity responsible for approving theapplication 9316 may not alter this information (due to it normally being selected by the application developer), theinterface 9400 can be configured to accommodate such a feature. - The
interface 9400 can also present afiles page 9436, which can be accessed through atab 9438. An example of thefiles page 9436 is shown inFIG. 99 . As an example, the files that are associated with the selectedapplication 9316 can be presented here. In addition, a comments page (not shown) can be accessed by atab 9440, which can permit users to provide or view comments. For example, during testing, those responsible for approving the submittedapplication 9316 can provide their comments here, and comments from the application developer or some other suitable entity can be displayed here. Astatistics page 9442 can also be part of theinterface 9400, an example of which is shown inFIG. 100 , and can be accessed through atab 9444. Information presented on thestatistics page 9442 can be related to, for example, the performance of the selectedapplication 9316. In one arrangement, the elements that make up thestatistics page 9442 can be similar to those described in relation toFIG. 94 , although other parameters can be presented here. - The
interface 9400 of theapproval portal 9210 can be further configured to enable a user to approve or reject the submitted application for selective publication in one or more application repositories. For example, referring back toFIG. 98 ,application review page 9406 can include anapproval indicator 9446 and arejection indicator 9448. Theapproval indicator 9446 or therejection indicator 9448 can also be part of the files page 9436 (seeFIG. 99 ), the comments page and/or the statistics page 9442 (seeFIG. 100 ). One or more entities can review, test and/or analyze the submittedapplication 9316 to determine whether to approve the submitted application for selective publication in an application repository. The term “selective publication,” in relation to an application repository, is defined as the actual publication of an application in an application repository such that the application is ready for download from the repository or an indication that the application is in a condition that would permit it to be published in an application repository. - As part of this process, the entity responsible for determining the suitability of the submitted
application 9316 can ensure that theapplication 9316 meets or does not violate a set of predefined criteria. In one arrangement, the predefined criteria can be selected by an entity that is responsible for managing or overseeing an application repository in which the submittedapplication 9316 is to be published. Of course, other suitable entities can select the predefined criteria for approval. In addition, any suitable party can be tasked with approving or rejecting the submitted applications, examples of which will be presented later. - The predefined criteria against which the submitted
applications 9316 are to be reviewed can include any suitable restriction or parameter. For example, the criteria may specify that theapplication 9316 cannot contain content that is not suited for children. Moreover, the criteria may forbid the collection of certain forms of data by theapplication 9316, like personal information related to a user or to the user's family. The criteria may also require that theapplication 9316 meet certain security requirements, particularly if theapplication 9316 will facilitate financial transactions. These examples for the predefined criteria are not meant to be limiting, as virtually any suitable requirement can be part of the criteria. Further, the predefined criteria for a first application repository may or may not be the same for a second or more application repositories. As part of the approval process, the party responsible for approving the submittedapplication 9316 can also ensure that theapplication 9316 is in working order and that it is substantially free of programming of functional defects. - To facilitate the review of the submitted
applications 9316, theinterface 9400 can present atesting devices page 9450, an example of which is shown inFIG. 101 . Thetesting devices page 9450 can be accessed through atab 9452 and can present a listing of all testing devices 9454 (identified here through their MAC addresses) that can be used to test submittedapplications 9316. The information presented on thetesting devices page 9450 can be similar to that of thedevices page 9358 of the application developer portal 9205 (seeFIG. 95 ), although different types of information can be displayed if desired.Testing devices 9454 can be added through anaddition button 9456. Moreover, selection of one of thetesting devices 9454 can present information and features here that are similar to those presented in relation toFIG. 96 (including the presentation of installed applications and firmware versions on the testing devices 9454).Applications 9316 can be pushed to or pulled from thetesting devices 9454 through a push/pull button 9458, which can be positioned on, for example, the application review page 9406 (seeFIG. 98 ), the files page 9436 (seeFIG. 99 ), the comments page and/or the statistics page 9442 (seeFIG. 100 ). - Once the party responsible for reviewing the submitted
application 9316 determines that theapplication 9316 meets the requirements for publication in an application repository, that party can select theapproval indicator 9446, such as displayed on the application review page 9406 (seeFIG. 98 ). Theapproval portal 9210 can be configured to notify theapplication developer portal 9205 of the approval in response to the selection of theapproval indicator 9446. Theapplication developer portal 9205 can take any appropriate steps to ensure that the application developer has been made aware of the approval. For example, theapplication developer portal 9205 can generate messages to be displayed or broadcast at the portal 9205 or at some other suitable component. - In addition, the
approval portal 9205 can be configured to notify other computing devices of the approval of the submittedapplication 9316. For example, referring toFIG. 87 , theapproval portal 9210 can signal theadministrator portal 9215 about the approval of theapplication 9316. As part of this process, theapproval portal 9210 can also forward the approvedapplication 9316 to theadministrator portal 9215. In one arrangement, the other computing device, such as theadministrator portal 9215, can be configured to notify operators of one or more application repositories of the approval of the submittedapplication 9316. This process can also involve the receipt of the approvedapplication 9316 by the operators of the application repositories. This process will be explained in detail below. - If, however, the party responsible for reviewing the submitted
application 9316 determines that theapplication 9316 fails to meet the requirements for publication, that party can select the rejection indicator 9448 (see, for example,FIG. 98 ). Theapproval portal 9210 can be configured to notify the application developerportal 9205 of the rejection in response to the selection of therejection indicator 9448. Similar to the process described above in relation to the receipt of an approval notice, theapplication developer portal 9205 can take action to inform the application developer and/or any other suitable parties. As part of this feature, the notification may include rejection information that explains why the submittedapplication 9316 was not approved. This information can be prepared by the party that conducted the review of the application or by some other suitable party. As an example, the rejection information may specify that thesubmitted application 9316 contains content that is unsuitable for children or does not include certain mandatory security features. This rejection information may also provide guidance for the application developer to modify the rejectedapplication 9316 to ensure its approval during a subsequent review. At this point, the application developer can modify or upgrade the rejectedapplication 9316 and can submit it again in accordance with the discussion presented above. - Referring back to
FIG. 87 , as previously explained, theadministrator portal 9215 is a system that enables the distribution of approved applications to one or more entities or components. Once it receives an approved application, from theapproval portal 9210, theadministrator portal 9215 can, for example, push the application to one or more of the portable computing devices 9050 (seeFIG. 86 ) through the managed services platform 9010 (seeFIG. 86 ) or can cause the application to be published in an application repository or to become part of a bundle. - The
administrator portal 9215 may also perform one or more other processes once it receives the approved application, either in lieu of or in addition to the steps listed above. For example, theadministrator portal 9215 can forward the approved application to one or more of theclient portals 9220, which can serve as a notice that the application is available for publication in one or more application repositories. Theclient portals 9220 can, for example, make determinations as to whether to publish the approved application in an application repository. Moreover, theclient portal 9220 may facilitate the availability/publication of applications for thesub-client portals 9225, such as for application repositories associated with the entities that oversee or operate thesub-client portals 9225. For example, if theclient portal 9220 decides to publish the submitted application in an application repository, theclient portal 9220 can forward the application to one or more of thesub-client portals 9225. At this point, thesub-client portals 9225 can determine whether to publish the application on an application repository associated with the entity overseeing or operating thesub-client portal 9225. Examples of this process will now be presented. - The administrator portal 9215 (see
FIG. 87 ) can be, for example, a managed services computing device. Theportal 9215 can be made up of one or more components and can be operated by any suitable entity. A block diagram of an example of theadministrator portal 9215 is shown inFIG. 102 . In particular, theportal 9215 can include one or moreuser interface elements 9500 that can be configured to enable a user to make selections associated with the management of services for a first client and a second client. As an example, theuser interface elements 9500 can include a display 9502 (which can be a touch-screen display or a conventional display), a keyboard orkeypad 9504, a mouse or other pointingobject 9506 or a remote device 9508 (a component or a group of components that permit a user to enter data from a remote location). In fact, any device that enables a user to enter data into an electronic device can serve as auser interface element 9500. Theadministrator portal 9215 can also includememory 9510, anapproval portal interface 9512, one or moreclient portal interfaces 9514, atesting interface 9516 and aprocessor 9518. Theportal 9215 can also have a managedservices platform interface 9519. - The
memory 9510 can be any combination of temporary memory and persistent memory, and theapproval portal interface 9512 can be used to facilitate wired and/or wireless communications with theapproval portal 9210. Similarly, theclient portal interfaces 9514 and thetesting interface 9516 can be used to facilitate wired and/or wireless communications with the client portals 9220 (seeFIG. 87 ) and testing devices (not shown), respectively. Theprocessor 9518 can be coupled to each of the components described above and can be operable to execute operations that will be described herein. - Similar to the
application developer portal 9205 and theapproval portal 9210, theadministrator portal 9215 can present an interface that can enable a user to manage services for devices/portals associated with theadministrator portal 9215. As part of this configuration, theadministrator portal 9215 can be communicatively coupled with a managed services platform 9010, an example of which was previously described in relation toFIG. 86 . The managedservices platform interface 9519 can accommodate such communications, whether wireless and/or wired. As such, theadministrator portal 9215 can communicate with a plurality ofportable computing devices 9050 via theDMS server 9030. Moreover, theadministrator portal 9215 can be associated with an application repository 9130 via the application server 9040. As will be described below, theadministrator portal 9215 can manageportable computing devices 9050 and the application repository 9130 through this arrangement. - As noted above, the managed
services system 9200 can include one or more client portals 9220 (seeFIG. 87 ). In one arrangement, theclient portals 9220 can be communicatively coupled to theadministrator portal 9215. Theadministrator portal 9215 can have a relationship with theclient portals 9220, which, as will be fleshed out below, can range from relatively low cooperation in providing applications to a more extensive managerial function. - An example of a block diagram of a
client portal 9220 is shown inFIG. 103 . The structure of theclient portal 9220 can be similar to that of theadministrator portal 9215, although theclient portal 9220 is not so limited. In one arrangement, theclient portal 9220 can include one or moreuser interface elements 9520 that can permit a user to make selections associated with the management of services for, for example, a first sub-client and a second sub-client. As an example, theuser interface elements 9520 can include a display 9522 (touch-screen or conventional), a keyboard/keypad 9524, apointing object 9526 or aremote device 9528. As with theadministrator portal 9215, any device that enables a user to enter data into an electronic device can serve as auser interface element 9520. Theclient portal 9220 can also include memory 9530 (persistent and/or temporary), anadministrator portal interface 9532, one or moresub-client portal interfaces 9534, atesting interface 9536 and aprocessor 9538. Theclient portal 9220 can also have a managedservices platform interface 9540. - The
administrator portal interface 9532 allows for wireless and/or wired communications with theadministrator portal 9215, while the sub-client portal interface allows for the same with the sub-client portals 9225 (seeFIG. 87 ). Thetesting interface 9536 permits wired and/or wireless communications with one or more testing devices (not shown). Also like theadministrator portal 9215, theclient portal 9220 can be communicatively coupled (wired and/or wireless) with a managed services platform 9010 through the managedservices platform interface 9540. This arrangement allows theclient portal 9220 to communicate with a plurality ofportable computing devices 9050 via theDMS server 9030 and to be associated with an application repository 9130 via the AS server 9040. As such, theclient portal 9220 can manageportable computing devices 9050 and the application repository 9130 through this arrangement. - As noted above, the managed
services system 9200 can include one or more sub-client portals 9225 (seeFIG. 87 ). In one arrangement, thesub-client portals 9225 can be communicatively coupled to aclient portal 9220. Theclient portal 9220 can have a relationship with thesub-client portals 9225 in which theclient portals 9220 can provide services to thesub-client portals 9225, examples of which will be presented below. This structure can also allow theadministrator portal 9215 to have a relationship with asub-client portal 9225, if desired. Examples to which the level of services theadministrator portal 9215 can provide to asub-client portal 9225 will also be presented later. - The
sub-client portals 9225 can have a structure that is similar to that of theclient portals 9220 presented inFIG. 103 . The components can be essentially the same, which can permit thesub-client portals 9225 to communicate with a managed services platform 9010, like theclient portal 9220 and theadministrator portal 9215. Thesub-client portal 9225, however, can include a client portal interface (not shown) to communicate with theclient portal 9220. In addition, this model is scalable, meaning that additional layers can be added to the system 9200 (seeFIG. 87 ). That is, thesystem 9200 can include, for example, sub-sub-clients portals (not shown), which can be communicatively coupled with asub-client portal 9225. In this case, thesub-client portal 9225 can have a sub-sub-client portal interface (not shown) to permit wireless and/or wired communications with a sub-sub-client. In one arrangement, each successive portal in this scalable arrangement, like the sub-sub-client portal, can also communicate withportable computing devices 9050 through theDMS server 9030 and can be associated with an application repository 9130 through the AS server 9040. - Referring back to
FIGS. 86 and 87 , a brief overview of some of the services that theadministrator portal 9215 may offer will now be presented. There are two main parts of this discussion. The first set of services offered by theadministrator portal 9215 focuses on devices that are to be directly managed by the administrator portal. For example, theadministrator portal 9215 may be operated by a company that has assignedportable computing devices 9050 to its employees, and the company wishes to manage thesedevices 9050. In one particular but non-limiting example, the company may wish to send messages to thedevices 9050 or to package applications, firmware and settings for thesedevices 9050. - The second set of services offered by the
administrator portal 9215 is directed to client portals that have established relationships with theadministrator portal 9215, such as theclient portals 9220, thesub-client portals 9225, the sub-sub-client portals or any subsequent client portals. For example, theadministrator portal 9215 can be operated by a first company, and aclient portal 9220 may be operated by a second company. The second company may wish to have the first company manage at least some services for theclient portal 9220. In one particular example, the second company may request the first company, through theadministrator portal 9215, to forward to it applications that it receives from theapproval portal 9210 that have been approved for publication in an application repository. The second company may also ask the first company to manageportable computing devices 9050 on behalf of the second company, which can be done through theadministrator portal 9215. Additional discussion/examples concerning these services will be described below. The material that immediately follows, however, is directed to the first set of services summarized above. - To facilitate its operation, the
administrator portal 9215 can provide aninterface 9500. One part of thisinterface 9500 is shown inFIG. 104 . In particular, an example of an applications page 9550 is illustrated, which can be accessed through a tab 9552. The applications page 9550 can present one ormore applications 9316 and information that is associated with theapplications 9316. Examples of such information can include an application name, a short description, the application developer, the application category, the most recent version and the last date/time that theapplication 9316 was updated. Of course, other types of information can be presented on the applications page 9550. - In one arrangement, the applications page 9550 can present
applications 9316 in one or more different states or categories. For example, atab 9554 can be selected to showapplications 9316 that have been approved by theapproval portal 9210 and that have been received by theadministrator portal 9215. Theseapplications 9316 may be categorized asavailable applications 9316. Anothertab 9556 can presentapplications 9316 that are currently under review at the approval portal 9210 (have not yet met an approval threshold), which may be categorized as pendingapplications 9316. In yet another example, atab 9558 can presentapplications 9316 that have been published in an application repository. Theseapplications 9316 can be categorized as publishedapplications 9316. - In one arrangement, the
administrator portal 9215 can be associated with a managing entity, and the managing entity can be assigned an application repository 9130 (seeFIG. 87 ). For example, a managing entity can operate or control theadministrator portal 9215 or direct another entity to operate or control the portal 9215. A managing entity can be any entity, organization, corporation or individual that is responsible for this operation or control or its direction. In addition, assigning an application repository 9130 to the managing entity can include the production of an application repository that can be configured to present applications on behalf of the managing entity. In this case, the managing entity can determine which applications are to be part of the application repository 9130 or can direct another individual or organization to make such determinations under the guidance of the managing entity or not. In one arrangement, the application repository 9130 can be designed to show that it is associated with the managing entity, such as by appropriate branding of the repository 9130. - In view of the above arrangement, the managing entity may wish to manage (or have managed) the application repository 9130 and its contents. As such, when an
application 9316 has been approved by and received from theapproval portal 9210, the managing entity, through theadministrator portal 9215, can determine whether to publish the approved application in the application repository 9130 that is assigned to the managing entity. - To do so, one of the approved
applications 9316 under the tab 9554 (available applications), can be selected. When selected, anapplication selection page 9560 can be presented, an example of which is shown inFIG. 105 . Here, information about the approvedapplication 9316 can be presented, under thetab 9562. In one arrangement, this information can be similar to that described in relation toFIG. 91 . In particular, theapplication selection page 9560 can present theapplication name 9324, theapplication category 9326, theapplication version 9328, theapplication rating 9330, thelicensing model 9332, the transactional fee orprice 9334, thedescription 9336, the log ofedits 9338 or thepromotional text 9340. The information can also optionally include a language selection (not shown here). In addition, a status/release stage 9426, an update date 9428 (if appropriate) and acreation date 9430 can be shown for the submittedapplication 9316. The rating indicator 9318 (such as a cumulative user rating) can also be presented for the submittedapplication 9316, if desired. Thelicensing model 9332 can be selectable from one of the following arrangements: a free model; a subscription-based model; a floating model; a volume model; or a paid model. Thelicensing model 9332 can be selected by the application developer or some other suitable entity, including the entity responsible for theadministrator portal 9215. - As noted earlier, this information can be based on selections made by the application developer at the application developer portal 9205 (see
FIG. 87 ), so corresponding information presented here on theapplication selection page 9560 can be of similar type and content to that ofFIG. 91 . Of course, theapplication selection page 9560 is not necessarily limited in this regard, as other types of information may be so included. Although in some arrangements, the entity responsible for operation of theadministrator portal 9215 may not alter this information (due to it normally being selected by the application developer), theinterface 9500 can be configured to accommodate such a feature. - It should be noted that pending applications 9316 (tab 9556) and published applications 9316 (tab 9558) can be selected and their associated information displayed in this manner. Moreover, selection of a
tab 9564 can permit the viewing of or entering of comments related to pending, available or publishedapplications 9316, while selection of anothertab 9566 can enable the viewing of or entry of statistics forsuch applications 9316. - In one arrangement, it may be desirable to test or otherwise evaluate
applications 9316, particularlyapplications 9316 that are available. To do so, anapplication 9316 can be, for example, pushed to or pulled from one or more testing devices (not shown). These testing devices may be associated with an entity that is responsible for operating or managing theadministrator portal 9215, such as the managing entity. - As an example, if an
available application 9316 has been chosen and the user wishes to push theapplication 9316 to a testing device, the user can do so by selecting a push/pull feature 9568. Such a process can enable an entity to evaluate on a testing device the suitability of anapplication 9316 for publication in an application repository 9130. The criteria for determining this suitability can be similar to that described earlier in relation to theapproval portal 9210, although different parameters or values may be considered during this evaluation. Such a review, also, does not necessarily have to be as extensive as that carried out at theapproval portal 9210. - If it is determined that the
available application 9316 is suitable for publication in the application repository 9130, then the entity operating theadministrator portal 9215 can take steps to cause the publication of theapplication 9316 in the repository 9130. For example, the entity can activate apublication feature 9570 to cause theavailable application 9316 to be published in the relevant application repository 9130. In one arrangement, this application repository 9130 can be assigned to or associated with a managing entity that is responsible for operating theadministrator portal 9215. Once theapplication 9316 is published, anyone with access to the application repository 9130 can install theapplication 9316 on one or moreportable computing devices 9050. This installation can also occur on an automatic basis, under the direction of the managing entity. Moreover, theapplication 9316 can be published in other application repositories 9130, including repositories 9130 that are assigned to or are associated with entities other than the managing entity. Also following publication, theapplication 9316 can be shown as a publishedapplication 9316 on the applications page 9550 (seeFIG. 104 ). - In summary, a managing entity can operate the
administrator portal 9215 and can have an application repository 9130 assigned to the managing entity. Theadministrator portal 9215 can receiveapplications 9316 that have been submitted at theapplication developer portal 9205 and approved at theapproval portal 9210. To help populate the application repository 9130, the managing entity, through theadministrator portal 9215, can cause the publication of theapplications 9316 in the repository 9130. In one arrangement, the managing entity can be responsible for theadministrator portal 9215 and can oversee the operation of theapplication developer portal 9205 and theapproval portal 9210. It is understood, however, that the arrangements described herein are not so limited. Other suitable entities (including a single party or multiple parties) can operate or be responsible for theapplication developer portal 9205, theapproval portal 9210, theadministrator portal 9215 or any combination of the three. - The
interface 9500 of theadministrator portal 9215 also can enable the management of devices, such asportable computing devices 9050. For example, referring toFIG. 106 , an example of adevices page 9572 is shown, which can be accessed by atab 9573. Here, individualportable computing devices 9050 that are associated with theadministrator portal 9215 can be displayed and managed. For example, the managing entity may be responsible for operating theadministrator portal 9215 and may have assignedportable computing devices 9050 to multiple individuals. In one embodiment, once aportable computing device 9050 registers with the managed services platform 9010 (seeFIG. 86 ), thedevice 9050 can be listed on thedevices page 9572. As such, information about thesedevices 9050 can be presented here. Information about testing devices for evaluatingapplications 9316 may also be shown here. At least in this context, reference to aportable computing device 9050 may also refer to a testing device such that all the features and description here may apply to both. - In one arrangement, information associated with the
portable computing devices 9050 and displayed on thedevices page 9572 can include MAC addresses, creation dates (when thedevice 9050 was registered with theDMS server 9030 or theadministrator portal 9215, for example), a description of thedevices 9050 and an application repository code. As an example, the description of aportable computing device 9050 can include a description of the performance function associated with thedevice 9050. As another example, the application repository code can provide an indication as to which application repository theportable computing device 9050 is associated. That is, when theportable computing device 9050 registers with theDMS server 9030 and the AS server 9040, a code that identifies the application repository 9130 that is supported by the AS server 9040 can be registered with thedevice 9050. This application repository code can then be presented here at thedevices page 9572 or on some other suitable component. - As noted earlier, the
administrator portal 9215 may be operated or managed by a managing entity. This managing entity may also assign multipleportable computing devices 9050 to numerous individuals, and these individuals may be associated with the managing entity in some way. For example, the individuals may be employees or customers of the managing entity. As such, there may be manyportable computing devices 9050 listed on thedevices page 9572. To simplify the task of locating or managing a particularportable computing device 9050, thedevices page 9572 can be equipped with asearching module 9574, which can be configured to enable theportable computing devices 9050 to be searched individually. Those skilled in the art will appreciate that there are numerous suitable parameters that can be used to search forindividual devices 9050, such as MAC addresses or user-friendly monikers. - Once an individual
portable computing device 9050 is identified, a user can select the identified device(s) 9050. In response, a device detailspage 9576 can be presented, an example of which is shown inFIG. 107 . Here, additional details about the selectedportable computing device 9050 can be shown by clicking atab 9578. For example,operational information 9580 for the selecteddevice 9050 can be presented, examples of which can include the MAC address, the firmware currently installed on thedevice 9050, the last date time that thedevice 9050 was updated (this can refer to any suitable type of update) and the date thedevice 9050 was added to thedevices page 9572. - A
general name 9582 anddescription 9584 of theportable computing device 9050 may also be shown. Thedescription 9584 can provide details that illustrate the purpose of theportable computing device 9050 or the individual to whom thedevice 9050 is assigned. In one arrangement, alisting 9586 of available firmware that can be delivered to thedevice 9050 can also be presented here. As explained earlier, theportable computing devices 9050 can be flashed with various types of firmware to set or alter the look and feel of thedevices 9050. Thedevice 9050 can be flashed with a particular firmware simply be selecting one of the firmware version in thelisting 9586. As such, aportable computing device 9050 can have content, such as firmware or even settings, delivered to thedevice 9050 on an individual basis. - Selection of a
tab 9588 can cause the presentation of adevice application page 9590, an example of which is shown inFIG. 108 . Here, theoperational information 9580 of the selectedportable computing device 9050 can be shown, if desired. The primary purpose of theapplication page 9590, however, is to present theapplications 9316 that are installed on the selectedportable computing device 9050. Theapplications 9316 that are installed on thedevice 9050 can be listed in aninstallation list 9592. In addition,applications 9316 that are available to be installed on the selectedportable computing device 9050 can be presented in anavailable list 9594. As an example, theapplications 9316 in theavailable list 9594 can beapplications 9316 that have been published in one or more application repositories 9130 or have been approved for publication in at least one application repository 9130. Such application repositories 9130 may or may not be assigned to the managing entity responsible for operating theadministrator portal 9215. - The
applications 9316 in either the installedlist 9592 or theavailable list 9594 may be individual applications or may be grouped together as part of a bundle. Moreover, certain information about theapplications 9316 in eitherlist rating indicator 9318. In addition, selection of one of theapplications 9316 in eitherlist application 9316, in accordance with previous descriptions. - In one arrangement, the
applications 9316 that are in theavailable list 9594 can be installed on aportable computing device 9050. In this section, because thedevices page 9572 is generally designed for interaction withportable computing devices 9050 on an individual basis, theavailable applications 9316 can be installed on a singleportable computing device 9050. For example, a user can simply select and drag anapplication 9316 from theavailable list 9594 to theinstallation list 9592. Any suitable number ofapplications 9316 can be installed on a selectedportable computing device 9050 in accordance with this manner. In addition, one or more predefined bundles or groups ofapplications 9316 can be pushed to a selectedportable computing device 9316 by simply selecting such a bundle or group and dragging to theinstallation list 9592. - As an additional feature, any number of
application 9316 or groups or bundles ofapplications 9316 can be removed from a selected portable computing device 9050 (an individual basis). This process can be accomplished by selecting and dragging the application(s) 9316 from theinstallation list 9592 to theavailable list 9594. Of course, other suitable procedures can be followed to installapplications 9316 on thedevice 9050 or to removeapplications 9316 from thedevice 9050. For example, a message can be sent to thedevice 9050 requesting that the user of thedevice 9050 add/remove therelevant application 9316. As another example, a message can be sent to another entity requesting that entity to execute the installation/removal process. - In one arrangement, the device details
page 9576, thedevice application page 9590 or both can offer amessaging feature 9596 to enable messages to be sent toportable computing devices 9050, such as on an individual basis. For example, amessage feature 9596 can be activated on either thedetails page 9576 or theapplication page 9590, which can enable one to generate a message to be sent to the selectedportable computing device 9050. The message can be simply text-based or can incorporate any combination of icons, animations, audio, video, haptics, etc. Moreover, the messages can be of an ad hoc nature or can be selected from a list of predefined messages. The messages can also be generated and sent to thedevice 9050 on an automatic basis based on an event or can be done so if an entity believes that the generation and transmission of a message is warranted. - The
interface 9500 can also provide information related to one or more users, as shown inFIG. 109 . For example, ausers page 9596 can present one ormore user identifications 9598 and can be accessed by selecting atab 9599. In one arrangement, theuser identifications 9598 can be associated with theportable computing devices 9050. As a more specific example, theadministrator portal 9215 and one or moreportable computing devices 9050 can be associated with the managing entity. Theuser identifications 9598 can be associated with thesedevices 9050; thus, theuser identifications 9598 can be associated with the managing entity. For example, theuser identifications 9598 may represent employees, contractors, vendors or other personnel associated with the managing entity. As such, theportable computing devices 9050 that are associated with the managing entity can includedevices 9050 that are assigned to an application repository 9130 of the managing entity,devices 9050 that are assigned to application developers who develop applications for the application repository 9130 of the managing entity anddevices 9050 that are assigned to testing personnel. Of course, theusers page 9598 is not so limited, asuser identifications 9598 associated with other personnel or entities may be presented here. As will be explained later, theadministrator portal 9215 is further operable to enable access control to at least some of theportable computing devices 9050 that are associated with theuser identifications 9598. - In one arrangement, the
user identification 9598 on theusers page 9596 can displaygeneral information 9600 about the user. Examples include contact information, MAC address of thedevice 9050 assigned to the user and/or the date theuser identification 9598 was added to theuser page 9596. Additional information about the user can be accessed by selecting theuser identification 9598. For example, aninformation page 9602 can be presented, an example of which is shown inFIG. 110 . Theinformation page 9602 can be accessed by selecting atab 9604. - Virtually any type of information associated with the
user identification 9598 can be presented on theinformation page 9602. Non-limiting examples include the name or title of the user, the user's address, the user's contact information, a Web site associated with the user and a description of any relevant characteristic of the user, such as the job function of the user. Account information relating to the user, such as whether the user's account is enabled, expired or locked can also be presented. The status of any credentials assigned to the user can also be shown here. Of course, one skilled in the art will appreciate that other forms of information can be part of this presentation, and the preceding examples are certainly not meant to be limiting. - In addition, a
roles page 9606 can be accessed by selecting atab 9608, as shown inFIG. 111 . Here, one ormore roles 9610 that are associated with auser identification 9598 can be presented. Arole 9610 can be, for example, a job function, a security clearance or some other feature associated with a user. In one particular example, arole 9610 can signify that a particular user, identified by acertain user identification 9598, is assigned a job function of maintaining the operation of theadministrator portal 9215. Adescription 9612 can provide a user-friendly explanation of thecorresponding role 9610. - Referring back to
FIG. 109 , as noted earlier, theusers page 9596 can present, among other things, one ormore user identifications 9598. In the example presented above, theuser identifications 9598 presented on theusers page 9596 may be associated with a managing entity that oversees the operation of theadministrator portal 9215. To be clear, the users associated with theuser identifications 9598 may serve various roles under the managing entity. As such, these users can be grouped in one of several possible categories to make the management of theuser identifications 9598 easier. For example, the categories can be created based on certain job functions performed by the users. Categories may also be created for vendors or contractors, including the application developers and users responsible for reviewing and approving submitted applications. To access such categories, one of several tabs 9614 can be selected. Moreover, a search function (not shown) can be incorporated into theusers page 9596 or some other suitable interface to enable searching of theuser identifications 9598.User identifications 9598 can be added through an addition feature 9616 or deleted by a deletion feature 9618. Some of the information presented herein may be the same for different users, particularly if such users share a singleportable computing device 9050. - As previously explained, firmware or other software packages can be made available to one or more
portable computing devices 9050, such as through the managed services platform 9010. Moreover, such a package can be selected at theadministrator portal 9215 for delivery to aportable computing device 9050 by making selections at the device details page 9576 (seeFIG. 107 ). To facilitate this feature, theinterface 9500 can include afirmware page 9620, which can be accessed through a tab 9622. An example of thefirmware page 9620 is shown inFIG. 112 . As an example, thefirmware page 9620 can present one or moredifferent firmware packages 9624. Afirmware package 9624 is not necessarily limited to firmware, as other forms of software, operational settings and parameters may be part of afirmware package 9624. - As also explained earlier, the receipt of a
firmware package 9624 at aportable computing device 9050 can cause thedevice 9050 to incorporate a certain look and feel associated with thatfirmware package 9624. For example, the managing entity may wish to assignsuch devices 9050 to its employees, and the managing entity, through theadministrator portal 9215, can direct aparticular firmware package 9624 to thesedevices 9050. Thisfirmware package 9624 can be configured to cause thedevices 9050 that receive thepackage 9624 to, for example, display user interface elements that are associated with the managing entity. The managing entity can develop thefirmware package 9624 on its own or can direct another party to do so on the managing entity's behalf. It is understood, however, that thefirmware package 9624 associated with the managing entity can be delivered toportable computing devices 9050 that are not necessarily associated with or assigned by the managing entity. Moreover, thefirmware packages 9624 presented on thefirmware page 9620 are not necessarily limited to the managing entity that operates theadministrator portal 9215, as thefirmware page 9620 can receivepackages 9624 from any suitable party. - As part of the presentation of the
firmware packages 9624, thefirmware page 9620 can provide information aboutsuch packages 9624. Non-limiting examples include the entity to which afirmware package 9624 is associated, the date thepackage 9624 was created and the date that thepackage 9624 was last updated. Moreover, an addition feature 9626 can be provided as part of thefirmware page 9620, which can allowfirmware packages 9624 to be uploaded to theadministrator portal 9215. The firmware packages 9624 can also be updated by activating anupdate feature 9628. When afirmware package 9624 is updated, theadministrator portal 9215 can generate a notification. This notification can inform a user or another entity that such an update is available for aparticular firmware package 9624. Steps can then be taken to ensure that the relevantportable computing devices 9050 or other components receive the update. - In one arrangement, the
firmware page 9620 can provide asearch feature 9630, which can permit a user to search for particular firmware packages 9624. In another arrangement, the system 9200 (seeFIG. 87 ) can be configured to enablefirmware packages 9624 to be submitted, approved and delivered toportable computing devices 9050, similar to the process described with respect to the publication ofapplications 9316. Additional details concerning this feature will be presented below. - The concept of providing bundles to one or more
portable computing devices 9050 was previously described. For example, a bundle may contain content that at least includes one or more configuration settings (including firmware packages) or messages, an application set that contains one or more predefined applications or both. To accommodate this feature, theinterface 9500 can provide abundles page 9630, which can be accessed by atab 9632. An example of abundles page 9630 is shown inFIG. 113 . In one arrangement, thebundles page 9630 can present one ormore bundles 9634, and thebundles 9634 may contain similar or dissimilar content in comparison to one another. - In one particular example, the bundles may be designed for
portable computing devices 9050 that are associated with an entity that is managing theadministrator portal 9215 or directing another party to manage the portal 9215. That is, thebundles 9634 may be designed for and assigned toportable computing devices 9050 that are associated with the managing entity. As noted earlier, there may be individuals, like employees, contractors, vendors, etc., who are associated with the managing entity and who have been assigned aportable computing device 9050. These individuals may have one or more performance functions based on their relationship with the managing entity. For example, the managing entity may have assignedportable computing devices 9050 to members of a sales team of the managing entity and to executives of the managing entity. Examples of a sales team bundle or sales bundle 9636 and an executive team bundle orexecutive bundle 9638 are shown inFIG. 113 . - In view of the performance functions of the individuals associated with the managing entity, the
bundles 9634 can be assigned to one or more performance functions, and the bundles can contain information that is based on their assigned performance functions. In addition, the information contained in the bundles can include one or more configuration settings, one or more applications or both, and the configuration settings and the applications can be arranged based on the assigned performance functions. For example, consider the sales team associated with the managing entity. The managing entity can develop or instruct another party to developbundles 9634 that are geared towards the performance function of the members of the sales team, i.e., sales. As an example, the settings and applications in thebundle 9634 can be selected based on their ability to assist a member of the sales team in his/her duties. This process can lead to the creation of thesales bundle 9636. Theexecutive bundle 9638 can be created in a similar manner. - The
bundles 9634 can be created by any suitable party. As an example, the managing entity can generate thebundles 9634 for theportable computing devices 9050 that are associated with the managing entity. Alternatively, the managing entity can direct another party to prepare thebundles 9634, with the managing entity providing at least some input, for theportable computing devices 9050. Any suitable criteria can be used to determine the type of content that is to be part of abundle 9634, such as employee or management feedback and input from consultants or the manufacturer(s) of theportable computing devices 9050. In one arrangement, the applications that are part of thebundle 9634 can be selected from the application repository 9130 associated with the managing entity or an application repository 9130 associated with any other suitable party. - Because the
bundles 9634 can be created based on different performance functions, it is anticipated that the content may be different forvarious bundles 9634. Somebundles 9634, however, may contain identical or at least similar content, even if they are designed for different performance functions. Moreover, one ormore bundles 9634 or even eachbundle 9634 may contain one or more default items or settings that are to be deployed to each associatedportable computing device 9050. Default items or settings may also apply across particular team bundles 9634. For example, the managing entity may wish that a particular application be installed on eachportable computing device 9050 associated with the managing entity or on everyportable computing device 9050 that is assigned to members of a sales team that is associated with the managing entity. In fact, bundles 9634 that only contain default items or settings can be created for delivery to all or a portion of relevantportable computing devices 9050. - Once a
bundle 9634 is created, thebundle 9634 can be added to the bundles pages 960, such as by selection of anaddition feature 9640. Thesebundles 9634 can be selectively distributed to the relevantportable computing devices 9050 through the managed services platform 9010 (seeFIG. 86 and related discussion). In another arrangement, asearch feature 9642 can be incorporated into thebundles page 9630 to search for aparticular bundle 9634. - Similar to processes described above, additional information about a
particular bundle 9634 can be gleaned by selecting thebundle 9634 from thebundles page 9630. In addition, the content of abundle 9634 can be edited. For example, the configuration settings or the applications in abundle 9634 may be modified. To facilitate these features, abundle application page 9642 can be presented as part of theinterface 9500. Thispage 9642 can be accessed by selecting atab 9644, and an example of thepage 9642 is shown inFIG. 114 . - In one embodiment,
general information 9644 that is associated with the selectedbundle 9634 can be presented on thebundle application page 9642. Thegeneral information 9644 can be metadata about thebundle 9634. Examples of thegeneral information 9644 can include the name of thebundle 9634, the application repository 9130 to which thebundle 9634 is assigned (or to be assigned), a role name (which can give an indication as to the performance function related to the bundle 9634), an update date (last time thebundle 9634 was updated) and/or the creation date of thebundle 9634. - Additional metadata about the
bundle 9634 that can be part of thebundle application page 9642 can include afirmware package 9643 that is assigned to thebundle 9634, whetherlocation services 9646 are enabled for thebundle 9634 and whether anapplication repository permission 9648 is allowed.Location services 9646 can include services or features that are designed to determine the whereabouts of aportable computing device 9050 and, hence, the user of thedevice 9050. Thus, when enabled, theadministrator portal 9215 or some other component or entity can monitor the whereabouts of the relevantportable computing device 9050. Further, theapplication repository permission 9648 is a setting that enables the relevantportable computing device 9050 to download and install applications from one or more application repositories 9130. When allowed, thedevice 9050 can be granted permission to execute such downloads/installations. This permission can be extended to multiple application repositories 9130, each of which may or may not be associated with theadministrator portal 9215 or, for example, the managing entity described above. Theapplication repository permission 9648 can also be configured to identify the application repositories 9130 to which the permission extends. - As another example, the
bundle application page 9642 can show theapplications 9316 that are part of the selectedbundle 9634. Theseapplications 9316 can be listed in accordance with any suitable protocol, anddefault applications 9316 can be tagged with an indicator (not shown) designating them as such. Additional information about theapplications 9316 can be accessed by selecting anapplication 9316, in accordance with previous descriptions (seeFIGS. 97-100 ). As part of this listing, adesktop indicator 9650 and aremovable indicator 9652 can be provided. As an example, if thedesktop indication 9650 is selected or activated, then a shortcut for theapplication 9316 may be installed on a display of the relevantportable computing device 9050. As another example, if theremovable indicator 9652 is selected or activated, then the relevantportable computing device 9050 may have permission to remove, uninstall or otherwise deactivate theapplication 9316. - As noted above, certain configuration settings may be part of the content of a
bundle 9634. In one embodiment, thebundle 9634 can include VPN settings and Wi-Fi settings, although thebundle 9634 is certainly not limited to these particular examples. Referring toFIG. 115 , an example of aVPN page 9654 is shown, which can be accessed by selecting thetab 9656. As is known in the art, a VPN can allow for secure communications for a mobile device. As such, a party that assigns or causes to be assignedportable computing devices 9050 to one or more individuals can ensure secure communications between thedevices 9050 and other components by incorporating VPN information/settings into abundle 9634 to be delivered to one ormore devices 9050. - Any suitable type of information can be part of the
VPN page 9654. Several examples of such information can include thegeneral information 9644 associated with thebundle 9634, a VPN perfect forward security (PFS) indication 9656 (if selected, then VPN PFS may be required for the relevant portable computing device 9050), agroup name 9658, agateway address 9660, a group password 9662 and anIKE Hash 9664. Other suitable examples of information that can be presented on theVPN page 9654 can include adomain name 9666, a vendor type 9668 (related to the VPN), anIKE cipher 9670, an IPsec cipher andhash 9672 and anIKE DH group 9674. It is understood that theVPN page 9654 is certainly not limited to these particular examples, as other suitable parameters or settings can be presented here. - Referring to
FIG. 116 , an example of a Wi-Fi page 9676 is shown, which can be accessed by thetab 9678. Similar to theVPN page 9654, the Wi-Fi page 9676 can present thegeneral information 9644 about thebundle 9634. As is known in the art, a Wi-Fi connection can be useful for establishing communications between two or more wireless components, like theportable computing device 9050 and some other wireless unit. As such, information useful for establishing a Wi-Fi connection for the relevantportable computing device 9050 can be part of thebundle 9634. Examples of such information can include a Wi-Fi security protocol 9680, anSSID 9682, adefault key ID 9684 and one ormore security keys 9686, such as WEP keys. The Wi-Fi page 9676, however, is not limited to these particular examples, as other suitable parameters or settings can be presented here. Moreover, additional pages can be part of theinterface 9500 if additional wireless or wired communication protocols are to be used with theportable computing devices 9050. For example, dedicated pages can be created for short range wireless standards/protocols, like Bluetooth or IEEE 802.15.4, or for wide area networks, both wired and wireless. Additional certificates (not shown) that may be applicable to theVPN page 9654, the Wi-Fi page 9676 or both can be part of the information described above. - In one arrangement, the content of a
bundle 9634 can be edited/modified. To do so, anediting feature 9688 can be activated. Theediting feature 9688 can be incorporated into any one of thebundle application page 9642, theVPN page 9654 or the Wi-Fi page 9676 (seeFIGS. 114-116 ). When activated, a general editing page 9690 can be presented, an example of which is shown inFIG. 117 . The general editing page 9690 can be accessed by selecting atab 9692. Here, one or more configuration settings of therelevant bundle 9634 can be modified. - For example, a
VPN settings indicator 9694 can be selected to require that theportable computing device 9050 that receives thebundle 9634 uses a VPN when conducting communications. Other exemplary settings that can be altered for thebundle 9634 include thelocation services 9646, which can be enabled or disabled, and whether theapplication repository permission 9648 is allowed or disallowed. In another arrangement, afirmware package 9643 can be selected (or changed) to serve as adefault firmware package 9643 for thebundle 9634. It is understood that the general editing page 9690 is not limited to the examples listed above, as other configurations settings can be presented here for editing. - Referring to
FIG. 118 , an example of aVPN editing page 9696, which can be accessed by selecting atab 9698, is shown. Here, any one of theVPN PFS indication 9656, thegroup name 9658, thegateway address 9660, the group password 9662, theIKE Hash 9664, thedomain name 9666, thevendor type 9668, theIKE cipher 9670, the IPsec cipher andhash 9672 or theIKE DH group 9674 can be edited in any suitable fashion. Referring toFIG. 119 , an example of a Wi-Fi editing page 9700 is shown. The Wi-Fi editing page 9700 can be selected through thetab 9702. Here, any one of the Wi-Fi security protocol 9680, theSSID 9682, thedefault key ID 9684 or thesecurity keys 9686 can be modified in any suitable fashion. Acertificates editing page 9704, an example of which is shown inFIG. 120 , can also be presented. Thecertificates editing page 9704, which can be accessed through thetab 9706, can enable the uploading or removal of any suitable type ofcertificate 9708 for thebundle 9634. - Referring to
FIG. 121 , an example of anapplication editing page 9710 is illustrated, which can be accessed by selecting thetab 9712. Theapplication editing page 9710 can permitapplications 9316 to be added to or removed from thebundle 9634. Theseapplications 9316 can be designated for aparticular bundle 9634, and at least some of them may be considereddefault applications 9316, either for an entire collection ofportable computing devices 9050 or for thosedevices 9050 that are part of a group (e.g., a sales team or a team of executives). - In one arrangement, the
application editing page 9710 can include abundle application listing 9714 and anavailable application listing 9716. Thebundle application listing 9714 can show theapplications 9316 that are currently included as content for thebundle 9634, while theavailable application listing 9716 can list thoseapplications 9316 that are not currently part of the content for thebundle 9634 but that may be available for being included in the content. Additional information about any of theseapplications 9316 can be accessed, such as by selecting anapplication 9316, as described earlier. Here, a user can addapplications 9316 to thebundle 9634 by simply clicking anddragging applications 9316 from theavailable application listing 9716 to thebundle application listing 9714.Applications 9316 can also be removed from thebundle 9634 by clicking anddragging applications 9316 from thebundle application listing 9714 to theavailable application listing 9716. In any one of the editing pages described above, any edits made can be saved by selecting asave button 9718 or canceled by choosing a cancelbutton 9720. - Once a
bundle 9634 is generated, thebundle 9634 can be stored at any suitable location. For example, abundle 9634 can be stored in an application repository 9130 for eventual delivery to one or moreportable computing devices 9050. Thus, the content of abundle 9634 may be stored on aportable computing device 9050, in the application repository 9130 (i.e., the AS server 9040) or some other component. To ensure that any edits made at the editing pages (FIGS. 117-121 ) are properly disseminated, theadministrator portal 9215 can signal such modifications to the managed services platform 9010 and to theportable computing devices 9050 through the heart beating process (seeFIGS. 86 and 87 ). Consequently, any edits made at the editing pages can be dynamically applied to thebundles 9634 that are part of the application repository 9130 or that have already been delivered to aportable computing device 9050. As an option, these edits can be propagated according to a predefined schedule to minimize disruptions, as opposed to near real-time delivery. - In view of this description, it is possible to provide content or make modifications to a group of
portable computing devices 9050, i.e., a group basis. For example, an operator of theadministrator portal 9215, such as the managing entity, could push applications, firmware updates or operational settings to an identified group ofportable computing devices 9050. Thus, thedevices 9050 assigned to, for example, a specific sales team could be updated with limited interruption to the members of the team. - The
interface 9500 can also provide features to manageportable computing devices 9050 on a larger, even global, scale. Referring toFIG. 122 , an example of amanagement page 9750 is shown, and themanagement page 9750 can be accessed by selecting atab 9752. As part of thepage 9750, ahierarchical arrangement 9754 can be displayed, which can show the relationship between theadministrator portals 9215, theclient portals 9220 and the sub-client portals 9225 (see alsoFIG. 87 ). Anoversight portal 9754 can also be part of thearrangement 9754, the structure/function of which will be explained below. Additional information will also be provided later to describe the relationship between the entities of thearrangement 9754. For now, however, the discussion will focus on theadministrator portal 9215. - The
administrator portal 9215 of thearrangement 9754 can be selected on themanagement page 9750. Referring toFIG. 123 , an example of an applicationrepository information page 9756 is shown, which can be reached by selecting anadministrator portal 9215 on themanagement page 9750 and atab 9758 inFIG. 123 . As explained previously, theadministrator portal 9215 can have one or more application repositories 9130 assigned to the administrator portal 9215 (and, thus, to the entity that oversees operations of theadministrator portal 9215, like the managing entity). Theinformation page 9756 can provideinformation 9759 about the application repository 9130 assigned to theadministrator portal 9215 and, for example, the managing entity. Examples of such information relating to the application repository 9130 include aname 9760, acode 9762 that identifies the repository 9130, adescription 9764 and a key 9764 (such as a security key) for the application repository 9130. Any one of thename 9760, thecode 9762 or thedescription 9764 can identify the party responsible for the application repository 9130, such as the managing entity. Additional examples include a creation date 9766 and a most recent update date 9768 for the application repository 9130. In one arrangement, anidentification code 9770 for a parent application repository 9130 and/or anidentification code 9772 for a central application repository 9130 can be provided. Additional information about a parent and a central application repository 9130 will be provided later. It is understood that other suitable types of information about the application repository 9130 can be presented on the applicationrepository information page 9756 or some other suitable location or medium. - Selection of a
tab 9774 can enable a user to choose from one or more default pages that present information about default settings or parameters forportable computing devices 9050. In one arrangement, theseportable computing devices 9050 can be assigned to a particular application repository 9130, such as the one identified on the application repository information page 9756 (seeFIG. 123 ). As such, thesedevices 9050 can be associated with the entity responsible for the application repository 9130, such as the managing entity. In one arrangement, these default pages can permit the managing entity to manage all thedevices 9050 assigned to the application repository 9130. As an example, this process can enable global management of thedevices 9050 assigned to a particular entity. - For example, a
general default page 9776, an example of which is shown inFIG. 124 , can be accessed by selecting atab 9778. Here, several default settings that apply to theportable computing devices 9050 that are under the control of the party operating theadministrator portal 9215, such as the managing entity, are presented. The default settings can be a package of operating conditions, settings, applications, parameters, etc. that the managing entity wishes to have applied to theportable computing devices 9050 under its control. In one arrangement, delivery of this content can be in the form of a bundle, similar to the configuration and processes explained in relation toFIGS. 113-121 , the difference being that this content may consist of the minimal requirements designed for allportable computing devices 9050 associated with theadministrator portal 9215. - As an example, on the
general default page 9776, default information like aVPN setting 9780, afirmware package 9782, a location services setting 9784 and an application repository permission setting 9786 can be presented. These settings can be similar to those described with respect to thebundles 9634 ofFIG. 114 . As such, the default information/settings presented here can be applied to theportable computing devices 9050 when thesedevices 9050 register with the managed services platform 9010. As will be explained below, edits can be made to these default information/settings and can be propagated to thedevices 9050 through the managed services platform 9010. Those skilled in the art will appreciate that other default information can be presented on thegeneral default page 9776, andsuch page 9776 is certainly not limited to these examples. - Referring to
FIG. 125 , an example of adefault certificates page 9788 is shown, which can be accessed via thetab 9790. Likegeneral default page 9776, thedefault certificates page 9788 can be assigned to thetab 9774. Thedefault certificates page 9788 can list one ormore certificates 9790 that can be applied to theportable computing devices 9050, such as during registration or at a later time. These may be security certificates, although that is not necessarily the case. Moreover, certificates can be added, removed or upgraded, each of which can be applied to theportable computing devices 9050. - Referring to
FIG. 126 , an example of adefault applications page 9792 is shown. Thedefault applications page 9792, which can be accessed by selecting thetab 9794, can list theapplications 9316 that are to be installed on theportable computing devices 9050 as part of adefault application set 9796. That is, the default application set 9796 can be the minimum number ofapplications 9316 that should be installed on theportable computing devices 9050 that are assigned to theadministrator portal 9215 and, optionally, the managing entity. As an example, theseapplications 9316 can be delivered to thedevices 9050 when thedevices 9050 register with the managed services platform 9010 or at some other later time. Any suitable amount of information relating to theapplications 9316 can be presented here, some of which may be accessed by selecting anapplication 9316 in accordance with previous discussions. - In one arrangement, the
interface 9500 can be configured to enable any of these default settings or applications to be edited. For example, thegeneral default page 9776, thedefault certificates page 9788 or thedefault applications page 9792 can include anedit feature 9798, which when activated, can permit modifications to the settings/applications on its respective default page. In one particular example, if theedit feature 9798 on thegeneral default page 9776 is activated, a generaldefault edit page 9800 can be presented, an example of which is shown inFIG. 127 . Here, the VPN setting 9780, thefirmware package 9782, the location services setting 9784, the application repository permission setting 9786 or any other default setting can be modified. When so modified, the edit can be propagated to theportable computing devices 9050 through the managed services platform 9010 forthwith, such as by selecting asave feature 9801, or at a later time. - As part of the process of delivering the edits to the
portable computing devices 9050, theinterface 9500 of theadministrator portal 9215 can present aschedule rollout option 9802, which can be used to set a delivery schedule for the editing of the default settings or applications. When theschedule rollout option 9802 is activated, adelivery page 9804 can be presented, an example of which is shown inFIG. 128 . Here, a user can select any appropriate time to have the modifications pushed to theportable computing devices 9050. As an example, these edits can be effected at a time that will cause minimal disruptions to the users of thedevices 9050, such as during early morning hours. - Edits can also be made to the
default certificates page 9788 and thedefault applications page 9792 and delivered to thedevices 9050 in a similar manner. An example of anapplications edit page 9806 is shown inFIG. 129 . Here, anavailable applications list 9808 and a currentdefault applications list 9810 can be presented. The currentdefault applications list 9810 can show thoseapplications 9316 that are currently part of the default application set 9796 (seeFIG. 126 ). Theavailable application list 9808, meanwhile, can display theapplications 9316 that are available to be part of the currentdefault applications list 9810 and, hence, thedefault applications list 9796. A user can simply click anddrag applications 9316 from theavailable application list 9808 to the currentdefault applications list 9810 to enable the application(s) to be added to theportable computing devices 9050 on a broadcast or global basis. As an option, such a delivery could be scheduled using theschedule rollout option 9802. As an option, information about theapplications 9316 can be reviewed or accessed here, similar to previous descriptions. - In addition to global addition, one could perform a global removal of an
application 9316 from thedefault application list 9796 and, thus, theportable computing devices 9050 associated with the administrator portal. As an example, a user can simply drag one ormore applications 9316 from the currentdefault applications list 9810 to theavailable application list 9808. This change can be executed throughout theportable computing devices 9050 through the managed services platform 9010. The modification can occur in real-time or can be conducted at a later time, such as through the activation of theschedule rollout option 9802. - Moving from the
tab 9774, information about the various users of theportable computing devices 9050 associated with theadministrator portal 9215 can be obtained by selecting thetab 9812, which can cause ausers page 9814 to be presented. An example of theusers page 9814 is shown inFIG. 130 . The presentation and functions here can be similar to that described in relation toFIG. 109 . For example, theusers page 9814 can present one ormore user identifications 9816 that display general information 9818 about the corresponding user. Moreover, additional information about the user can be accessed by selecting theuser identification 9816, similar to the process described in relation toFIGS. 110 and 111 . For example, aninformation page 9820 can be presented, an example of which is shown inFIG. 131 . Theinformation page 9820 can be accessed by selecting atab 9822. In addition, aroles page 9824 can be accessed by selecting atab 9826, as shown inFIG. 132 . Theroles page 9824 here can present information similar to that described in relation toFIG. 111 . The information presented here onpages FIGS. 110 and 111 , although other forms of information can be added to or excluded from thepages - Referring back to
FIG. 130 , as noted earlier, theusers page 9814 can present, among other things, one ormore user identifications 9816. In the example presented above, theuser identifications 9816 presented on theusers page 9814 may be associated with a managing entity that oversees the operation of theadministrator portal 9215. The users associated with theuser identifications 9816 may serve various roles under the managing entity, and the users can be grouped in one of several possible categories to make the management of theuser identifications 9816 easier, similar to those described in relation toFIG. 109 . To access such categories, one ofseveral tabs 9826 can be selected. A search function (not shown) can also be incorporated into theusers page 9814 or some other suitable interface to enable searching of theuser identifications 9816.User identifications 9816 can be added through anaddition feature 9828 or deleted by adeletion feature 9830. Some of the information presented herein may be the same for different users, particularly if such users share a singleportable computing device 9050. While the features described inFIGS. 130-132 are similar to those written about in relation toFIGS. 109-111 , there are some additional elements that are part of the former that will be described below. - In addition to the individual and group management of portable computing devices 9050 (see
FIGS. 106-108 and 113-121, respectively), theinterface 9500 of theadministrator portal 9215 allows for global or broadcast management ofsuch devices 9050. For example, as explained earlier, thesedevices 9050 can be assigned to a particular application repository 9130 and an entity responsible for operating theadministrator portal 9215, such as the managing entity. Referring toFIG. 133 , adevices page 9850 is shown, which can be accessed by selecting thetab 9852. Here, theportable computing devices 9050 associated with theadministrator portal 9215 can be presented in adevices list 9854. In one arrangement, thedevices list 9854 can show all thedevices 9050 that are associated with theadministrator portal 9215. Various types of information about theportable computing devices 9050—like a name, MAC address and the application repository 9130 to which thedevice 9050 is assigned—can be presented in thedevices list 9854. - It is conceivable that the
devices list 9854 may display a high number ofportable computing devices 9050. To make the management of thesedevices 9050 easier, thedevices list 9854 can be configured to group thedevices 9050 in accordance with several predefined categories. For example,portable computing devices 9050 can be grouped together according to a performance function of users assigned to thedevices 9050. As a more specific example, theportable computing devices 9050 assigned to a sales team can be grouped together and given an identity that provides an indication of the sales team grouping. In addition, thedevices list 9854 can include a search feature (not shown) to enable searching of individualportable computing devices 9050 or groups ofsuch devices 9050. - The
portable computing devices 9050 of thedevices list 9854 can includedevices 9050 that have registered with the managed services platform 9010 and are assigned to theadministrator portal 9215.Such devices 9050 can be referred to as provisionedportable computing devices 9050. In one arrangement, a provisioneddevice 9050 can take on those elements, like settings, firmware, applications, that the entity that assignssuch devices 9050 wishes thedevices 9050 to have. For example, the managing entity can set, for example, the default settings, default applications, bundles, etc. that the managing entity wants to be incorporated into theportable computing devices 9050 that the managing entity assigns to individuals. - The
devices page 9850 can be configured to enable automatic provisioning of aportable computing device 9050. Specifically, thedevices page 9850 can include an available devices list 9870 that showsportable computing devices 9050 that are not provisioneddevices 9050, unlike those in thedevices list 9854. Anon-provisioned device 9050 can be aportable computing device 9050 that may not yet be assigned to theadministrator portal 9215 and may not include one or more elements or features (firmware, applications, settings) that have been implemented in the provisionedportable computing devices 9050. For example, a non-provisionedportable computing device 9050 may be assigned to a portal other than theadministrator portal 9215 or may not be assigned by the managing entity. As another example, anon-provisioned device 9050 may be adevice 9050 that has not yet registered with the managed services platform 9010. Fordevices 9050 that are assigned to a portal other than theadministrator portal 9215, permission to provision thenon-provisioned device 9050 may need to be obtained from one or more parties. - In one arrangement, a user of the
administrator portal 9215 can provision one or morenon-provisioned devices 9050 by dragging them from the available devices list 9870 to thedevices list 9854. Once received at thedevices list 9854, theportable computing device 9050 can receive content (e.g., in a bundle) to make it a provisioneddevice 9050, such as default settings, default firmware, default applications. Also, a bundle 9634 (seeFIG. 113 ) can be delivered to the newly-provisionedportable computing device 9050. In fact, virtually any content can be delivered to such adevice 9050. Similar to previous discussions, the content can be received at thedevice 9050 through the managed services platform 9010, in real-time or at a scheduled time. For thosedevices 9050 that have not yet registered with the managedservices platform 9050, the content can be received once adevice 9050 initiates such registration. - The
devices page 9850 can also be configured to allow one or more provisionedportable computing devices 9050 to return to a non-provisioned state. For instance, a user can drag a provisioneddevice 9050 from thedevices list 9854 to theavailable devices list 9870. Such a step can cause all or at least a portion of the modifications that were made to put thedevice 9050 in a provisioned state to be removed, altered or deleted to return thedevice 9050 to a non-provisioned state. This change can be effected right away or scheduled at a later time. - In one embodiment, the
devices page 9850 may include amessaging feature 9872. The messaging feature 9858 can also be incorporated into other pages (seeFIGS. 123-126 and 130). Here, messages can be sent to theportable computing devices 9050 on a broadcast or global basis via the managedservices platform 9050. This may or may not include all thedevices 9050 assigned to theadministrator portal 9215. As such, theadministrator portal 9215 can quickly and efficiently disseminate messages to its assigneddevices 9050. In one arrangement, such messages can be sent to groups ofportable computing devices 9050, based on the relevance of the message to those groups. Other factors may be considered when deciding on the reach of the message delivery to thedevices 9050, such as security, urgency, content, etc. If desired, in addition to global and group messaging, messages can be transmitted to adevice 9050 on an individual basis, similar to that described in relation toFIGS. 106-108 . - In view of the above discussion, the
administrator portal 9215 can be configured to manage a large number ofportable computing devices 9050 assigned to theadministrator portal 9215. Thesedevices 9050 may also be associated with a managing entity. This management, as has been presented, can include the selective delivery of applications and/or settings to an application repository 9130 associated with theadministrator portal 9215 and to thedevices 9050. There are other portals that may operate in a similar fashion. - For example, referring once again to
FIGS. 87 and 122 , the managedservices system 9200 can include one ormore client portals 9220 and one or moresub-client portals 9225. Theclient portals 9220 can be communicatively coupled to one ormore administrator portals 9215, while thesub-client portals 9225 can be communicatively coupled to one ormore client portals 9220. In view of this arrangement, theadministrator portal 9215 can have a working relationship with any number of theclient portals 9220 and any number of thesub-client portals 9225. In fact, each of the participant portals in thesystem 9200 can have working relationships with any other portal in thesystem 9200. The operator of a portal can determine the parameters of such a relationship and to which portal(s) such a relationship may extend. - The vertical integration here can result in upstream and downstream portals. A downstream portal is defined as a portal that is communicatively coupled to a parent portal, while an upstream portal is defined as a portal that is communicatively coupled to a child portal. For example, the
client portals 9220 can be referred to as a downstream portal in relation to theadministrator portal 9215. Theclient portals 9220 can also be considered as an upstream portal in relation to thesub-client portals 9225. - As previously explained, the managed
services system 9200 is scalable such that additional entities can be incorporated into thesystem 9200, and these additional entities include any suitable number of upstream and downstream portals. For example, a sub-sub-client portal (not shown) could be part of thesystem 9200 and could be communicatively coupled to one or moresub-client portals 9225. Another example of the scalability of thesystem 9200 is theoversight portal 9754 ofFIG. 122 . This portal 9754 can be communicatively coupled to have a working relationship with theadministrator portal 9215, similar to the arrangement between theadministrator portal 9215 and the client portal(s) 9220. In fact, additional upstream portals may be incorporated into thesystem 9200 such that theoversight portal 9754 can also be designated as a downstream portal. As such, the basic structure presented inFIGS. 87 and 122 is a mere fraction of the complexity that can be reached in thesystem 9200, given the scalability of thesystem 9200. - In one arrangement, other portals in the managed
services system 9200 can be configured to implement an arrangement and processes that are similar to that described above for theadministrator portal 9215. As an example, consider aclient portal 9220. The structure of theclient portal 9220, as explained earlier, can be similar to that of the administrator portal 9215 (seeFIGS. 102 and 103 ). Moreover theclient portal 9220 can be configured to receive applications from an application developer portal after the applications are approved by an approval portal. The application developer portal, the approval portal or both can be theapplication developer portal 9205 and theapproval portal 9210 ofFIGS. 87 and 88 . In one arrangement, theapplication developer portal 9205 and theapproval portal 9205 can be operated or managed by any suitable entity. For example, a party that manages theadministrator portal 9215, such as the managing entity described above, can also manage theapplication developer portal 9205 and theapproval portal 9210. Of course, one or more parties different from the entity can be assigned to manage theapplication developer portal 9205 or theapproval portal 9210. - In an alternative arrangement, the application developer portal and/or the approval portal associated with the
client portal 9220 can be separate and distinct from theapplication developer portal 9205 and theapproval portal 9210 ofFIGS. 87 and 88 . That is, the party responsible for theclient portal 9220 may wish to create or direct the creation of an application submission and approval process specifically for theclient portal 9220. The operation and structure of the application developer portal and approval portal associated with theclient portal 9220 can be similar in structure and operation to thoseportals FIGS. 87 and 88 (see alsoFIGS. 89-101 ). Like the description above, if separate application developer and approval portals are developed for theclient portal 9220, any suitable entity or entities can manage these portals. For example, theclient portal 9220 may have a managing entity that is responsible for the operation of theclient portal 9220 and its associated application developer and approval portals. - Just as with the
administrator portal 9215, theclient portal 9220 can selectively publish the applications that it receives. Further, in one embodiment, theclient portal 9220 can communicate with a managed services platform 9010 and can be assigned an application repository 9130. The managed services platform 9010 and the application repository 9130 may be the same ones utilized by and assigned to theadministrator portal 9215. Alternatively, theclient portal 9220 may utilize a managed services platform 9010 and/or be assigned an application repository 9130 that is different from those associated with theadministrator portal 9215. - Because the
client portal 9220 can be configured and operated in a manner similar to that of theadministrator portal 9215, theclient portal 9220 can include an interface similar to theinterface 9500 of theadministrator portal 9215, as described above in relation toFIGS. 104-133 . That is, theclient portal 9220 can facilitate testing and publication of one ormore applications 9316, where theapplications 9316 can be published in an application repository 9130 that is associated with the client portal 9220 (seeFIGS. 104-105 ). Theclient portal 9220 can also manageportable computing devices 9050 associated with theclient portal 9220 on an individual basis, such as enabling the installation/removal ofapplications 9316 from thedevices 9050 and the transmission of messages to the devices (seeFIGS. 106-108 ). - The
client portal 9220 can also permit one to access information about users of the portable computing devices 9050 (seeFIGS. 109-111 ) and to manage firmware for the devices (seeFIG. 112 ). Also like theadministrator portal 9215, theclient portal 9220 can be configured to generate, maintain and distributebundles 9634 to the portable computing devices 9050 (seeFIGS. 113-121 ). As such, theclient portal 9220 can also enable the distribution of content (e.g., configuration settings, applications) to thedevices 9050 on a group basis. Additionally, theclient portal 9220 can permit maintenance/monitoring of its application repository 9130 and global management ofportable computing devices 9050, as outlined inFIGS. 124-133 . This includes content (e.g., settings, certificates, firmware, applications, etc.) selection and delivery (real-time or scheduled) for thedevices 9050, as well as the provisioning onnon-provisioned devices 9050. In summary, all the features described with respect to theadministrator portal 9215 may apply to theclient portal 9220. This principle may also extend to other portals, like thesub-client portals 9225 and theoversight portal 9754 and any other upstream or downstream portals. - Much of the discussion to this point has focused on internal management by a portal. For example, the
administrator portal 9215, among other portals, has been described as having the capability of managingportable computing devices 9050 and application repositories 9130 that are associated with or assigned to or by theadministrator portal 9215. As mentioned before, theadministrator portal 9215 can offer a second set of services that are directed to client portals that have established relationships with theadministrator portal 9215, such as theclient portals 9220, thesub-client portals 9225, the sub-sub-client portals or any subsequent client portals. - To explain this second set of services, consider the following scenario. A
first client portal 9220 and asecond client portal 9220 may be communicatively coupled to and have a working relationship with an administrator portal 9215 (seeFIG. 87 ). In addition, thefirst client portal 9220 can be assigned a first application repository 9130 that is associated with thefirst client portal 9220, while thesecond client portal 9220 may be assigned a second application repository 9130 that is associated with thesecond client portal 9220. As an example, theadministrator portal 9215 can be operated and/or managed by the managing entity described above, and thefirst client portal 9220 can be operated and/or managed by a first client. Similarly, thesecond client portal 9220 can be managed by a second client. For example, referring toFIG. 122 , theadministrator portal 9215 can show an arrangement that demonstrates an application repository relationship between a managing entity associated with theadministrator portal 9215 and the first and second clients. - In this arrangement, the first and second clients may be organizations, companies, individuals, groups, etc. that desire to have the managing entity provide services for the first and second clients through the
first client portal 9220 and thesecond client portal 9220. Also in this example, there may be multipleportable computing devices 9050 that have been assigned to thefirst client portal 9220 andmultiple devices 9050 that have been assigned to thesecond client portal 9220. - Continuing with this example, the
first client portal 9220, thesecond client portal 9220 or both may be associated with one or more sub-client portals 9225 (seeFIGS. 87 and 122 ). Thus, the first client can be associated with one or more first sub-clients, and the second client can be associated with one or more second sub-clients. The arrangement, therefore, can demonstrate an application repository relationship between the managing entity, the first and second client and the first and second sub-clients, if such sub-clients exist. The sub-clients may also be organizations, companies, individuals, groups, etc, that want to have the first and/or second clients provide services for them through the first sub-client portal 9225 and thesecond sub-client portal 9225. As the managedservices system 9200 is readily scalable, these types of relationships can exist at any level among the different portals. Moreover, relationships can be forged between portals that are more than one degree apart in terms of vertical separation. For example, theadministrator portal 9215 and a sub-client portal 9225 can be configured to enable theadministrator portal 9215 to provide services for thesub-client portal 9225. - As explained earlier, the
administrator portal 9215 can receiveapplications 9316 from theapproval portal 9210, as submitted at theapplication developer portal 9205. Thus, theadministrator portal 9215 can receive a notification of anapplication 9316 that has met an approval threshold. In response, theadministrator portal 9215 can cause the presentation of theapplication 9316. The presentation of the application may or may not result in theapplication 9316 being published in an application repository 9130 associated with, for example, theadministrator portal 9215, being delivered to one or moreportable computing devices 9050 associated with, for example, theadministrator portal 9215 or both. - In one arrangement, the
administrator portal 9215 can also cause the transmission of the availability of theapplication 9316 to thefirst client portal 9220 for publication in the first application repository 9130. Similarly, theadministrator portal 9215 can cause the transmission of the availability of theapplication 9316 to thesecond client portal 9220 for publication in the second application repository 9130. - The transmission of the availability of the
application 9316 to thefirst client portal 9220 and thesecond client portal 9220 for publication can include different scenarios. In one arrangement, the transmission of the availability of theapplication 9316 for publication can provide a notice of such availability, and the first and second clients can review the application for publication suitability. The process of review can be similar to that described in relation to theadministrator portal 9215. If the first or second clients determine that the available application is suitable for publication, the first orsecond client portal 9220 can cause the application to be published in the appropriate application repository 9130. The first or second clients, through the first orsecond client portals 9220, also have the option of directing the installation of theapplication 9316 on relevantportable computing devices 9050 on an individual, group or global (broadcast) basis. This process can be similar to that presented for theadministrator portal 9215. - In another arrangement, the transmission of the availability of the
application 9316 for publication can result in the automatic publication of theapplication 9316 in the relevant application repository 9130, the delivery of theapplication 9316 to therelevant devices 9050 or both. That is, the first and second clients may rely on the judgment of the managing entity to make the determination of whether to publish anapplication 9316 on their behalf. - In either arrangement, the
administrator portal 9215 or other relevant portal can set the transmission of the availability of theapplication 9316 for publication on a selective basis. For example, theadministrator portal 9215 can determine that the availability transmission may be sent to thefirst client portal 9220 but not thesecond client portal 9220. This determination can be based on various factors, such as input from the parties responsible for the operation of theclient portals 9220 or other portals or some other suitable party. For example, theapplication developer portal 9205 or theapproval portal 9210 can be configured to respectively permit, for example, the application developer or the party responsible for approving the application to make the selective transmission decision or at least recommend a decision. - It is understood that this process is certainly not limited to
applications 9316, as the availability of other content can be transmitted to other portals. For example, theadministrator portal 9215 can receive a firmware update and—if the update is deemed worthy of dissemination—can distribute the update to the application repository 9130 or some other medium accessible by aportable computing device 9050. Theadministrator portal 9215 can also distribute such an update to appropriateportable computing devices 9050 through the heartbeat process described above. In either arrangement, when such a firmware update is distributed (or even if it is not), theadministrator portal 9215 can notify, for example, theclient portal 9220 or any other portal about the availability of the firmware update. The party responsible for the client portal 9220 (or other portal) can then determine whether to distribute the firmware update to its application repository 9130, itsportable computing devices 9050 or both. If the firmware update is so distributed (or even if not), theclient portal 9220 can notify, for example, a sub-client portal 9225 or some other portal. This process can be repeated for other portals (both upstream and downstream), as desired. It is understood, however, that other content can be distributed in this manner, other than firmware updates. For example, any type of operational settings or parameters or any type of software package for an application repository 9130 or one or moreportable computing devices 9050 may be disseminated in a similar fashion. - In fact, this arrangement can enable a node hierarchy in which virtually any form of content can be distributed between nodes. For example, a first node can generate or receive some form of content and can distribute this content to one or more lower level nodes (e.g., child nodes). Once received, a lower level node or some other suitable entity can then determine whether to make this content available to portable computing devices associated with the lower level node or some other node. Any suitable type of criteria may be used to determine whether to disseminate the received content. Non-limiting examples include applications, firmware, settings, policies, certificates, statistics, manuals, publications, video, audio, directives, etc.
- In view of the vertical integration of the managed
services system 9200, the management of application delivery (or other content delivery) can apply to any portal relationship in thesystem 9200. For example, if and when aclient portal 9220 takes steps to publish an application (whether so in an application repository 9130 or through delivery to a portable computing device 9050), theclient portal 9220 can cause the transmission of the availability of theapplication 9316 for publication to the first or secondsub-client portal 9225. The first and second sub-clients, like the first and second clients, can determine whether to publishsuch applications 9316 or to defer to the judgment of the first or second clients for automatic publication. - The management of services contemplated here is not limited to the management of the distribution of applications. In particular, an upstream portal can be configured to manage the
portable computing devices 9050, the users ofsuch devices 9050 or the application repository 9130 associated with a downstream portal. To explain such an arrangement, again consider the relationship between theadministrator portal 9215 and the first andsecond client portals 9220. Assume that the first and second clients have agreed to enter into an agreement with the managing entity (or other party responsible for the administrator portal 9215) such that the managing entity has the right to manage theportable computing devices 9050 and the application repositories 9130 associated with the first and second clients, including the management of the users ofsuch devices 9050 and repositories 9130. In view of the integration and scalability characteristics of the managedservices system 9200, such an arrangement can exist between any suitable number of upstream and downstream portals. - For example, the
administrator portal 9215 can receive a control notification or some other form of permission from thefirst client portal 9220 or thesecond client portal 9220. The term “control notification” is defined as a notification in which one portal is granted permission to manage at least some services on behalf of another portal. Once theadministrator portal 9215 receives the control notification, theadministrator portal 9215 can begin to manage services for the first orsecond client portals 9220. In one arrangement, theadministrator portal 9215 can receive additional control notifications fromsub-client portals 9225 or other downstream portals. This process can permit theadministrator portal 9215 to manage services for thesub-client portals 9225 and any other downstream portals. The control notifications can be sent directly from a particular portal or by a portal on behalf of another portal. For example, theclient portal 9220 can generate and send a single control notification, which can authorize theadministrator portal 9215 to manage services for both theclient portal 9220 and a sub-client portal 9225 associated with theclient portal 9220. Alternatively, the control notification can be generated and sent from the sub-client portal 9225 without any input from theclient portal 9220. - Referring to
FIG. 122 , themanagement page 9750 presents an interface that enables a portal to manage services for another portal. In particular, if, for example, a control notification is received, a user of the portal that receives the notification can select from the hierarchical arrangement the portal that sent the notification. This selection may bring up the interfaces that were described above to enable the management of services for the portal sending the control notification. - To explain this process, an example will be presented in which a
client portal 9220 has provided theadministrator portal 9215 with a control notification. The control notification may indicate that theclient portal 9220 wishes to have theadministrator portal 9215 manage the application repository 9130 of the client portal 9220 (if one exists) and one or moreportable computing devices 9050 that are assigned to or associated with theclient portal 9220. For example, inFIG. 122 , theadministrator portal 9215 with the circle and the subscript “P” can receive the notification from theclient portal 9220 with the circle and the subscript “C.” A user of the designatedadministrator portal 9215 in this drawing can then, as an example, select theclient portal 9220, tagged in this drawing, too. Doing so can cause the presentation of information relating to the application repository 9130 assigned to theclient portal 9220. Specifically, the information related to this application repository 9130 can be presented in a form that is similar to that shown inFIG. 123 for theadministrator portal 9215. This feature may also apply to other portals in the arrangement ofFIG. 122 , such as other client portals or sub-client portals. To permit such access, the user may be required to provide authentication information. - In view of this feature, a user of the
administrator portal 9215 can access an interface for theclient portal 9220 that can be similar to the applicationrepository information page 9756 for theadministrator portal 9215, as pictured inFIG. 123 . That is, the applicationrepository information page 9756 for theadministrator portal 9215 can be re-branded such that thepage 9756 is configured for theclient portal 9220. The re-branding may not materially affect the operation of thepage 9756, other than that its operation can be directed to theclient portal 9220 and some indication of this change may be provided, such as a symbol or some other designation that identifies theclient portal 9220. This re-branding can also provide to the user access to all the features described with respect to the applicationrepository information page 9756 on behalf of theclient portal 9220. This re-branding principle also may apply to all the pages that follow the applicationrepository information page 9756. For example, a user of theadministrator portal 9215 can view the default settings, default certificates ordefault applications 9316 for the client portal 9220 (seeFIGS. 124-126 ). As another example, the user of theadministrator portal 9215 can provide or make edits to the default settings, default certificates ordefault applications 9316, if theadministrator portal 9215 has permission to do so (seeFIGS. 127-129 ). Like the discussion above, these edits can be executed in real-time or in accordance with a delivery schedule. - As such, if permission is granted, the
administrator portal 9215 can manage services for theclient portal 9220 by accessing information about the application repository 9130 assigned to theclient portal 9220 and information about the default settings andapplications 9316 forportable computing devices 9050 associated with theclient portal 9220. This management may also entail theadministrator portal 9215 making changes to the default settings or applications. For example, theadministrator portal 9215 can add, remove or even modifyapplications 9316 with respect to a default application set for the application repository 9130 of theclient portal 9220 or theportable computing devices 9050 associated with theclient portal 9220. As another example, theadministrator portal 9215 can change VPN settings, locations services settings or the default firmware of theportable computing devices 9050 associated with theclient portal 9220. These changes to theportable computing devices 9050 can be on a global or broadcast basis on behalf of theclient portal 9220, and theadministrator portal 9215 can also determine if the edits are to be disseminated right away or based on a delivery schedule. - In addition, a user of the
administrator portal 9215 can have access to theuser identifications 9816 associated with theportable computing devices 9050 of theclient portal 9220, which may include the addition or deletion of theuser identifications 9816 and the information related to such user identifications 9816 (seeFIGS. 130-132 ). Further, a user of theadministrator portal 9215 can have access to a devices page 9850 (seeFIG. 133 ) that displays theportable computing devices 9050 associated with theclient portal 9220. Thedevices 9050 of theclient portal 9220 can be grouped together in accordance with several predefined categories, such as a performance function of users assigned to thedevices 9050, and a searching function can be provided. - The
portable computing devices 9050 of theclient portal 9220 that theadministrator portal 9215 can manage can include thosedevices 9050 that have registered with an appropriate managed services platform 9010 and are assigned to theclient portal 9215. As part of its management function, theadministrator portal 9215 can also enable automatic provisioning or de-provisioning of aportable computing device 9050 on behalf of theclient portal 9220. For example, theadministrator portal 9215 can presentportable computing devices 9050 that are provisioneddevices 9050 or areavailable devices 9050 that can be provisioned. A provisioneddevice 9050 in this case can be aportable computing device 9050 that is assigned to an application repository 9130 of theclient portal 9220. - In one arrangement, the
administrator portal 9215 can also send messages to theportable computing devices 9050 associated with theclient portal 9220 on behalf of theclient portal 9220. Similar to the description above, the messages can be sent to theportable computing devices 9050 associated with theclient portal 9220 on a broadcast or global basis via the managedservices platform 9050. This may or may not include all thedevices 9050 assigned to theclient portal 9220. In short, with the proper permission, theadministrator portal 9215 can provide interfaces for managing another portal's application repository, portable computing devices or some other feature in which the interfaces are similar to those for managing the same for the administrator portal 9215 (seeFIGS. 122-133 ) but which may have been re-branded to identify with theclient portal 9220. - The
administrator portal 9215 can also manage other services for theclient portal 9220. For example, several of the interfaces of theadministrator portal 9215, such as the applicationrepository information page 9756 and the general default page 9776 (seeFIGS. 123 124, respectively), can include a launch feature 9875. When activated, the launch feature 9875 can provide a user of theadministrator portal 9215 with the ability to manage additional services for theclient portal 9220, if theadministrator portal 9215 has permission to do so. Authentication may be required for the user of theadministrator portal 9215 to manage these additional services on behalf of theclient portal 9220. - As an example of such additional services, the applications page 9550 of
FIG. 104 can be presented, which can enable a user to manage one ormore applications 9316 on behalf of theclient portal 9220. The user can also review information that is associated with theapplications 9316 by accessing the application selection page 9560 (seeFIG. 105 ). Similar to that described above, the applications page 9550 and theapplication selection page 9560 can be re-branded in terms of theclient portal 9220; however, the substantive operation of thesepages 9550 and 9560 and the information that is presented can be similar to that described above in relation toFIGS. 104 and 105 . As such, theadministrator portal 9215 can control the operation of the application repository 9130 assigned to theclient portal 9220. - For example, the
administrator portal 9220 can monitor the progress of the submissions ofapplications 9316 and receive approvedapplications 9316 on behalf of theclient portal 9220. Theseapplications 9316 can be received from anapplication developer portal 9205 and anapproval portal 9210, as explained above. The administrator portal can also provide lists of pending, available or publishedapplications 9316 that are associated with theclient portal 9220. In addition, a user of theadministrator portal 9215 can determine whether to cause the publication ofsuch applications 9316, such as in an application repository 9130 associated with theclient portal 9220. This determination may include the testing or evaluation of anapplication 9316 in accordance with criteria set forth by the party overseeing theclient portal 9220. - If the
application 9316 is published in the application repository 9130 associated with theclient portal 9220, theclient portal 9220 or the administrator portal 9215 (on behalf of the client portal 9220) can transmit the availability of theapplication 9316 for publication in an application repository 9130 associated with one or more downstream portals, like asub-client portal 9225. In one arrangement, once theapplication 9316 has been published in an application repository 9130 associated with theclient portal 9220, theapplication 9316 can be downloaded toportable computing devices 9050 that are associated with theclient portal 9220. - As part of the management of services for the
client portal 9220, theadministrator portal 9215 can also manageportable computing devices 9050 that are assigned to or associated with theclient portal 9220. In particular, theadministrator portal 9215 can present the devices page 9572 (seeFIG. 106 ), the device details page 9576 (seeFIG. 107 ) and thedevice application page 9590, each of which can be re-branded in a configuration that is related to theclient portal 9220. As such, through these interfaces, a user of theadministrator portal 9215 can see representations of and manage thedevices 9050 for theclient portal 9220 similar to the way that user would do so fordevices 9050 associated with theadministrator portal 9215. For example, theadministrator portal 9215 can provide access to information about any one of theportable computing devices 9050 associated with the client portal 9220 (see previous examples), can search forsuch devices 9050 and can enable the installation of content on or removal of content from thesedevices 9050 on an individual basis, likeapplications 9316, configuration settings or firmware or software packages. Theadministrator portal 9215 can also enable a messaging feature to enable a user of the portal 9215 to generate and transmit (through a managed services platform 9010) messages to theportable computing devices 9050 of theclient portal 9220 on an individual basis, similar to that process described earlier with respect to messaging todevices 9050 associated with theadministrator portal 9215. - As another part of its capabilities, the
administrator portal 9215 can present theusers page 9596, theinformation page 9602 and the roles page 9606 (seeFIGS. 109-111 ) in a re-branded format that relates to theclient portal 9220. As such, a user of theadministrator portal 9215 can access one or more user identifications and related information that can be associated with theportable computing devices 9050 of theclient portal 9220. That is, the description related toFIGS. 109-111 in which various types of information relating to users ofportable computing devices 9050 associated with theadministrator portal 9215 can also apply to those users ofdevices 9050 that are associated with theclient portal 9215. The information that can be accessed for the users associated with theclient portal 9220 can be similar to that described earlier with respect to users assigned to theadministrator portal 9215, although such information is certainly not necessarily so restricted. The user identifications of theclient portal 9220 can also be grouped or categorized and can be searchable. In addition, theadministrator portal 9215 can also be used to add or remove user identifications on behalf of theclient portal 9220, if theadministrator portal 9215 has permission to do so. - When it receives the control notification from the
client portal 9220, theadministrator portal 9215 can also present the firmware page 9620 (seeFIG. 112 ), which can be re-branded in terms of theclient portal 9220. As previously explained, firmware or other software packages can be made available to one or moreportable computing devices 9050, such as through the managed services platform 9010. Moreover, such a package can be selected at theadministrator portal 9215 for delivery to aportable computing device 9050 associated with theclient portal 9220 by making selections at the device details page 9576 (seeFIG. 107 ). The re-brandedfirmware page 9620 can facilitate this feature for theclient portal 9220 by presenting one or more different firmware packages. As noted earlier, a firmware package is not necessarily limited to firmware, as other forms of software, operational settings and parameters may be part of a firmware package. The description of receiving, adding and updating firmware packages and related notifications, as well as the parties responsible for their production and delivery, can be applicable here in terms of theadministrator portal 9215 handling this operation on behalf of theclient portal 9220. As such, a user of theadministrator portal 9215 can help facilitate the distribution of firmware packages to an application repository 9130 and/or one or moreportable computing devices 9050 associated with theclient portal 9220. - As part of the delegated management, the
administrator portal 9215 can also manage bundles on behalf of theclient portal 9220. The concept of providing bundles to one or moreportable computing devices 9050 was previously described. To accommodate this feature, when theadministrator portal 9215 has permission to do so, theadministrator portal 9215 can present the bundles page 9630 (seeFIG. 113 ) in a re-branded format that designates its relation to theclient portal 9220. Here, bundles that can be designed forportable computing devices 9050 associated with theclient portal 9220 can be made available to a user of theadministrator portal 9215. The party responsible for the operation of theclient portal 9220 can design these bundles or can work with another party, like the managing entity of theadministrator portal 9215, to produce the bundles. The bundles—and the content contained therein—prepared on behalf of theclient portal 9220 and available on thebundles page 9630 of theadministrator portal 9215 can be done so based on a performance function or some other category, similar to thebundles 9634 described earlier. The bundles for theclient portal 9220 may also contain default applications, settings or other items, also like thebundles 9634. See the previous discussion for examples of the content that can be contained in the bundles for theclient portal 9220 or for information that can be presented for the bundles. - Bundles for the
client portal 9220 can easily be added to the re-brandedbundles page 9630 of theadministrator portal 9215. Subsequently, a user of theadministrator portal 9215 can manage these bundles on behalf of theclient portal 9220 in accordance with the processes described in relation toFIGS. 113-121 . For example, theadministrator portal 9215, through re-branded interfaces, can allow a user to access information about the bundles and make edits to the content of the bundles, including the addition or removal of content. Theadministrator portal 9215 can also enable the storage/distribution of the bundles to theportable computing devices 9050 and/or the application repositories 9130 associated with theclient portal 9220, in accordance with those processes described earlier with respect toFIGS. 113-121 . This feature includes immediate or dynamic delivery or a delivery based on a predetermined schedule. - As such, it is possible for the
administrator portal 9215 to provide content or make modifications to a group ofportable computing devices 9050, i.e., a group basis. For example, an operator of theadministrator portal 9215, such as the managing entity, could push applications, firmware updates or operational settings to an identified group ofportable computing devices 9050 on behalf of theclient portal 9220. These principles can also apply to an application repository 9130 associated with theclient portal 9220. - In view of the above description, the
administrator portal 9215 can be used to manage one or more services for theclient portal 9220. In fact, this management can be similar to how theadministrator portal 9215 can manage its own application repository 9130 and its ownportable computing devices 9050. This management role can also apply to other portals. For example, if theadministrator portal 9215 receives a control notification, theadministrator portal 9215 can also manage services in a similar manner for a sub-client portal 9225 or other downstream portals. Theadministrator portal 9215 can provide such services for one or more different portals at the same time or can be configured to provide such services to only one portal at any one point in time. - Moreover, the
client portal 9220 can perform the same function in relation to thesub-client portal 9225. That is, if it receives a control notification, theclient portal 9220 can manage services for the sub-client portal 9225 or some other downstream portal in accordance with the description above. Like theadministrator portal 9215, theclient portal 9220 can provide these services to one or multiple portals at any given time. This principle is commensurate with the scalability of the managed services system 9200 (seeFIG. 87 ) such that any portal can provide services on behalf of another portal. It is also understood that a portal can provide such services to both upstream and downstream portals, if desired. For example, as an option, theadministrator portal 9215 can manage services for an upstream portal, like theoversight portal 9754, in accordance with the descriptions above. Similarly, theclient portal 9220 can manage services on behalf of theadministrator portal 9215. - Examples of a managed
services system 9200 have been presented here (seeFIG. 87 ). To assist in the understanding of the structure and operation of the system, certain portals were designated with functional labels. For example, because theadministrator portal 9215 can provide services for theclient portals 9220 in one particular embodiment, the term “administrator” was used in the descriptions above when explaining the features of this portal. Given the flexibility of thesystem 9200, however, it must be noted that such exemplary designations are not intended to limit the utility of thesystem 9200. For example, theadministrator portal 9215 may operate like aclient portal 9220 in relation to theoversight portal 9754. As another example, theclient portal 9220 may act like theadministrator portal 9215 in relation to the sub-clients 9225. In fact, the roles that the portals of the managedservices system 9200 take on may be completely interchangeable. - There may be other interfaces that can be used with the system 9000 (see
FIG. 86 ), the managed services platform 9010 (seeFIG. 86 ) and the managed services system 9200 (seeFIG. 87 ). One such example is shown inFIG. 134 . Here, an interface 9880 is illustrated that can be useful for enabling the management ofportable computing devices 9050. The principles described above may apply here such that the interface 9880 can be incorporated into any portal and operated by any suitable entity. To describe its operation, reference will be made to theadministrator portal 9215, although this interface 9880 could easily be implemented into aclient portal 9220, a sub-client portal 9225, anoversight portal 9754 or any other suitable portal. This interface 9880 can be used to facilitate management ofportable computing devices 9050 that are associated with any entity, including an entity that is not responsible for operating or managing the portal on which the interface 9880 is implemented. Additional details will follow. - Reference will now be made to
FIG. 102 . As noted earlier, theadministrator portal 9215 can include one or more user interface (UI)elements 9500, and theUI elements 9500 can enable a user to make selections associated with the management of services for one or moreportable computing devices 9050. Theadministrator portal 9215 can also include aprocessor 9518 that can be communicatively coupled to theUI elements 9500. In one arrangement, theprocessor 9518 can be operable to receive a request to determine a status of one or more of theportable computing devices 9050 or to cause an action to occur on one or more of theportable computing devices 9050. Theprocessor 9518 can also be operable to provide the status of the one or moreportable computing devices 9050 or to effect the action on the one or moreportable computing devices 9050. The status of theportable computing devices 9050 can be provided on an individual, group or global basis. Similarly, the action on theportable computing devices 9050 can be effected on an individual, group or global basis. - The term “status of one or more of the portable computing devices” is defined as a measurable characteristic of a portable computing device, while the term “action on one or more of the portable computing devices” means the execution of an operation on a portable computing device and includes operations that are undertaken by the portable computing device or operations that are executed under the direction of another device or system. The term “individual basis” is defined as a circumstance involving a single entity, part, device or component, while the term “group basis” is defined as a circumstance involving a group of entities, parts, devices or components that is fewer than all available entities, parts, devices or components. The term “global basis” is defined as a circumstance involving all available entities, parts, devices or components.
- Many examples of providing a status of a
portable computing device 9050 or effecting an action on thedevice 9050 on a particular basis have already been presented. For example, through theinterface 9500, a user can causeapplications 9316 to be installed on or removed from one or moreportable computing devices 9050 on an individual, group or global basis. As another example, bundles 9634—and the content contained therein—can be delivered to or removed fromsuch devices 9050 in accordance with an individual, group or global basis. Moreover, a user can determine theapplications 9316 and other content (e.g., firmware) that are installed onsuch devices 9050, again on an individual, group or global basis. - Referring once again to
FIG. 134 , the interface 9880 presents an additional interface to permit this management ofportable computing devices 9050. As explained previously, theadministrator portal 9215 will be used to explain the interface 9880, as the example here will demonstrate the interface 9880 as being implemented on theadministrator portal 9215. Similar to earlier descriptions, theadministrator portal 9215 can be operated or managed by a first entity or a managing entity. - The interface 9880 can include a
home page 9882, which can show various information related to one or moreportable computing devices 9050. In one arrangement, theseportable computing devices 9050 can be associated with theadministrator portal 9215 and/or the managing entity. The home page can be accessed through atab 9883. Anexecutive summary 9884 can indicate, for example, the total number ofportable computing devices 9050, the total number ofapplications 9316 on thesedevices 9050, the total number of users of thedevices 9050 and the total number ofbundles 9634 on thedevices 9050. Anunused application section 9886 can list or show, for example, theapplications 9316 that are available to be installed on thedevices 9050 but that are not currently so installed. In contrast, atop applications section 9888 can show, for example, thetop applications 9316 for thedevices 9050, in terms of the number of times eachapplication 9316 has been installed on adevice 9050. Moreover, anapplications section 9890 can list all theapplications 9316 that are available for installation on thedevices 9050. Of course, the information presented here on thehome page 9882 inFIG. 134 is merely exemplary in nature, as virtually any other suitable type of material can be shown on thepage 9882. - Referring to
FIG. 135 , anotherdevices page 9892 is shown, which can be accessed via atab 9894. Thedevices page 9892 shown here is similar in operation and design in comparison with thedevices page 9572 described in relation toFIGS. 106-108 . That is, thedevices page 9892 can enable the management of individualportable computing devices 9050. Thedevices page 9892, however, shows additional features that can be implemented into a device management system. - For example, selecting a
device 9050 on thedevices page 9892 can cause adevice information page 9894 to be presented, an example of which is shown inFIG. 136 . Thedevice information page 9894 can be accessed through a tab 9896 on atool bar 9898. Thedevice information page 9894 can show any suitable type of information about the selectedportable computing device 9050. Examples include a device name, a device description, a MAC address, a device type, a software version, an asset tag, a serial number, an IP address, an international mobile equipment identity (IMEI) number, a model type or an indication as to whether thedevice 9050 is managed. Thedevice information page 9894 is in no way limited to these particular examples, as other pieces of information about the selecteddevice 9050 can be presented. - Selecting a
tab 9900 on thetool bar 9898 can cause alocation page 9902 to be presented, an example of which is shown inFIG. 137 . Through thelocation page 9902, the status of aportable computing device 9050 can be provide by supplying location information of thedevice 9050. For example, thelocation page 9902 can show the physical location of the selectedportable computing device 9050, if such a feature has been enabled and/or authorized. The location of the selecteddevice 9050 can be superimposed over a map or imagery of the general area. The location of thedevice 9050 can be updated in real time, if desired. - Selecting another
tab 9904 on thetool bar 9898 can cause amenu 9906 to be presented, as shown inFIG. 138 . Themenu 9906 can offer one or more features for managing the selectedportable computing devices 9050. Selection of any one of these features can effect some action on the selecteddevice 9050. For example, aring feature 9908 can be selected, which can cause a ring tone or other signal to be generated at thedevice 9050. Thisring feature 9908 can override any settings on thedevice 9050, such as a muting or silence feature on thedevice 9050, and can help a user locate a lostdevice 9050, for example. In addition, amessage feature 9910 can be activated, which can permit a message to be sent to the selectedportable computing device 9050. It must be noted that any message sent to any number ofportable computing devices 9050 can be a predefined message or can be dynamically generated. - Selection of a
tab 9912 can enable the selecteddevice 9050 to be locked out, while selection of atab 9914 can enable thedevice 9050 to be unlocked. In a locked out state, theentire device 9050 can be locked such that thedevice 9050 may not respond to any inputs from a user. The locked out state is not so limited, however, as the features or operation of thedevice 9050 can be selectively disabled. For example, in a locked out state, thedevice 9050 may be permitted to conduct voice calls but not allowed to conduct exchanges involving data. Selection of thetab 9914 can return thedevice 9050 from the locked state to the original pre-locked state or a state in which at least some features or operation of thedevice 9050 is enabled again. For example, thedevice 9050 may be completely disabled in the locked out state and selection of thetab 9914 can once again permit thedevice 9050 to make emergency calls or other voice calls but not data exchanges. - Selection of a
tab 9916 can enable the logout of one or more users of the selectedportable computing device 9050. For example, all users of thedevice 9050 can be logged out or only a portion of the users assigned to thedevice 9050. This logout feature can be activated at any time and can be set to occur automatically, such as after a predetermined time period during which no activity is detected on thedevice 9050. - A
tab 9918 can be selected to activate a wipe feature. The wipe feature can be used to, for example, return the selecteddevice 9050 back to factory or default settings. This process can be directed at theentire device 9050 or at only portions of thedevice 9050. In particular, all the features, settings, applications and content of thedevice 9050 can be returned to the original conditions of thedevice 9050 or only some of these features, settings, applications or content may be returned to such a condition. For example, several settings of thedevice 9050 may be returned to default, while other settings may remain intact. As an additional option here, when the wipe feature is activated, one or more security scans can be conducted on thedevice 9050, with results being reported back to theadministrator portal 9215. - Another
tab 9920 can be selected to activate a reset feature of theportable computing device 9050. As an example, the reset feature can be similar to a reboot process, although this feature is not necessarily so limited. Moreover, the reset feature can be used to rest or reboot only certain portions of thedevice 9050. For example, the reset feature can be used to reset a particular application. Of course, the reset feature can be used to reboot the entire operating system and other applications of thedevice 9050, if so desired. A wipe user feature can also be used to disable or delete the account of a user of the selecteddevice 9050, which can be accessed through atab 9922. This feature can be utilized if, for example, a user is no longer employed by an entity that has assigned thedevice 9050 to that user. While the wipe feature can be used to entirely disable or delete all settings, content, applications, etc. associated with a user, the wipe feature can also be used to only disable or delete a portion of such material. For example, only the applications associated with a particular user may be removed or otherwise disabled. - Referring back to the tool bar 9898 (see
FIG. 137 ), selection of atab 9924 can cause afirmware page 9926 to be presented, an example of which is shown inFIG. 139 . Thefirmware page 9926 is similar to the firmware features described earlier with respect to the device details page 9576 (seeFIG. 107 ) and the firmware page 9620 (seeFIG. 112 ). As such, aparticular firmware package 9624 can be selected here and delivered in real-time or based on a scheduled time to theportable computing device 9050 through the managed services platform 9010, as previously explained. - The interface 9880 can also be configured to present and facilitate the distribution of
bundles 9634 toportable computing devices 9050. For example, referring toFIG. 140 , anotherbundles page 9928 is presented, which can be accessed through atab 9930. Like thebundles 9634 presented earlier (see description relating toFIGS. 113-121 ), thebundles 9634 of this interface 9880 can be used to provide content, such as configuration settings and applications or edits to such content, to any suitable number ofportable computing devices 9050 and can be distributed in real-time or in accordance with a delivery schedule. - As an example, a
bundle 9634 can be selected from thebundles page 9928, and abundle information page 9932 can be presented, an example of which is shown inFIG. 141 . As part of thebundle information page 9932, abundle tool bar 9934 can be presented. Selection of atab 9936 on thebundle tool bar 9934 can enable a user to access thebundle information page 9930. Thebundle information page 9932 can provide any suitable type/amount of information about the selectedbundle 9634. Examples include a bundle name, a description, a bundle role, a priority index, a domain key, a profile key, a version key, a creation date or a last update date. The bundle role can provide an indication as to which performance function thebundle 9634 is assigned, and the priority index can be used to prioritize the content of the selectedbundle 9634 in view ofother bundles 9634. In particular, a lower number for the priority index can indicate that the content of the associatedbundle 9634 has a higher priority in comparison to abundle 9634 having a higher number for the priority index. This priority index can be useful if a user of aportable computing device 9050 is assigned two or moredifferent bundles 9634. The domain key and the profile key can be used to facilitate identification of thebundle 9634. - Referring once again to the
bundle tool bar 9934, activating atab 9938 can cause aprofile menu 9940 to be presented, an example of which is shown inFIG. 142 . Theprofile menu 9940 can be configured to enable the selection of one or more profile settings, as will be explained below. For example, apassword profile page 9942, which can be accessed through atab 9944, can provide information about and enable the selection of settings related to a password for thebundle 9634. That is, the data here can be part of abundle 9634 that when delivered to aportable computing device 9050 can establish a password feature for thedevice 9050. In one arrangement, thepassword profile page 9942 can present and/or enable the editing of the following password parameters: a level of complexity (i.e., quality); a minimum length; a maximum length; an amount of time before lock; a password lifetime; or a maximum number of times an incorrect password can be entered before thedevice 9050 is locked or wiped (completely or partially). A password lifetime can identify, for example, the amount of time the password may be in effect. Other examples may include a minimum or maximum number of alphabetic characters, lower case letters, upper case letters, non-alphabetic letters, numeric digits or special characters. In addition, a history size can be provided. The history size can be a parameter that sets the number of previous passwords to be reviewed to minimize the use of recent passwords. For example, a history size of three would direct theportable computing device 9050 or some other remote unit to store the last three passwords used on thedevice 9050 and to review these three passwords to ensure that these passwords were not currently selected as a password. Anenablement feature 9945 can be activated, which can direct the relevantportable computing device 9050 to implement the password profile once thedevice 9050 receives thebundle 9634. - Any number of the above parameters can be edited or set on the
password profile page 9942 for controlling any suitable number or type of password that may be employed on theportable computing device 9050 that has received thebundle 9634. As previously explained, such an editing or setting can be delivered tobundles 9634 installed onportable computing devices 9050 or in other components (like an application repository 9130) in real-time or in accordance with a delivery schedule. These edits can be implemented on theportable computing devices 9050 once thebundles 9634 are updated. The password profile itself can be enabled or disabled here on thispage 9942. In addition, thepassword profile page 9942 may be configured to manage multiple passwords or the interface 9880 can have multiplepassword profile pages 9942 to accommodate multiple passwords. - Activation of a
tab 9946 from theprofile menu 9940 can cause a wireless or Wi-Fi profile page 9948 to be presented, an example of which is shown inFIG. 143 . While the Wi-Fi profile page 9948 ofFIG. 143 may be directed to Wi-Fi, it must be noted that thepage 9948 is not so limited, as thepage 9948 can accommodate any other suitable wireless protocol or standard. In fact, the Wi-Fi profile page 9948 can be configured to accommodate multiple wireless standards/protocols or a separate page can be used to manage different wireless standards/protocols. - The Wi-
Fi profile page 9948, in one arrangement, can include awireless profile listing 9950, which can include one ormore wireless profiles 9952, any one of which may be selected for thebundle 9634 and eventually aportable computing device 9050. To the left of thewireless profile listing 9950, settings about the selectedwireless profile 9952 can be presented. The following list shows examples of settings for a selected wireless profile 9952: a name; a service set identifier (SSID); a security type; a password; an extensible authentication protocol (EAP) ID; an EAP method; an EAP second phase; an EAP anonymous identifier; certificates for a user and a certificate authority; or a private key. Theprofile page 9948 can be configured to allow these settings to be edited, if desired. - The Wi-
Fi profile page 9948 can also include aninitiation feature 9954 and adisablement feature 9956. Theinitiation feature 9954, if activated, can direct theportable computing device 9050 that receives thebundle 9634 to connect to the SSID identified on theprofile page 9948 when thedevice 9050 comes within range of the network. In contrast, if theinitiation feature 9954 is not activated, the profile on theprofile page 9948 can simply be saved in thebundle 9634 and thedevice 9050, and the connection to the network may be executed at a later time. In addition, thedisablement feature 9956 can, when activated, direct theportable computing device 9050 that receives thebundle 9634 to disable other wireless profiles on thedevice 9050 and to prevent future profiles from being installed on thedevice 9050. This disablement can be complete such that no other profiles are permitted to be used by thedevice 9050, or other acceptable profiles may be permitted on thedevice 9050. If thedisablement feature 9956 is not activated, then other profiles on thedevice 9050 may not be disabled. - Referring to
FIG. 144 , activation of atab 9958 on theprofile menu 9940 can cause aVPN profile page 9960 to be presented, an example of which is shown here. Like the Wi-Fi profile page 9948, theVPN profile page 9960 can include aVPN profile listing 9962, which can list one or more VPN profiles 9964. AVPN profile 9964 can eventually be implemented on aportable computing device 9050 that receives thebundle 9634 containing theprofile 9964. Various settings, which can be editable, can be presented for a selectedVPN profile 9964. Examples include a name; a type; a server address; one or more domain names; or certificates for a user and a certificate authority. TheVPN profile page 9960 can also include asecret feature 9966. When activated, thisfeature 9966 can, for example, ensure thatLayer 2, Tunnel Protocol secret is enabled, although other standards or protocols may be employed here. - Referring to
FIG. 145 , activation of atab 9968 on theprofile menu 9940 can cause ahardware profile page 9970 to be presented, an example of which is shown here. Thehardware profile page 9970 can enable the enablement or disablement of one or more hardware features of theportable computing device 9050 that receives thebundle 9634. For example, activation of acamera feature 9972 can enable a camera on thedevice 9050 for operation, while deactivation of thiscamera feature 9972 can disable the camera such that the camera is not functional. Thehardware profile page 9970 can also include, for example, a Wi-Fi feature 9974 for enabling/disabling a Wi-Fi stack of thedevice 9050,cellular feature 9976 for enabling/disabling a cellular stack of thedevice 9050, a secure digital (SD)card feature 9978 for enabling/disabling an SD card feature of thedevice 9050, aBluetooth feature 9980 for enabling/disabling a Bluetooth stack of thedevice 9050 or amicrophone feature 9982 for enabling/disabling one or more microphones of thedevice 9050. Any suitable indication can be used here to indicate whether a hardware feature is enabled or disabled. - It must be noted that the
hardware profile page 9970 is not limited to the examples described above, as other suitable hardware features or physical components can be selectively enabled or disabled through thispage 9970. Moreover, any changes made to these settings can be propagated to thedevices 9050 in real-time or based on a predefined schedule. - Referring to
FIG. 146 , activation of atab 9984 on theprofile menu 9940 can cause acertificate profile page 9986 to be presented, an example of which is shown here. Thecertificate profile page 9986 can include acertificate profile listing 9988, which can show one or more certificate profiles 9990. One or more of thecertificate profiles 9990 can be part of thebundle 9634 for theportable computing device 9050. Information such as the name, description or password for a selectedcertificate profile 9990 may be presented on theprofile page 9986.Certificate profiles 9990 can be added or removed from thecertificate profile listing 9988. - Referring back to
FIG. 141 , selection of anothertab 9992 on thebundle tool bar 9934 can present a policy page 9994, which can define one or more actions to be executed in response to a detected event. An example of the policy page 9994 is shown inFIG. 147 . The policy page 9994 can include apolicy menu 9996 and apolicy listing 9998. Thepolicy menu 9996 can provide access to various policy pages, while thepolicy listing 9998 can list one ormore policies 10000 that may be active. As an example, thepolicy listing 9998 may also show the detected event that may initiate the action associated with apolicy 10000 and the action that is taken when such event is detected. - Any suitable number of policies can be implemented here. As an example, a
tab 10002 can be selected, which can present aproxy policy page 10004, an example of which is shown inFIG. 148 . Theproxy policy page 10004, in one arrangement, can identify aproxy 10006 to be used by aportable computing device 9050 that has received thebundle 9634, which may also include criteria for determining when to use theproxy 10006. For example, theproxy policy page 10004 can include a criteria listing 10008, and thelisting 10008 can present the criteria or detected event that would cause theportable computing device 9050 to use the listedproxy 10006. Theproxy policy page 10004 can also include an enablingfeature 10010, which can ensure that theportable computing device 9050 uses theproxy 10006 when the predefined event is detected. - In one arrangement, the detected event can be a permanent condition or after a specific event or events are detected or even not detected after some time. For example, the detected event here may be to direct the
portable computing device 9050 to use the selectedproxy 10006 at all times or after thedevice 9050 is detected in a certain location. Those skilled in the art will appreciate that there are a great number of criteria that can be used to direct theportable computing device 9050 to use the selectedproxy 10006. Moreover, any number ofproxies 10006 and detected event information (i.e., criteria) can be added to theproxy policy page 10004 and delivered to theportable computing device 9050 in accordance with any of the methods previously described. Priority rankings can also be used in the case ofmultiple proxies 10006 or detected events to minimize conflicts. - Another
tab 10012 can be selected, which can cause aVPN policy page 10014 to be presented, an example of which is shown inFIG. 149 . TheVPN policy page 10014 can be used to force theportable computing device 9050 that receives thebundle 9634 to use a selectedVPN 10016 if a predefined event is detected. TheVPN policy page 10014 can allow for a single ormultiple VPNs 10016. In addition, theVPN policy page 10014 can include a criteria listing 10018 that can present criteria for determining when thedevice 9050 is to use the selectedVPN 10016. For example, it can be determined that theportable computing device 9050 is not using an internal SSID, and in response, thedevice 9050 can be required to use theVPN 10016. An enablingfeature 10020 can be provided to enable or disable the VPN policy. The settings on theVPN policy page 10014 can be edited/modified and such changes can be delivered to theportable computing device 9050 in accordance with previous discussions. - Steps can be taken to ensure that
portable computing devices 9050 avoid downloading or installing questionable material, such as malware or unauthorized websites. As an example, atab 10022 from thepolicy menu 9996 can be selected, and ablacklist policy page 10024 can be presented, an example of which is shown inFIG. 150 . In one arrangement, theblacklist policy page 10024 can include ablocking list 10026, which can list blockedobjects 10028 that are not permitted to be accessed by or downloaded or installed on theportable computing device 9050 that has received thebundle 9634. Non-limiting examples of blockedobjects 10028 may include applications or Internet sites. Any suitable number of blockedobjects 10028 may be added to (or removed from) theblocking list 10026. Again, any changes to theblacklist policy page 10024 can be propagated to theportable computing devices 9050 in accordance with earlier discussions. - A
whitelist policy page 10030, in contrast, can be used to identify material that is permitted to be accessed by or downloaded or installed on theportable computing device 9050, an example of which is shown inFIG. 151 . Thewhitelist policy page 10030 can be accessed by selecting atab 10032 from thepolicy menu 9996 and can present anallowance list 10034, which can present allowedobjects 10036 that are permitted to be accessed by or downloaded or installed on thedevice 9050. Non-limiting examples of allowedobjects 10036 may include applications or Internet sites. Any suitable number of allowedobjects 10036 may be added to (or removed from) theallowance list 10034. Like theblacklist policy page 10024, any changes to thewhitelist policy page 10030 can be propagated to theportable computing devices 9050 in accordance with earlier discussions. - In one arrangement, the
blacklist policy page 10024 or the whitelist policy page 10030 (or both) can be configured such that their restrictions/allowances may take effect based on detected events (i.e., criteria). For example, the restrictions of theblacklist policy page 10024 may be set to only take effect when a user of theportable computing device 9050 is within a working location, as determined by the detection of a specific SSID. - Selecting a
tab 10038 on thepolicy menu 9996 can cause areport policy page 10040 to be presented, an example of which is shown inFIG. 152 . Thereport policy page 10040 can include a report listing 10042, which can show one ormore reporting policies 10044. Areporting policy 10044 can cause aportable computing device 9050 that has received thebundle 9634 to report one or more parameters or conditions in response to a detected event. A detected event can be any condition that can be detected and useful for reporting conditions or characteristics about theportable computing device 9050. For example, if theportable computing device 9050 determines that its signal strength (or received signal strength indication (RSSI)) has reached or is above a predetermined threshold or that the SSID in contact with thedevice 9050 is a certain SSID, then thereporting policy 10044 can direct thedevice 9050 to report its location to any suitable entity or component. - Any suitable number of
reporting policies 10044 may be part of the report listing 10042 and priority rankings can be employed here to minimize conflicts. Reportingpolicies 10044 can also be added or removed from the report listing 10042, and any edits or changes to thereport policy page 10040 can be distributed to theportable computing device 9050 in accordance with prior descriptions. Thereport policy page 10040 can also include activation/deactivation features 10046, which can be used to selectively activate or deactivatereporting policies 10044. - A
new policy tab 10048 can be part of thepolicy menu 9996. Through thistab 10048, additional policies may be added to thepolicy menu 9996. Thepolicy menu 9996 can also include a delete policy tab (not shown) for removing unwanted policies. - Referring back to the
bundle tool bar 9934 ofFIG. 141 , selection of atab 10050 can cause anapplication page 10052 to be presented, an example of which is shown inFIG. 153 . Theapplication page 10052, similar to the description presented with respect to, for example,FIGS. 114 and 121 , can include anapplication listing 10054 that can show theapplications 9316 that are part of thebundle 9634. As explained previously, in one arrangement, theseapplications 9316 can bedefault applications 9316. Selection of anedit feature 10056 can cause anapplication edit page 10058 to be presented, an example of which is shown inFIG. 154 . Here, in accordance with previous descriptions, one or moreavailable applications 9316 in an available application listing 10060 can be added to abundle application listing 10062 and, hence, thebundle 9634. Moreover,applications 9316 can also be removed from thebundle 9634 by movingapplications 9316 from thebundle application listing 10062 back to theavailable application listing 10060. These edits can be propagated to theportable computing devices 9050 containing thebundle 9634, as previously described, in real-time or based on a delivery schedule. - Referring back to
FIG. 153 , thebundle tool bar 9934 can also include anothertab 10064, selection of which can cause abundle devices page 10066 to be presented, an example of which is shown inFIG. 155 . Thebundle devices page 10066 can include a devices listing 10068, which can show all theportable computing devices 9050 that have received thebundle 9634. Thebundle devices page 10066 can also include adevices menu 10070, which can provide selections that are similar to those described with respect toFIG. 138 . Through thedevices menu 10070, theportable computing devices 9050 that have received thebundle 9634 can be managed by invoking any one of the options of themenu 10070. For example, selection of aring tab 10072 can cause each of thedevices 9050 that have received thebundle 9634 to activate a ringer or some other alert mechanism. As another example, selection of amessaging tab 10074 can cause a message to be delivered to thesedevices 9050, while selection of alocking tab 10076 and an unlockingtab 10078 can respectively cause thedevices 9050 to lock and unlock the devices 9050 (see earlier description for details). - As another example, selection of a
logout tab 10080 can cause current users of theportable computing devices 9050 to be logged out, possibly necessitating a re-authentication. As yet another example, selection of a wipetab 10082 can enable theportable computing devices 9050 to be rest to factory or default settings, which can be designed to affect theentire device 9050 or a portion of thedevice 9050. Areboot tab 10084 can be selected to facilitate a reboot of theportable computing devices 9050, while a wipe user tab 10086 can be used to reset (e.g., return to factory or default settings) one or more users associated with theportable computing devices 9050. - The tabs presented in the
devices menu 10070 can enable theportable computing devices 9050 that have received thebundle 9634 to be managed in accordance with their respective functions, as outlined above. It must be noted, however, that there may be other ways to managesuch devices 9050 above those presented here. Moreover, thedevices menu 10070 is not necessarily required to have each of the tabs that are shown here. - Referring back to
FIG. 153 , thebundle tool bar 9934 can also include another tab 10088, selection of which can cause ausers page 10090 to be presented, an example of which is shown inFIG. 156 . Theusers page 10090 can include a users listing 10092, which can show each of the users that are assigned toportable computing devices 9050 that have received thebundle 9634. In addition to presenting the users, theusers page 10090 can also be configured to enable the management of these users. For example, theusers page 10090 can be designed to enable the addition or removal of users, the level of access to content/information provided to the users or the assignment of users toparticular bundles 9634. - Referring to
FIG. 157 and moving away from the discussion aboutbundles 9634, anapplication tab 10094 can be accessed, which can cause an application interface 10096 to be presented, an example of which is shown here. The applications interface 10096 is similar in function and design to that described in relation toFIGS. 104 and 105 . That is, the applications interface 10096 can enable access to pending, available or publishedapplications 9316, as described earlier. The applications interface 10096, however, can provide an additional feature, which can be accessed by selecting an in-house tab 10098. This selection can cause an in-house application page 10100 of the applications interface 10096 to be presented. - The in-
house application page 10100 can showapplications 9316 that have been submitted for approval for publication, such as in an application repository 9130 (seeFIG. 86 ). That is, the in-house application page 10100 can serve a function similar to the one performed by the approval portal 9210 (seeFIG. 87 ). As such, a user of theadministrator portal 9215, for example, can review submittedapplications 9316, test/analyzesuch applications 9316 and determine whethersuch applications 9316 are acceptable for publication, in accordance with procedures presented earlier. In particular, the in-house application page 10100 can include astatus menu 10102 that can present thestatus indicators 9320 described with respect toFIG. 90 , which can be displayed next toapplications 9316 to show the status of theapplications 9316. - In one arrangement, the
applications 9316 that are submitted and presented on the in-house application page 10100 can be associated with the entity that is operating the portal that has implemented the interface 9880. For example, the interface 9880 may be implemented on theadministrator portal 9215, and the submittedapplications 9316 may be associated with an entity that is responsible for managing or operating theadministrator portal 9215. As a more specific example, theseapplications 9316 can beapplications 9316 that have been internally developed by the entity responsible for theadministrator portal 9215. Thus, an employee, contractor or vendor can developapplications 9316 for this entity, and theapplications 9316 can be uploaded to the in-house application page 10100 for review for possible publication and/or distribution toportable computing devices 9050. The in-house application page 10100 (and subsequent interfaces to be discussed) can enable suchinternal applications 9316 to be reviewed for publication, similar to previously described methods. - Selecting an
application 9316 on the in-house application page 10100 can cause an application information page 10104 to be presented, which can show information relating to the selectedapplication 9316. An example of the application information page 10104 is shown inFIG. 158 . This information can be similar to that described in relation toFIGS. 98 and 105 and will not be repeated here. Also similar toFIG. 98 , the in-house application page 10100 can include a publishfeature 10106 for causing the selected, submittedapplication 9316 to be published, aremove feature 10108 for rejecting the selected, submittedapplication 9316 for publication and atesting feature 10110 for sending theapplication 9316 to or removing theapplication 9316 from a testing device. Theremove feature 10108, in another arrangement, can be used to remove anapplication 9316 from, for example, an application repository 9130 or one or moreportable computing devices 9050. - A
locale feature 10112 can enable a developer of a submitted application to select a particular country or region and/or an associated language for the information of theapplication 9316. This process is similar to that outlined in the description related toFIG. 91 (see the language selection 9342). Also, selection of afiles tab 10114 can enable a user to determine which files are part of the submittedapplication 9316 and may be configured to allow for upload or removal of such files. Acomments tab 10116 can be used to enter or review comments regarding the submittedapplication 9316 and its review. - In view of the above, a system that has implemented the interface 9880 can enable an internal review of submitted
applications 9316. For example, if installed on theadministrator portal 9215, then the portal 9215 can perform at least some of the functions that may be handled by theapproval portal 9210. Of course, this feature can be incorporated into other portals other than theadministrator portal 9215, like aclient portal 9220 or asub-client portal 9225. - Referring back to
FIG. 157 , selection of ausers tab 10118 can cause ausers page 10120 to be presented, an example of which is shown inFIG. 159 . Theusers page 10120 can include a users listing 10122 that can show one or more users who are associated with, for example, theportable computing devices 9050 that are being managed by the interface 9880. In one arrangement, as has been mentioned previously, the number of users and the number of manageddevices 9050 may not be equal, as there may be multiple users for asingle device 9050 or a user may be assigned tomultiple devices 9050. Here, information about the users can be shown. - Selection of a user can cause a
user control page 10124 to be presented, an example of which is shown inFIG. 160 . Information about the selected user can be presented here, such as name, contact information and other relevant data, and can be accessed by selecting ageneral tab 10126. As an option, information about anyportable computing device 9050 to which the user is assigned can also be presented here and even managed, if so desired. In one arrangement, the user information can also be edited on theuser control page 10124. Moreover, selection of aroles tab 10128 can show the various roles associated with a particular user. A role can identify which type ofbundles 9634 may be appropriate for a certain user. For example, if the user is part of a sales team, the role of the user can identify this association and the relevance of abundle 9634 that is designed for the sales team. A user can have one or more roles, and if multiple roles exist, a priority value can be provided for the roles to show which bundle 9634 of the multiple, associatedbundles 9634 should take priority for the user. The role and related information can be also be edited by selecting theroles tab 10128. - A
user menu 10130 can allow for additional user control of the selected user. As an example, theuser menu 10130 can include arefresh feature 10132, which can direct the portable computing device(s) to which the user is assigned to automatically refresh themselves with, for example, updates, such as software updates. Theuser menu 10130 can also include alocking feature 10134 and an unlockingfeature 10136, which can respectively lock and unlock the device(s) to which the user is assigned. Locking and unlocking processes have been previously described and apply here. Alogout feature 10138 can also be part of theuser menu 10130, which can cause the user to be logged out of the device(s) to which the user is assigned, while a wipe user feature 10140 can cause at least a portion of the data or settings on the device(s) assigned to the user to return to default or factory settings. Of course, theuser menu 10130 is not necessarily limited to these features, as other features may be implemented here or themenu 10130 can have fewer features than those shown here. - The interface 9880 described to this point has focused on an entity managing its own
portable computing devices 9050. For example, a corporation can employ this interface 9880 to manage thedevices 9050 that it assigns to its employees. In accordance with the discussion presented above, the interface 9880 can be configured to permit an entity to managedevices 9050 that are associated with a second entity. As a more specific example, a first company can operate or manage theadministrator portal 9215 and can have the interface 9880 installed on theadministrator portal 9215. The first company may receive a control notification or some other authorization from a second company to manage theportable computing devices 9050 associated with the second company. In response, the first company can manage thesedevices 9050 of the second company through the interface 9880 or any of the other interfaces described above. It is understood, however, that the interface 9880 can be installed on any other suitable portal, as it is not limited to installation on theadministrator portal 9215. - As previously noted, user of
portable computing devices 9050 in any of the interfaces/systems presented thus far can be managed. In one arrangement, the management ofdevices 9050 can be supplemented through the management of users. In other words, a request for a status or for an action to be carried out for one or moreportable computing devices 9050 can be done so by managing a user of the one or moreportable computing devices 9050. This principle may be particularly true if a user is assignedmultiple devices 9050. - For example, consider the scenario where a user has been assigned multiple
portable computing devices 9050. Instead of focusing just on the management of thedevices 9050 associated with the user, the user can be managed to effect changes to thedevices 9050. Specifically, a user account or entry, similar to those presented above, can be accessed, and selections can be made with respect to this user. As a more detailed example, the user can be assigned with aparticular bundle 9634, and thisbundle 9634 can be propagated to each or a portion of thedevices 9050 assigned to the user. As another example, a messaging feature can be activated through an interface linked to the user, and a message can be generated for one or more or each of thedevices 9050 associated with the user. This arrangement of focusing on a user to managedevices 9050 can be expanded to incorporate any of the processes previously described herein. Moreover, a first entity can manage users associated with a second entity, in accordance with the principles presented above. Authorization may or may not be required to do so. - It must also be noted that content is not necessarily limited to being sent in bundles or in any sort of grouping. For example, instead of sending a bundle of applications to a portable computing device, individual applications may be distributed to one or more portable computing devices. This principle may apply to any type of content, including settings or commands.
- The preceding description is certainly not meant to be limiting, and there are several other scenarios to consider. Additional illustrations and examples that further flesh out the some of the principles and arrangements presented thus far will now be provided.
- Business professionals today expect the ability to use personal computers, smartphones and tablets of their choice while working from their offices, homes or on the road. Beyond an increased use of mobile devices, this has introduced a diversification of the types of devices having access to, and storage of, enterprise information. The increased penetration of these devices with consumers has created an expectation among users that they can load a wide set of applications on them, in addition to those dictated by their employer.
- This movement has created a new set of challenges for information technology (IT) managers who remain responsible for corporate communications, software deployment, security, policy management, integration and service levels. Moreover, since devices and employees tend to be increasingly mobile, the traditional model of managing devices on a local area network no longer suffices.
- The systems, methods, arrangements and configurations (referred to as “system” hereinafter for brevity) described herein address these new emerging needs. By combining comprehensive device management services with a fully managed application store, a unique product architecture has been created that offers both end-user flexibility and a comprehensive set of corporate controls for enterprise managers.
- These solutions can be leveraged across a variety of hardware platforms and operating systems, creating a cohesive ecosystem with remote management capability. Examples of offerings include (1) a fully managed Android solution; (2) the only multi-tiered and fully-managed application store; (3) the only multi-tiered device management and control platform; (4) platform independent and leveraged to run across a variety of hardware devices and operating systems; (5) targeted application/content delivery to specific customers; (6) full device lifecycle management, including provisioning, updating, redeploying and decommissioning of devices and users; (7) full application lifecycle management, including submission, testing, approval, deployment, updating and deletion; (8) business intelligence reporting, including telecom expense management, which can provide an immediate return on investment to enterprises; (9) immediate revenue opportunities for operating entities, as well as the ability to continue to enhance and increase monetization over time.
- The system described herein can extend beyond mobile device management offerings. For example, operating systems, such as Android, can be customized with a number of enhancements that make the operating system far more ideal for enterprise deployments. In particular, a multi-user Android solution that provides real separation between personal and enterprise work spaces is offered, and this solution is applicable to other operating systems. Complete hardware and radio control—including Wi-Fi, Bluetooth, cameras, microphone, cellular radio, and location services—and enhanced VPN support and data security can also be provided. As part of these services, complex device policy management, including VPN policy management, can also be provided. Another feature that can be offered is an enterprise quality cryptographic bootloader, which can protect device integrity at the lowest levels.
- The system described herein provides a complete and robust suite of mobile device management features. Several features will be described in more detail below: (1) tiered deployment model; (2) fully managed application shop; (3) multi-user/multi-profile support; (4) fully secured cryptographic bootloader; and (5) remote device provisioning.
- The tiered deployment model will be discussed first. In particular, the model can allow for advanced device control including: application management, content management (documents, training videos, audio guides, etc.), firmware management (from system firmware all the way up to the OS), device configuration, policy management, device lifecycle management, reporting and system diagnostics.
- Along with remote device management features, a Web-based, tiered management model is provided in which management of groups of devices may be delegated to enterprise customers, who may then further delegate the management of sub-groupings of devices within their own organizations. Within each tier, an administrator can segment users and devices into groups (for example, sales, engineering, marketing, support). As an example, each group can have its own set of device configurations, policies, and applications. Such groups, both inter-tier and intra-tier, may be controlled using a simple and secure administration portal.
- The tiered deployment model can also allow for applications, content, policies, and device configurations to be propagated down the tiered tree, while reporting and alerts can propagate up the tree. Parent nodes or portals can dictate what applications, content, policies, device configurations they wish to publish to a child (or client) node and which reports and alerts they wish to receive from child nodes. The parent node may also specify if policies, configurations, and alerts are mandatory for a child node and its decedents or if they are optional. A node is equivalent to a portal, as described above. The model may also be used to deploy new services across a wide range of vertical business markets that can greatly benefit from a hierarchical managed device structure, such as education, healthcare, and government.
- Turning to the managed application repository or application shop, small and large enterprises can now ensure that each department or specific team can have access to the most up-to-date business applications, documents, and business media. These applications can be pushed to devices or made available via an enterprise-specific, white-label application repository or shop. At the same time, enterprises can restrict access to non-business-related apps and services on corporate-owned devices as needed, and ensure that minimum security requirements are met by personal devices accessing corporate resources. Not only does this improve productivity and efficiency, but it also reduces the risk of a security breach as a result of questionable apps on individual devices. In accordance with the systems, methods, arrangements and configurations described herein, application management can be enabled across a range of devices and operating systems, so at the click of a button, for example, new content and applications can be sent to a multitude of different device types.
- Both corporations and end-users may want the ability to segregate professional and personal information. The multi-profile support described herein can allow a user to have separate profiles and associated policies for each. This allows IT to control how users access key corporate information but can also allow the user the freedom to take full advantage of his/her multimedia devices.
- Separate but related is multi-user support, where different users may share a device but login separately to retrieve all of their unique content, like applications. This is ideal for vertically-integrated companies, where a large workforce may share devices (e.g., healthcare, education, government, etc.). Multi-user support also provides an enhanced security framework by presenting secured containers in which all data and information for a user are stored, not just a limited set of personal information. This arrangement also prevents viruses or other malware in one workspace from affecting a different workspace.
- From an administrator's perspective, the user-based organization presented herein can streamline the organization of mobile devices. Rather than managing one device at a time, several devices can be grouped into one user and that user can then be assigned the appropriate policies, applications, etc. for their role in the organization. Thus the IT administrator can spend less time managing John Doe's phone, tablet, etc. and instead focus on managing John Doe as a user.
- Security and data integrity are a major concern for corporations. To ensure the integrity of devices, a fully secured cryptographic bootloader can be used with such devices. The bootloader can progressively validate each level of software. Starting at the lowest layers of the bootloader, each software component can be first validated for authenticity prior to being executed. In this way, all layers of software, starting from firmware up to the operating system layers, can be at least substantially guaranteed to be authentic and uncompromised. If a software component is found to be invalid, the boot process may fail and, and the device may attempt to revert to a back-up partition. If that partition is also found to be invalid, the device boot sequence may be halted and the device rendered useless. Other actions, such as “phoning home” or otherwise contacting an operating or managing module to obtain the latest stable software, may be available depending on requirements.
- Inventory management, software maintenance, and device customization can be costly and time-consuming operations. Remote device provisioning and lifecycle management software, however, can address these complex and essential problems. The device provisioning described herein is operating system and device agnostic—meaning that it is not limited to any platform—and can be used to install and maintain any type of software.
- Device provisioning provides an incredible amount of flexibility in deploying software. For example, devices can be deployed with a simple software load that “phones home” or otherwise contacts an authorized module after it has been deployed to download its entire or at least substantial portions of its personality. In another arrangement, the device may have its base operating system distribution pre-installed with a provisioning agent simply customizing the device with any special packages that may be needed by enterprise or consumer customers. For example, consider a generic hardware device capable of running either Android or
Windows Phone 8. There is no need for a manufacturer or distributor of the device to pre-provision devices and manage inventory levels of each device. The device provisioning process can allow devices to be deployed into the field and configured once the end user receives the device and has purchased a particular software flavor. After a device and its software have been deployed, the lifecycle management configuration can be used to deploy patches and software updates or distribute special customization packages (i.e., new device themes, etc.). This solution may work for all layers of software, from the firmware all the way up to the application level. - In one arrangement, the software provisioning and life cycle management can be simplified by automatically associating devices with software. For instance, when a manufacturer or distributor ships a tablet to a user whose company is an enterprise customer of that manufacturer or distributor, the act of the user logging into their device can identify the software associated with the device by associating that device with a node under the tree of the manufacturer or distributor. This feature may greatly simplify the provisioning infrastructure of the manufacturer or distributor, while at the same time simplifying IT department deployments. In both cases, provisioning the device becomes a hands-off scenario. Software lifecycle management can also be made easier by providing a framework for rolling out software updates over time. This ability to schedule rollout campaigns helps to mitigate risk associated with introducing new software into the enterprise.
- The system described herein presents an end-to-end solution that simplifies device and service deployment and management. In addition, this multi-tier remote device and application management solution spans all channels. Several key functional areas may be encompassed, including (but not limited to) device management, business intelligence, multi-user/multi-profile, application management, security/policy control and application shop or repository.
- This system delivers broad versatility and expansive value. For example, service providers can conduct white label deployment and provide new services and custom application shops. Enterprises can manage firmware, control access, enhance security, provide custom application shops and offer enterprise licensing models. Consumers can control content and applications, set budgets and allowances and track location and usage statistics.
- The system described herein can create new and incremental business opportunities. For example, the system can be packaged and sold in a number of different ways, either as a stand-alone solution (across a range of devices) or tightly coupled to an existing product of a manufacturer or distributor. This opens up new vertical opportunities for branded devices, and also allows manufacturers or distributors to offer the solution as a service agnostic of any particular hardware device. The ability to offer both these sets of solutions from one source creates tremendous operating efficiencies.
- In either case, the model may generate recurring revenue streams from per-user licensing, a very scalable and high margin business. Even more exciting is the number of new vertical industry opportunities this solution can create for a manufacturer or a distributor. There are a number of promising opportunities with a need to deploy technology in a way that can be tightly managed in a tiered hierarchy. Some examples include (1) enterprise deployments where the IT administrator can select different applications and policies for different user groups such as sales, engineering, etc.; (2) education opportunity where students can share a group of tablets (with multi-user support to identify their applications/content), while at the same time restricting how they are able to interact with the devices (e.g., only 10 minutes of Angry Birds per day); and (3) consumer devices that enter the workplace and where users want to preserve their personal information while still accessing proprietary work information (multi-profile). Obvious benefits to a manufacturer or distributor include expanding the relationship with IT manager customer bases, additional and recurring service revenue streams, customer acquisition and retention, as well as a number of others that stem from providing the platform on which to launch future products and services.
- The following description presents additional details of the functional areas noted above. For example, for device management, the following points may be relevant: (1) fully-hosted, tier-based deployment model for remote device management; (2) optional cloud-based (or network based) or on-site deployment (for customers with high security restrictions, such as the government or military); (3) remote device settings configuration; and (4) enterprise e-mail configuration.
- As another example, for application management, the following points may be relevant: (1) hierarchical management; (2) whitelisting or blacklisting of applications; (3) allowing or disallowing on-device application installations; (4) remote application installations, removals or updates.
- For application shop or repository, the following points may be relevant: (1) white-label, hierarchical application shop; (2) full application life-cycle control, including portals for developers, testers and approvers; and (3) application license management, such as free, bulk, single use and license revocation and billing controls.
- For multi-user/multi-profile, the following points may be relevant: (1) ability to remotely manage aspects of multiple users and/or multiple profiles; (2) automatic account provisioning; (3) addition or removal of users; and (4) allow corporate access to one profile while maintaining personal information in another profile.
- For policy control and security, the following points may be relevant: (1) simple enforcement of IT security and policies; (2) rule-based control of 3G/4G modems; (3) security policies, like rule-based VPN control, password rules, LDAP/Active Directory integration, full cryptographic software validation, secure download of components, disable secure digital (SD) booting and disable device rooting; and (4) security controls, like addition/removal of users, revocation of network access, device locking, logging out of users, disablement of user's ability to enable side-loading of applications, selective or complete wiping of devices (including for both enterprise and personal devices), browser security settings, password resets, role-based access to interfaces, operation in network address translation (NAT) environments and guaranteed message delivery.
- For business intelligence, the following points may be relevant: (1) suite of standard and custom reports may be available; (2) application usage tracking; and telecommunications expense management, like usage of voice, data and short message service (SMS).
- This next section will focus on device management. The system described herein offers comprehensive, large-scale, device management services, including the ability to push applications, perform firmware updates, send alerts, optimize telecom expenses, set device options, lock and unlock devices, wipe device of user data, and force reboots. As such, the system enables the ability to remotely monitor and manage devices in the field.
- For example, fully managed devices may be capable of installing firmware, bootloader, custom supplicants, kernel drivers, operating systems, operating parameters/policies, documents, media, arbitrary files, and certificates from cloud-based servers. Such servers can also verify devices, query device state, and send messages to one or a group of many devices.
- Some exemplary features are listed here: (1) remote installation and/or removal of applications; (2) enable and/or disable applications; (3) allow and/or disallow user-initiated application installation; (4) enable and/or disable side loading of applications; (5) enable and/or disable loading applications for SD card; (6) listing of application per user and/or device; (7) listing of all applications deployed in an enterprise or other entity; (8) reporting application usage information; (9) configure password complexity, such as length, age, special characters, etc. (10) automatic wiping device in view of multiple password failures; (11) remote password reset; (12) VPN configuration; (13) VPN policy control; (14) wireless or Wi-Fi configuration; (15) wireless or Wi-Fi policy control; (16) proxy configuration; (17) proxy policy control; (18) encryption support; (19) wipe user data or perform a complete wipe of device; (20) remote lock and unlock of device; (21) remote logout of device's current user; (22) query device's hardware and system state, such as subscriber identity module (SIM) operator, wireless or Wi-Fi status, connected SSID, Bluetooth status, SD card, GPS, etc.; (23) enable and/or disable device peripherals such as wireless or Wi-Fi, cellular modem, Bluetooth, camera, SD card, GPS, etc.; (24) aggregate devices into policy groups so that enterprise can enforce a set of approved configurations; (25) support separate profiles per user; (26) ring or contact device for help in locating the device; and (27) location of device.
- This remote device management support can provide IT departments with unparalleled control and management over their mobile devices. It may allow IT departments nearly complete remote configuration of the device and simplifies the process through configuration profiles and automatic updates.
- From an operations view, device settings may be associated with users. Each user may be associated with a bundle via an IT-specified user filter. A bundle, as previously explained, can be a set of applications, policies, configurations, and data associated with an IT-defined group. When a user's device logs into the system, the user's bundle contents and configurations may be pushed to the device. The system client can use the bundle configuration information to set device policies, configure device settings and download any required applications and data. In this manner, an IT administrator can create, for example, a small number of bundles to control a large number of devices for a vast number of users. As an example, by assigning a new user to a predefined profile, the administrator can instantly apply appropriate policies to all of that user's devices.
- The servers of the system can interact with a managed device client that may reside on each monitored device. This client software can be designed for easy portability and integration, turning a wide range of devices into fully managed devices. This applies to Android and other operating systems.
- As there is no single industry standard for mobile operating systems, the solution described herein can be designed to support multi-platform management of various smartphone and tablet operating systems. In addition to a fully managed Android client software, similar functionality can be provided as a third party application, downloadable from the Android Market, for example. This Android version may be restricted to capabilities provided through Android's public APIs; however, it still meets or exceeds the specifications of any other tier-1 mobile device management provider and can be suitably expanded to accommodate other features. It is installable on virtually any Android device. In addition to Android, the system is designed to support iOS, Blackberry, and Windows Phone. Like other players in this part of the mobile device management space, publicly available APIs from the respective operating system vendors can be used to control these devices.
- A multi-user framework, as described herein, may provide the most secure encapsulation of enterprise data. Other solutions may claim to encapsulate personal data in a secure container, but these methods only address security concerns for data saved to disk. Since these other personal information containers run within the context of an unmanaged environment, the device is still vulnerable to Trojan and virus exploits that can sniff network traffic, track location, report network configurations, etc. The solution described herein can expand the secured container to the entire user space, giving IT administrators the ability to fully lock down and control the enterprise space, while allowing users to have a fully unmanaged account as well. When switching between accounts, this solution may stop running operating system activities and services, first giving them a chance to persist data, in order to ensure a secure environment for each account. The data for each account may also be sandboxed or isolated so that no other account can access it. Additional information on multi-user/multi-profiles can be found in U.S. Ser. No. 61/411,800, which is incorporated by reference herein in its entirety.
- To optimize device flexibility and increase ease of user management, user profiles do not need to be created on a per-device basis and are not necessarily tied to any particular device. The system can support both a proxy connection to the enterprise's directory services server (LDAP, Active Directory, etc.) and a hosted directory services model. An enterprise user's login credentials may be authenticated by the system's servers when he/she signs in to the device. If the device does not have a network connection available when the user logs in, then the user may be authenticated against a local authentication database. If a user is authenticated against the system server and the user does not currently have an account on the client device, the client device may create a local account for the user, download the user's configuration (policy, device settings, applications, media, documents, etc.) from the server and apply the configuration for the user. As such, it is not necessary to manually create user accounts on devices or in the system network or cloud.
- A feature of the system's device management framework is its provisioning infrastructure. This allows custom setup of new devices with little to no work on the part of the customer. Upon first boot-up and initial connection to the network, a device can securely connect to the back-end via IP and can contact the provisioning service. The server can respond to the new device with pre-determined provisioning information, such as required certificates, device settings, applications, and, if necessary, updates for firmware. With this automated installation and registration procedure, there is little burden on the end user. It also greatly simplifies the logistic of deploying devices for enterprises and device manufactures.
- As explained earlier, an administrator can manage device configuration globally, by groups or by individual devices. The use of bundles and roles within the system management consoles may enable easy configuration and management of thousands of devices with a very limited number of IT generated configurations. Additionally, as the system may be hierarchical in nature, corporate IT can push down policy and configuration requirements to the company's divisions quickly and easily while enforcing compliance. This interface may allow administrators to maintain consistent policies across all the devices in their enterprise.
- Another feature of the solution described herein is its ability to perform remote firmware and software updates without placing any burden on the end user, meaning limited or no user interaction. Updates may be applied through staged campaigns whereby they are first applied to a small sample of the customer base to validate the upgrade prior to global rollout. Additionally, this same feature allows for user profile-based and regionally designated updates. As with the automated provisioning method, devices that “heartbeat” with outdated firmware/software can automatically receive updates. The system also supports optional firmware updates that can be applied at the user's discretion. All updates can either be silent or with notification to the user.
- The system can apply content management rules to firmware updates to ensure proper lifecycle management. IT administrators may have full control over the firmware deployed in their enterprises. For example, such administrators have the option to automatically promote authorized software to “production ready” status, or they can opt for a trial run on their group of user acceptance test devices. Once the administrator approves and releases the software, it then may become available for production-fielded devices. Finally, various reporting mechanisms can allow administrators to quickly determine the current software levels or configurations of their deployed devices.
- The solution described herein can also provide comprehensive application and file management both on the Web services end with a complete application store or repository and on the client side with control of applications and files on devices. A more extensive list of application management features is listed here: (1) hierarchical application and data management; (2) system nodes can publish applications and enterprise data to their child nodes; (3) child nodes can accept or reject applications and enterprise data from parent nodes; (4) each node in the system tree can be individually branded by entity or organization; (5) licensing and fees can be customized per node, incentivizing re-seller networks; (6) allow and/or disallow application execution (e.g., whitelisting or blacklisting); (7) allow and/or disallow on-device application installation; (8) remote installation, remote removal and/or remote updating; (9) application installation, application removal and/or application update reporting; (10) reporting all or a portion of applications deployed in the enterprise; (11) application usage tracking and statistics; (12) full role based application life-cycle facilities; (13) developer portal to allow developers to: (a) test applications prior to publication; (b) publish their applications to one or more nodes; (c) define licensing and fee structures; and (d) track sales and revenue from their applications; (14) application approval portal to allow nodes to evaluate and track applications that developers have submitted for publication; (15) finance portal to allow node owners to track revenue generated by their node; (16) administrator portal to allow full mobile device and application management; (17) consumer portal that provides a simplified management interface client that allows end user to buy or add new applications; and (18) application licensing, such as for a fee, for free or bulk download.
- The system also provides for a white-label hosted application store. This feature enables any suitable entity to have its own application store, which can be managed by another entity. As an example, it can provide a Web interface for managing application packages and for developers to upload, describe, and test their software. The client-side interface can also allow customers to browse and search for applications and then go through a checkout process to download and install them onto the device. In one arrangement, a device may be configured such that it may only see applications that are suitable for that device type and available to the node that it is associated with.
- A managed application repository or store may be ideal for enterprises and service providers that need to deploy custom applications, impose specific licensing terms on applications, and have complete control over the deployment, update, and revocation of applications on customer devices. In one embodiment, the platform described herein can maintain a hierarchical level of content control where content entered at various nodes may not be accessible by sibling or parent nodes. A sibling node is a node that exists on a level that is equivalent to another node and may have a parent node that is similar to the other node. The content owner can determine when and which lower level nodes may access the content. The hierarchical structure can be unbounded and can support any level of organization or deployment complexity. Several types of portals for application management focused on different types of user, enterprise, SMB, and family can be provided, although at least some portals may use the same web services APIs, simplifying implementation and customization. These features may be inherent in the system and can be configured real-time in a cloud environment or prepackaged in an enterprise appliance bundle.
- Developers from around the world can sign up with a developers program through a developer information portal or application developer portal and can obtain a license and supporting documentation. The application developer portal may offer mechanisms for developers to publish and manage their applications.
- Standard applications can be uploaded through the application developer portal for beta testing, for example. In particular, the developer or some other suitable entity may enter key attributes of the application (description, graphics, etc.), and can upload the application components. At this time, the developer can install the application via the application developer portal on his/her personal sandbox device. When they are ready, developers may submit completed applications through this portal into a central pool of applications or directly to a specific node.
- At this point, the application may be available in the approval portal for the node the application was published to. The node owner can now do a functional check of the application and can make sure the application works correctly. Even though an application may run in a sandboxed environment, the check can ensure that the application runs as advertised and is not attempting to subvert the system.
- Following that, the application can be made available to the node administrator, whose managers can use the administrator portal to approve or reject an app for its subscriber base. Service providers can define a policy specifying that applications should pass through to customers or whether they need explicit approval first. The hierarchical architecture of this process also allows administration portals to be offered to other entities as a service.
- The system described herein can also add support for multiple users on a single device. User switching can be activated, for example, via a widget, app or lock screen. The widget, which can be a user interface element that covers all or part of a display, may sit on the desktop/home screen and can allow users to easily change to another profile/user. The application can be launched from an application launcher and can allow for personal workspaces to be created, as well as switching. Enterprise user accounts may be automatically created once the enterprise user logs in and can be authenticated against the system servers. Also, non-managed/personal users can be added with, for example, restricted permission levels to ensure that they cannot add or remove other personal accounts. For instance, a child's account would not be able to remove a parent's account. In one arrangement, enterprise accounts may only be removable by an enterprise administrator. The lock screen can allow a user to log into his/her account, even if the device is currently locked by another user. At least some or all of the applications and services may be given a chance to persist their data prior to users being logged off. Each profile (i.e., work, personal, kids, etc.) may have separate data, applications, settings, wallpapers, customizations, logins, etc. The multi-user framework may also provide support for shared, pre-installed system applications and user or administrator-installed, shared third party applications.
- Multi-user support can allow users to maintain multiple profiles, such as one for enterprise use and another for personal use. This may provide IT organizations with the ability to manage devices deployed throughout the enterprise, while giving control to users for their personal profile. For example, employees can use their devices on campus and off with separate profiles for work-related applications and personal applications. Each profile can be completely sandboxed from other profiles to ensure the integrity of enterprise profiles. Also, the act of switching profiles may completely bring down all running applications and services, thereby ensuring that any Trojans or viruses that may have been running under a user's personal profile are not active in an enterprise profile. On enterprise profiles, the administrator can manage each user profile, including locking users and wiping user data (e.g., email credentials), for instance, when a device is lost or needs to be replaced.
- Multi-user support may also provide IT managers with the ability to conduct all of these actions without impacting the personal profiles of company employees. IT managers can conduct firmware updates, application updates, etc. without interfering with the personal data of an employee.
- The system described herein may enable IT administrators to manage device deployments and monitoring through a modular policy management interface, examples of which have been previously presented. Policy control can be broken up into two distinct areas: server side policy control and device side policy control.
- Server side policy control may allow an administrator to define the constitution of a deployment group. The system's backend intelligence can manage the synchronization of that configuration to the devices within the managed domain. This feature can allow for phased rollouts of changes made by IT departments. Other policies in the system may be used to enforce scheduled notifications of compliance information or to send software update availability notifications.
- On the device side, the policy manager is not necessarily limited to a small, predefined set of policies, but instead continually monitors information flowing through the operating system framework and can use that information to allow arbitrary, complex policies to be defined and enforced by the IT administrator. The policy manager may also interact with a reporting engine to implement scheduled reporting of device performance or configuration metrics, including application usage and installed application lists. Policies can be created for reporting, device logging, alert notifications, and device directives/actions. Multiple policy templates may be provided to enable quick reuse and testing of a policy, along with automatic generation of policies based on system configuration. For example, the system may use the assigned template for default device configurations when new devices are added to the system. This feature can instruct a device to take on a different policy based on the current group to which the device is assigned. Policies may be integral to configuring and enforcing rules on password complexity, application whitelists, data encryption, etc.
- The system described herein may provide a broad range of fine-grained policy control options. For instance, policy controls may exist for the following objects: (1) password configuration, including minimum and maximum password length, password complexity (minimum number of alpha characters, numeric characters and special characters), maximum password age; (2) resetting password; (3) maximum password attempts before automatic wiping of account or device; (4) enable and/or disable encryption for application data on both local memory and SD card; (5) enable and/or disable applications; (6) whitelist or blacklist applications; (7) enable and/or disable hardware, such as Bluetooth transceivers, Wi-Fi transceivers, cellular transceivers, GPS modules, SD cards and cameras; (8) enable VPN when not on an enterprise network; (9) enable proxy when on an enterprise network; (10) enable and/or disable client device reporting over cellular networks; and (11) enable and/or disable location services.
- The custom bootloader modifications can allow for a series of enterprise requested features. Examples of such features may include the following: (1) ensuring device integrity and fail-safe start-up; (2) validation of the operating system kernel and system file sets as part of the boot process; (3) authentication to ensure that the device remains hardened and has not been rooted; (4) active and standby bootable partitions to prevent device bricking and facilitate in-filed recovery in the event of failure; (5) disallowing booting from an SD card; (6) managing key press detection for alternate or recovery boot modes; and (7) processing stages or pending updates, such as IFWI (microcode) that require a device restart.
- The system described herein may also provide an extensive set of features that enterprise IT organizations require from devices deployed in their organizations. Examples of such features include data encryption, device and user wipe, VPN, device configuration, Web proxy setup and certificate installation.
- IT organizations may require support for both VPN and proxy support. VPNs can be used to allow devices to connect securely into the corporate network, and a proxy can be used to support certain enterprise network configurations. As an example, the system described herein can support the following types of VPNs: (1) L2TP/IPsec pre-shared key based VPN; (2) L2TP/IPsec certificate based VPN; (3) L2TP only VPN; and (4) PPTP only VPN.
- The system described herein can also proxy support to allow devices to access the Internet when on corporate networks. Additional VPN clients or proxy support can be integrated to support various requirements.
- Configuring roaming permissions on thousands of devices can be a time-consuming task usually involving calling a cellular provider, providing account details, and changing permissions. The system can simplify roaming management for IT organizations, allowing administrators to easily enable and disable roaming on a device through the system console.
- The system described herein can also enable a wide range of tools to ensure enterprise data security. For example, the system supports remote device wipe, for both individual users as well as a complete device wipe to ensure corporate data is removed from lost or stolen devices. The system can also provide support for data encryption to ensure that corporate data cannot be hacked, even if a lost or stolen device cannot be wiped. Remote lock and unlock, password policy configuration, hardware control and the ability to enable/disable applications are also features supported to protect corporate data.
- Security implementations can follow industry standards and best practices for securing servers, data and communications. Security is not an add-on but rather a core precept underlying the system design. It manifests itself in several areas.
- In particular, customer and administrative Web interactions are performed, for example, via HTTPS using X.509 digital certificates for authentication and key exchange followed by a login/password scheme over the established covert communication channel. In one arrangement, only password hashes may be stored within the system so that passwords cannot be retrieved. Passwords may be salted (adding a string of random characters) and hashed with an SHA-256 algorithm, maximizing security. The system described herein can be designed to support various other single sign-on integration options. If desired by the customer, remote authorization services (such as OpenID, RADIUS, etc.) can be easily enabled and configured on a per node basis.
- Post-authentication access control can be role-based. For example, this means that an administrator who manages the allocation of applications across multiple device types may not have access to customer billing data. Likewise, in one arrangement, software and hardware testers may only have access to their development devices and cannot affect production devices or configurations.
- Application and firmware packages may be signed and encrypted. For web service access, calling parties may submit an API-KEY along with each web service call. An API-KEY can be similar to a login and password for machine-to-machine communications. Data can be stored on secured, load-balanced, firewalled servers. Applications on customer-facing portals may allow customers to view past usage/billing/download data or delete accounts and thus remove all prior records.
- Scalability and fault-tolerance have been considered in the architecture of the system described herein. Services can be on dedicated machines at secure commercial hosting centers, such as Rackspace. Each center, or point of presence (POP), may contain a load balancer that can distribute traffic to multiple web servers and application servers. The back-end database holding customer and appliance records can be replicated within each POP, ensuring that records shall not be lost in the event of a failed server. In addition to being linearly scalable, the database solution can also replicate across datacenters, enabling both high availability and geographic preference to clients. A global load balancing solution can enable clients to connect to a POP that is either closer to their physical location or that may provide the best performance. The near-real time replication of data across all POPs can ensure consistent behavior for clients connecting to different POPs.
- Load balancing can serve several key functions. For example, in addition to allowing increased scalability by distributing the load among all available servers, load balancing can provide for increased fault-tolerance since non-functioning systems may be taken out of the balancing pool. This same mechanism can allow for uninterrupted upgrades as machines can be taken out of the pool, upgraded, tested, and then replaced.
- Services may be hosted at multiple POPs, not just for geographic proximity to various customers, but also to handle the case where an entire POP fails. For example, the POP may lose power due to a long-term power outage. In this case, a client device may lose connectivity to its preferred POP, but can do a DNS lookup to retrieve SVR records that identify a prioritized list of alternate POPs.
- The system described herein was designed to scale to support millions of deployed devices across potentially hundreds or thousands of service providers. The services architecture is designed for fault tolerance and high scalability. Web/application servers may provide the front-facing interface that communicates with replicated databases at the back end. The servers may be located behind a firewall and load balancer. The firewall can redirect certain service requests to specific service providers, if needed. For further scalability during peak traffic periods (e.g., system-wide firmware or software updates), downloads can be seamlessly transitioned to a distributed caching service. The system may scale on demand to handle any amount of traffic and peak surges and provides a global reach and intelligent routing to improve users' experience worldwide.
- To ensure efficient management of infrastructure, the system can be centrally monitored using a suitable IT infrastructure monitoring systems. The system may take advantage of the Java enterprise monitoring and management APIs to expose various runtime values through the Java Management Extension API (JMX). Custom-built scripts can be used to monitor all aspects of the system by reading both JMX exposed values directly from the application, as well as SNMP values exposed from the operating system. The scripts can enable these values to be aggregated, monitored and exposed with levels of escalations and built-in event handling. Additionally, custom configurations can be used to help monitor performance thresholds across all of the core services and physical memory, CPU, and other components of the server.
- Network operations center (NOC) management services can provide reporting of network traffic, automatically alerting clients when performance falls outside of parameter. Network traffic can also be managed and proactive action can be taken to improve performance.
- In one arrangement, the system described herein can provide intelligent monitoring and reporting of all managed devices. Operators can quickly view statistics on individual devices as well as deployment groups. Active monitoring and reporting on devices may be necessary to maintain a stable and consistent deployment of devices. The system, for example, exposes web service based APIs that integrate with third-party monitoring and management systems. Both collected statistics and configuration changes can be made through these APIs.
- As an example, online reports of any suitable data may be generated on demand in near real-time from data that is logged in hosted databases. The granularity and format of the data presented can be specified by any suitable entity.
- Reports may be viewed for an individual device and global or group views to understand trends across a broad user base. The report outputs may be sorted and filtered. Capabilities for printing, exporting, or broadcasting reports to team members may be included. In addition, operators may configure various types of data collection policies that may then be disseminated to the devices.
- There are numerous types of data that can be reported and the following are some examples: (1) total number of deployed devices; (2) total number of devices online; (3) average device uptime or time active; (4) average device critical exceptions (crashes); (5) application exceptions; (6) total active device sessions; (7) history of sessions per device; (8) history of user access (such as in a multi-user environment); (9) history of connection states for a device; (10) history of messages sent to a device, and aggregate views by message sender; (11) total application records by device; (12) application usage (aggregate enter/leave of focus on application); (13) application installation and removal history; (14) current firmware and software version; (15) previously applied updates (update history with date/time stamp); (16) boot records (with firmware/software version and date/time stamp); (17) group assignments (i.e., which individual devices are assigned to which groups); (18) roaming devices; (19) cellular usage and overages; (20) cellular data usages and overages; (21) SMS usage per device and overages; (22) device locations; (23) history of device wireless or Wi-FI connection status and signal strengths; (24) system resource availability (monitoring availability of CPU, memory, disk, etc.); and (25) snapshot view of active processes in the system. Of course, those skilled in the art will appreciate that there are other types of date that can be reported.
- Reporting elements may also include features for support services, such as device location tracking, network configuration, device specifications, Wi-Fi status, screen capture, etc. As noted above, these are just a few of the reporting possibilities with the system. The system device reporting and policy engine may track numerous event and state variables to be able to report complex information that may be of specific interest to different market segments. For instance, the reporting infrastructure can easily be used by cellular providers for network optimization by mining dropped call data gathered on both device and network sides to determine network performance issues and optimizations. Using the system's bundle capability along with the simple reporting query generator, an operator can enable and disable this type of reporting for select markets or devices. A large number of permutations and options for reporting provided by the system reporting engine is available.
- Using the expense management features incorporated into the system described herein, companies are able to, for example, generate reports showing data, voice and SMS usage associated with each different profile of a device. These reports can help allocate expenses associated with business and personal use or different business users. The system may also support (i.e., generate and transmit) notifications to users and administrators if preset usage limits are exceeded. The expense management service can allow IT departments to keep expenses in check.
- As explained above, a system can be provided in which portable computing devices can be managed. As also previously explained, this management can extend to the type of content that the portable computing devices can receive, including various settings that may be applied to the devices. While many of the examples presented up to this point have been done so in enterprise environments, it must be understood that the arrangements herein are not so limited. For example, a parent may use the embodiments/methods described herein to manage the portable computing devices of his/her children. Similarly, a teacher may employ such embodiments/methods to manage the portable computing devices of his/her students. In fact, these embodiments/methods can be integrated into any suitable relationship where one party or entity maintains at least some supervisory authority or responsibility with respect to another party or entity.
- One example of such a relationship that can rely on the embodiments/methods described thus far will now be presented. In particular, a supervisory portal arrangement will be described in which an administrator (a parent) can manage the portable computing devices of child device users (a spouse and several children). The administrator may manage these portable computing devices through an administrator portal, similar to the one described in
FIGS. 87 and 88 . The managed portable computing devices can be similar to theportable computing devices 9050 presented inFIG. 86 and can heartbeat with a managed services platform, like the managed services platform 9010 ofFIG. 86 . - As such, a parent, in this arrangement, can enable content to be delivered to the portable computing devices similar to that described above. For example, as a part of content, a parent can enable the transmission of directives or commands to the portable computing devices. The supervisory portal system can provide a user interface to facilitate remote monitoring or control over one or more child devices. The administrator of the supervisory portal can determine what content is transmitted to one or more child devices. As an example, the administrator can selectively restrict and approve the third party application repositories that can be visited by a child user. In one arrangement, the administrator can obtain updates and download applications. In some instances, the administrator can send directives or have directives sent to have such items installed on one or more child devices.
- The supervisory portal system does not change the general operation of the managed services platform, as described above. For example, the supervisory portal system provides a user interface to facilitate communications between an administrator and the managed services platform. For example, a DMS server can receive inputs from the administrator as to controls, policies and/or restrictions to be imposed on child devices. In response, the DMS server can send directives to the affected child devices to impose the policies in accordance with the heartbeat feature described above. The child devices can be communicatively coupled to the DMS server. In one arrangement, if the child devices violate or attempt to violate any of the imposed controls, policies and/or restrictions, then the administrator can be alerted of such act.
- An administrator can flag or block applications and other content that the administrator does not want the child users to have. An administrator can identify such applications or content to ensure that unauthorized or questionable applications not be downloaded to a child device. This is similar to the blacklist policy described above.
- Again, it will be understood that embodiments of the supervisory portal system are not limited to sending directives to child devices. Indeed, the DMS server can direct the distribution or dissemination of other content to child devices. For example, a parent, as an administrator, can also enable the delivery of bundles or individual applications and firmware packages to the child portable computing devices similar to procedures described above. Alternatively, the administrator can also direct the child devices to download applications or content.
- In addition to these examples presented above, the administrator (e.g., parent) can also manage portable computing devices similar to that described above. For example, an administrator (e.g., parent) can cause messages to be generated and delivered to child devices. The administrator can wipe data from child devices. The administrator can perform remote logouts and logins on child devices. In fact, all of the description relating to the management of devices as described previously is applicable to the supervisory portal systems and methods. The inputs will be processed by the DMS platform 9010 or similar system.
- With the above understanding in mind, a user interface and capabilities of the supervisory portal system will now be explained with reference to
FIGS. 161-171 . While the drawings associated with the supervisory portal system depict a user interface that is configured for use in a family environment, it will be understood that embodiments are not limited to such an application - A user of the supervisory portal system can access a portal for carrying out the features described herein. Such access may be by way of any suitable portable computing device equipped with an appropriate software application, including from any child device. A
user identification page 10300 can be presented to the user, such as on the display of a computing device.FIG. 161 is an example of one possibleuser identification page 10300. Theuser identification page 10300 can have any suitable form, content and features. Thus, it will be understood that theuser identification page 10300 shown inFIG. 161 is provided merely as an example and is not intended to be limiting. Theuser identification page 10300 can present on or more user interface elements. The user interface elements can have any suitable form, such as a graphical user interface element. - In one embodiment, the user interface elements can include a
graphical member identifier 10302 for each member associated with the supervisory portal network or possibly for just those particular group members who are authorized to use the particular device being accessed. Thegraphical member identifier 10302 can be an image, photograph, icon, symbol, logo, name, nickname, screen name, initials, member status, associated number and/or other identifier. Thegraphical member identifiers 10302 can be customized by the administrator and/or by the child members of the supervisory portal system. In one embodiment, thegraphical member identifiers 10302 can include amember photograph 10304 and a memberfirst name 10306, as shown inFIG. 161 . Thegraphical member identifiers 10302 or other user interface elements can accept a user input in any suitable manner. For example, a user may use a keyboard, keypad, display, touch screen, button, joystick, mouse, microphone or other device to select the appropriategraphical member identifier 10302. Naturally, any computing device can be equipped with such devices. - Again, embodiments herein are not limited to the use of
graphical member identifiers 10302 to identify the user. Indeed, the system devices can be adapted to accept biometric command inputs to permit identification of the user. As such, retinal, iris, facial, palm, fingerprint and/or voice recognition technologies can be implemented to identify a user. Thus, the device can include a suitable camera, scanner or sensor for retinal, iris, facial, palm and/or fingerprint recognition. Other user identification techniques can be used to identify a user, such as manual input of a user name by a user. - The
user identification page 10300 can include atitle identifier 10308 of the supervisory portal system. Thetitle identifier 10308 may appear on one or more of pages in the supervisory portal system. Thetitle identifier 10308 can be customized by a system user, such as the administrator. - Once the user is selected, a
user authentication page 10310 can be presented to the user, such as on the display of a computing device.FIG. 162 is an example of one possibleuser authentication page 10310. Theuser authentication page 10310 can have any suitable form, content and features. Thus, it will be understood that theuser authentication page 10310 shown inFIG. 162 is provided merely as an example and is not intended to be limiting. - The
user authentication page 10310 can be configured to receive suitable user authentication to unlock the portal so as to permit access thereto. For example, theuser authentication page 10310 can provide user interface elements to receive a user authentication input, such as a field to receiveusername 10311,password 10312, pass code and/or personal identification number. The user authentication input can be expressed in any suitable form, including a verbal command, text, object, pixel, or the like. Alternatively or in addition, biometrics can be collected by a system component to authenticate a user. Accordingly, retinal, iris, facial, palm, fingerprint and/or voice recognition technologies can be implemented to authenticate a user. Thus, the device can include a suitable camera, scanner or sensor for retinal, iris, facial, palm and/or fingerprint recognition. The user input interface can include a display sensor for entering items or drawing patterns on the display of the system device. The user input interface may include a microphone for voice recognition. Of course, the authentication can be combinations of any of the above as well as other things. The supervisory portal system can be configured to store authentication credentials, such as the username and/or password, if desired. - The
user authentication page 10310 can have any suitable form and can present any suitable content. For instance, one or more of the graphical identifiers for the selected user can be presented, including any of those described previously includinggraphical member identifier 10302. Amember title identifier 10314 of the selected member may also be presented. - In some instances, an identifier of non-selected members may be displayed. For instance, the graphical member identifiers of the
non-selected members 10302′ can be presented on theuser authentication page 10310 in an offsetting manner to indicate non-selection. Such offsetting can be achieved in any of a number of ways, including, for example, by having the graphical identifiers appear faded, as is shown inFIG. 162 . - If the user's inputted credentials are authenticated, then a
home page 10320 can be presented to the user.FIG. 163 is an example of apossible home page 10320. Thehome page 10320 can have any suitable form, arrangement, content and features. Thus, it will be understood that thehome page 10320 shown inFIG. 163 is provided merely as an example and is not intended to be limiting. Thehome page 10320 can display one or more identifiers of the authenticated user, including any of thegraphical member identifiers 10302 indicated above. Here, the user'sphotograph 10304 andname 10306 are presented on thehome page 10320. - At this point, it should be noted that the description will be primarily directed to the supervisory portal system from the standpoint of the administrator. Aside from the
user identification page 10300 and theuser authentication page 10310, the following supervisory portal pages described herein may not be available to child members of the supervisory portal system. It should be noted that there can be one or more administrators of the supervisory portal system. For instance, in a family setting, one or both parents can be administrators. - The
home page 10320 can present different supervisory features of the supervisory portal system that are subject to the administrator's review and/or control. As an example, the supervisory portal system can allow the administrator to view, access, monitor and/or control applications, devices, usage, location, application wish list, and allowances. A page can be provided for each of these supervisory features. Each of these supervisory features will be described in detail below. Again, these supervisory features are provided as examples and embodiments are not limited to these specific supervisory features. There may be fewer or additional supervisory features available to the administrator. - From the
home page 10320, the administrator can select any of the supervisory features of interest for further review. Each of the supervisory features can be presented in any suitable manner. For instance, the supervisory features can be presented on thehome page 10320 by a respectiveuser interface element 10322. Each supervisory featureuser interface element 10322 can present at least some information can be provided as to that supervisory feature. In one embodiment, relevant information for all child devices can be presented for each supervisory feature. It will be appreciated that the various child devices of the supervisory portal system may have different associated applications, settings and controls. As an example, on the supervisoryfeature interface element 10322 forapplications 10322 a, the applications installed on all child system devices can be displayed. The relevant information can be presented in any suitable form. For example, an icon and/or the name of each application software program can be presented. - In some instances, it may difficult or impossible to present complete information for all child users under each supervisory feature
user interface element 10322. In such case, the presentation of the information under the supervisoryfeature interface element 10322 can be modified. For instance, a subset of the information may be presented, depending on the available space afforded by the supervisory featureuser interface element 10322. In such case, a subset of the total information will be presented. The subset can be determined in any suitable manner, and may be performed automatically, such as by predefined instructions or protocols, or manually by the user. Alternatively, the size of the information can be changed to fit appropriately within the functionality element to minimize or eliminate the need to present a subset of information. Another possibility is that the format in which the information is presented can be changed. Still another possibility is that scroll bars (not shown) can be added. - The
home page 10320 can be altered by the administrator. For instance, the administrator can alter thehome page 10320 such that each supervisoryfeature interface element 10322 can present information for a subset of the child users, including information for a single child user. To implement such alterations, child user filters 10324 can be presented on the home page. The child user filters 10324 can be provided in any suitable form, including any of those described above. As shown inFIG. 163 , there can bechild user filter 10324 for each child user, which may be the same as thegraphical member identifiers 10302 presented on theuser identification page 10300. - If the administrator selects one or more of the child user filters 10324, then information for only the selected child user(s) is presented under each of the supervisory feature
user interface elements 10322. The appearance and/or content of each of the supervisory featureuser interface elements 10322 may change based on the selection.FIG. 164 shows an example of ahome page 10320 in which one of the child user filters is selected. As shown, the content of the supervisory featureuser interface elements 10322 has changed, showing information in eachelement 10322 pertaining only to the selected child user. - If one or more child user filters 10324 are selected, the selected child user filters 10324′ can be offset from the non-selected child user filters 10324″ in some manner to note the selection. For instance, the selected child user filter(s) 10324′ can be enlarged relative to the non-selected child user filter(s) 10324″, as is shown in
FIG. 164 . Alternatively, the non-selected child user filter(s) 10324″ may be made smaller in size and/or appear faded relative to the selected child user filter(s) 10324′. Still alternatively, the non-selected child user filter(s) 10324″ may no longer appear on thehome page 10320. - For greater information on any of the individual supervisory features, the administrator can select one of the supervisory
feature interface elements 10322 using any suitable user interface technique, including any of those described herein. When such a selection made, a specific supervisory feature page can be presented to the administrator. Various specific supervisory feature pages will be discussed below. Again, the specific supervisory feature pages described herein are provided as examples and are not intended to be an exhaustive list. - It should be noted that additional user interface elements can be presented on the home page and/or on any of the specific functionality pages. For instance, user interface elements for access to an application repository, devices, applications on the administrator device, and logout. For example, a “SHOP”
button 10326 can connect the user to an application repository, such as via a suitable communication network. A “DEVICES”button 10328 can cause the devices page to be displayed. One example of a devices page will be described in greater detail below. The “APPS”button 10330 can cause the applications page to be displayed, as will be described in detail below. The “LOGOUT”button 10332 will log the user off of the supervisory portal system. - If selected from the
home page 10320 or otherwise, anapplications page 10322 a for supervising applications on child devices can be presented to the administrator.FIG. 165 illustrates an example of anapplications page 10322 a for a supervisory portal system. Theapplications page 10322 a can have any suitable form, arrangement, content and features. Thus, it will be understood that theapplications page 10322 a shown inFIG. 165 is provided merely as an example and is not intended to be limiting. Theapplications page 10322 a can present information concerning all applications associated with each device of the supervisory portal system. In this context, “applications associated with” is defined as any application that is installed on, downloaded on, accessed by, executed by, or displayed by a child device of the supervisory portal system. - The
applications page 10322 a can be presented in any suitable manner to facilitate user interaction. Information may be presented for all child users of the supervisory portal system. In some instances, information may be presented for the administrator as well. Alternatively, theapplications page 10322 a can be adapted to present the applications associated with one or more system devices that are associated with a particular child user. To that end, child user filters 10324 can be presented, as described above, so that the administrator can select a subset of the identifiers to customize the information presented on theapplications page 10322 a. - Alternatively or in addition to customizing the display of the applications by user, the administrator may be able to customize the presentation of information concerning the associated applications in other ways. For example, the applications can be presented according to the particular system device that they are associated with or according to the type of system device that they are associated with. As shown in
FIG. 165 , applications associated with a particular category of device are presented underappropriate headings - Further, the information can be presented in any suitable form. For instance, the information can be presented in rows and columns. In such case, each application could have its own row, and each column can present information regarding the application. For instance, there can be a
first column 10338 for agraphical identifier 10340, such as an icon, associated with each application installed on the device. Asecond column 10342 may present the name of the application. Athird column 10344 can present a description of the application. Afourth column 10346 can present the category of each application. Afifth column 10348 can present the price paid for the application. There can be asixth column 10350 for a rating of the content of the application. Any suitable content rating system can be used, such as those issued by the Entertainment Software Rating Board (ESRB). There can be aseventh column 10352 of an enablement status of the application. Again, these are just examples of the different information that can be presented. Embodiments are not limited in this respect, as there may be additional or fewer columns than those shown inFIG. 165 . - The information displayed on the
applications page 10322 a may be customized by the administrator. For instance, the administrator can add or eliminate columns. The administrator can manipulate the columns so that they appear in a customized order. Any changes made to theapplications page 10322 a can be saved using a “SAVE”button 10354 or other user interface element provided on the page. Additional user interface elements, such as scroll bars (not shown), can be provided to facilitate the administrator's interaction with theapplications page 10322 a. - From the
applications page 10322 a, the administrator may be able to control one or more aspects of the applications associated with the child devices of the supervisory portal system. For example, the supervisory portal system can be configured to allow the administrator to selectively enable and disable individual applications associated with child devices. Any suitable user interface elements can be provided on theapplications page 10322 a to facilitate such capability. - If selected from the
home page 10320 or otherwise, adevices page 10322 b can be presented to the user.FIG. 166 illustrates an example of adevices page 10322 b. Thedevices page 10322 b can have any suitable form, arrangement, content and features. Thus, it will be understood that thedevices page 10322 b shown inFIG. 166 is provided merely as an example and is not intended to be limiting. On thedevices page 10322 b, the administrator can be presented with all devices of the supervisory portal system. The child devices of the supervisory portal system can be displayed in any suitable manner. For instance, one ormore device identifiers 10356 can be presented for each device of the supervisory portal system. Thedevice identifier 10356 can be provided in any suitable form, including graphical and/or textual. For instance, thedevice identifier 10356 can be an image, photograph, icon, symbol, logo or combinations of these possibilities. As shown inFIG. 166 , thedevice identifier 10356 can be an image of the device, including an actual image of the specific device or an image of the general type ofdevice 10358. The device identifier may also include adevice name 10360, which can be the user's name and/or a general descriptor of the device—computer, tablet, phone, smartphone, laptop, etc. Thedevice identifiers 10356 can be customized by the administrator and/or by the child members. - The
devices page 10322 b can display status information for each device. For instance, anactivation status 10362 of each device can be presented on thedevices page 10322 b. Theactivation status 10362 can be associated with the devices in any suitable manner. For example, theactivation status 10362 can be presented directly below thedevice identifier 10356. - With respect to the
activation status 10362, there can any suitable activation status information can be displayed. In one embodiment, there can be two settings: on and off. The “on” setting can indicates that the given device is currently powered on or at least enabled to be turned on. The “off” setting can indicate that the given device is currently powered off or otherwise not enabled to be turned on. - The
devices page 10322 b can be configured to allow the administrator to alter the activation status and/or other aspects of one or more of the system devices. Thus, in one embodiment, the administrator can alter the status of one or more of the devices presented on thedevices page 10322 b. For instance, the administrator may be able to selectively activate and deactivate the system devices from thedevices page 10322 b. For instance, as is shown inFIG. 166 , each displayed system device can include user interface elements, such as anON button 10364 and anOFF button 10366, associated therewith. The administrator can select the ON and OFFbuttons ON button 10364, then the particular device can be activated or at least enabled to be activated. On the other hand, if the administrator selects theOFF button 10366, then that particular system device can be locked or disabled. - The system can be configured to send a directive or have a directive sent to the affected child device. The term “directive” means one or more commands, programs, requests, content or instructions for initiating an action on a device. The directive can be sent in any suitable form, including as a message communicated to the respective receiving child device. In such case, the message can include at least one command to be executed by the receiving child device.
- Notifications of an administrator's action can be sent to any affected child users. Such notification can be provided in any suitable form, such as email, instant message, text message or voice message.
- The
devices page 10322 b can present information on the devices for all child users of the supervisory portal system. However, thedevices page 10322 b can accept inputs from the administrator to view the system devices associated with a subset of the supervisory portal system users. An earlier discussion of ways in which such customizing can be implemented is equally applicable here. Changes to the status of any of the system devices can be saved using a “SAVE”button 10368 or other suitable user interface element. - If selected from the
home page 10320 or otherwise, ausage page 10322 c can be presented to the administrator.FIG. 167 illustrates an example of ausage page 10322 c of the supervisory portal system. Theusage page 10322 c can have any suitable form, arrangement, content and features. Thus, it will be understood that theusage page 10322 c shown inFIG. 167 is provided merely as an example and is not intended to be limiting. On theusage page 10322 c, an administrator can view the usage of one or more devices of the supervisory portal system. Moreover, an administrator can selectively impose usage restrictions on one or more of the devices in the supervisory portal system. - Controls on usage can be set for each child user and/or for each child device. For instance, the usage page can present
user interface elements 10370 that can allow for the setting of restricted hours for each child user and/or child device. For example, the restrictedhour elements 10370 can allow the administrator to determine whether to impose any restricted hours on a child user or device. The restrictedhour elements 10370 can be provided in any suitable form, such as aYES button 10372 and aNO button 10374, as is shown inFIG. 167 . If theNO button 10374 or other input is selected, then no further user interface elements for restricted hours may be presented to the administrator. However, if theYES button 10372 is selected, then additional user interface elements may be presented. For instance,user interface elements 10376 can be provided the administrator can select which devices of the supervisory portal system that the restricted hours will apply to. The administrator can make the selections in any appropriate manner. For instance,device check boxes 10378 may be provided for each device presented. If the administrator selects one of thecheck boxes 10378, the appearance of the check box may change, such as by displaying a check mark within the selected box. - In addition,
temporal control options 10380 can be provided to the administrator. As is shown, a child user's usage of the selected devices can be restricted during certain hours. To that end, a disablement start time input element 10382 and a disablement end time input element 10384 can be provided on theusage page 10322 c. The restricted hours can be input by the administrator in any suitable manner. - Alternatively or in addition to restricted hours, the
usage page 10322 c can allow for the setting of blackout dates for a child user and/or device in which a particular device or user is prevented from using the device. To set blackout dates, ablackout user input 10386 can be provided. For instance, in the example shown inFIG. 167 , aYES button 10388 and aNO button 10390 can be provided. If theNO button 10390 or other input is selected, then no further options for blackout dates may be presented to the administrator. If theYES button 10388 is selected, then additional user interface elements 10392 may be presented so that the administrator can input blackout dates. For instance, acalendar 10394, menu or other element can be presented with which the administrator can operatively interact to set the appropriate blackout dates. In the example shown inFIG. 167 , the administrator has selected January 17-26 as blackout dates in which the selected devices of the selected child user will be disabled. Changes to the usage controls of the system devices can be saved using a “SAVE” button 10396 or other suitable user interface element. - The DMS server and/or the managed serves platform can be configured to send a directive or have a directive sent to the appropriate device(s) to implement the selected usage restrictions. Notifications of the restrictions can be sent to the affected child user(s). Such notification can be provided in any suitable form, such as email, instant message, text message or voice message, just to name a few possibilities.
- If selected from the
home page 10320 or otherwise, alocation page 10322 d can be presented to the administrator.FIG. 168 illustrates an example of alocation page 10322 d of the supervisory portal system. Thelocation page 10322 d can have any suitable form, arrangement, content and features. Thus, it will be understood that thelocation page 10322 d shown inFIG. 168 is provided merely as an example and is not intended to be limiting. On thelocation page 10322 d, the current location of one or more of the child devices of the supervisory portal system can be presented. The location of all child devices can be presented at the same time or, as described above, the administrator may select a subset of all child users and/or devices for display. - The location of the child devices can be presented in any suitable format. For instance, the location of each child device can be shown on a
map 10398. Any suitable mapping application can be used. Themap 10398 can display a set of user interface elements (not shown) for interacting with the map, including, for example, a zoom bar, directional movement, return-to-last results button, satellite view, map view, and/or street level view, one or more of which can enable the user to affect or manipulate the mapping program. Alternatively or in addition, the location of each child device can be presented in terms of coordinates, ZIP code, or the name of the city, county, state and/or country in which the device is location. - The location of the child devices can be determined in any suitable manner. In some embodiments, the child devices can include a positioning system (not shown). The positioning system can be configured to monitor and/or determine the current geographic position of the child device. The positioning system can be any suitable type of positioning system, including, for example, a global positioning system, a local positioning system or a geolocation system. The positioning system may be implemented with any one of a number of satellite positioning systems, such as the United States Global Positioning System (GPS), the Russian Glonass system, the European Galileo system, the Chinese Beidou system, or any system that uses satellites from a combination of satellite systems, or any satellite system developed in the future, including the planned Chinese COMPASS system and the Indian Regional Navigational Satellite System.
- Alternatively or in addition, the positioning system can be based on access point geolocation services, such as using the W3C Geolocation Application Programming Interface (API). With such a system, the location of the device can be determined through the consulting of location information servers, including, for example, Internet protocol (IP) address, Wi-Fi and Bluetooth Media Access Control (MAC) address, radio-frequency identification (RFID), Wi-Fi connection location, or device GPS and Global System for Mobile Communications (GSM)/code division multiple access (CDMA) cell IDs. Thus, it will be understood that the specific manner in which the geographic position of the device is determined will depend on the manner of operation of the particular positioning system used.
- For each child user and/or device, the administrator may set permitted geographic boundaries. Such geographic boundaries can be defined in any suitable manner. For instance, appropriate geographic boundaries can be defined by geographic coordinates, a specified radius about geographic coordinates or an area defined by geographic coordinate boundaries. The administrator can manually input one or more geographic coordinates into the administrator portal, as a location policy, to be considered as acceptable boundaries within which a child user can move. The child device can be configured to reports its location in any suitable form to the DMS server. The DMS server can in turn notify the administrator if the location policy has been violated or take any predefined action set by the administrator.
- If the child user is outside of the predefined boundaries, then the administrator can be notified. The notice can be provided in any suitable form including an email, an instant message, a text message or a voice message, just to name a few possibilities. Further, the supervisory portal can send a warning to a child user. Such a warning can be generated automatically or at the request of the administrator. For instance, a user interface element, such as a NOTIFY
button 10400, can be provided. If a child user is in a location that the administrator does not approve of, then the administrator can select the NOTIFYbutton 10400 to send a warning or notification to the child device. - If selected from the
home page 10320 or otherwise, an applicationwish list page 10322 e can be presented to the administrator.FIG. 169 illustrates an example of an applicationwish list page 10322 e. The applicationwish list page 10322 e can have any suitable form, arrangement, content and features. Thus, it will be understood that the applicationwish list page 10322 e shown inFIG. 169 is provided merely as an example and is not intended to be limiting. On the applicationwish list page 10322 e, requests from child users seeking permission to download applications can be presented for review and approval or rejection by the administrator. - The supervisory portal system can be configured so that the child users are only permitted to access certain application repositories, as determined by the administrator in a managed services platform as well as in a non-managed services platform. While visiting such application repositories, the child user may discover one or more applications of interest. If the child user is unable to download the application due to the prevailing controls of the supervisory portal system or otherwise, the child user can submit a request to the administrator. The request can be sent in any suitable form by way of a child portal with access to the supervisory portal system. The application
wish list page 10322 e can present all of the applications that one or more of the child users wish to download onto their specific device. The administrator can review the individual requests and can selectively approve or disapprove each request. Appropriate user interface elements can be provided on the applicationwish list page 10322 e to facilitate the process. - The application
wish list page 10322 e can be formatted in any suitable manner. For instance, information can be provided in rows and columns Any suitable information can be provided. For example, as is shown inFIG. 169 , some possible columns can be: graphical identifier of theapplication 10402,application name 10404, description of theapplication 10406, category of the application 10408 (i.e., games, sports, entertainment, tools, productivity, multimedia, etc.), the price of theapplication 10410, and thecontent rating 10412. There can also be acolumn 10414 indicating whether the application is enabled or not. Indeed, while a user may have one or more applications downloaded onto the device, the administrator may be able to selectively enable and disable each individual program from the applicationwish list page 10322 e. The columns of the applicationwish list page 10322 e can be the substantially the same as the column headings on theapplications page 10322 a. In some instances, the columns of the applicationwish list page 10322 e can be different than the column headings on theapplications page 10322 a. - Once an administrator has made inputs relative to the wish list, the administrator can save the changes by saving the changes. To that end, a user interface element, such as a SAVE button, can be provided. The administrator's inputs can be communicated to the DMS server, which in turn sends directives to the affected child device.
- As before, the information displayed on the application
wish list page 10322 e can be displayed for all child users. Alternatively, the information can be displayed for a subset of all child users, including information for a single child user. To that end, one or more child users can be selected by interacting with identifiers or other user interface elements provided on the page, as described above. - Notifications of an administrator's action on the request can be sent to the requesting child user. Such notification can be provided in any suitable form, such as email, instant message, text message or voice message.
- If selected from the
home page 10320 or otherwise, the administrator can be presented with anallowances page 10322 f.FIG. 170 illustrates an example of an applicationwish list page 10322 f. The applicationwish list page 10322 f can have any suitable form, arrangement, content and features. Thus, it will be understood that the applicationwish list page 10322 f shown inFIG. 170 is provided merely as an example and is not intended to be limiting. From theallowances page 10322 f, the administrator can apply allowance limits to one or more child users and/or to one or more child devices of the supervisory portal system. The allowance limits can be provided in any suitable form. Some examples of allowance limits will now be described. It will be understood that the following allowance limits are provided as examples and are not intended to be limiting. - One example of an allowance is whether downloads of applications or other content are permitted by a particular child user and/or on particular a child device. Suitable download enabling
user interface elements 10422 can be presented to receive an input from an administrator. For instance, aYES button 10424 and aNO button 10424 can be provided on theallowances page 10322 f. If theYES button 10424 is selected, then downloads are generally permitted by the child user and/or on the child device. If theNO button 10426 is selected, then downloads are not permitted by the child user and/or on the child device. - However, if downloads are enabled for a child user and/or on a child device, then further allowance limits can be applied by the administrator. Any suitable type of allowance limits can be applied. For instance, limits can be applied to allow only certain types of downloads. The allowances page can present download type
user interface elements 10428 to facilitate the setting of such limits. In one embodiment, the download typeuser interface elements 10428, such as a FREEONLY button 10430, can be provided to allow the administrator to permit the downloading of free applications and items by a child user and/or on a child device. Additional user interface elements can be provided to address other application types. For instance, user interface elements, such as a FREE & PAID button 10432, can be provided to allow the administrator to permit the downloading of free applications and items as well as those which must be paid for. Thebuttons 10430, 10432 or other user interface elements can be selected using conventional techniques. - Alternatively or in addition, an administrator can apply allowance limits based on the age content of the downloads. To that end, content rating
user interface elements 10434 can be presented on theallowances page 10322 f to receive an input from the administrator. The content ratinguser interface elements 10434 can be provided in any suitable form. As an example,FIG. 170 shows an embodiment in which anadjustable scale 10436 is provided. Content descriptors (i.e., all ages, pre-teen, teen, mature) 10438 can be provided along thescale 10436. Thecontent descriptors 10438 can be arranged in any suitable manner, such as in chronological order. The administrator can interact with thescale 10436 to set the appropriate limits for each child user and/or each child device. - Further, the
allowances page 10322 f may allow the administrator to set allowances based on the application category. The type and quantity of categories can vary, and the categories provided inFIG. 170 are only examples. Any suitable user interface elements 10440 can be provided to receive inputs from an administrator to set allowance limits based on application category. As shown inFIG. 170 , the application categories user interface elements 10440 can be provided in the form ofcheck boxes 10442 to accept user input. Thecheck boxes 10442 can be selected using conventional techniques. By accepting, the appearance of thecheck box 10442 may be caused to change, such as by showing a check mark within the box. - Alternatively or in addition to the above possibilities, the
allowance page 10322 f can receive an input from the administrator based on monetary restrictions. For instance, the administrator may impose an allowance for a given time period (such as a month). That is, the administrator can establish a maximum amount that can be spent on downloads by a particular child user and/or on a particular child device within a given time period. Appropriate monetaryuser interface elements 10444 can be provided to receive appropriate inputs from the administrator. - The monetary
user interface elements 10444 can be set in any suitable manner. For instance, the administrator can input a maximum money limit for each downloadedapplication 10446. Alternatively or in addition, the administrator can input a maximumdaily allowance 10448, a maximumweekly allowance 10450, a maximum monthly allowance 10452, a maximum semi-annual allowance (not shown) and/or a maximum annual allowance (not shown). If any of the imposed limits are reached, the system can be configured to restrict a child user from downloading further applications or items unless and until the limit is reset or the administrator changes the parameters of the allowance limits. Appropriate warning and/or notification messages can be sent to the child user and/or the administrator if one or more allowance limits are reached. - The above discussion provided some examples of the kind of limits that can be placed on child users. These examples are not intended to be limited. Indeed, there are numerous examples of other limits that can be imposed. For example, the administrator may impose limits on the quantity of applications or items that can be downloaded within a defined period of time.
- The
allowances page 10322 f can provide astatus indicator 10454 of the allowance limits of each child user and/or child device. For instance, as is shown inFIG. 170 , it can show the monthly allowance in terms of the money remaining 10456 and the amount spent for themonth 10458 by the child user. Once an administrator has made inputs relative on theallowances page 10322 f, the administrator can save the changes by saving the changes. To that end, a user interface element, such as aSAVE button 10458, can be provided. - The administrator device, the DMS server and/or the managed serves platform can be configured to send a directive or have a directive sent to the appropriate device(s) to implement the inputted allowances. Notifications of any allowances can be sent to the affected child user(s). Such notification can be provided in any suitable form, such as email, instant message, text message or voice message, just to name a few possibilities.
- One manner of the operation of the supervisory portal system will now be described in connection with
FIG. 171 . With these examples in mind, various possible steps of a supervisoryportal method 10500 will now be described. Themethod 10500 illustrated inFIG. 171 may be applicable to the embodiments described above, but it is understood that themethod 10500 can be carried out with other suitable systems and arrangements. Moreover, themethod 10500 may include other steps that are not shown here, and in fact, themethod 10500 is not limited to including every step shown inFIG. 171 . The steps that are illustrated here as part of themethod 10500 are not limited to this particular chronological order, either. - Referring to
FIG. 171 , an exemplary supervisoryportal method 10500 is shown. Atstep 10502, a user identity can be selected or otherwise inputted on a computing device supervisory portal. Atstep 10504, a user can be prompted to input user credentials, such as a password, for authentication atstep 10506. If sufficient authentication is provided, then access to the supervisory portal is permitted. If the device has been accessed by an administrator, then the administrator can be presented with one or more supervisory control user interface elements over the child devices of the supervisory portal system. The administrator can review information for one or more child devices that are supervised by the administrator. - At
step 10508, the administrator can select a supervisory control feature of the supervisory portal system. Atstep 10510, the user can review, adjust and/or implement a control setting for the selected supervisory feature. Again, examples of such supervisory control features include applications, devices, usage, location, allowances and approval/denial of wish list applications. These and other supervisory features are described above. Supervisory control features can be set on the basis of individual child devices and/or on the basis of individual child users of the supervisory portal system. - At
step 10512, the supervisory control feature inputs by the administrator can be sent as a directive to the affected child devices. Such directives can be sent by the DMS server. Once received, an action can be initiated on the child device based on the directive atstep 10514. - The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
- While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be understood by those skilled in the relevant art(s) that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined in the appended claims. Accordingly, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
Claims (15)
1. A managed services distribution portal, comprising:
one or more user interface elements configured to enable a user to make selections associated with the management of services for a first client portal and a second client portal, wherein the first client portal is assigned a first application repository that is associated with the first client portal and the second client portal is assigned a second application repository that is associated with the second client portal; and
a processing unit that is communicatively coupled to the user interface elements, wherein the processing unit is configured to:
cause the transmission of the availability of an application to the first client portal and the second client portal for publication in the first application repository and the second application repository; and
cause the display of a hierarchical arrangement of the first client portal, the second client portal and a sub-client portal that is vertically integrated with the first client portal such that the first client portal is an upstream portal and the sub-client portal is a downstream portal and publication of the application in the first application repository causes a transmission of the availability of the application to the sub-client portal for publication in a sub-client application repository associated with the sub-client portal.
2. The managed services portal according to claim 1 , wherein the application is an application that has been pre-approved by the managed services portal or some other entity associated with the managed services portal.
3. The managed services portal according to claim 1 , wherein the first client portal is associated with a first entity, the second client portal is associated with a second entity and the sub-client portal is associated with a third entity, wherein the third entity is a subsidiary, division or affiliate of the first entity.
4. The managed services portal according to claim 3 , wherein once the application is published in the first application repository, the application is available for download from the first application repository only to computing devices that are associated with the first entity and is available for download from the second application repository only to computing devices that are associated with the second entity.
5. The managed services portal according to claim 1 , wherein the processing unit is further configured to cause the transmission of the availability of content in addition to the application to the first and second client portals.
6. The managed services portal according to claim 1 , wherein the hierarchical arrangement is scalable such that the processing unit is further configured to cause the display of additional upstream or downstream portals in relation to the first client portal, the second client portal or the sub-client portal.
7. A method of distributing to various portals, comprising:
enabling a user to make selections associated with the management of services for a first client portal and a second client portal, wherein the first client portal is assigned a first application repository and the second client portal is assigned a second application repository;
transmitting the availability of one or more applications to the first and second client portals for respective publication in the first application repository and the second application repository;
as part of enabling the user to make selections, presenting a hierarchical arrangement of the first client portal, the second client portal and a sub-client portal that is downstream portal with respect to the first client portal such that publication of the application in the first application repository causes a transmission of the availability of the application to the sub-client portal for publication in a sub-client application repository.
8. The method according to claim 7 , further comprising receiving the application from an application approval portal that has designated the application as an approved application.
9. The method according to claim 7 , wherein the first client portal is operated by a first entity, the second client portal is operated by a second entity and the sub-client portal is operated by a third entity.
10. The method according to claim 9 , wherein the third entity is a subsidiary, division or affiliate of the first entity.
11. The method according to claim 7 , wherein the hierarchical arrangement is scalable and presenting the hierarchical arrangement further comprises presenting the hierarchical arrangement to include additional upstream and downstream portals.
12. A method of distributing applications to multiple portals, comprising:
receiving an approved application at a client portal for publication in an application repository associated with the client portal;
designating the approved application for publication in the application repository associated with the client portal; and
in response to the designation, signaling a downstream client portal of the availability of the approved application for publication in an application repository associated with the downstream client portal;
wherein the client portal is associated with a first entity and the downstream client portal is associated with a second entity;
wherein the second entity is a subsidiary, division or affiliate of the first entity.
13. The method according to claim 12 , wherein signaling the availability of the approved application for publication in an application repository associated with the downstream client portal is a directive to have the application published in the application repository associated with the downstream client portal.
14. The method according to claim 12 , wherein receiving the approved application at the client portal further comprises receiving the approved application and additional content for publication in the application repository associated with the client portal.
15. The method according to claim 14 , wherein signaling the downstream client portal further comprises signaling the downstream client portal of the availability of the approved application and the additional content for publication in the application repository associated with the downstream client portal.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/268,734 US20140289314A1 (en) | 2008-12-19 | 2014-05-02 | Systems for distributing applications and methods of operation of same |
US14/847,861 US20160234341A1 (en) | 2008-12-19 | 2015-09-08 | Systems for distributing applications and methods of operation of same |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13909008P | 2008-12-19 | 2008-12-19 | |
US12/639,139 US20100159898A1 (en) | 2008-12-19 | 2009-12-16 | Services platform for networked devices that provide telephony and digital media services |
US13/179,510 US8788655B2 (en) | 2008-12-19 | 2011-07-09 | Systems for accepting and approving applications and methods of operation of same |
US13/179,514 US8856322B2 (en) | 2008-12-19 | 2011-07-09 | Supervisory portal systems and methods of operation of same |
US14/268,734 US20140289314A1 (en) | 2008-12-19 | 2014-05-02 | Systems for distributing applications and methods of operation of same |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/179,510 Continuation US8788655B2 (en) | 2008-12-19 | 2011-07-09 | Systems for accepting and approving applications and methods of operation of same |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/847,861 Continuation US20160234341A1 (en) | 2008-12-19 | 2015-09-08 | Systems for distributing applications and methods of operation of same |
Publications (1)
Publication Number | Publication Date |
---|---|
US20140289314A1 true US20140289314A1 (en) | 2014-09-25 |
Family
ID=45556914
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/179,510 Active US8788655B2 (en) | 2008-12-19 | 2011-07-09 | Systems for accepting and approving applications and methods of operation of same |
US14/268,734 Abandoned US20140289314A1 (en) | 2008-12-19 | 2014-05-02 | Systems for distributing applications and methods of operation of same |
US14/847,861 Abandoned US20160234341A1 (en) | 2008-12-19 | 2015-09-08 | Systems for distributing applications and methods of operation of same |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/179,510 Active US8788655B2 (en) | 2008-12-19 | 2011-07-09 | Systems for accepting and approving applications and methods of operation of same |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/847,861 Abandoned US20160234341A1 (en) | 2008-12-19 | 2015-09-08 | Systems for distributing applications and methods of operation of same |
Country Status (1)
Country | Link |
---|---|
US (3) | US8788655B2 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110173605A1 (en) * | 2010-01-10 | 2011-07-14 | Microsoft Corporation | Automated Configuration and Installation of Virtualized Solutions |
US20140032656A1 (en) * | 2012-07-24 | 2014-01-30 | Appboy, Inc. | Method and system for collecting and providing application usage analytics |
US9071618B1 (en) | 2014-08-04 | 2015-06-30 | Bank Of America Corporation | Providing multiple access levels to a single user account using different login credentials |
US20160179498A1 (en) * | 2014-12-19 | 2016-06-23 | Paypal, Inc. | App store update notification and warning system |
CN106060594A (en) * | 2016-05-25 | 2016-10-26 | 武汉斗鱼网络科技有限公司 | White list generation system and white list generation method based on player heartbeat |
US10098065B2 (en) * | 2017-02-21 | 2018-10-09 | Qualcomm Incorporated | Power saving via PHY firmware island |
US10712915B2 (en) | 2016-06-08 | 2020-07-14 | Alibaba Group Holding Limited | Information presentation using a client on a terminal |
US10992709B2 (en) * | 2015-07-28 | 2021-04-27 | Citrix Systems, Inc. | Efficient use of IPsec tunnels in multi-path environment |
US20210365013A1 (en) * | 2016-04-05 | 2021-11-25 | Wellaware Holdings, Inc. | Device for monitoring and controlling industrial equipment |
Families Citing this family (226)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8713173B2 (en) | 2008-12-19 | 2014-04-29 | Openpeak Inc. | System and method for ensuring compliance with organizational policies |
US8745153B2 (en) * | 2009-02-09 | 2014-06-03 | Apple Inc. | Intelligent download of application programs |
US8935656B2 (en) * | 2009-09-09 | 2015-01-13 | International Business Machines Corporation | Communicating information in computing systems |
JP2011076492A (en) * | 2009-09-30 | 2011-04-14 | Toshiba Corp | Information processing apparatus, wireless communication system, and wireless communication method |
US8560604B2 (en) | 2009-10-08 | 2013-10-15 | Hola Networks Ltd. | System and method for providing faster and more efficient data communication |
US20110117885A1 (en) * | 2009-11-13 | 2011-05-19 | Go800, LLC | Methods of Connecting A User Telephonically To Prerecorded Information By Text Keyword And Keyword Database |
US9730037B2 (en) * | 2010-06-16 | 2017-08-08 | Microsoft Corporation | Cellular data communication for mobile devices |
EP2439673A3 (en) * | 2010-10-11 | 2012-05-30 | Lumension Security, Inc. | Systems and methods for implementing application control security |
US10511630B1 (en) * | 2010-12-10 | 2019-12-17 | CellSec, Inc. | Dividing a data processing device into separate security domains |
US20130031637A1 (en) * | 2011-02-24 | 2013-01-31 | Savtira Corporation | System and method for automated processing and publication of content |
WO2012128555A2 (en) * | 2011-03-21 | 2012-09-27 | Samsung Electronics Co., Ltd. | Method and system for providing calender services in a universal plug and play home network environment |
US8689344B2 (en) | 2011-05-16 | 2014-04-01 | Guest Tek Interactive Entertainment Ltd. | System and method of integrating modules for execution on a computing device and controlling during runtime an ability of a first module to access a service provided by a second module |
US9319406B2 (en) | 2011-07-12 | 2016-04-19 | Apple Inc. | System and method for linking pre-installed software to a user account on an online store |
US20130019237A1 (en) * | 2011-07-12 | 2013-01-17 | Apple Inc. | System and method for linking pre-installed software to a user account on an online store |
US20130019179A1 (en) * | 2011-07-14 | 2013-01-17 | Digilink Software, Inc. | Mobile application enhancements |
US9350819B2 (en) * | 2011-07-21 | 2016-05-24 | Microsoft Technology Licensing, Llc | Centralized service for distributed service deployments |
US9184779B2 (en) * | 2011-07-22 | 2015-11-10 | Texas Instruments Incorporated | Dynamic medium switch in co-located PLC and RF networks |
US9105046B1 (en) * | 2011-08-05 | 2015-08-11 | Google Inc. | Constraining ad service based on app content |
US9740883B2 (en) * | 2011-08-24 | 2017-08-22 | Location Labs, Inc. | System and method for enabling control of mobile device functional components |
US9407492B2 (en) | 2011-08-24 | 2016-08-02 | Location Labs, Inc. | System and method for enabling control of mobile device functional components |
KR20130027897A (en) * | 2011-09-08 | 2013-03-18 | 삼성전자주식회사 | Method and system for managing a suspicious device on the network |
US8799365B2 (en) * | 2011-09-28 | 2014-08-05 | Verizon Patent And Licensing Inc. | Broker-based management of mobile devices |
KR101942335B1 (en) * | 2011-09-30 | 2019-01-28 | 삼성전자 주식회사 | Method for integrated management of maintenance of electronic devices and system thereof |
US9286471B2 (en) | 2011-10-11 | 2016-03-15 | Citrix Systems, Inc. | Rules based detection and correction of problems on mobile devices of enterprise users |
US9280377B2 (en) | 2013-03-29 | 2016-03-08 | Citrix Systems, Inc. | Application with multiple operation modes |
US8850008B2 (en) * | 2011-11-22 | 2014-09-30 | Verizon Patent And Licensing Inc. | User device application monitoring and control |
US8769090B2 (en) * | 2011-11-30 | 2014-07-01 | At&T Intellectual Property I, L.P. | Method and apparatus for managing communication inquiries |
US9158520B2 (en) * | 2011-12-07 | 2015-10-13 | Yahoo! Inc. | Development of platform independent applications |
US8326831B1 (en) * | 2011-12-11 | 2012-12-04 | Microsoft Corporation | Persistent contextual searches |
CN102521031B (en) * | 2011-12-13 | 2014-11-05 | 华为终端有限公司 | Management method of preset application programs of mobile terminal and mobile terminal |
US8892954B1 (en) * | 2011-12-29 | 2014-11-18 | Google Inc. | Managing groups of application versions |
US8555402B2 (en) | 2012-01-26 | 2013-10-08 | Microsoft Corporation | Dynamic selection of authorization processes |
US20140053126A1 (en) * | 2012-02-13 | 2014-02-20 | Mark A. Watson | Integrated mobile application development platform |
US9355120B1 (en) * | 2012-03-02 | 2016-05-31 | Netapp, Inc. | Systems and methods for managing files in a content storage system |
DE112012006804T5 (en) * | 2012-03-07 | 2015-07-02 | Mitsubishi Electric Corporation | navigation device |
WO2013147821A1 (en) * | 2012-03-29 | 2013-10-03 | Empire Technology Development, Llc | Determining user key-value storage needs from example queries |
TWI498741B (en) * | 2012-03-29 | 2015-09-01 | Irene Tsai | A signal transmission method, a transaction message display method, and a mobile device |
WO2013149371A1 (en) | 2012-04-01 | 2013-10-10 | Empire Technology Development Llc | Machine learning for database migration source |
US9489531B2 (en) | 2012-05-13 | 2016-11-08 | Location Labs, Inc. | System and method for controlling access to electronic devices |
US9349205B2 (en) * | 2012-06-08 | 2016-05-24 | Apple Inc. | Systems and methods for animating between collection views |
US10482135B2 (en) * | 2012-07-12 | 2019-11-19 | Salesforce.Com, Inc. | Facilitating dynamic generation and customization of software applications at client computing devices using server metadata in an on-demand services environment |
KR20150040967A (en) * | 2012-08-02 | 2015-04-15 | 오픈픽 아이엔씨. | System and method for ensuring compliance with organizational policies |
US10305937B2 (en) * | 2012-08-02 | 2019-05-28 | CellSec, Inc. | Dividing a data processing device into separate security domains |
US9294508B2 (en) | 2012-08-02 | 2016-03-22 | Cellsec Inc. | Automated multi-level federation and enforcement of information management policies in a device network |
WO2014024533A1 (en) * | 2012-08-08 | 2014-02-13 | ソニー株式会社 | Information processing device and recording medium |
US9621435B2 (en) | 2012-09-07 | 2017-04-11 | Oracle International Corporation | Declarative and extensible model for provisioning of cloud based services |
US10521746B2 (en) | 2012-09-07 | 2019-12-31 | Oracle International Corporation | Recovery workflow for processing subscription orders in a computing infrastructure system |
US9253113B2 (en) | 2012-09-07 | 2016-02-02 | Oracle International Corporation | Customizable model for throttling and prioritizing orders in a cloud environment |
US9467355B2 (en) | 2012-09-07 | 2016-10-11 | Oracle International Corporation | Service association model |
US9276942B2 (en) | 2012-09-07 | 2016-03-01 | Oracle International Corporation | Multi-tenancy identity management system |
US9667470B2 (en) | 2012-09-07 | 2017-05-30 | Oracle International Corporation | Failure handling in the execution flow of provisioning operations in a cloud environment |
US9203866B2 (en) | 2012-09-07 | 2015-12-01 | Oracle International Corporation | Overage framework for cloud services |
US9542400B2 (en) | 2012-09-07 | 2017-01-10 | Oracle International Corporation | Service archive support |
US10148530B2 (en) | 2012-09-07 | 2018-12-04 | Oracle International Corporation | Rule based subscription cloning |
KR101943320B1 (en) * | 2012-09-21 | 2019-04-17 | 엘지전자 주식회사 | Mobile terminal and method for controlling the same |
US9105056B2 (en) | 2012-09-28 | 2015-08-11 | Cass Information Systems, Inc. | Methods and systems for communicating expense management information |
US9971585B2 (en) | 2012-10-16 | 2018-05-15 | Citrix Systems, Inc. | Wrapping unmanaged applications on a mobile device |
US9591452B2 (en) | 2012-11-28 | 2017-03-07 | Location Labs, Inc. | System and method for enabling mobile device applications and functional components |
US9361595B2 (en) * | 2012-12-14 | 2016-06-07 | International Business Machines Corporation | On-demand cloud service management |
US9554190B2 (en) | 2012-12-20 | 2017-01-24 | Location Labs, Inc. | System and method for controlling communication device use |
US9571372B1 (en) * | 2013-01-24 | 2017-02-14 | Symantec Corporation | Systems and methods for estimating ages of network devices |
WO2014127021A1 (en) * | 2013-02-12 | 2014-08-21 | Gil Dudkiewicz | Methods and apparatus for providing application provisioning |
US9733917B2 (en) * | 2013-02-20 | 2017-08-15 | Crimson Corporation | Predicting whether a party will purchase a product |
US9459994B2 (en) * | 2013-02-20 | 2016-10-04 | Kony, Inc. | Mobile application testing systems and methods |
US9578134B2 (en) * | 2013-03-13 | 2017-02-21 | Enfora, Inc. | Mobile hub devices and docking stations for controlled delivery of digital multimedia data |
US9503536B2 (en) * | 2013-03-14 | 2016-11-22 | The Nielsen Company (Us), Llc | Methods and apparatus to monitor media presentations |
US10333801B2 (en) * | 2013-03-14 | 2019-06-25 | Amazon Technologies, Inc. | Inventory service for distributed infrastructure |
US9027098B2 (en) * | 2013-03-14 | 2015-05-05 | Genband Us Llc | Systems, methods, and computer program products for recording service status of applications |
US9215075B1 (en) | 2013-03-15 | 2015-12-15 | Poltorak Technologies Llc | System and method for secure relayed communications from an implantable medical device |
US10560324B2 (en) | 2013-03-15 | 2020-02-11 | Location Labs, Inc. | System and method for enabling user device control |
WO2014143776A2 (en) | 2013-03-15 | 2014-09-18 | Bodhi Technology Ventures Llc | Providing remote interactions with host device using a wireless device |
US10284627B2 (en) | 2013-03-29 | 2019-05-07 | Citrix Systems, Inc. | Data management for an application with multiple operation modes |
US9647779B2 (en) | 2013-04-22 | 2017-05-09 | The Nielsen Company (Us), Llc | Systems, methods, and apparatus to identify media devices |
US9560149B2 (en) | 2013-04-24 | 2017-01-31 | The Nielsen Company (Us), Llc | Methods and apparatus to create a panel of media device users |
US10477454B2 (en) * | 2013-05-08 | 2019-11-12 | Cellcontrol, Inc. | Managing iOS-based mobile communication devices by creative use of CallKit API protocols |
US10805861B2 (en) | 2013-05-08 | 2020-10-13 | Cellcontrol, Inc. | Context-aware mobile device management |
US10268530B2 (en) | 2013-05-08 | 2019-04-23 | Cellcontrol, Inc. | Managing functions on an iOS-based mobile device using ANCS notifications |
US11751123B2 (en) | 2013-05-08 | 2023-09-05 | Cellcontrol, Inc. | Context-aware mobile device management |
US10271265B2 (en) | 2013-05-08 | 2019-04-23 | Cellcontrol, Inc. | Detecting mobile devices within a vehicle based on cellular data detected within the vehicle |
US10862731B1 (en) * | 2013-06-27 | 2020-12-08 | EMC IP Holding Company LLC | Utilizing demonstration data based on dynamically determining feature availability |
US9894099B1 (en) * | 2013-07-12 | 2018-02-13 | Palo Alto Networks, Inc. | Automatically configuring mobile devices and applying policy based on device state |
US9705919B1 (en) | 2013-07-12 | 2017-07-11 | Palo Alto Networks, Inc. | Security policy enforcement for mobile devices based on device state |
US20150019575A1 (en) * | 2013-07-15 | 2015-01-15 | Salesforce.Com, Inc. | Filtering content of one or more feeds in an enterprise social networking system into user-customizable feed channels |
US9569229B1 (en) | 2013-07-29 | 2017-02-14 | Western Digital Technologies, Inc. | Automatic start of an application at start up for a media player appliance |
US9241044B2 (en) | 2013-08-28 | 2016-01-19 | Hola Networks, Ltd. | System and method for improving internet communication by using intermediate nodes |
US11785061B2 (en) * | 2013-09-16 | 2023-10-10 | Insyde Software Corp. | System and method to share an application with another device |
US10171501B2 (en) | 2013-09-20 | 2019-01-01 | Open Text Sa Ulc | System and method for remote wipe |
US20150134719A1 (en) * | 2013-11-13 | 2015-05-14 | Kaseya International Limited | Third party application delivery via an agent portal |
CN104699218B (en) | 2013-12-10 | 2019-04-19 | 华为终端(东莞)有限公司 | A kind of task management method and equipment |
US20150178861A1 (en) * | 2013-12-20 | 2015-06-25 | Homer Tlc, Inc. | Systems and Methods for Quantitative Evaluation of a Property for Renovation |
US9367299B2 (en) * | 2013-12-31 | 2016-06-14 | Google Inc. | Preventing application downgrade in an application store |
DE102014000963A1 (en) * | 2014-01-23 | 2015-07-23 | Unify Gmbh & Co. Kg | Method for handling security settings in a mobile terminal or for access control, mobile terminal, computer program, software product and digital storage medium |
US9575741B2 (en) * | 2014-03-20 | 2017-02-21 | Google Technology Holdings LLC | Methods and devices for wireless device-to-device software upgrades |
US9871991B2 (en) * | 2014-03-31 | 2018-01-16 | Jamdeo Canada Ltd. | System and method for display device configuration |
CA2981789A1 (en) | 2014-04-04 | 2015-10-08 | David Goldschlag | Method for authentication and assuring compliance of devices accessing external services |
US10114945B2 (en) * | 2014-05-05 | 2018-10-30 | Citrix Systems, Inc. | Clock rollback security |
USD763918S1 (en) * | 2014-05-22 | 2016-08-16 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with icon |
USD768717S1 (en) * | 2014-05-22 | 2016-10-11 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with icon |
US10313506B2 (en) | 2014-05-30 | 2019-06-04 | Apple Inc. | Wellness aggregator |
US10148805B2 (en) | 2014-05-30 | 2018-12-04 | Location Labs, Inc. | System and method for mobile device control delegation |
USD762234S1 (en) * | 2014-06-06 | 2016-07-26 | Le Shi Zhi Electronic Technology (Tianjin) Limited | Display screen with an animated graphical user interface |
TWD175824S (en) * | 2014-06-06 | 2016-05-21 | 樂視網信息技術(北京)股份有限公司; | Display screen graphical user interface |
USD761314S1 (en) * | 2014-06-20 | 2016-07-12 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with icon |
US9661126B2 (en) | 2014-07-11 | 2017-05-23 | Location Labs, Inc. | Driving distraction reduction system and method |
USD761846S1 (en) * | 2014-07-25 | 2016-07-19 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with transitional graphical user interface |
WO2016022204A1 (en) | 2014-08-02 | 2016-02-11 | Apple Inc. | Context-specific user interfaces |
US9749458B2 (en) | 2014-08-11 | 2017-08-29 | Location Labs, Inc. | Driving without distraction support system |
US10452253B2 (en) | 2014-08-15 | 2019-10-22 | Apple Inc. | Weather user interface |
US10164901B2 (en) | 2014-08-22 | 2018-12-25 | Oracle International Corporation | Intelligent data center selection |
CN104602123B (en) * | 2014-09-15 | 2017-06-23 | 四川长虹电器股份有限公司 | Auto upgrading system and method based on internet interaction |
US10810607B2 (en) | 2014-09-17 | 2020-10-20 | The Nielsen Company (Us), Llc | Methods and apparatus to monitor media presentations |
US10257099B2 (en) * | 2014-09-30 | 2019-04-09 | A 10 Networks, Incorporated | Applications of processing packets which contain geographic location information of the packet sender |
EP3210364B8 (en) | 2014-10-21 | 2021-03-10 | Proofpoint, Inc. | Systems and methods for application security analysis |
EP4155984B1 (en) | 2014-10-31 | 2024-08-28 | Proofpoint, Inc. | Systems and methods for privately performing application security analysis |
US10565534B2 (en) | 2014-11-11 | 2020-02-18 | Amazon Technologies, Inc. | Constraints and constraint sharing in a catalog service platform |
US20160132808A1 (en) * | 2014-11-11 | 2016-05-12 | Amazon Technologies, Inc. | Portfolios and portfolio sharing in a catalog service platform |
JP2016139322A (en) * | 2015-01-28 | 2016-08-04 | 株式会社リコー | Image processor and electronic blackboard provided with the same |
AU2016215440B2 (en) | 2015-02-02 | 2019-03-14 | Apple Inc. | Device, method, and graphical user interface for establishing a relationship and connection between two devices |
WO2016144385A1 (en) | 2015-03-08 | 2016-09-15 | Apple Inc. | Sharing user-configurable graphical constructs |
US9763024B2 (en) | 2015-04-09 | 2017-09-12 | Yahoo Holdings, Inc. | Mobile ghosting |
US10171437B2 (en) | 2015-04-24 | 2019-01-01 | Oracle International Corporation | Techniques for security artifacts management |
WO2016182771A1 (en) * | 2015-05-11 | 2016-11-17 | One Factor Holdings Llc | Integrated activity management system and method of using same |
US11057446B2 (en) | 2015-05-14 | 2021-07-06 | Bright Data Ltd. | System and method for streaming content from multiple servers |
US9888057B2 (en) * | 2015-05-21 | 2018-02-06 | International Business Machines Corporation | Application bundle management across mixed file system types |
US10152516B2 (en) | 2015-05-21 | 2018-12-11 | International Business Machines Corporation | Managing staleness latency among application bundles |
US10389850B2 (en) | 2015-05-21 | 2019-08-20 | International Business Machines Corporation | Managing redundancy among application bundles |
US10389794B2 (en) | 2015-05-21 | 2019-08-20 | International Business Machines Corporation | Managing redundancy among application bundles |
US10530660B2 (en) | 2015-05-21 | 2020-01-07 | International Business Machines Corporation | Application bundle preloading |
US9965262B2 (en) | 2015-05-21 | 2018-05-08 | International Business Machines Corporation | Application bundle pulling |
US10169553B2 (en) * | 2015-06-29 | 2019-01-01 | Airwatch, Llc | Managing grouped student devices with timed locks |
US10489599B2 (en) * | 2015-07-02 | 2019-11-26 | Oracle International Corporation | Data encryption service and customized encryption management |
US9766596B2 (en) * | 2015-07-08 | 2017-09-19 | Google Inc. | Wake up to a cast alarm or an alarm plus content prompt |
US11256387B1 (en) * | 2015-07-17 | 2022-02-22 | Opal Labs Inc. | Multi-platform omni-channel content creator |
CN106453449A (en) * | 2015-08-06 | 2017-02-22 | 泰兴市智瀚科技有限公司 | Information instant pushing method and distribution type system server |
CN105100109B (en) * | 2015-08-19 | 2019-05-24 | 华为技术有限公司 | A kind of method and device of deployment secure access control policy |
EP4321088A3 (en) | 2015-08-20 | 2024-04-24 | Apple Inc. | Exercise-based watch face |
US10142174B2 (en) | 2015-08-25 | 2018-11-27 | Oracle International Corporation | Service deployment infrastructure request provisioning |
US9906561B2 (en) | 2015-08-28 | 2018-02-27 | Nicira, Inc. | Performing logical segmentation based on remote device attributes |
US11593075B2 (en) | 2015-11-03 | 2023-02-28 | Open Text Sa Ulc | Streamlined fast and efficient application building and customization systems and methods |
US20170168795A1 (en) * | 2015-12-09 | 2017-06-15 | Opex Labs India Llp | Method and system for managing micro release automation in an application delivery system |
CN105630957B (en) * | 2015-12-24 | 2019-05-21 | 北京大学 | A kind of application quality method of discrimination and system based on subscriber management application behavior |
US9928230B1 (en) | 2016-09-29 | 2018-03-27 | Vignet Incorporated | Variable and dynamic adjustments to electronic forms |
US9848061B1 (en) * | 2016-10-28 | 2017-12-19 | Vignet Incorporated | System and method for rules engine that dynamically adapts application behavior |
US11388037B2 (en) | 2016-02-25 | 2022-07-12 | Open Text Sa Ulc | Systems and methods for providing managed services |
US10395200B2 (en) * | 2016-03-17 | 2019-08-27 | Ca, Inc. | Method and apparatus for repairing policies |
US20170285930A1 (en) * | 2016-04-01 | 2017-10-05 | Microsoft Technology Licensing, Llc. | Document content replay |
DK201770423A1 (en) | 2016-06-11 | 2018-01-15 | Apple Inc | Activity and workout updates |
US10873786B2 (en) | 2016-06-12 | 2020-12-22 | Apple Inc. | Recording and broadcasting application visual output |
CN106027356B (en) * | 2016-07-04 | 2019-09-17 | 杭州迪普科技股份有限公司 | A kind of conversion method and device of Tunnel Identifier |
US20180012197A1 (en) | 2016-07-07 | 2018-01-11 | NextEv USA, Inc. | Battery exchange licensing program based on state of charge of battery pack |
US10057117B2 (en) * | 2016-08-28 | 2018-08-21 | Airwatch Llc | Systems for configuring and managing classroom devices |
CN106973383B (en) * | 2016-08-31 | 2020-06-09 | 上海博达通信科技有限公司 | Distributed portal authentication method |
US10769935B2 (en) * | 2016-09-12 | 2020-09-08 | Sensormatic Electronics, LLC | Method and apparatus for unified mobile application for installation of security products |
US10650621B1 (en) | 2016-09-13 | 2020-05-12 | Iocurrents, Inc. | Interfacing with a vehicular controller area network |
US10069633B2 (en) | 2016-09-30 | 2018-09-04 | Data I/O Corporation | Unified programming environment for programmable devices |
USD817351S1 (en) * | 2016-11-22 | 2018-05-08 | Otis Elevator Company | Display screen or portion thereof with graphical user interface |
US10051112B2 (en) * | 2016-12-23 | 2018-08-14 | Google Llc | Non-intrusive user authentication system |
US10637737B2 (en) | 2017-03-28 | 2020-04-28 | Ca Technologies, Inc. | Managing alarms from distributed applications |
US10616211B2 (en) * | 2017-04-12 | 2020-04-07 | Cisco Technology, Inc. | System and method for authenticating clients |
US10306433B1 (en) * | 2017-05-01 | 2019-05-28 | Sprint Communications Company L.P. | Mobile phone differentiated user set-up |
DK179412B1 (en) | 2017-05-12 | 2018-06-06 | Apple Inc | Context-Specific User Interfaces |
US11178272B2 (en) | 2017-08-14 | 2021-11-16 | Cellcontrol, Inc. | Systems, methods, and devices for enforcing do not disturb functionality on mobile devices |
US11190374B2 (en) | 2017-08-28 | 2021-11-30 | Bright Data Ltd. | System and method for improving content fetching by selecting tunnel devices |
LT3767493T (en) | 2017-08-28 | 2023-03-10 | Bright Data Ltd. | Method for improving content fetching by selecting tunnel devices |
CN107426060B (en) * | 2017-08-29 | 2020-12-01 | 四川长虹电器股份有限公司 | Remote baseline scanning method |
US11144894B2 (en) * | 2017-09-28 | 2021-10-12 | DineGigs Inc. | Multi-level network-based access coordination |
US10652249B2 (en) * | 2017-10-31 | 2020-05-12 | Microsoft Technology Licensing, Llc | Remote locking a multi-user device to a set of users |
US11153156B2 (en) | 2017-11-03 | 2021-10-19 | Vignet Incorporated | Achieving personalized outcomes with digital therapeutic applications |
US11449875B1 (en) | 2018-01-12 | 2022-09-20 | Wells Fargo Bank, N.A. | Organizational and personal identity verification and validation |
US10785340B2 (en) * | 2018-01-25 | 2020-09-22 | Operr Technologies, Inc. | System and method for a convertible user application |
JP7047456B2 (en) * | 2018-02-26 | 2022-04-05 | 富士フイルムビジネスイノベーション株式会社 | Image processing equipment and programs |
US10839050B2 (en) * | 2018-03-08 | 2020-11-17 | Microsoft Technology Licensing, Llc | Activation of an application based on prior activation of an isolated counterpart application |
JP6985608B2 (en) * | 2018-03-29 | 2021-12-22 | 株式会社バッファロー | Communication equipment, operation method of communication equipment, operation program of communication equipment |
JP2019185598A (en) * | 2018-04-16 | 2019-10-24 | オンキヨー株式会社 | Firmware update system and server |
DK180171B1 (en) | 2018-05-07 | 2020-07-14 | Apple Inc | USER INTERFACES FOR SHARING CONTEXTUALLY RELEVANT MEDIA CONTENT |
US11327650B2 (en) | 2018-05-07 | 2022-05-10 | Apple Inc. | User interfaces having a collection of complications |
US10732987B2 (en) * | 2018-05-07 | 2020-08-04 | Dell Products, L.P. | System and method to update operating system services |
US20200004522A1 (en) * | 2018-06-27 | 2020-01-02 | Hewlett Packard Enterprise Development Lp | Selective download of a portion of a firmware bundle |
US10771493B2 (en) * | 2018-09-18 | 2020-09-08 | International Business Machines Corporation | Cognitive security exposure analysis and resolution based on security trends |
US12088577B2 (en) | 2018-12-04 | 2024-09-10 | Viakoo, Inc. | Systems and methods of remotely updating a multitude of IP connected devices |
US20200177444A1 (en) * | 2018-12-04 | 2020-06-04 | Viakoo, Inc. | Systems and Methods of Remotely Updating a Multitude of IP Connected Devices |
JP7040467B2 (en) * | 2019-01-11 | 2022-03-23 | 日本電信電話株式会社 | Update device and update method |
US11627049B2 (en) * | 2019-01-31 | 2023-04-11 | Hewlett Packard Enterprise Development Lp | Failsafe firmware upgrade for cloud-managed devices |
LT4075304T (en) | 2019-02-25 | 2023-07-25 | Bright Data Ltd. | System and method for url fetching retry mechanism |
EP4027618B1 (en) | 2019-04-02 | 2024-07-31 | Bright Data Ltd. | Managing a non-direct url fetching service |
US10855523B2 (en) * | 2019-04-30 | 2020-12-01 | Dell Products L.P. | Intention-based device component tracking system |
USD976267S1 (en) | 2019-08-12 | 2023-01-24 | Aristocrat Technologies Australia Pty Limited | Display screen or portion thereof with a transitional gaming machine interface |
USD924256S1 (en) * | 2019-08-21 | 2021-07-06 | Aristocrat Technologies Australia Pty Limited | Display screen or portion thereof with a gaming machine interface |
US11238147B2 (en) * | 2019-08-27 | 2022-02-01 | Comcast Cable Communications, Llc | Methods and systems for verifying applications |
US12056243B2 (en) | 2019-08-27 | 2024-08-06 | Comcast Cable Communications, Llc | Methods and systems for verifying applications |
USD922405S1 (en) | 2019-08-29 | 2021-06-15 | Google Llc | Display screen or portion thereof with graphical user interface |
US10867483B1 (en) | 2019-08-30 | 2020-12-15 | Aristocrat Technologies Australia Pty Limited | Systems and methods for providing a feature game |
CN112463085A (en) * | 2019-09-06 | 2021-03-09 | 北京小米移动软件有限公司 | Function integrating system and function integrating device |
US11048389B2 (en) * | 2019-09-16 | 2021-06-29 | Mid-Continent Instrument Co., Inc. | Customizable multi-function display |
TWI731562B (en) * | 2020-01-21 | 2021-06-21 | 英業達股份有限公司 | Setting method, system, device and computer readable medium of configuration of mainboard expansion slot |
US11372659B2 (en) | 2020-05-11 | 2022-06-28 | Apple Inc. | User interfaces for managing user interface sharing |
CN115904596B (en) | 2020-05-11 | 2024-02-02 | 苹果公司 | User interface for managing user interface sharing |
DK181103B1 (en) | 2020-05-11 | 2022-12-15 | Apple Inc | User interfaces related to time |
US11275576B2 (en) * | 2020-06-19 | 2022-03-15 | Apple Inc. | Techniques for firmware updates with accessories |
US12032951B2 (en) | 2020-06-19 | 2024-07-09 | Apple Inc. | Techniques for firmware updates with accessories |
US11504011B1 (en) | 2020-08-05 | 2022-11-22 | Vignet Incorporated | Early detection and prevention of infectious disease transmission using location data and geofencing |
US11127506B1 (en) | 2020-08-05 | 2021-09-21 | Vignet Incorporated | Digital health tools to predict and prevent disease transmission |
US11456080B1 (en) | 2020-08-05 | 2022-09-27 | Vignet Incorporated | Adjusting disease data collection to provide high-quality health data to meet needs of different communities |
US11056242B1 (en) | 2020-08-05 | 2021-07-06 | Vignet Incorporated | Predictive analysis and interventions to limit disease exposure |
US11138020B1 (en) * | 2020-09-03 | 2021-10-05 | Sap Se | Content provisioning system |
US11763919B1 (en) | 2020-10-13 | 2023-09-19 | Vignet Incorporated | Platform to increase patient engagement in clinical trials through surveys presented on mobile devices |
US11694590B2 (en) | 2020-12-21 | 2023-07-04 | Apple Inc. | Dynamic user interface with time indicator |
JP7547997B2 (en) * | 2020-12-22 | 2024-09-10 | 富士フイルムビジネスイノベーション株式会社 | Image forming apparatus, image forming program, and linkage system |
US11720239B2 (en) | 2021-01-07 | 2023-08-08 | Apple Inc. | Techniques for user interfaces related to an event |
US11586524B1 (en) | 2021-04-16 | 2023-02-21 | Vignet Incorporated | Assisting researchers to identify opportunities for new sub-studies in digital health research and decentralized clinical trials |
US11789837B1 (en) | 2021-02-03 | 2023-10-17 | Vignet Incorporated | Adaptive data collection in clinical trials to increase the likelihood of on-time completion of a trial |
US11281553B1 (en) | 2021-04-16 | 2022-03-22 | Vignet Incorporated | Digital systems for enrolling participants in health research and decentralized clinical trials |
US11184239B1 (en) | 2021-04-30 | 2021-11-23 | People Center, Inc. | Management of computing devices via reference to linked employee records |
US11893548B2 (en) | 2021-04-30 | 2024-02-06 | People Center, Inc. | Management of computing devices using employee records |
AU2022202863A1 (en) | 2021-04-30 | 2022-11-17 | People Center, Inc. | Improved Management of Computing Devices Via Reference to Linked Employee Records |
US11921992B2 (en) | 2021-05-14 | 2024-03-05 | Apple Inc. | User interfaces related to time |
EP4323992A1 (en) | 2021-05-15 | 2024-02-21 | Apple Inc. | User interfaces for group workouts |
US11558264B1 (en) * | 2021-07-09 | 2023-01-17 | ReadyLinks Inc. | Facilitating and provisioning customer broadband transport service |
US11750407B2 (en) * | 2021-07-09 | 2023-09-05 | ReadyLinks Inc. | Bidirectional power feed digital communication device |
CA3225402A1 (en) | 2021-07-09 | 2023-01-12 | Justin L. SYNSTELIEN | Facilitating and provisioning customer broadband transport service |
US11751018B1 (en) * | 2021-08-02 | 2023-09-05 | T-Mobile Usa, Inc. | Airplane mode toggle based on IMS watchdog timer |
US11901083B1 (en) | 2021-11-30 | 2024-02-13 | Vignet Incorporated | Using genetic and phenotypic data sets for drug discovery clinical trials |
US11705230B1 (en) | 2021-11-30 | 2023-07-18 | Vignet Incorporated | Assessing health risks using genetic, epigenetic, and phenotypic data sources |
US12081537B2 (en) * | 2022-01-21 | 2024-09-03 | VMware LLC | Secure inter-application communication with unmanaged applications using certificate enrollment |
US20230236547A1 (en) | 2022-01-24 | 2023-07-27 | Apple Inc. | User interfaces for indicating time |
EP4394633A1 (en) * | 2022-12-29 | 2024-07-03 | Palantir Technologies Inc. | Systems and methods for context-aware change management |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020131404A1 (en) * | 2000-11-28 | 2002-09-19 | 4Thpass Inc. | Method and system for maintaining and distributing wireless applications |
US7260646B1 (en) * | 2002-01-25 | 2007-08-21 | Palmsource, Inc. | Method of software distribution among hand held computers via file sharing with link references to a web site for complete software versions |
US7308420B1 (en) * | 2000-05-25 | 2007-12-11 | Target Brands, Inc. | Co-branded internet service provider and retailer internet service site with retailer-offered incentives for member use |
US20090222565A1 (en) * | 2008-02-28 | 2009-09-03 | Microsoft Corporation | Centralized Publishing of Network Resources |
US20110093507A1 (en) * | 2009-10-20 | 2011-04-21 | Michael Pilip | Dynamic assignment of rights |
Family Cites Families (130)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5294782A (en) | 1991-09-27 | 1994-03-15 | Khyber Technologies Corporation | Integrated portable device for point of sale transactions |
DE69232396T2 (en) | 1991-12-10 | 2002-09-19 | Khyber Technologies Corp | PORTABLE NEWS AND PLANNING DEVICE WITH BASE STATION |
US5265951A (en) | 1992-02-13 | 1993-11-30 | Khyber Technologies Corporation | Card reading terminal having protective shield for input port thereof |
US5484989A (en) | 1992-02-13 | 1996-01-16 | Khyber Technologies Corporation | Card reading terminal having protective shield for input port thereof |
US5381348A (en) | 1993-01-11 | 1995-01-10 | Fluke Corporation | Token ring local area network testing apparatus using time delay reflectory |
GB2275309B (en) | 1993-02-22 | 1997-10-29 | Yang Tai Her | Differential coupling and compounding system |
US5357585A (en) | 1993-07-09 | 1994-10-18 | Khyber Technologies Corporation | Headphone assembly |
US5925873A (en) | 1993-07-23 | 1999-07-20 | Khyber Technologies Corporation | Grip held and grip operable data entry device |
US5616906A (en) | 1993-07-23 | 1997-04-01 | Khyber Technologies Corporation | Grip held and grip operable data entry device |
US5521369A (en) | 1994-07-25 | 1996-05-28 | Khyber Technologies Corporation | Card shaped computer peripheral device |
US5548478A (en) | 1994-07-25 | 1996-08-20 | Khyber Technologies Corporation | Portable computing device having an adjustable hinge |
US5548477A (en) | 1995-01-27 | 1996-08-20 | Khyber Technologies Corporation | Combination keyboard and cover for a handheld computer |
US5632373A (en) | 1995-04-03 | 1997-05-27 | Khyber Technologies Corporation | Protective case for portable computer |
US5708560A (en) | 1995-07-24 | 1998-01-13 | Khyber Technologies Corporation | Selectively attachable keyboard bracket and lockable holder for a handheld computer |
JPH0944269A (en) | 1995-07-25 | 1997-02-14 | Fujitsu Ltd | Electronic equipment, casing for electronic equipment and manufacture of the casing |
US6708221B1 (en) | 1996-12-13 | 2004-03-16 | Visto Corporation | System and method for globally and securely accessing unified information in a computer network |
JP3518242B2 (en) | 1997-04-14 | 2004-04-12 | 株式会社日立製作所 | Electronic equipment |
US6023721A (en) | 1997-05-14 | 2000-02-08 | Citrix Systems, Inc. | Method and system for allowing a single-user application executing in a multi-user environment to create objects having both user-global and system global visibility |
US6028602A (en) * | 1997-05-30 | 2000-02-22 | Telefonaktiebolaget Lm Ericsson | Method for managing contents of a hierarchical data model |
US6084769A (en) | 1997-08-20 | 2000-07-04 | Compaq Computer Corporation | Docking station with auxiliary heat dissipation system for a docked portable computer |
US7688952B2 (en) | 1997-11-03 | 2010-03-30 | Light Elliott D | System and method for obtaining equipment status data over a network |
US6151606A (en) | 1998-01-16 | 2000-11-21 | Visto Corporation | System and method for using a workspace data manager to access, manipulate and synchronize network data |
TW445386B (en) | 1998-03-16 | 2001-07-11 | Hitachi Ltd | Thin-type display |
US6266539B1 (en) | 1998-06-12 | 2001-07-24 | Cisco Technology, Inc. | Telephone docking station for personal digital assistant |
US6181553B1 (en) | 1998-09-04 | 2001-01-30 | International Business Machines Corporation | Arrangement and method for transferring heat from a portable personal computer |
US6457030B1 (en) | 1999-01-29 | 2002-09-24 | International Business Machines Corporation | Systems, methods and computer program products for modifying web content for display via pervasive computing devices |
GB2346761B (en) | 1999-02-11 | 2003-12-10 | Mitel Corp | A telephone apparatus |
US20040052343A1 (en) | 1999-02-16 | 2004-03-18 | Glaser Lawrence F. | Telecommunications installation and management system and method |
US20020013852A1 (en) | 2000-03-03 | 2002-01-31 | Craig Janik | System for providing content, management, and interactivity for thin client devices |
JP2000269671A (en) | 1999-03-19 | 2000-09-29 | Toshiba Corp | Electronic apparatus |
CN100555164C (en) | 1999-04-07 | 2009-10-28 | 基伯技术公司 | Be used to calculate, the portable processor of communication and amusement |
US6769022B1 (en) | 1999-07-09 | 2004-07-27 | Lsi Logic Corporation | Methods and apparatus for managing heterogeneous storage devices |
US6952617B1 (en) | 1999-07-15 | 2005-10-04 | Khyber Technologies Corporation | Handheld computer with detachable handset |
JP2001091174A (en) | 1999-09-22 | 2001-04-06 | Kel Corp | Heat transfer connector |
US6952671B1 (en) | 1999-10-04 | 2005-10-04 | Xvd Corporation | Vector quantization with a non-structured codebook for audio compression |
US20040098449A1 (en) | 2000-01-20 | 2004-05-20 | Shai Bar-Lavi | System and method for disseminating information over a communication network according to predefined consumer profiles |
US6928467B2 (en) | 2000-02-02 | 2005-08-09 | Inno Path Software, Inc. | Apparatus and methods for providing data synchronization by facilitating data synchronization system design |
US7526437B1 (en) | 2000-04-06 | 2009-04-28 | Apple Inc. | Custom stores |
EP1235416A4 (en) | 2000-10-26 | 2005-08-10 | Mitsubishi Electric Corp | Internet telephone network system, network access method and talking device adapter |
MY147018A (en) | 2001-01-04 | 2012-10-15 | Thomson Licensing Sa | A method and apparatus for acquiring media services available from content aggregators |
US7039041B2 (en) | 2001-03-20 | 2006-05-02 | Robohm Kurt W | Operational support system for telecommunication services |
US7058088B2 (en) | 2001-03-28 | 2006-06-06 | Minolta Co., Ltd. | Data communication program product to rewrite simultaneously firmware of plurality of devices connected to network |
US6900984B2 (en) | 2001-04-24 | 2005-05-31 | Apple Computer, Inc. | Computer component protection |
US7885645B2 (en) | 2001-05-15 | 2011-02-08 | Research In Motion Limited | Information system with detachable information module |
US6674640B2 (en) | 2001-07-02 | 2004-01-06 | Intel Corporation | Increased thermal capability of portable electronic device in stationary or docked mode |
US7243163B1 (en) | 2001-08-07 | 2007-07-10 | Good Technology, Inc. | System and method for full wireless synchronization of a data processing apparatus with a messaging system |
TW583529B (en) | 2001-11-15 | 2004-04-11 | Wistron Corp | Liquid crystal display computer with a removable device frame |
JP2005509979A (en) | 2001-11-15 | 2005-04-14 | ヴィスト・コーポレーション | Asynchronous synchronization system and method |
GB2402781A (en) | 2002-03-22 | 2004-12-15 | Sun Microsystems Inc | Mobile download system |
US7788382B1 (en) | 2002-03-26 | 2010-08-31 | Good Technology, Inc. | Server initiated synchronization |
US6914551B2 (en) | 2002-04-12 | 2005-07-05 | Apple Computer, Inc. | Apparatus and method to facilitate universal remote control |
GB0209190D0 (en) | 2002-04-23 | 2002-06-05 | Lewis Keith | Lighting apparatus |
US7447799B2 (en) | 2002-04-24 | 2008-11-04 | Good Technology, Inc. | System and method for automatically updating a wireless device |
USRE44122E1 (en) | 2002-05-29 | 2013-04-02 | Khyber Technologies Corporation | Portable data entry device with a detachable host PDA |
EP1535159B1 (en) | 2002-08-09 | 2016-03-02 | Good Technology Corporation | System and method for preventing access to data on a compromised remote device |
US20040060687A1 (en) | 2002-09-27 | 2004-04-01 | Moss David William | Versatile and ergonomic heat-dissipating stand for attachment to portable computers |
US7120785B1 (en) | 2002-11-25 | 2006-10-10 | Apple Computer, Inc. | Method and apparatus rendering user accounts portable |
US7171194B2 (en) | 2003-02-14 | 2007-01-30 | Maxon, Llc | Network device management |
US6870735B2 (en) | 2003-03-25 | 2005-03-22 | Jds Uniphase Corporation | Heat sink with visible logo |
US7627343B2 (en) | 2003-04-25 | 2009-12-01 | Apple Inc. | Media player system |
US7275073B2 (en) | 2003-05-07 | 2007-09-25 | Good Technology, Inc. | System and method for notifying mobile devices based on device type and network capabilities |
US7890091B2 (en) | 2003-05-08 | 2011-02-15 | Good Technology, Inc. | Collaborative data and intelligent synchronization for mobile devices |
US7236770B2 (en) | 2003-09-03 | 2007-06-26 | Good Technology, Inc. | System and method for notifying target communication devices of message reception at a message server via log file monitoring |
US20050213960A1 (en) | 2003-10-31 | 2005-09-29 | Cyrus Baldwin | Heat pumped surveillance camera housing and method of manufacturing the same |
JP4822663B2 (en) | 2003-12-12 | 2011-11-24 | ソニー株式会社 | Information processing apparatus and method, and program |
AU2003294519A1 (en) | 2003-12-15 | 2005-06-29 | Bce Inc. | Adapter for secure voip communications |
JP4408224B2 (en) | 2004-01-29 | 2010-02-03 | 富士通株式会社 | Housing with heat dissipation function |
US20050183143A1 (en) | 2004-02-13 | 2005-08-18 | Anderholm Eric J. | Methods and systems for monitoring user, application or device activity |
US7400878B2 (en) | 2004-02-26 | 2008-07-15 | Research In Motion Limited | Computing device with environment aware features |
US20060030341A1 (en) | 2004-08-06 | 2006-02-09 | Avaya Technology Corp. | Mobile desk phone |
US7620001B2 (en) | 2004-10-13 | 2009-11-17 | Good Technology, Inc. | Communication system and method with mobile devices |
JP4426943B2 (en) | 2004-10-27 | 2010-03-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Electronic device provided with cooling device inside casing |
US20060112428A1 (en) | 2004-11-23 | 2006-05-25 | Nokia Corporation | Device having a locking feature and a method, means and software for utilizing the feature |
GB0426736D0 (en) | 2004-12-06 | 2005-01-12 | Omnifone Ltd | MyFone |
US7823214B2 (en) | 2005-01-07 | 2010-10-26 | Apple Inc. | Accessory authentication for electronic devices |
US20060200658A1 (en) | 2005-03-07 | 2006-09-07 | Bitfone Corporation | Agent framework for mobile devices |
US7970386B2 (en) | 2005-06-03 | 2011-06-28 | Good Technology, Inc. | System and method for monitoring and maintaining a wireless device |
US8078740B2 (en) | 2005-06-03 | 2011-12-13 | Microsoft Corporation | Running internet applications with low rights |
US20060277209A1 (en) | 2005-06-06 | 2006-12-07 | Javaground Usa, Inc. | Efficient and automatic software application development system for wireless devices |
TWI283806B (en) | 2005-06-07 | 2007-07-11 | Htc Corp | Portable electronic device |
US20070080823A1 (en) | 2005-10-07 | 2007-04-12 | Apple Computer, Inc. | Techniques for pairing remote controllers with host devices |
CN100361456C (en) | 2005-10-13 | 2008-01-09 | 华为技术有限公司 | Terminal equipment managing method |
US20070093243A1 (en) | 2005-10-25 | 2007-04-26 | Vivek Kapadekar | Device management system |
FR2894420A1 (en) | 2005-12-05 | 2007-06-08 | Inventel Sa | TELEPHONE COMBINE, BASE AND ASSOCIATED METHOD FOR UPDATING COMBINE SOFTWARE |
US8935429B2 (en) | 2006-12-19 | 2015-01-13 | Vmware, Inc. | Automatically determining which remote applications a user or group is entitled to access based on entitlement specifications and providing remote application access to the remote applications |
US8010701B2 (en) | 2005-12-19 | 2011-08-30 | Vmware, Inc. | Method and system for providing virtualized application workspaces |
US8261290B2 (en) | 2005-12-30 | 2012-09-04 | Microsoft Corporation | Heartbeat subscriptions |
US7574177B2 (en) | 2006-01-04 | 2009-08-11 | Apple Inc. | Remote controller and FM reception arrangement |
US7702322B1 (en) | 2006-02-27 | 2010-04-20 | Good Technology, Llc | Method and system for distributing and updating software in wireless devices |
US8086332B2 (en) | 2006-02-27 | 2011-12-27 | Apple Inc. | Media delivery system with improved interaction |
US7620392B1 (en) | 2006-02-27 | 2009-11-17 | Good Technology, Inc. | Method and system for distributing and updating software in wireless devices |
US8073984B2 (en) | 2006-05-22 | 2011-12-06 | Apple Inc. | Communication protocol for use with portable electronic devices |
US20070283114A1 (en) | 2006-06-01 | 2007-12-06 | Lawrence Andy V | Method and system for dividing a hard disk drive into multiple host access spaces |
US20070294380A1 (en) | 2006-06-14 | 2007-12-20 | Kabushiki Kaisha Toshiba | System and method for periodic server-to-client data delivery |
US8903365B2 (en) | 2006-08-18 | 2014-12-02 | Ca, Inc. | Mobile device management |
US20080125079A1 (en) | 2006-11-07 | 2008-05-29 | O'neil Douglas | Methods, systems and computer products for remote monitoring and control of application usage on mobile devices |
US20080115225A1 (en) | 2006-11-14 | 2008-05-15 | Fabrice Jogand-Coulomb | System for allowing multiple users to access preview content |
US8000736B2 (en) | 2007-01-06 | 2011-08-16 | Apple Inc. | User programmable switch for portable data processing devices |
WO2008103608A2 (en) | 2007-02-19 | 2008-08-28 | Ondeego, Inc. | Methods and system to create applications and distribute applications to a remote device |
US8214885B2 (en) | 2007-05-07 | 2012-07-03 | Mocana Corporation | Managing network components using USB keys |
US8060074B2 (en) | 2007-07-30 | 2011-11-15 | Mobile Iron, Inc. | Virtual instance architecture for mobile device management systems |
US20090150970A1 (en) | 2007-12-05 | 2009-06-11 | Sybase, Inc. | Data Fading to Secure Data on Mobile Client Devices |
US9185554B2 (en) | 2008-02-15 | 2015-11-10 | Appcentral, Inc. | System and methods to store, retrieve, manage, augment and monitor applications on appliances |
US8254902B2 (en) | 2008-06-26 | 2012-08-28 | Apple Inc. | Apparatus and methods for enforcement of policies upon a wireless device |
US20100077035A1 (en) | 2008-09-23 | 2010-03-25 | Nokia Corporation | Optimized Polling in Low Resource Devices |
US8199507B2 (en) | 2008-12-19 | 2012-06-12 | Openpeak Inc. | Telephony and digital media services device |
US8127982B1 (en) | 2009-01-09 | 2012-03-06 | Apple Inc. | Parental controls |
US8121638B2 (en) | 2009-02-27 | 2012-02-21 | Research In Motion Limited | System and method for security on a mobile device using multiple communication domains |
US20100299152A1 (en) | 2009-05-20 | 2010-11-25 | Mobile Iron, Inc. | Selective Management of Mobile Devices in an Enterprise Environment |
US8695058B2 (en) | 2009-05-20 | 2014-04-08 | Mobile Iron, Inc. | Selective management of mobile device data in an enterprise environment |
US8302094B2 (en) | 2009-06-26 | 2012-10-30 | Vmware, Inc. | Routing a physical device request using transformer stack to an equivalent physical device in a virtualized mobile device |
US8438256B2 (en) | 2009-06-26 | 2013-05-07 | Vmware, Inc. | Migrating functionality in virtualized mobile devices |
US8341749B2 (en) | 2009-06-26 | 2012-12-25 | Vmware, Inc. | Preventing malware attacks in virtualized mobile devices |
US8233882B2 (en) | 2009-06-26 | 2012-07-31 | Vmware, Inc. | Providing security in mobile devices via a virtualization software layer |
US8219063B2 (en) | 2009-06-26 | 2012-07-10 | Vmware, Inc. | Controlling usage in mobile devices via a virtualization software layer |
US8675084B2 (en) | 2009-09-04 | 2014-03-18 | Apple Inc. | Systems and methods for remote camera control |
US8984657B2 (en) | 2009-09-08 | 2015-03-17 | Appcentral, Inc. | System and method for remote management of applications downloaded to a personal portable wireless appliance |
US20110082789A1 (en) | 2009-10-06 | 2011-04-07 | Apple Inc. | Vendor payment consolidation system |
US20110093583A1 (en) | 2009-10-16 | 2011-04-21 | Apple Inc. | Triggering actions based on changes in a network connection |
US8850572B2 (en) | 2010-01-15 | 2014-09-30 | Apple Inc. | Methods for handling a file associated with a program in a restricted program environment |
US8180893B1 (en) | 2010-03-15 | 2012-05-15 | Symantec Corporation | Component-level sandboxing |
US8572706B2 (en) | 2010-04-26 | 2013-10-29 | Vmware, Inc. | Policy engine for cloud platform |
US8516446B2 (en) | 2010-05-21 | 2013-08-20 | Apple Inc. | Automated qualification of a binary application program |
US9077796B2 (en) | 2010-08-17 | 2015-07-07 | Openpeak Inc. | System containing a mobile communication device and associated docking station |
US20120066223A1 (en) | 2010-09-13 | 2012-03-15 | Openpeak Inc. | Method and computing device for creating distinct user spaces |
US8650658B2 (en) | 2010-10-25 | 2014-02-11 | Openpeak Inc. | Creating distinct user spaces through user identifiers |
US20120102564A1 (en) | 2010-10-25 | 2012-04-26 | Openpeak Inc. | Creating distinct user spaces through mountable file systems |
EP2638465A2 (en) | 2010-11-09 | 2013-09-18 | Openpeak Inc. | Communication devices, networks, services and accompanying methods |
US8359016B2 (en) | 2010-11-19 | 2013-01-22 | Mobile Iron, Inc. | Management of mobile applications |
EP2727042B1 (en) | 2011-07-01 | 2016-04-06 | Fiberlink Communications Corporation | Rules based actions for mobile device management |
-
2011
- 2011-07-09 US US13/179,510 patent/US8788655B2/en active Active
-
2014
- 2014-05-02 US US14/268,734 patent/US20140289314A1/en not_active Abandoned
-
2015
- 2015-09-08 US US14/847,861 patent/US20160234341A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7308420B1 (en) * | 2000-05-25 | 2007-12-11 | Target Brands, Inc. | Co-branded internet service provider and retailer internet service site with retailer-offered incentives for member use |
US20020131404A1 (en) * | 2000-11-28 | 2002-09-19 | 4Thpass Inc. | Method and system for maintaining and distributing wireless applications |
US7260646B1 (en) * | 2002-01-25 | 2007-08-21 | Palmsource, Inc. | Method of software distribution among hand held computers via file sharing with link references to a web site for complete software versions |
US20090222565A1 (en) * | 2008-02-28 | 2009-09-03 | Microsoft Corporation | Centralized Publishing of Network Resources |
US20110093507A1 (en) * | 2009-10-20 | 2011-04-21 | Michael Pilip | Dynamic assignment of rights |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110173605A1 (en) * | 2010-01-10 | 2011-07-14 | Microsoft Corporation | Automated Configuration and Installation of Virtualized Solutions |
US10599411B2 (en) | 2010-01-10 | 2020-03-24 | Microsoft Technology Licensing, Llc | Automated configuration and installation of virtualized solutions |
US9760360B2 (en) | 2010-01-10 | 2017-09-12 | Microsoft Technology Licensing, Llc | Automated configuration and installation of virtualized solutions |
US9134982B2 (en) * | 2010-01-10 | 2015-09-15 | Microsoft Technology Licensing, Llc | Automated configuration and installation of virtualized solutions |
US9591088B2 (en) | 2012-07-24 | 2017-03-07 | Appboy, Inc. | Method and system for collecting and providing application usage analytics |
US9239771B2 (en) * | 2012-07-24 | 2016-01-19 | Appboy, Inc. | Method and system for collecting and providing application usage analytics |
US20140032656A1 (en) * | 2012-07-24 | 2014-01-30 | Appboy, Inc. | Method and system for collecting and providing application usage analytics |
US9071618B1 (en) | 2014-08-04 | 2015-06-30 | Bank Of America Corporation | Providing multiple access levels to a single user account using different login credentials |
US20160179498A1 (en) * | 2014-12-19 | 2016-06-23 | Paypal, Inc. | App store update notification and warning system |
US9569196B2 (en) * | 2014-12-19 | 2017-02-14 | Paypal, Inc. | App store update notification and warning system |
US10992709B2 (en) * | 2015-07-28 | 2021-04-27 | Citrix Systems, Inc. | Efficient use of IPsec tunnels in multi-path environment |
US20210365013A1 (en) * | 2016-04-05 | 2021-11-25 | Wellaware Holdings, Inc. | Device for monitoring and controlling industrial equipment |
US11513503B2 (en) * | 2016-04-05 | 2022-11-29 | Wellaware Holdings, Inc. | Monitoring and controlling industrial equipment |
CN106060594A (en) * | 2016-05-25 | 2016-10-26 | 武汉斗鱼网络科技有限公司 | White list generation system and white list generation method based on player heartbeat |
US10712915B2 (en) | 2016-06-08 | 2020-07-14 | Alibaba Group Holding Limited | Information presentation using a client on a terminal |
US10098065B2 (en) * | 2017-02-21 | 2018-10-09 | Qualcomm Incorporated | Power saving via PHY firmware island |
Also Published As
Publication number | Publication date |
---|---|
US20120036220A1 (en) | 2012-02-09 |
US20160234341A1 (en) | 2016-08-11 |
US8788655B2 (en) | 2014-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8612582B2 (en) | Managed services portals and method of operation of same | |
US8788655B2 (en) | Systems for accepting and approving applications and methods of operation of same | |
US8615581B2 (en) | System for managing devices and method of operation of same | |
US8745213B2 (en) | Managed services platform and method of operation of same | |
US8650290B2 (en) | Portable computing device and method of operation of same | |
US8856322B2 (en) | Supervisory portal systems and methods of operation of same | |
US20180129511A1 (en) | Application store and intelligence system for networked telephony and digital media services devices | |
US10951608B2 (en) | Managed domains for remote content and configuration control on mobile information devices | |
CN111475170B (en) | Multi-screen application enablement and distribution service | |
US9071627B2 (en) | Method and system for cloning applications from an electronic source device to an electronic target device | |
CA2651347C (en) | A method of providing digital rights management for music content by means of a flat-rate subscription | |
US8838087B1 (en) | Provisioning system and methods for interfaceless phone | |
CN103906034A (en) | Mobile application providing method and mobile application providing server | |
Dauti | Installing and Configuring Windows 10: 70-698 Exam Guide: Learn to deploy, configure, and monitor Windows 10 effectively to prepare for the 70-698 exam | |
US20130266928A1 (en) | Bandwidth-aware obtaining of demonstration experience content | |
US20130268376A1 (en) | Service-based demonstration experience configuration | |
Van Vugt | Ubuntu Netbooks | |
Halsey et al. | Configuring Your PC’s Settings |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: OPENPEAK INC., FLORIDA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DARE, ROBERT M;KACHEROV, VADIM;KRZYZANOWSKI, PAUL;AND OTHERS;SIGNING DATES FROM 20111006 TO 20111012;REEL/FRAME:032818/0248 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |