Patent Publication Number: US-11030315-B2

Title: Systems, methods, and computer program products for managing disabling of services

Description:
CROSS REFERENCE TO RELATED APPLICATION 
     This application claims priority to U.S. Provisional Application No. 61/825,870 filed May 21, 2013, the contents of which are incorporated herein by reference. 
    
    
     BACKGROUND 
     Field 
     The present invention generally relates to managing applications on a secure element. More particularly, the present invention relates to systems, methods, and computer program products for managing the availability states of those applications. 
     Related Art 
     Mobile commerce is a rapidly growing industry in which users, through their mobile devices, purchase items in-store or online. To make these purchases, a mobile wallet is installed on a user&#39;s mobile device. The mobile wallet connects the user&#39;s bank account or credit cards to their mobile device. With the aid of a near-field communication chip (NFC), a user can use his/her mobile device to pay for goods and services from brick-and-mortar stores by contactlessly interacting with a NFC payment system. The mobile wallet itself is an application stored on the mobile device. Sensitive user information, in addition to one or more mobile commerce applications, may be stored on a secure element on the mobile device. The mobile commerce applications may originate from different sources, including service providers (e.g., a merchant, a banking institution, or a credit card company) or an operator of a mobile network over which the mobile device communicates (also referred to as a mobile network operator (MNO)). 
     Mobile commerce applications are occasionally updated with newer versions, which are then delivered to the mobile devices. There is the potential, however, that an unforeseen issue may arise with an updated version of an application which may cause the user&#39;s mobile device to malfunction, or be rendered inactive altogether (commonly referred to as “bricking” a device). Considering that many mobile devices automatically update themselves, or are routinely updated by their users, a defective version may quickly propagate through a user community. Thus, with the release of each new version of an application, there is a potential for a cascading failure. To minimize this risk, new versions of applications are tested extensively. Nevertheless, such testing cannot guarantee that an issue will not arise. Therefore, it would be advantageous to be able to stem the distribution of defective applications once a defect it discovered. Moreover, it would also be advantageous to quickly and efficiently stop the rollout of a defective application with minimal effort. 
     BRIEF DESCRIPTION 
     The present invention provides systems, methods, and computer program products for managing the availability states of applications on secure elements. 
     In one embodiment, a method of managing the availability of a service includes at least one receiving and modifying step. A request to modify an availability state of a version of the service is received. The availability state of the version of the service is stored in the memory and is modified in accordance with the request. The availability state is modified to: (i) unavailable in a case where the request includes an instruction to disable the version of the service, and (ii) available in a case where the request includes an instruction to enable the version of the service. The service is associated with a secure element profile. 
     In another embodiment, a data processing system for managing the availability of a service includes at least one memory that stores an availability state of a version of the service, a communication unit, and a processor. The communication unit is configured to receive a request to modify the availability state of the version of the service. The processor is coupled to the at least one memory and the communication unit, and is operable to: modify the availability state of the version of the service stored in the at least one memory in accordance with the request, wherein the availability state is modified to: (i) unavailable in a case where the request includes an instruction to disable the version of the service, and (ii) available in a case where the request includes an instruction to enable the version of the service. The service is associated with a secure element profile. 
     In yet another embodiment, a method of managing the availability of a function comprising at least one receiving and modification step is described. A request to modify an availability state of a function is received. The availability state of the function is modified in accordance with the request. The availability state is modified to: (i) unavailable in a case where the request includes an instruction to disable the function, and (ii) available in a case where the request includes an instruction to enable the function. The function is associated with a secure element. 
     In still a further embodiment, a non-transitory computer readable storage medium having stored thereon instructions which, when executed by a system including at least one processor and at least one memory, cause the system to perform at least one receiving and modification step is described. A request to modify an availability state of a version of the service, the availability state of the service being stored in a memory, is received. The availability state of the version of the service stored in the memory is modified in accordance with the request. The availability state is modified to: (i) unavailable in a case where the request includes an instruction to disable the version of the service, and (ii) available in a case where the request includes an instruction to enable the version of the service. The service is associated with a secure element profile. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       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 following drawings. 
         FIG. 1  is an overview of a mobile commerce system according to an example embodiment. 
         FIG. 2  is a sequence diagram of an installation operation according to an example embodiment. 
         FIG. 3  is a sequence diagram of an upgrade operation according to an example embodiment. 
         FIG. 4  is a flowchart illustrating the steps of modifying the availability state of a version of an application according to an example embodiment. 
         FIG. 5  is a flowchart illustrating the steps of modifying the availability state of a function according to an example embodiment. 
         FIG. 6  is a block diagram of a general or special purpose computer according to an example embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     Mobile Commerce System 
       FIG. 1  is a diagram of an example mobile commerce system  100 . The system allows service providers to efficiently communicate with mobile devices over a mobile network. As shown in  FIG. 1 , system  100  includes service provider trusted service managers (“SP TSM”)  103 - 1 ,  103 - 2 , . . . ,  103 - n  (collectively “ 103 ”). Each of the SP TSMs  103  corresponds to a service provider  107 - 1 ,  107 - 2 , . . . ,  107 - n  (collectively “ 107 ”). A service provider  107  is an entity that provides one or more services to a user through one or more applications, applets, codes, or packages stored on the user&#39;s mobile device and/or secure element. Each SP TSM  103  serves as an intermediary between the service providers  107  and other entities including secure elements, MNOs, and another type of TSM (referred to herein as a “central TSM”  102 ), which may be managed, for example, by a mobile wallet provider. 
     Through a corresponding SP TSM  103 , a service provider  107  can provide applications or instructions regarding those applications to the central TSM  102 . As such, each of the SP TSMs  103  is communicatively coupled to the central TSM  102  via a communications network  105 . Communications network  105  may be a virtual private network (VPN), a network using Transfer Control Protocol (TCP)/Internet Protocol (IP) standards (e.g., Hypertext Transfer Protocol (HTTP) standards), or the like. Each of the SP TSMs  103  and the central TSM  102  may also secure these communications by using security protocols such as Secure Socket Layer (SSL), Transport Layer Security (TLS), or the like. Each of the SP TSMs  103  may also communicate with the central TSM  102  by using an application programming interface (API) such as a web service API. 
     In an exemplary embodiment, the central TSM  102  includes a processor  102   a  and a memory  102   b . The central TSM  102  may be implemented via software stored on the memory  102   b  to serve as an intermediary between the SP TSMs  103  and the secure elements  106   a - 1 ,  106   a - 2 , . . . ,  106   a - n  (collectively “ 106   a ”). Secure elements  106   a  may be hardware and/or software implemented to store sensitive information and/or code applets, applications and packages. Physically, the secure element may be implemented as a universal integrated circuit card, an embedded secure element, or a micro secure digital (micro SD) card. Alternatively, the secure element may be implemented as a secure storage communicatively connected to the mobile device. For example, such a secure element may be cloud-based, virtual or remote storage. 
     More specifically, the central TSM  102  provides each of the SP TSMs  103  with means to, for example, load, modify, install, or delete applications on the secure elements  106   a . In addition, the SP TSMs  103 , through the central TSM  102 , can request pre-personalization of a secure element  106   a  or personalization of a payment service. That is, the central TSM  102  manages the communications between the SP TSMs  103  and the secure elements  106   a.    
     To manage the communications between the SP TSMs  103  and the secure elements  106   a , the central TSM  102  is constructed to communicate with a plurality of service providers  107  and SP TSMs  103 , and with a plurality of secure elements  106   a  over a plurality of mobile networks  104 - 1 ,  104 - 2 , . . . ,  104 - n  (collectively “ 104 ”). In one embodiment, the central TSM  102  may include or be communicatively coupled to an enterprise service bus (ESB)  101 . The ESB  101  is an architecture model for implementing the interactions and communications between entities (e.g., secure elements  106   a , SP TSMs  103 , central TSM  102 ). In one example embodiment, the functions described herein that are performed by the central TSM  102  may be performed by an ESB (e.g., ESB  101 ) or any system or device that is specifically programmed to perform such functions. 
     As noted above, the central TSM  102  is communicatively coupled to the secure elements  106   a  via corresponding mobile networks  104  used and/or managed by corresponding MNOs. Generally, the mobile networks  104  are used by MNOs to provide wireless communications services. The mobile networks  104  may be mobile phone cellular networks, radio networks, or the like. The central TSM  102  may communicate with the secure elements  106   a , via the mobile networks  104 , using security protocols such as Global Platform secure channel protocol, SSL, TLS, or the like. 
     The secure elements  106   a  are associated with corresponding mobile devices  106 - 1 ,  106 - 2 , . . . ,  106 - n  (collectively “ 106 ”), respectively. The secure elements  106   a  may be communicatively coupled to one or more processors and one or more memories, for example, of their respective mobile devices  106 . 
     As discussed above, the secure elements  106   a  may include code, applets, applications, and packages. These items may be provided by service providers  107 , mobile network operators, or a system administrator, and may be preloaded on the secure element  106   a  at the time of manufacture. Packages may include uninstantiated applets and/or applications, and may be loaded on the secure element  106   a , for example, over-the-air (OTA). Applets and/or applications on the secure element  106   a  may also be in uninstantiated or instantiated form. Uninstantiated applets and/or applications may be loaded on the secure element  106   a  and later instantiated to create one or more instances of said applet and/or application. In addition, applets and/or applications may be loaded, for example, OTA after the secure element  106   a  has been manufactured (e.g., after delivering the secure element  106   a  to a user). 
     Applets and applications may be generic or non-generic. Non-generic applets and applications correspond to a single service provider  107 . For example, applets or applications corresponding to a single service provider&#39;s coupon or loyalty program are non-generic. Data used and/or associated with a non-generic applet or application (e.g., offers, coupons) may be stored in the secure element  106   a  or in memory outside of the secure element  106   a  (e.g., non-volatile memory of a mobile device  106 ). 
     Generic applets and applications can be used by multiple service providers  107 . For example, a payment network application (e.g., MasterCard®) may be instantiated for multiple service providers  107  by the central TSM  102 , and therefore used by more than one service provider. 
     Exclusive ownership, control, and/or management of uninstantiated applets or applications allows a single entity to efficiently and cost effectively supervise the applets and/or applications. Further, exclusive ownership, control, and/or management increases security and minimizes the complexities caused by multiple service providers loading and controlling different applets and/or applications on a secure element  106   a . For example, a service provider may utilize an instance of an uninstantiated applet and/or application instead of certifying and installing an independent applet or application on the secure element  106   a.    
     An application, applet, package, or code, when executed by a processor causes the mobile device  106  to perform a corresponding service (e.g., make a payment, receive a coupon, or receive an advertisement, etc.). An applet or application on a secure element  106   a  may function pursuant to requirements established by Global Platform, Europay, MasterCard®, Visa® (EMVCo.), MNOs, and payment networks (e.g., MasterCard®, Visa®, Discover®, American Express®). Applets or applications may be, for example, Expresspay™ payWave™, PayPass™, Zip™, and the like. 
     Secure Element Profiles 
     Since mobile devices  106  operate on different mobile networks ( 104 - 1 ,  104 - 2 , . . . ,  104 - n ) and the secure elements  106   a  may have different hardware configurations, the central TSM  102  maintains a secure element profile that contains information regarding each of secure elements  106   a . A secure element profile defines specific hardware and software features (e.g., installed applets and applet versions) of a given secure element. One example of a secure element profile, including fields and descriptions of information of the secure element profile, is shown below. It should be understood that the following is simply an example, and that a secure element profile might contain more, fewer, or different fields. 
     
       
         
           
               
               
             
               
                   
               
               
                 FIELD 
                 DESCRIPTION 
               
               
                   
               
             
            
               
                 SE Profile Name 
                 Name of secure element profile (e.g., 
               
               
                   
                 UICC_01_P01001) 
               
               
                 SE Profile Version 
                 Version number of secure element 
               
               
                   
                 profile 
               
               
                 Applet A Version 
                 Version of an applet named Applet A 
               
               
                 Applet B Version 
                 Version of another (different) Applet 
               
               
                   
                 named Applet B 
               
               
                 Applet C Version 
                 Version of another (different) Applet 
               
               
                   
                 named Applet C 
               
               
                 Contactless Applet Version 
                 Version of applet for contactless 
               
               
                   
                 transactions (e.g., contactless payment) 
               
               
                 Payment Applet A Version 
                 Version of applet for payment 
               
               
                   
                 transactions 
               
               
                 Payment Applet B Version 
                 Version of another (different) applet for 
               
               
                   
                 payment transactions named Payment 
               
               
                   
                 Applet B 
               
               
                 Payment Applet C Version 
                 Version of another (different) applet for 
               
               
                   
                 payment transactions named Payment 
               
               
                   
                 Applet C 
               
               
                 Secure Element Manufacturer 
                 Identity of manufacturer of secure 
               
               
                   
                 element 
               
               
                 Secure Element Form Factor 
                 e.g., Universal Integrated Circuit Card, 
               
               
                   
                 (UICC), embedded 
               
               
                 Secure Element Pre-personalization 
                 e.g., an identity of a pre-set 
               
               
                   
                 personalization of the secure element 
               
               
                   
                 corresponding to the secure element 
               
               
                   
                 manufacturer 
               
               
                 Mobile Network Operator (MNO) 
                 Carrier or mobile operator corresponding 
               
               
                   
                 to a mobile device having a secure 
               
               
                   
                 element 
               
               
                 SE Part Number 
                 Part number corresponding to the secure 
               
               
                   
                 element (e.g., the manufacturer&#39;s part 
               
               
                   
                 number) 
               
               
                 SE Manufacturer Version 
                 Manufacturer version number 
               
               
                   
                 corresponding to the secure element, 
               
               
                   
                 e.g., GP 2.2.1, UICC Configuration 
               
               
                   
                 v1.0.1, Amendment A, Amendment B, 
               
               
                   
                 and Amendment C (CGM not supported) 
               
               
                 JavaCard version 
                 Version number corresponding to the 
               
               
                   
                 JavaCard, e.g., JavaCard 2.2.2, parts of 
               
               
                   
                 3.0.1 for deselect, and Iso &amp; Contactless 
               
               
                   
                 interface management 
               
               
                 Available volatile memory space limit 
                 Total amount of volatile memory space 
               
               
                   
                 available, e.g., 13.5k/18k (total incl. OS 
               
               
                   
                 30k) 
               
               
                 Available non-volatile memory space 
                 Total amount of non-volatile memory 
               
               
                 limit 
                 space available, e.g., 184k/256k 
               
               
                 Volatile memory assigned at 
                 e.g., volatile memory assigned at 
               
               
                 manufacture to trusted security domain 
                 manufacturer to the trusted security 
               
               
                   
                 domain for the system described herein 
               
               
                 Non-volatile memory assigned at 
                 e.g., non-volatile memory assigned at 
               
               
                 manufacture to trusted security domain 
                 manufacturer to the trusted security 
               
               
                   
                 domain for the system described herein 
               
               
                 Platform Certificate Number (PCN) 
                 e.g., PCN0012 
               
               
                 PCN expiration date 
                 e.g., 14 Feb. 2012 
               
               
                   
               
            
           
         
       
     
     Other fields of the secure element profile may include, for example, OS version, GlobalPlatform version, extra capabilities of the secure element (e.g., on-board key generation), loaded applications and their versions, etc. 
     A secure element profile may include or be associated with a secure element profile availability table, which details, among other things, the applets and/or applications (and their versions) that are compatible with each secure element  106   a  and/or secure element profile. As noted above, applications may be updated over time with newer versions. However, a newer version of an application may not be compatible with every type of secure element  106   a , or even those secure elements  106   a  with which the previous version of the application was compatible. Such a change in compatibility may be caused by, for example, the newer version of the application requiring a different hardware configuration, and thus rendering it incompatible with older secure elements. Accordingly, the secure element profile availability table includes information on the compatible versions of each application for each secure element profile, as illustrated below in Table 1. It should be understood that a secure element table can be stored in and managed by a central TSM (e.g., central TSM  102 ), ESB (e.g., ESB  101 ) or the like. 
     
       
         
           
               
               
               
               
               
             
               
                 TABLE 1 
               
               
                   
               
               
                 Secure Element 
                   
                   
                   
                   
               
               
                 Profile Name 
                 Appln. ID 
                 Version(s) 
                 Appln. ID 
                 Version(s) 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
               
               
               
               
               
               
               
            
               
                 UICC_R1_MNO1 
                 101 
                 1.0 
                 1.1 
                 — 
                 102 
                 1.0 
                 1.1 
                 1.2 
               
               
                 UICC_R2_MNO1 
                 101 
                 1.0 
                 1.1 
                 1.2 
                 102 
                 1.0 
                 1.1 
                 1.2 
               
               
                 UICC_R1_MNO2 
                 101 
                 1.0 
                 1.1 
                 — 
                 102 
                 1.0 
                 1.1 
                 1.2 
               
               
                 UICC_R2_MNO2 
                 101 
                 1.0 
                 1.1 
                 1.2 
                 102 
                 1.0 
                 1.1 
                 1.2 
               
               
                 MSD_R1_MNO1 
                 101 
                 1.0 
                 1.1 
                 — 
                 102 
                 1.0 
                 1.1 
                 1.2 
               
               
                 MSD_R2_MNO1 
                 101 
                 1.0 
                 1.1 
                 1.2 
                 102 
                 1.0 
                 1.1 
                 1.2 
               
               
                 MSD_R1_MNO2 
                 101 
                 1.0 
                 1.1 
                 — 
                 102 
                 1.0 
                 1.1 
                 1.2 
               
               
                 MSD_R2_MNO2 
                 101 
                 1.0 
                 1.1 
                 1.2 
                 102 
                 1.0 
                 1.1 
                 1.2 
               
               
                   
               
            
           
         
       
     
     Table 1 is an exemplary secure element availability profile table, which includes fields for the secure element profile name, application ID corresponding to the application, and compatible version(s) of the application. In this example, each secure element profile name is based on the type of physical medium embodying the secure element  106   a  (e.g., universal integrated circuit card (UICC), embedded secure element, or micro SD), the release version (R1, R2), and the mobile network operator over which the mobile device  106  comprising the secure element  106   a  communicates (MNO1, MNO2). The application ID field (Appln. ID) is a unique numerical value assigned to each application. The version field tracks all versions of the application corresponding to the application ID that are compatible with the secure element profile. For example, secure element profile “UICC_R1_MNO1” is a profile of a first release secure element embodied in a universal integrated circuit card and to be used with mobile network operator  1 . Version 1.0 and 1.1 of application  101  are compatible with UICC_R1_MNO1, but not version 1.2. In this example, version 1.2 is incompatible, for example, because the first release (R1) of the UICC lacks the necessary hardware. In contrast, UICC_R2_MNO1, which is the second release (R2) of the UICC is compatible with version 1.2. For similar reasons, version 1.2 of application  101  is also incompatible with UCC_R1_MNO2, MSD_R1_MNO1 and MSD_R1_MNO2. Of course, later versions of an application may be incompatible with a secure element profile for other reasons as well, such as the physical embodiment of the secure element  106   a  or the mobile network operator. 
     While multiple versions of an application may be compatible with a secure element  106   a , not all versions of that application may necessarily be available at once. Rather, one or more of the compatible versions may be deemed to be available, while the other versions are unavailable. As such, the central TSM  102  is also constructed to store an availability state for each version of the application. Typically, the availability state of the latest version (e.g., most recent or newer version) of an application is set to available. The availability state for each of the application versions shown in Table 1 is represented visually in Table 2 below. 
     
       
         
           
               
               
               
               
               
             
               
                 TABLE 2 
               
               
                   
               
               
                 Secure Element 
                 Appln. 
                   
                 Appln. 
                   
               
               
                 Profile Name 
                 ID 
                 Version(s) 
                 ID 
                 Version(s) 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
               
               
               
               
               
               
               
            
               
                 UICC_R1_MNO1 
                 101 
                 1.0 
                 
                   
                 
                 — 
                 102 
                 1.0 
                 1.1 
                 
                   
                 
               
               
                 UICC_R2_MNO1 
                 101 
                 1.0 
                 1.1 
                 
                   
                 
                 102 
                 1.0 
                 1.1 
                 
                   
                 
               
               
                 UICC_R1_MNO2 
                 101 
                 1.0 
                 
                   
                 
                 — 
                 102 
                 1.0 
                 1.1 
                 
                   
                 
               
               
                 UICC_R2_MNO2 
                 101 
                 1.0 
                 1.1 
                 
                   
                 
                 102 
                 1.0 
                 1.1 
                 
                   
                 
               
               
                 MSD_R1_MNO1 
                 101 
                 1.0 
                 
                   
                 
                 — 
                 102 
                 1.0 
                 1.1 
                 
                   
                 
               
               
                 MSD_R2_MNO1 
                 101 
                 1.0 
                 1.1 
                 
                   
                 
                 102 
                 1.0 
                 1.1 
                 
                   
                 
               
               
                 MSD_R1_MNO2 
                 101 
                 1.0 
                 
                   
                 
                 — 
                 102 
                 1.0 
                 1.1 
                 
                   
                 
               
               
                 MSD_R2_MNO2 
                 101 
                 1.0 
                 1.1 
                 
                   
                 
                 102 
                 1.0 
                 1.1 
                 
                   
                 
               
               
                   
               
            
           
         
       
     
     As shown in Table 2, versions of the application highlighted in bold and italics have availability states set to “available” while other versions of that application (which are not highlighted in bold) are set to unavailable. 
     Information on the availability states is especially useful when the secure element  106   a  is to be activated or personalized. The secure element  106   a  communicates with the central TSM  102  to determine whether the uninstantiated applications are the latest versions. This process is illustrated in  FIG. 2 . 
     As shown in  FIG. 2 , upon the central TSM  102  determining that installation of an application is to be performed, the central TSM  102  retrieves or identifies information regarding the version of the corresponding application loaded on the secure element  106   a  (S 201 ). This may be done, for example, by analyzing the information in the secure element profile corresponding to the secure element  106   a , which is maintained in and by the central TSM  102 . The central TSM  102 , in turn, compares the version information retrieved from the secure element profile corresponding to the secure element  106   a  with the information in the secure element profile availability table (S 204 ). If the result of the comparison is that the latest compatible version of the application is loaded on the secure element  106   a , the central TSM  102  sends an installation command to the secure element  106   a  to install the loaded version of the application. If, however, a newer version of the application is compatible and available, the newer version of the application is sent to the secure element  106   a  via a corresponding mobile network  104  (S 205 ). Upon receipt of either the installation command or the newer version of the application, the corresponding version of the application is installed on the secured element  106   a  (S 206 ). 
     A similar process is performed when the central TSM  102  identifies or determines that a new version of an application is available for installation on secure elements, as illustrated in  FIG. 3 . First, the central TSM  102  updates the secure element profile availability table (Table 1) to show that a new compatible version of an application is available for one or more secure element profiles (S 301 ). The availability state of the previous (e.g., earlier) compatible version of the application is set to unavailable, and the availability state of the new version of the application is set to available. Next, an update query is received from the secure element  106   a  (via the mobile device  106 ) (S 302 ). Typically, the mobile device  106  is configured to periodically check for updated applications. The update could be performed at a predetermined time or during a period where the mobile device  106  is not in use. Information about the versions of applications installed on the secure element  106   a  is stored and managed by the central TSM  102  (S 302 ). The central TSM  102  then compares that version information to the available version for the corresponding secure element profile availability table (S 303 ). Since the secure element profile availability table has been updated to reflect the availability of a new version of an application, particularly that the availability state of the new version of the application is set to available, the new version of the application is sent to the secure element  106   a  (S 304 ) and installed (S 305 ), in turn. 
     If the new version of the application is a critical update, then rather than waiting for the update query (S 302 ) from the mobile device  106 , the central TSM  102  can push the new application version to all the secure elements  106   a  corresponding to the secure element profile that includes the updated application. 
     Modifying the Availability State of a Version of an Application 
     As discussed above, with the release of a new version of an application, there is a risk that an unforeseen issue may arise that would impair the functionality of the application, or worse, cause the secure element  106   a  to become inoperative. As discussed below, however, by modifying the availability state of the malfunctioning version, the rollout of the malfunctioning version can be stopped quickly and efficiently. 
       FIG. 4  is a flowchart illustrating the steps of modifying the availability state of a version of an application. In step S 401 , the central TSM  102  receives a request to modify the availability state of a version of an application. The request includes a secure element profile name or identifier, application ID of an application, and a requested action (e.g., whether the availability state is to be modified to available or unavailable). The request may also include the version ID (e.g., version 1.0, 1.1, 1.2, etc.) of a specific version of the application whose availability state is to be modified. An exemplary request is illustrated below in Table 3. 
     
       
         
           
               
               
               
               
             
               
                 TABLE 3 
               
               
                   
               
               
                 Secure Element Profile 
                 Application 
                 Version 
                   
               
               
                 Name 
                 ID 
                 ID 
                 Available/Unavailable 
               
               
                   
               
             
            
               
                 UICC_R2_MNO1 
                 101 
                 1.2 
                 Unavailable 
               
               
                   
               
            
           
         
       
     
     The request may originate from a system administrator acting on the central TSM  102 , for example, through a web portal, or may be received from a service provider  107  through one of the SP TSMs  103 . Upon receipt of the request, the central TSM  102  determines whether or not the request includes the version ID of a specific version of the application whose availability state is to be modified. If the request does not identify a specific version of the application, then the availability state of the latest (i.e., most recent) version of the application is modified in accordance with the request (S 403 ). If the request does identify a specific version of the application, then the central TSM  102  determines whether or not an earlier version of the application is compatible with the secure element profile (S 404 ). If no earlier version of the application is present, then the availability state of the identified version of the application is modified in accordance with the request (S 405 ). If, however, it is determined that an earlier version of the application is compatible with the secure element profile in S 404 , and the request includes an instruction to modify the availability state of the identified version to unavailable, then such a modification is made (S 407 ) and the availability state of the earlier version of the application is modified to available (S 408 ). 
     In an alternative embodiment, even if the request does not include a version ID (e.g., does not identify a specific version of the application), the central TSM  102  may refer to the secure element profile availability table to determine whether there is an earlier version of the application compatible with the secure element profile. If so, the central TSM  102  may modify the availability state of that earlier version to available when the availability state of the latest version is modified to unavailable. 
     Assuming the secure element profile availability table shown in Table 2 is modified in accordance with the request shown in Table 3, the availability state of version 1.2 of the application corresponding to application ID  101  is set to unavailable for secure element profile UICC_R2_MNO1. Moreover, because the request shown in Table 3 includes a version ID (version 1.2), the central TSM  102  determines that an earlier version of the application is compatible with the secure element profile (namely version 1.1), and will modify the availability state of the earlier compatible version to “available.” After these operations are performed, the salient portion of the secure element profile availability table shown in Table 3, will appear as shown in Table 4 below. 
     
       
         
           
               
               
               
               
               
             
               
                 TABLE 4 
               
               
                   
               
               
                 Secure Element 
                   
                   
                   
                   
               
               
                 Profile Name 
                 Appln. ID 
                 Version(s) 
                 Appln. ID 
                 Version(s) 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
               
               
               
               
               
               
               
            
               
                 UICC_R2_MNO1 
                 101 
                 1.0 
                 
                   1.1 
                 
                 1.2 
                 102 
                 1.0 
                 1.1 
                 
                   1.2 
                 
               
               
                   
               
            
           
         
       
     
     In the case that the availability state of version 1.2 of the application corresponding to application ID  101  is set to unavailable, when the central TSM  102  compares information (in S 204  and S 5303 ) from a secure element  106   a  regarding the version of the application corresponding to Appln. ID  101  to information in the secure element profile availability table, the central TSM  102  determines version 1.1 of the application to be the latest available version of the application. By changing the availability state of version 1.2 to unavailable, the central TSM  102  may no longer provide or make available version 1.2 to the secure elements  106   a , and the rollout of version 1.2 is stopped. 
     Through a similar process to the one described above, it also possible to make the latest version of an application, or a specific version of an application, available to the secure elements  106   a . Such a process is useful when, for example, the error in the malfunctioning version of the application has been corrected. 
     Returning to  FIG. 4 , the central TSM  102  receives a request from a system administrator or from an SP TSM  103  to modify the availability state of a version of an application (S 401 ). The central TSM  102  determines whether the request identifies a specific version of the application whose availability state is to be modified based on whether the request includes a version ID (S 402 ). If the request does not include a version ID, then the availability state on the secure element profile availability table for the latest version of the application is modified in accordance with the request (S 403 ). If the request includes a version ID and thus identifies a specific version of the application to modify, the central TSM  102  in turn determines whether there is an earlier compatible version (S 404 ). If no earlier compatible version is identified, then the availability state of the identified version of the application is modified in accordance with the request (S 405 ). If there is an earlier compatible version, but the request includes an instruction to modify the availability state of the identified version of the application to available (i.e., NO in S 409 ), the availability state of the identified version is modified to available (S 410 ), and the availability state of the earlier version of the application is modified to unavailable (S 411 ). 
     The central TSM  102  is also constructed to generate an error message that can be delivered to a system managed by a system administrator, for example, in the case where the availability state of the version to be modified is equal to unavailable and the request includes an instruction to disable the version of the service. Likewise, the central TSM  102  is constructed to generate an error message when the availability state of the version to be modified is equal to available and the request includes an instruction to enable the version of the service. That is, an error message can be sent by a central TSM  102 , for example, when a request includes instructions to modify an availability state to a state in which an application is already in. 
     Managing the Availability of Functions 
     As described above, the central TSM  102  can modify the availability state of versions of applications stored on the secure element  106   a . The central TSM  102 , however, also is constructed to modify the availability state of a function. A function is a representation of executable code that when executed by the central TSM  102  causes one or more processes to be performed. Functions may be manifested as application program interfaces (APIs) that are exposed to some or all of the service providers  107 , mobile network operators, and other systems managed by system administrators. Table 5 is an exemplary list of such functions and their description. 
     
       
         
           
               
               
               
               
             
               
                 TABLE 5 
               
               
                   
               
               
                   
                 Function 
                   
                 Availability 
               
               
                 Function Name 
                 ID 
                 Description 
                 State 
               
               
                   
               
             
            
               
                 LOCK APPLICATION 
                 0001 
                 Prevents use of an 
                 Available 
               
               
                   
                   
                 application on a secure 
               
               
                   
                   
                 element 
               
               
                 UNLOCK APPLICATION 
                 0002 
                 Allows use of a locked 
                 Available 
               
               
                   
                   
                 application on a secure 
               
               
                   
                   
                 element 
               
               
                 INSTALL APPLICATION 
                 0003 
                 Installs an application on 
                 Available 
               
               
                   
                   
                 a secure element 
               
               
                 REMOVE APPLICATION 
                 0004 
                 Removes an installed 
                 Available 
               
               
                   
                   
                 application from a secure 
               
               
                   
                   
                 element 
               
               
                 RENEW APPLICATION 
                 0005 
                 Renews an expired 
                 Available 
               
               
                   
                   
                 application on a secure 
               
               
                   
                   
                 element 
               
               
                 CHECK ELIGIBILITY 
                 0006 
                 Checks whether a user is 
                 Available 
               
               
                   
                   
                 eligible to use an 
               
               
                   
                   
                 application to be installed 
               
               
                   
                   
                 on the secure element 
               
               
                 INSTALL MOBILE 
                 0007 
                 Installs the mobile wallet 
                 Available 
               
               
                 WALLET 
                   
                 on the mobile device 
               
               
                 INSTALL WALLET 
                 0008 
                 Installs the mobile wallet 
                 Available 
               
               
                 WITH 
                   
                 and executes a 
               
               
                 PERSONALIZATION 
                   
                 personalization routine 
               
               
                 PERSONALIZE 
                 0009 
                 Personalizes the mobile 
                 Available 
               
               
                 WALLET 
                   
                 wallet 
               
               
                 WALLET UPGRADE 
                 0010 
                 Upgrades the version of 
                 Available 
               
               
                   
                   
                 the mobile wallet on the 
               
               
                   
                   
                 mobile device 
               
               
                 UPGRADE WITH 
                 0011 
                 Upgrades the version of 
                 Available 
               
               
                 WALLET 
                   
                 the mobile wallet on the 
               
               
                 PERSONALIZATION 
                   
                 mobile device and 
               
               
                   
                   
                 executes a personalization 
               
               
                   
                   
                 routine. 
               
               
                 UPDATE WALLET 
                 0012 
                 Updates the passcode for 
                 Available 
               
               
                 PASSCODE 
                   
                 accessing the mobile 
               
               
                   
                   
                 wallet 
               
               
                 UPDATE WALLET 
                 0013 
                 Updates the handset 
                 Available 
               
               
                 HANDSET ID 
                   
                 identifier (ID) of the 
               
               
                   
                   
                 mobile device stored in 
               
               
                   
                   
                 the secure element. 
               
               
                 UPDATE WALLET 
                 0014 
                 Updates the wallet widget 
                 Available 
               
               
                 WIDGET 
                   
                 stored in the secure 
               
               
                   
                   
                 element 
               
               
                 UPDATE WALLET ICC 
                 0015 
                 Updates the ICC ID 
                 Available 
               
               
                 ID 
                   
                 stored in the secure 
               
               
                   
                   
                 element. 
               
               
                 ACTIVATE WALLET 
                 0016 
                 Activates the mobile 
                 Available 
               
               
                   
                   
                 wallet 
               
               
                 SEND SCRIPT 
                 0017 
                 Sends personalization 
                 Available 
               
               
                   
                   
                 data to the secure element 
               
               
                 REDO INSTALLATION 
                 0018 
                 Reinstalls an application 
                 Available 
               
               
                   
                   
                 in a case where 
               
               
                   
                   
                 personalization failed 
               
               
                 LOCK AFTER 
                 0019 
                 Locks an application on 
                 Available 
               
               
                 PERSONALIZATION 
                   
                 the secure element after 
               
               
                   
                   
                 personalization 
               
               
                 SUSPEND WALLET 
                 0020 
                 Informs the central TSM 
                 Available 
               
               
                   
                   
                 that a user&#39;s mobile wallet 
               
               
                   
                   
                 has been suspended 
               
               
                 TERMINATE WALLET 
                 0021 
                 Informs the central TSM 
                 Available 
               
               
                   
                   
                 that a user has terminated 
               
               
                   
                   
                 his/her mobile wallet 
               
               
                 REACTIVATE WALLET 
                 0022 
                 Informs the central TSM 
                 Available 
               
               
                   
                   
                 that a user has reactivated 
               
               
                   
                   
                 his/her mobile wallet 
               
               
                   
               
            
           
         
       
     
     A system may disable, for example, any of the above-referenced functions through or with the assistance of the central TSM  102 . In some instances, some functions may not be disabled, such as suspend wallet, terminate wallet, and reactivate wallet functions. As shown in  FIG. 5 , when the central TSM  102  receives a request to modify the availability state of one or more functions (S 501 ), the central TSM  102  first determines which function(s) is/are identified in the request (S 502 ). Next, the central TSM  102  identifies the requested modification, i.e., whether the availability state is to be modified to available or unavailable (S 503 ). The central TSM  102  in turn confirms that the requested modification is permissible for the identified function (S 504 ). If so, then the availability state of the identified function is modified in accordance with the request (S 505 ). If not, an error message is returned (S 506 ). Thus, for example, if the request sought to modify the availability of the suspend wallet, terminate wallet, or reactivate wallet functions to unavailable, an error message would be generated. 
     By disabling one or more functions, a system administrator can stop the rollout of a malfunctioning version of an application. For example, by disabling the INSTALL MOBILE WALLET, PERSONALIZE WALLET, INSTALL WALLET WITH PERSONALIZATION, WALLET UPGRADE, or UPGRADE WITH WALLET PERSONALIZATION functions, installation and upgrade functions are disabled, thus preventing a newer version of any application from being disseminated to the mobile devices  106 . 
     As discussed above, by modifying the availability states of versions of applications and functions, the distribution of one or more applications to the secure elements  106   a  can be quickly and efficiently stopped. 
     Example Computer-Readable Medium Implementation 
       FIG. 6  is a block diagram of a general and/or special purpose computer  600 , which may be a general and/or special purpose computing device, in accordance with some of the example embodiments of the invention. The computer  600  may be, for example, a user device, a user computer, a client computer and/or a server computer, among other things. 
     The computer  600  may include without limitation a processor device  610 , a main memory  625 , and an interconnect bus  605 . The processor device  610  may include without limitation a single microprocessor, or may include a plurality of microprocessors for configuring the computer  600  as a multi-processor system. The main memory  625  stores, among other things, instructions and/or data for execution by the processor device  610 . The main memory  625  may include banks of dynamic random access memory (DRAM), as well as cache memory. 
     The computer  600  may further include a mass storage device  630 , peripheral device(s)  640 , portable non-transitory storage medium device(s)  650 , input control device(s)  680 , a graphics subsystem  660 , and/or an output display interface  670 . For explanatory purposes, all components in the computer  600  are shown in  FIG. 6  as being coupled via the bus  605 . However, the computer  600  is not so limited. Devices of the computer  600  may be coupled via one or more data transport means. For example, the processor device  610  and/or the main memory  625  may be coupled via a local microprocessor bus. The mass storage device  630 , peripheral device(s)  640 , portable storage medium device(s)  650 , and/or graphics subsystem  660  may be coupled via one or more input/output (I/O) buses. The mass storage device  630  may be a nonvolatile storage device for storing data and/or instructions for use by the processor device  610 . The mass storage device  630  may be implemented, for example, with a magnetic disk drive or an optical disk drive. In a software embodiment, the mass storage device  630  is configured for loading contents of the mass storage device  630  into the main memory  625 . 
     The portable storage medium device  650  operates in conjunction with a nonvolatile portable storage medium, such as, for example, a compact disc read only memory (CD-ROM), to input and output data and code to and from the computer  600 . In some embodiments, the software for storing information may be stored on a portable storage medium, and may be inputted into the computer  600  via the portable storage medium device  650 . The peripheral device(s)  640  may include any type of computer support device, such as, for example, an input/output (I/O) interface configured to add additional functionality to the computer  600 . For example, the peripheral device(s)  640  may include a network interface card for interfacing the computer  600  with a network  620 . 
     The input control device(s)  680  provide a portion of the user interface for a user of the computer  600 . The input control device(s)  680  may include a keypad and/or a cursor control device. The keypad may be configured for inputting alphanumeric characters and/or other key information. The cursor control device may include, for example, a handheld controller or mouse, a trackball, a stylus, and/or cursor direction keys. In order to display textual and graphical information, the computer  600  may include the graphics subsystem  660  and the output display  670 . The output display  670  may include a cathode ray tube (CRT) display and/or a liquid crystal display (LCD). The graphics subsystem  660  receives textual and graphical information, and processes the information for output to the output display  670 . 
     Each component of the computer  600  may represent a broad category of a computer component of a general and/or special purpose computer. Components of the computer  600  are not limited to the specific implementations provided here. 
     Software embodiments of the example embodiments presented herein may be provided as a computer program product, or software, that may include an article of manufacture on a machine accessible or machine readable medium having instructions. The instructions on the non-transitory machine accessible machine readable or computer-readable medium may be used to program a computer system or other electronic device. The machine or computer-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks or other type of media/machine-readable medium suitable for storing or transmitting electronic instructions. The techniques described herein are not limited to any particular software configuration. They may find applicability in any computing or processing environment. The terms “computer-readable”, “machine accessible medium” or “machine readable medium” used herein shall include any medium that is capable of storing, encoding, or transmitting a sequence of instructions for execution by the machine and that cause the machine to perform any one of the methods described herein. Furthermore, it is common in the art to speak of software, in one form or another (e.g., program, procedure, process, application, module, unit, logic, and so on) as taking an action or causing a result. Such expressions are merely a shorthand way of stating that the execution of the software by a processing system causes the processor to perform an action to produce a result. 
     Portions of the example embodiments of the invention may be conveniently implemented by using a conventional general purpose computer, a specialized digital computer and/or a microprocessor programmed according to the teachings of the present disclosure, as is apparent to those skilled in the computer art. Appropriate software coding may readily be prepared by skilled programmers based on the teachings of the present disclosure. 
     Some embodiments may also be implemented by the preparation of application-specific integrated circuits, field programmable gate arrays, or by interconnecting an appropriate network of conventional component circuits. 
     Some embodiments include a computer program product. The computer program product may be a storage medium or media having instructions stored thereon or therein which can be used to control, or cause, a computer to perform any of the procedures of the example embodiments of the invention. The storage medium may include without limitation a floppy disk, a mini disk, an optical disc, a Blu-ray Disc, a DVD, a CD or CD-ROM, a micro-drive, a magneto-optical disk, a ROM, a RAM, an EPROM, an EEPROM, a DRAM, a VRAM, a flash memory, a flash card, a magnetic card, an optical card, nanosystems, a molecular memory integrated circuit, a RAID, remote data storage/archive/warehousing, and/or any other type of device suitable for storing instructions and/or data. 
     Stored on any one of the computer readable medium or media, some implementations include software for controlling both the hardware of the general and/or special computer or microprocessor, and for enabling the computer or microprocessor to interact with a human user or other mechanism utilizing the results of the example embodiments of the invention. Such software may include without limitation device drivers, operating systems, and user applications. Ultimately, such computer readable media further includes software for performing example aspects of the invention, as described above. 
     Included in the programming and/or software of the general and/or special purpose computer or microprocessor are software modules for implementing the procedures described above. 
     While various example embodiments of the invention have been described above, it should be understood that they have been presented by way of example, and not limitation. It is apparent to persons skilled in the relevant art(s) that various changes in form and detail can be made therein. Thus, the disclosure should not be limited by any of the above described example embodiments, but should be defined only in accordance with the following claims and their equivalents. 
     In addition, it should be understood that the figures are presented for example purposes only. The architecture of the example embodiments presented herein is sufficiently flexible and configurable, such that it may be utilized and navigated in ways other than that shown in the accompanying figures. 
     Further, the purpose of the Abstract is to enable the U.S. Patent and Trademark Office and the public generally, and especially the scientists, engineers and practitioners in the art who are not familiar with patent or legal terms or phraseology, to determine quickly from a cursory inspection the nature and essence of the technical disclosure of the application. The Abstract is not intended to be limiting as to the scope of the example embodiments presented herein in any way. It is also to be understood that the procedures recited in the claims need not be performed in the order presented.