US20040093595A1 - Software application framework for network-connected devices - Google Patents

Software application framework for network-connected devices Download PDF

Info

Publication number
US20040093595A1
US20040093595A1 US10/638,262 US63826203A US2004093595A1 US 20040093595 A1 US20040093595 A1 US 20040093595A1 US 63826203 A US63826203 A US 63826203A US 2004093595 A1 US2004093595 A1 US 2004093595A1
Authority
US
United States
Prior art keywords
application
registered
mobile device
registered application
download
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
Application number
US10/638,262
Inventor
Eric Bilange
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shoreline Innovations LLC
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US10/638,262 priority Critical patent/US20040093595A1/en
Application filed by Individual filed Critical Individual
Assigned to MFORMA GROUP, INC. reassignment MFORMA GROUP, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BILANGE, ERIC
Publication of US20040093595A1 publication Critical patent/US20040093595A1/en
Assigned to HANDS-ON MOBILE, INC. reassignment HANDS-ON MOBILE, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LLOYD, DAVID B.
Assigned to HANDS-ON MOBILE, INC. reassignment HANDS-ON MOBILE, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: MFORMA GROUP, INC.
Assigned to VENTURE LENDING & LEASING IV, INC., VENTURE LENDING & LEASING V, INC. reassignment VENTURE LENDING & LEASING IV, INC. SECURITY AGREEMENT Assignors: HANDS-ON MOBILE AMERICAS, INC., A CORP. OF CALIFORNIA, HANDS-ON MOBILE, INC.
Priority to US12/628,405 priority patent/US9665860B2/en
Priority to US12/628,471 priority patent/US20100122351A1/en
Priority to US12/772,059 priority patent/US20100235261A1/en
Assigned to HANDS-ON MOBILE, INC. reassignment HANDS-ON MOBILE, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: VENTURE LENDING & LEASING IV, INC., VENTURE LENDING & LEASING V, INC.
Assigned to SHORELINE INNOVATIONS, LLC reassignment SHORELINE INNOVATIONS, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HANDS-ON MOBILE, INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • G06Q20/1235Shopping for digital content with control of digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/04Billing or invoicing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0645Rental transactions; Leasing transactions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring

Definitions

  • the present invention is directed to the field of software applications and, more particularly, to the field of provisioning and managing software applications.
  • applications may be stored locally on a device so that they may be executed when the user is outside an area where network coverage is provided.
  • applications stored locally on handheld devices are sometimes limited by the compact nature of the devices.
  • handheld devices have limited user interfaces, such as small screens and condensed keyboards.
  • handheld and compact devices may be limited to very small amounts of memory (a few hundred kilobytes).
  • J2ME does not provide a mechanism to restrict an application to running on a single device, based on the identity of that device.
  • Some handsets for example, allow applications to be beamed between handsets and copied from a handset onto a PC and from there distributed to further devices. As a result, once downloaded onto a device, applications and other content can be further copied between devices, leading to a loss of revenues for application developers.
  • FIGS. 1 and 2 illustrate an example of a system for provisioning and maintaining applications that utilize a registered application framework.
  • FIG. 3 is a flow diagram showing an example of a provisioning preparation process in one embodiment.
  • FIG. 4 is a flow chart showing an example of a download process in one embodiment.
  • FIG. 5 is a flow diagram illustrating the download of a registered Java application onto a specific device, the Siemens SL45I.
  • FIG. 6 is a display diagram showing an example of an application catalogue for browsing and choosing registered applications for download.
  • FIG. 7 is communication flow illustrating an example of a dialog between a mobile device and a server for selecting, downloading and licensing a registered application and then subsequently posting a high score and an application rating.
  • a facility for supporting and securing applications running on mobile devices, handheld devices and similar devices (referred to herein as “mobile devices” or “devices”) is provided.
  • a set of high-level computer instructions that would typically be implemented using a standard application framework and class library is implemented using a modified application framework and classes that allow server to provide licensing and application management services.
  • An application modified in this way is herein referred to as a registered application.
  • a registered application can be implemented in a J2ME environment, where the top-level application is called a MIDlet.
  • MIDlets are analogous to Applets used in web browsers, and are named after the Mobile Information Device Profile (MIDP).
  • the MIDlet is the root of all MIDP applications and can be started, paused and stopped by the Java Application Manager on the device.
  • the typical application “skeleton” or class shell for a standard MIDlet includes a StartApp( ) method that corresponds with a hierarchy of MIDlet-related class files.
  • the standard MIDlet shell is updated so that a RegisteredStart( ) method and corresponding MIDlet-related class library files replace the standard StartApp( ) method and corresponding RegisteredMIDlet-related class library files.
  • This modified design allows an application provisioning server (e.g., an “over the air” or “OTA” server) to take control and perform tasks such as license verification, digital rights management, etc. before passing control back to the registered application running on a device.
  • OTA over the air
  • the registered application framework can be used to support developers across a range of available handsets and other devices and can insulate developers from various carrier or service provider requirements.
  • the registered application can be used to prevent unwanted copying of the application from device to device.
  • a license key can be downloaded onto a handset on which the registered application is initially installed.
  • the application provisioning server can then verify the license key. The use of the registered application in this way prevents a copy from being executed without the license key, as the license key is configured so that it is not copied when the application is copied from one device to another.
  • the registered application may support a variety of licensing arrangements. For example, a software application license can be tagged with an expiration date or a limited number of uses.
  • server-based charging policies may be applied, including rental, rental subscription, limited free trial, coin-op, feature charging, etc. With many of these charging models, if an application user's license expires, the application may refer back to the license server for a new license, at which point a further charge to the user's account can be made, subject to the user's approval.
  • the registered application may facilitate the generation and monitoring of other types of billing events associated with a user's account (e.g., “feature charging”). For example, a user may be charged for “cheat codes” or “hints” associated with an electronic game.
  • the registered application may allow for sending user data such as high scores to the provisioning server and optionally, to charge for such services according to a policy set by the provisioning server. For example, a user of a game application may be able to post his/her high score to a central leader board seen by all other players—either downloaded back onto the mobile device or viewable from the mobile device's WAP browser or a web browser.
  • Web retail models have demonstrated the value of incorporating user feedback into a catalogue used to display lists of applications available to users.
  • the registered application allows the user to provide such feedback. For example, a user may rate an application after it is purchased. This rating may be posted to a server and used to generate popularity statistics. Applications can then be presented in application catalogue menus in order of popularity, increasing the likelihood of user satisfaction with a download, as user ratings are a more precise measure than the number of downloads.
  • the registered application may also provide various services to developers. For example, developers may initially design applications using a single scaled-down version of the registered application, creating a general version of the registered application. Later, the facility can substitute a specific version of the registered application appropriate for a specific user's particular mobile device and/or service without having to involve the developer in this stage.
  • the registered application may allow for easy upgrades of already-installed registered applications, allowing application developers to continue to improve their applications, even after they have been distributed in the consumer market.
  • a server may keep track of which versions of registered applications individual users have downloaded allowing updates to be deployed to them.
  • Registered applications may automatically check for updates. Many options are available for billing or charging users for updates. For example, updates that fix problems may be made freely available while new improved versions might incur an upgrade fee.
  • the registered application may also provide some other standardization such as elements of the application's user interface (e.g., how to present error states or game intro sequences).
  • FIGS. 1 and 2 illustrate an example of a system 100 for provisioning and maintaining applications that utilize a registered application framework.
  • the system may be, for example, a carrier system or an application provisioning service system.
  • This system may revolve around a central database 102 that holds an application catalogue 104 , user and supplier accounts 106 and transaction records 108 .
  • the central database 102 may also include supplemental data and a J2EE application server (not shown) to support controllers, business logic and presentation layers (not shown).
  • the central database 102 may be implemented with a commercial-grade database 204 (e.g., Oracle 9i) as the server for secure concurrent access, high reliability and scalability.
  • the database may reside on a Fault-Tolerant Filestore 206 (managed RAID array). Database access may be via container-managed persistence (CMP) (not shown) as part of the larger J2EE platform 207 .
  • CMP container-managed persistence
  • a catalogue provision module 208 may be implemented using JSP (JavaServerPages), Servlets and a CMP business logic layer (not shown) to reduce load on the central database 102 .
  • the JSP pages may be WML, HTML or other format (e.g., proprietary format, etc.).
  • One or more application provisioning servers 110 can connect to the application catalogue.
  • OTA servers 110 can connect to the application catalogue.
  • the use of multiple OTA servers 110 allows for distributing or serving different territories or portals.
  • the OTA servers 110 may provide a secure framework for defining user billing mechanisms, authenticating and recording user purchases and storing and forwarding charging records. Charges to users may be recorded with the user identity and a reason code for the charge.
  • the OTA servers may integrate with a wide variety of external billing mechanisms using protocols such as IPDR or SOAP.
  • the application catalogue 104 drives the one or more OTA servers 110 and provides raw information from which user menus and application brochures may be constructed and presented appropriately for varying types of mobile device (not shown).
  • the application catalogue 104 may be managed from remote workstations (not shown) via a secure connection to the database with one or more catalogue managers 112 , an easy-to-use tool that may be provided as part of the system.
  • the use of multiple catalogue managers 112 allows different departments to administer the application catalogue 104 concurrently.
  • the catalogue manager 112 may be supplied as a J2EE client application that can be run on a content manager's desktop remotely from the server 110 running the central database.
  • the catalogue manager 112 may provide a simple visual tool for maintenance of the application catalogue 104 and may be configured as a complete end-to-end solution to manage the workflow of content from developer to live provisioning service.
  • the system may allow for easy accounting of application usage to suppliers and calculation of revenues to be paid via a mechanism for generating transaction reports showing statistics against applications and suppliers in a variety of different views.
  • the OTA servers 110 use the information stored in the central database 102 to generate views on the application catalogue 104 as requested by a portal 114 .
  • Each OTA server 110 may be implemented using connected game server technology to handle portal and billing integration providing user identification—it can also act in place of a portal 114 where there is none.
  • each OTA server 110 may be implemented in Java as a set of Enterprise components (Java Server Pagers, Servlets and Enterprise Java Beans) for deployment on a J2EE platform such as Oracle 9i or BEA Weblogic.
  • Other components in the system include a license manager 212 that provides support for digital rights management including copy protection and advanced charging models and a client asset manager 214 that allows client applications to have additional assets residing on the server (such as extra game levels) that can be charged for.
  • a game service platform 216 provides a home for a server component of multiplayer and client/server games.
  • a customizable portal interface services component 218 maintains responsibility for interfacing with, for example, a carrier's portal 114 , providing services such as user-registration, links back to the carrier's portal etc.
  • a billing interface services component 220 is responsible for interfacing with, for example, a carrier's billing system. These interface components ( 218 and 220 ) may be configured to handle a wide range of protocols and to be easily customizable.
  • An SMS bridge component 224 allows short message service (“SMS”) messages to be sent and received by the server. It supports most protocols used by SMSCs.
  • SMS short message service
  • the system architecture offers various possibilities for integration and interoperability with carrier components and components from other vendors. For example, users may be allowed to browse the application catalogue 104 for applications suitable for their mobile device and, having made their selection, authorize payment via credit card and initiate download.
  • the system may be designed so that it is tightly integrated with already-existing billing and user registration systems, for example, carrier billing systems.
  • the facility may include the ability to identify the user and associate him/her with a billing account.
  • a connected game server 226 (“CGS”) that provides user identification along with portal and billing system integration services may be implemented to facilitate charging the user for downloading a registered application.
  • Provisioning of registered applications to mobile devices may be facilitated through the use of a web-site to download registered applications.
  • the registered applications may be discovered through the mobile device's WAP browser (not shown), provided that the registered applications are compatible with the user's specific mobile device.
  • Implementation of the registered application begins at the time that the application is initially developed.
  • a developer tool may provide a programmer/developer with a standardized delivery target and access to extensive high-value technical information, which can be customized for a carrier or portal partner. This allows developers to focus on content creation, rather than resolving technical differences between multiple mobile devices types and carrier systems.
  • the class RegisteredMIDlet is derived from MIDlet and has an implementation of the method startApp( ) that first performs any digital rights management checks or other tasks before invoking the method startRegisteredApp( ) shown in the skeleton above.
  • the startRegisteredApp( ) method is then defined by any subclasses of RegisteredMIDlet. According to this modified skeleton, the developer builds a subclass of RegisteredMIDlet (not MIDlet) and provides an implementation of startRegisteredApp( ) instead of startApp( ).
  • developers may use a single scaled-down version of the registered application so that they can create a general version of the application. Later, the facility can substitute a specific version of the registered application appropriate for a specific user's particular mobile device and/or service without having to involve the developer in this stage. For example, if the user's device does not allow for copying from one device to another, then the facility can install a lightweight version of the registered application that simply checks for expiration of any rental period. Alternatively, if a mobile device freely allows copies, then the facility may install a version of the registered application that binds to the hardware identification (e.g., IMEI) of the mobile device. To best provide effective client support, different versions of the registered application may allow for custom interfacing to the implemented provisioning technique.
  • IMEI hardware identification
  • FIG. 3 is a flow diagram showing an example of a provisioning preparation process in one embodiment.
  • the registered application is bound within an application package prior to download.
  • the application package may contain, for example, JAR and JAD files, along with a brochure, screenshots, and other information about the application (e.g., target mobile device, language, version, etc.).
  • binding the registered application in a JAR file may involve packaging the application with a more robust version of the registered application that corresponds to, for example, a carrier's infrastructure (e.g., which application provisioning server and digital rights management the carrier is using). In the case of an MIDP application, this may involve replacing the registered MIDlet class file in the application JAR.
  • a unique version of the registered application may be available for each of the mobile devices being supported by a particular carrier. In this way, the application package may be deployed with the correct registered application without the distributor having to go through a cycle with the developer.
  • the application provisioning server could bind the correct registered application with the JAR file “on the fly.”
  • the application package may then be available for download, as shown in block 304 .
  • the application package may be emailed to a content manager or other administrator, who uses a tool such as the catalogue manager 112 of FIGS. 1 and 2 to receive the application package and insert it into the application catalogue. Pricing details may also be set at this time.
  • a customer can then select the application package for download (block 306 ).
  • FIG. 4 is a flow chart showing an example of an application download process in some embodiments.
  • the portal if the portal does not provide for user identification, the user logs in to the application provisioning server (e.g., OTA server) from the mobile device.
  • the facility identifies the user's mobile device and may provide troubleshooting if needed.
  • applications compatible with the user's mobile device are presented to the user, organized by categories.
  • the user is presented with an application brochure for a selected application.
  • the application provisioning server determines the appropriate download scenario for the user's mobile device.
  • the application provisioning server can choose a suitable user identification, download and licensing strategy to use for provisioning applications based on many different factors, such as method of download initiation (e.g., download initiated via WAP, proprietary mechanism, etc.); ability of mobile device to allow for copying of applications; and ability of mobile device be uniquely identified from within the J2ME environment.
  • method of download initiation e.g., download initiated via WAP, proprietary mechanism, etc.
  • ability of mobile device to allow for copying of applications e.g., mobile device to allow for copying of applications
  • ability of mobile device be uniquely identified from within the J2ME environment e.g., a mobile device that uses the registered application framework.
  • the licensing step may be delayed until the first launch of the application on the mobile device when the application has been downloaded onto the mobile device completely and successfully (block 409 below).
  • routine continues at block 406 where the user confirms download. Otherwise, the routine continues at block 407 , where alternative download instructions are provided. After block 406 or 407 the routine continues at block 408 where the application is downloaded. Depending on the mobile device type, as determined in block 405 , the download may be initiated from WAP, the Java application manager, or some other source.
  • the routine ends after optional block 409 , where the application provisioning server takes control of the registered application on first launch to get an unlock code that will be stored on the mobile device for subsequent launches.
  • the unlock code may be provided to the device when the application is initially downloaded. Because the unlock code cannot be copied from one mobile device to another, this prevents the execution of unauthorized copies of the registered application and is done as an additional security measure against piracy.
  • the Java Application Manager loads the application and the application provisioning server takes control to perform any validation (e.g., digital rights management checks, etc.) that may be defined by various subclasses of RegisteredMIDlet.
  • the application does not receive back control until the registered MIDlet has completed its validation. This technique may also be used to provide the expiration policy for the license.
  • Reporting mechanisms may be used to prevent charging users in the case of failed downloads.
  • the MIDP Appendices describe a mechanism for the Java Application Manager to report successful downloads. Such a mechanism may be supported by the facility for most mobile devices. The facility may also support other tactics such as allowing the user to download the application repeatedly within a limited time frame.
  • FIG. 5 is a flow diagram illustrating a routine 500 , for download of a registered Java application onto a specific device, the Siemens SL45I.
  • the SL45i handset is a more recent Java handset and is likely to be typical of the coming generation of devices. It conforms to Appendix A and Appendix B of the MIDP-1.0 specification and uses the WAP browser as the initiating agent for OTA download.
  • JAR files to be downloaded are stored on a fault-tolerant file store rather than in the database. They are thus referenced by static URLs allowing server caches such as SQUID to migrate the data to the network fringe closest to the points of access for the user's download connections.
  • the device starts the Internet and either enters the OTA URL or finds it from a larger menu (e.g., carrier portal).
  • the device displays a menu of available applications. The applications may be categorized into folders and may show only those suitable for the SL45I.
  • the mobile device selects an application from the menu of those available.
  • a short information screen is displayed on the device describing the application, including size and cost.
  • the user presses the DOWNLOAD button to initiate OTA download. Note that in this example, while the WAP browser downloads the JAD file, the JAR file is downloaded by the JAM using TCP. In block 505 , if there is a billing charge on download, approval will be requested.
  • Nokia handsets such as the 3410 handle OTA provisioning of J2ME applications in a way very similar to the Siemens SL45i. There is an important difference in that the Siemens SL45i hands the download itself over to the Java Application Manager which downloads the JAR file via TCP/IP whereas the Nokia handsets download the JAR within the WAP browser using a WAP request and then hands the downloaded JAR file over to the JAM.
  • the Siemens SL45i hands the download itself over to the Java Application Manager which downloads the JAR file via TCP/IP
  • the Nokia handsets download the JAR within the WAP browser using a WAP request and then hands the downloaded JAR file over to the JAM.
  • only one set of Internet settings (those for the WAP browser) is used, whereas with the Siemens handset, separate WAP and Java Internet settings are used.
  • Additional aspects associated with provisioning registered applications include displaying applications in a form convenient for the user, ensuring compatibility with a range of user devices and communicating between the application provisioning server and the user. These aspects are described further in the following sections.
  • the system may provide carriers and portals with access to an extensive catalogue of content from which users may select applications to download.
  • the facility may facilitate the use of a WAP or similar browser on the user's mobile device.
  • the applications may be presented as a series of pages organized by a hierarchy of categories. An application may be marked with several different categories allowing it to appear in many places in the hierarchy. Each application may have a brochure that describes the application in detail including screenshots, pricing, etc. From the application brochure, the application can be downloaded to the user's mobile device.
  • FIG. 6 is a display diagram showing an example of an application catalogue 600 for browsing and choosing registered applications for download.
  • the application catalogue not only allows the user to easily navigate through and select registered applications compatible with the user's mobile device, but may also function to present the menus and brochures in a fashion that best suits the mobile device's browser.
  • the number of applications displayed on any one page may be limited to fit within the device's deck-size limits.
  • the application catalogue can provide a variety of details about each registered application. In some embodiments, this information covers three main aspects: the application brochure, the charging policy, and the usage statistics.
  • the application brochure includes information about the application's title, both brief and detailed descriptions about the application, screenshots, developer and supplier information including logos, etc.
  • the charging policy may be described by a set of events (e.g., download, upgrade, highscore, etc.) and the corresponding charges for each event. In some cases, a limited free-trial period can be specified.
  • Usage statistics may consist of information logs generated by the application provisioning server. Along with usage statistics, these logs can be used generate a wide range of reports giving user feedback into a carrier's purchasing and promotion decisions. Each transaction may be a time-stamped record detailing the user, application and event. Supporting information may also be available in the comprehensive system logs. Typical reports available may include download traffic graphed over time, cumulative over application or supplier. Statistics may also be available as Excel spreadsheets for more sophisticated analysis. An example of a benefit of such reporting includes being able to account to suppliers their share of revenues from downloads. Carriers or application provisioning service providers can choose the level of detail to report to suppliers according to their contractual obligations.
  • Usage statistics may be accompanied by rating information.
  • the system may provide one or more mechanisms that allow users to rate applications. This can be done after the application terminates where the application is deployed as a registered application. Alternatively, users may rate a registered application when the application is executed online. To facilitate this process, the application provisioning server may request that users rate applications that they previously downloaded the next time that the user browses the catalogue.
  • User ratings can be used to rank applications according to popularity more reliably than simple download frequency (which can lead to lemming-like behavior when everyone follows the first few). The user ratings can also be used to build more sophisticated profiles matched to a user's download history such as “people who liked X also liked Y.”
  • the application catalogue can present different views according to the territory or language of the user. This capability may be useful for carriers and portals that span multiple territories or in a territory with several languages to support such as English and French in Canada.
  • the application catalogue may offer the carrier or application provisioning service provider considerable editorial control to promote particular applications or particular suppliers.
  • Each registered application may have a variety of versions tailored for the range of mobile devices available.
  • the application catalogue may have the ability to record a variety of details about each available mobile device. Carriers and application provisioning service providers can define new mobile devices themselves and record them in a database. The release of new mobile devices may be tracked across a variety of territories so that new records for additional mobile devices may be distributed on a regular basis.
  • the application catalogue records sufficient information to supply the correct version for a user's mobile device.
  • each version may be a JAR (Java Archive Tool) file tagged with the set of mobile devices it is certified for and a version number that allows updates to be correctly deployed to users that have downloaded older versions.
  • JAR Java Archive Tool
  • the application provisioning server may identify the type of mobile device from the user-agent string passed to it by the mobile device's WAP browser or Java Application Manager. However, this may not always serve to uniquely identify each mobile device, in which case the application provisioning server can ask the user which mobile device they are using on their first visit and record this for subsequent visits. If the user later changes mobile devices, the user may have the opportunity to change their recorded mobile device information.
  • the application catalogue may, for example, also record a variety of details about the device's Java capabilities, which are used to select good matches for application versions to devices that have not yet been certified by the carrier or application provisioning service provider.
  • Common device capabilities include screen format (width, height and implied aspect ratio); color format (monochrome, greyscale, palette color, RGB color and bits/pixel); input method (touch screen vs. keyboard and what keys available, rocker pad, roller bar, etc.); sound/vibration; maximum JAR size; maximum available memory, etc.
  • Device capability records may be distributed in XML (Extensible Mark-Up Language), allowing processing by tools other than those supplied by the facility. Such records can be imported into a live catalogue allowing carriers and application provisioning service providers to track the deployment of new mobile devices.
  • XML Extensible Mark-Up Language
  • SMS or instant messaging may compliment the overall provisioning process.
  • the application provisioning server can prompt users with SMS-style notifications of promotional applications, new applications in categories they are interested in or updates of applications they had previously downloaded.
  • the SMS or instant message can include a direct URL to the appropriate version of the application for their mobile device and on many mobile devices the user can select the link inside the SMS message and click on it to immediately begin download without having to navigate the application catalogue.
  • the application provisioning server can be configured to make this opt-in by default. Some carriers and application provisioning service providers may manage this through their own portals and user registration process, in which case the application provisioning server will defer to the portal for policy.
  • SMS Another use of SMS is for revenue-collection whereby a reverse-charged SMS is sent to the user and the content provider takes a share of the SMS charge. They system may provide strategies for presenting these charges to the user.
  • FIG. 7 is communication flow illustrating an example of a dialog between a mobile device and a server for selecting, downloading and licensing a registered application and then subsequently posting a high score and an application rating.
  • the user connects to an application provisioning server in order to view available applications.
  • the server identifies the user via a subscriber ID or requests that the user login.
  • the server provides the user with a catalogue of applications for browsing. The catalogue may be tailored to the specific user depending on user preferences.
  • the user browses the available applications.
  • the user selects a registered application to download and approves payment for the selected application, if necessary.
  • the Server checks the charging model or licensing scheme.
  • Rental the user pays to use the application for a limited period of time.
  • Rental subscription the user can use the application while a subscription is active.
  • Limited free trial the user can use the application free for a limited period or number of uses after which a charge must be paid to continue.
  • Coin-op the user pays for a fixed number of uses (‘coins’) after which the coin wallet must be topped up from the server for an additional payment.
  • Feature charging this can sit on any of the other charging models as an optional mechanism appropriate for some applications; the user pays to access certain features within the application.
  • the server sends the registered application to the user's mobile device.
  • the registered application is downloaded onto the user's mobile device.
  • the user starts the registered application.
  • the license or unlock code is first fetched from the server as soon as the registered application is launched, depending on the licensing scheme that is in place.
  • the application manager invokes the registered application's implementation of startApp( ). This checks that it has a valid license by establishing a UDP, TCP, HTTP or other supported protocol connection to the server and transmitting a simple message.
  • the server authenticates the request for a license or unlock code and sends the license code to the user's device.
  • the license verification proceeds as follows:
  • the registered application then asks the user to approve paying to unlock the application.
  • the user at this point may terminate the application without cost. If the license cost is zero (either there is a free trial on or the user has already covered the license fee) this step may be skipped.
  • the registered application then queries the license server for a license key. If a fee is payable, the appropriate billing event is issued by the license server.
  • the user plays with the registered application (e.g., a game application).
  • the user gets a new high score and selects to have the score posted by having the registered application send the high score information to the server.
  • the server records the received high score and posts it to leaderboards.
  • the user receives a request from the server to rate the application and sends the rating information.
  • the server records the user's rating information. This information may then be made available via the application catalogue.
  • the registered application may be responsible for the license management via the mobile device and carrier/application provisioning service provider (as opposed to connecting to the application provisioning server to get an unlock code).
  • an algorithm records the license in a RecordStore that each application has available.
  • the registered application may be protected against copying.
  • various algorithms associated with the registered application may be used to perform license management functions, such as checking a current date against an expiration date that is supplied at the time the application is initially download or contacting a known server to acquire a license key. With respect to the latter, this key could be acquired every time the application is started or stored in the local RecordStore, where it is more likely that it will not be copied.
  • the registered application may be used to send data to the application provisioning server (e.g. high scores, feedback, user ratings, etc.)
  • the registered application may make a UDP, TCP, HTTP or other supported protocol connection to the application provisioning server and transmit a simple message such as “RATING, thisgame, fred, 7” or “HIGHSCORE, thisgame, fred, 10020” to the server.
  • This message may then be stored for later processing such as when the “Top Ten High Scores” for a particular game is determined.
  • the protocol and message format may be determined by the server platform, but a common interface may be presented to the application, the detail being hidden in the specific implementation of the registered application.
  • the registered application may support the addition of developer improvements to an application that has already been downloaded by a user. For example, when the registered application contacts the application provisioning server it can identify to the server the revision number of the application. The server can inform the registered application if there is a newer version of the application that the user can then be directed to download if desired.
  • the registered application may also provide some other standardization such as elements of user the application's user interface (e.g., how to present error states or game intro sequences). For example, some carriers choose to impose “Style Guides” on applications distributed through them. These “Style Guides” might specify the time spent presenting logos to the user and include additional requirements on branding. To further illustrate, a sequence of screens may display a series of messages such as “powered by XYZ Carrier,” “nGame presents,” “a Studio game.” The registered application may provide facilities for automating such sequences whereby the developer simply identifies their logo screen, the publisher theirs and the carrier theirs; the registered application may present the appropriately timed slideshow in accordance with the Style Guide.
  • elements of user the application's user interface e.g., how to present error states or game intro sequences.
  • some carriers choose to impose “Style Guides” on applications distributed through them. These “Style Guides” might specify the time spent presenting logos to the user and include additional requirements on branding.
  • a sequence of screens may

Abstract

A facility for provisioning and managing registered applications is described. Registered applications can be downloaded to a mobile device from an application provisioning server. When the download is complete, the mobile device may begin execution of the registered application. However, at least portions of the registered application cannot be executed by the mobile device without first passing control to an application provisioning server via a network connection. Upon receiving temporary control of the registered application, the application provisioning server can perform tasks such as license verification and other tasks before turning control of the application back to the mobile device.

Description

    CROSS-REFERENCE TO RELATED APPLICATION
  • This application claims priority to U.S. Provisional Application No. 60/402,310, filed Aug. 8, 2002, herein incorporated in its entirety by reference.[0001]
  • TECHNICAL FIELD
  • The present invention is directed to the field of software applications and, more particularly, to the field of provisioning and managing software applications. [0002]
  • BACKGROUND
  • As the demand for wireless network-connected devices and services continues to grow, the consumer market is continually flooded with new classes of handheld and compact devices such as smart cellular telephones, pagers PDAs (personal digital assistants), etc. To meet demands for services and software applications relating to these and similar devices, various technologies including WAP (Wireless Application Protocol) and Java 2 Platform Micro Edition (“J2ME”) have been developed to facilitate the creation and implementation of software applications that run on such devices. [0003]
  • With some of these technologies, applications may be stored locally on a device so that they may be executed when the user is outside an area where network coverage is provided. However, applications stored locally on handheld devices are sometimes limited by the compact nature of the devices. For example, handheld devices have limited user interfaces, such as small screens and condensed keyboards. Additionally, handheld and compact devices may be limited to very small amounts of memory (a few hundred kilobytes). [0004]
  • Because handheld and compact devices are typically too small to program defensively, applications for such devices are often tightly tailored to a specific device, particularly regarding screen size or localization language. This is especially true with “platform independent” technologies like J2ME, which facilitate “write-once run-anywhere” applications that typically require more memory resources than other types of applications. [0005]
  • Because of such limitations, technologies like J2ME are generally streamlined and do not typically provide any restrictions on how applications are moved between supplier and device. For example, J2ME does not provide a mechanism to restrict an application to running on a single device, based on the identity of that device. Nor is there any restriction preventing copying of applications from a first device to another device once the application is initially downloaded onto the first device. Some handsets, for example, allow applications to be beamed between handsets and copied from a handset onto a PC and from there distributed to further devices. As a result, once downloaded onto a device, applications and other content can be further copied between devices, leading to a loss of revenues for application developers. [0006]
  • It would be desirable to provide a secure, cost-effective and scaleable facility through which content can be distributed to users in a manner that allows for prevention of piracy, integration with existing systems, reduced risk to network and device integrity, minimal inconvenience to the user and flexibility in licensing.[0007]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIGS. 1 and 2 illustrate an example of a system for provisioning and maintaining applications that utilize a registered application framework. [0008]
  • FIG. 3 is a flow diagram showing an example of a provisioning preparation process in one embodiment. [0009]
  • FIG. 4 is a flow chart showing an example of a download process in one embodiment. [0010]
  • FIG. 5 is a flow diagram illustrating the download of a registered Java application onto a specific device, the Siemens SL45I. [0011]
  • FIG. 6 is a display diagram showing an example of an application catalogue for browsing and choosing registered applications for download. [0012]
  • FIG. 7 is communication flow illustrating an example of a dialog between a mobile device and a server for selecting, downloading and licensing a registered application and then subsequently posting a high score and an application rating.[0013]
  • DETAILED DESCRIPTION I. Introduction
  • A facility for supporting and securing applications running on mobile devices, handheld devices and similar devices (referred to herein as “mobile devices” or “devices”) is provided. In some embodiments, a set of high-level computer instructions that would typically be implemented using a standard application framework and class library is implemented using a modified application framework and classes that allow server to provide licensing and application management services. An application modified in this way is herein referred to as a registered application. [0014]
  • For example, a registered application can be implemented in a J2ME environment, where the top-level application is called a MIDlet. MIDlets are analogous to Applets used in web browsers, and are named after the Mobile Information Device Profile (MIDP). The MIDlet is the root of all MIDP applications and can be started, paused and stopped by the Java Application Manager on the device. The typical application “skeleton” or class shell for a standard MIDlet includes a StartApp( ) method that corresponds with a hierarchy of MIDlet-related class files. In some embodiments based on a J2ME environment, the standard MIDlet shell is updated so that a RegisteredStart( ) method and corresponding MIDlet-related class library files replace the standard StartApp( ) method and corresponding RegisteredMIDlet-related class library files. [0015]
  • This modified design allows an application provisioning server (e.g., an “over the air” or “OTA” server) to take control and perform tasks such as license verification, digital rights management, etc. before passing control back to the registered application running on a device. The registered application framework can be used to support developers across a range of available handsets and other devices and can insulate developers from various carrier or service provider requirements. [0016]
  • By passing control to the application provisioning server, in some embodiments, the registered application can be used to prevent unwanted copying of the application from device to device. For example, a license key can be downloaded onto a handset on which the registered application is initially installed. When the registered application is first run from the handset, the application provisioning server can then verify the license key. The use of the registered application in this way prevents a copy from being executed without the license key, as the license key is configured so that it is not copied when the application is copied from one device to another. [0017]
  • The registered application may support a variety of licensing arrangements. For example, a software application license can be tagged with an expiration date or a limited number of uses. In addition, many variations of server-based charging policies may be applied, including rental, rental subscription, limited free trial, coin-op, feature charging, etc. With many of these charging models, if an application user's license expires, the application may refer back to the license server for a new license, at which point a further charge to the user's account can be made, subject to the user's approval. [0018]
  • Besides facilitating licensing and prevention of copying, the registered application may facilitate the generation and monitoring of other types of billing events associated with a user's account (e.g., “feature charging”). For example, a user may be charged for “cheat codes” or “hints” associated with an electronic game. In addition, the registered application may allow for sending user data such as high scores to the provisioning server and optionally, to charge for such services according to a policy set by the provisioning server. For example, a user of a game application may be able to post his/her high score to a central leader board seen by all other players—either downloaded back onto the mobile device or viewable from the mobile device's WAP browser or a web browser. [0019]
  • Web retail models have demonstrated the value of incorporating user feedback into a catalogue used to display lists of applications available to users. In some embodiments, the registered application allows the user to provide such feedback. For example, a user may rate an application after it is purchased. This rating may be posted to a server and used to generate popularity statistics. Applications can then be presented in application catalogue menus in order of popularity, increasing the likelihood of user satisfaction with a download, as user ratings are a more precise measure than the number of downloads. [0020]
  • The registered application may also provide various services to developers. For example, developers may initially design applications using a single scaled-down version of the registered application, creating a general version of the registered application. Later, the facility can substitute a specific version of the registered application appropriate for a specific user's particular mobile device and/or service without having to involve the developer in this stage. [0021]
  • Additionally, the registered application may allow for easy upgrades of already-installed registered applications, allowing application developers to continue to improve their applications, even after they have been distributed in the consumer market. A server may keep track of which versions of registered applications individual users have downloaded allowing updates to be deployed to them. Registered applications may automatically check for updates. Many options are available for billing or charging users for updates. For example, updates that fix problems may be made freely available while new improved versions might incur an upgrade fee. [0022]
  • As well as eliminating a cycle of updates with developers, the registered application may also provide some other standardization such as elements of the application's user interface (e.g., how to present error states or game intro sequences). [0023]
  • II. System Architecture for Provisioning and Maintaining Registered Applications
  • FIGS. 1 and 2 illustrate an example of a [0024] system 100 for provisioning and maintaining applications that utilize a registered application framework. The system may be, for example, a carrier system or an application provisioning service system. This system may revolve around a central database 102 that holds an application catalogue 104, user and supplier accounts 106 and transaction records 108. The central database 102 may also include supplemental data and a J2EE application server (not shown) to support controllers, business logic and presentation layers (not shown). As shown in FIG. 2, the central database 102 may be implemented with a commercial-grade database 204 (e.g., Oracle 9i) as the server for secure concurrent access, high reliability and scalability. For additional reliability, the database may reside on a Fault-Tolerant Filestore 206 (managed RAID array). Database access may be via container-managed persistence (CMP) (not shown) as part of the larger J2EE platform 207.
  • A [0025] catalogue provision module 208 may be implemented using JSP (JavaServerPages), Servlets and a CMP business logic layer (not shown) to reduce load on the central database 102. The JSP pages may be WML, HTML or other format (e.g., proprietary format, etc.).
  • One or more application provisioning servers [0026] 110 (e.g., “over-the-air” or “OTA servers”) can connect to the application catalogue. The use of multiple OTA servers 110 allows for distributing or serving different territories or portals.
  • The [0027] OTA servers 110 may provide a secure framework for defining user billing mechanisms, authenticating and recording user purchases and storing and forwarding charging records. Charges to users may be recorded with the user identity and a reason code for the charge. The OTA servers may integrate with a wide variety of external billing mechanisms using protocols such as IPDR or SOAP.
  • The [0028] application catalogue 104 drives the one or more OTA servers 110 and provides raw information from which user menus and application brochures may be constructed and presented appropriately for varying types of mobile device (not shown). The application catalogue 104 may be managed from remote workstations (not shown) via a secure connection to the database with one or more catalogue managers 112, an easy-to-use tool that may be provided as part of the system. The use of multiple catalogue managers 112 allows different departments to administer the application catalogue 104 concurrently. The catalogue manager 112 may be supplied as a J2EE client application that can be run on a content manager's desktop remotely from the server 110 running the central database. The catalogue manager 112 may provide a simple visual tool for maintenance of the application catalogue 104 and may be configured as a complete end-to-end solution to manage the workflow of content from developer to live provisioning service.
  • Using a transaction reports [0029] component 113, the system may allow for easy accounting of application usage to suppliers and calculation of revenues to be paid via a mechanism for generating transaction reports showing statistics against applications and suppliers in a variety of different views.
  • The [0030] OTA servers 110 use the information stored in the central database 102 to generate views on the application catalogue 104 as requested by a portal 114. Each OTA server 110 may be implemented using connected game server technology to handle portal and billing integration providing user identification—it can also act in place of a portal 114 where there is none. On a lower level, each OTA server 110 may be implemented in Java as a set of Enterprise components (Java Server Pagers, Servlets and Enterprise Java Beans) for deployment on a J2EE platform such as Oracle 9i or BEA Weblogic.
  • Other components in the system include a [0031] license manager 212 that provides support for digital rights management including copy protection and advanced charging models and a client asset manager 214 that allows client applications to have additional assets residing on the server (such as extra game levels) that can be charged for. In addition, a game service platform 216 provides a home for a server component of multiplayer and client/server games. A customizable portal interface services component 218 maintains responsibility for interfacing with, for example, a carrier's portal 114, providing services such as user-registration, links back to the carrier's portal etc. A billing interface services component 220 is responsible for interfacing with, for example, a carrier's billing system. These interface components (218 and 220) may be configured to handle a wide range of protocols and to be easily customizable. An SMS bridge component 224 allows short message service (“SMS”) messages to be sent and received by the server. It supports most protocols used by SMSCs.
  • The system architecture offers various possibilities for integration and interoperability with carrier components and components from other vendors. For example, users may be allowed to browse the [0032] application catalogue 104 for applications suitable for their mobile device and, having made their selection, authorize payment via credit card and initiate download. In some embodiments, the system may be designed so that it is tightly integrated with already-existing billing and user registration systems, for example, carrier billing systems.
  • The facility may include the ability to identify the user and associate him/her with a billing account. For example, a connected game server [0033] 226 (“CGS”) that provides user identification along with portal and billing system integration services may be implemented to facilitate charging the user for downloading a registered application.
  • Provisioning of registered applications to mobile devices (not shown) may be facilitated through the use of a web-site to download registered applications. The registered applications may be discovered through the mobile device's WAP browser (not shown), provided that the registered applications are compatible with the user's specific mobile device. [0034]
  • Many mobile devices conform to J2ME guidelines and recommended practices for user-initiated OTA provisioning and MIDP provisioning in the WAP environment and use the WAP browser to initiate download. But older Java mobile devices such as the Motorola Accompli 008 or iDen family, may use a custom protocol to describe OTA provisioning of Java applications without involving the WAP browser. [0035]
  • III. Developing Registered Applications
  • Implementation of the registered application begins at the time that the application is initially developed. A developer tool may provide a programmer/developer with a standardized delivery target and access to extensive high-value technical information, which can be customized for a carrier or portal partner. This allows developers to focus on content creation, rather than resolving technical differences between multiple mobile devices types and carrier systems. [0036]
  • The following is an example of implementation of a registered application for configured for MIDP. In a conventional MIDP application, the following skeleton is typically used: [0037]
    import javax.microedition.midlet.*;
    public class MyApplication extends MIDlet
    {
    public MyApplication ( )
    {
    // Any initial setup
    }
    public void startApp ( )
    {
    // This is the real start for the application invoked by the
    Application Manager
    }
    }
  • A registered MIDP application may have a similar skeleton, with modifications shown in bold: [0038]
    import javax.microedition.midlet.*;
    import ngame.midlet.*;
    public class MyApplication extends RegisteredMIDlet
    {
    public MyApplication ( )
    {
    appName = “My Application”;
    // Any initial setup
    }
    public void startRegisteredApp ( )
    {
    // This is the real start for the application once the license
    has been verified
    }
    }
  • In this example, a standard MIDlet is converted to a registered MIDlet by (1) importing a package containing classes relating to the registered MIDlet; (2) changing the parent class from “MIDlet” to “RegisteredMIDlet;” (3) adding appName=“ . . . ”; to the application constructor to help with identification of the registered application at the OTA server; and (4) changing the method startApp( ) to startRegisteredApp( ). The class RegisteredMIDlet is derived from MIDlet and has an implementation of the method startApp( ) that first performs any digital rights management checks or other tasks before invoking the method startRegisteredApp( ) shown in the skeleton above. The startRegisteredApp( ) method is then defined by any subclasses of RegisteredMIDlet. According to this modified skeleton, the developer builds a subclass of RegisteredMIDlet (not MIDlet) and provides an implementation of startRegisteredApp( ) instead of startApp( ). [0039]
  • To simplify the initial implementation of applications that utilize the registered application framework, developers may use a single scaled-down version of the registered application so that they can create a general version of the application. Later, the facility can substitute a specific version of the registered application appropriate for a specific user's particular mobile device and/or service without having to involve the developer in this stage. For example, if the user's device does not allow for copying from one device to another, then the facility can install a lightweight version of the registered application that simply checks for expiration of any rental period. Alternatively, if a mobile device freely allows copies, then the facility may install a version of the registered application that binds to the hardware identification (e.g., IMEI) of the mobile device. To best provide effective client support, different versions of the registered application may allow for custom interfacing to the implemented provisioning technique. [0040]
  • In some embodiments, once an application has been developed as a registered application, it can not be executed without at least initial network access to a license manager. To prevent inconvenience during development and testing, in some embodiments, the license verification mechanism can be disabled for debugging purposes by including the following declaration in the constructor: [0041]
    verifyLicence = false;\
  • IV. Provisioning Registered Applications
  • Once an application is developed using the registered application framework, the application may be prepared for download. FIG. 3 is a flow diagram showing an example of a provisioning preparation process in one embodiment. In [0042] block 302, the registered application is bound within an application package prior to download. The application package may contain, for example, JAR and JAD files, along with a brochure, screenshots, and other information about the application (e.g., target mobile device, language, version, etc.). In the case where the developer/programmer uses a scaled-down version of the registered application during development, binding the registered application in a JAR file may involve packaging the application with a more robust version of the registered application that corresponds to, for example, a carrier's infrastructure (e.g., which application provisioning server and digital rights management the carrier is using). In the case of an MIDP application, this may involve replacing the registered MIDlet class file in the application JAR. In addition, a unique version of the registered application may be available for each of the mobile devices being supported by a particular carrier. In this way, the application package may be deployed with the correct registered application without the distributor having to go through a cycle with the developer. In some embodiments, the application provisioning server could bind the correct registered application with the JAR file “on the fly.”
  • Once the appropriate registered application is bound to the application package, the application package may then be available for download, as shown in [0043] block 304. To facilitate download, the application package may be emailed to a content manager or other administrator, who uses a tool such as the catalogue manager 112 of FIGS. 1 and 2 to receive the application package and insert it into the application catalogue. Pricing details may also be set at this time. A customer can then select the application package for download (block 306).
  • FIG. 4 is a flow chart showing an example of an application download process in some embodiments. In [0044] optional block 401, if the portal does not provide for user identification, the user logs in to the application provisioning server (e.g., OTA server) from the mobile device. In block 402, the facility identifies the user's mobile device and may provide troubleshooting if needed. In block 403, applications compatible with the user's mobile device are presented to the user, organized by categories. In block 404, the user is presented with an application brochure for a selected application. In decision block 405, the application provisioning server determines the appropriate download scenario for the user's mobile device. The application provisioning server can choose a suitable user identification, download and licensing strategy to use for provisioning applications based on many different factors, such as method of download initiation (e.g., download initiated via WAP, proprietary mechanism, etc.); ability of mobile device to allow for copying of applications; and ability of mobile device be uniquely identified from within the J2ME environment. For those applications that use the registered application framework, the licensing step may be delayed until the first launch of the application on the mobile device when the application has been downloaded onto the mobile device completely and successfully (block 409 below).
  • In the illustrated example, if the mobile device is WAP-compatible, the routine continues at [0045] block 406 where the user confirms download. Otherwise, the routine continues at block 407, where alternative download instructions are provided. After block 406 or 407 the routine continues at block 408 where the application is downloaded. Depending on the mobile device type, as determined in block 405, the download may be initiated from WAP, the Java application manager, or some other source.
  • The routine ends after [0046] optional block 409, where the application provisioning server takes control of the registered application on first launch to get an unlock code that will be stored on the mobile device for subsequent launches. The unlock code may be provided to the device when the application is initially downloaded. Because the unlock code cannot be copied from one mobile device to another, this prevents the execution of unauthorized copies of the registered application and is done as an additional security measure against piracy. For example, in the case of a registered MIDP application, when a user starts the registered application on the mobile device, the Java Application Manager loads the application and the application provisioning server takes control to perform any validation (e.g., digital rights management checks, etc.) that may be defined by various subclasses of RegisteredMIDlet. The application does not receive back control until the registered MIDlet has completed its validation. This technique may also be used to provide the expiration policy for the license.
  • Reporting mechanisms may be used to prevent charging users in the case of failed downloads. For example, the MIDP Appendices describe a mechanism for the Java Application Manager to report successful downloads. Such a mechanism may be supported by the facility for most mobile devices. The facility may also support other tactics such as allowing the user to download the application repeatedly within a limited time frame. [0047]
  • FIG. 5 is a flow diagram illustrating a routine [0048] 500, for download of a registered Java application onto a specific device, the Siemens SL45I. The SL45i handset is a more recent Java handset and is likely to be typical of the coming generation of devices. It conforms to Appendix A and Appendix B of the MIDP-1.0 specification and uses the WAP browser as the initiating agent for OTA download.
  • The JAR files to be downloaded are stored on a fault-tolerant file store rather than in the database. They are thus referenced by static URLs allowing server caches such as SQUID to migrate the data to the network fringe closest to the points of access for the user's download connections. [0049]
  • In [0050] block 501, the device starts the Internet and either enters the OTA URL or finds it from a larger menu (e.g., carrier portal). In block 502, the device displays a menu of available applications. The applications may be categorized into folders and may show only those suitable for the SL45I. In block 503, the mobile device selects an application from the menu of those available. In block 504, a short information screen is displayed on the device describing the application, including size and cost. In block 505, the user presses the DOWNLOAD button to initiate OTA download. Note that in this example, while the WAP browser downloads the JAD file, the JAR file is downloaded by the JAM using TCP. In block 505, if there is a billing charge on download, approval will be requested.
  • Nokia handsets such as the 3410 handle OTA provisioning of J2ME applications in a way very similar to the Siemens SL45i. There is an important difference in that the Siemens SL45i hands the download itself over to the Java Application Manager which downloads the JAR file via TCP/IP whereas the Nokia handsets download the JAR within the WAP browser using a WAP request and then hands the downloaded JAR file over to the JAM. Thus, with a Nokia handset, only one set of Internet settings (those for the WAP browser) is used, whereas with the Siemens handset, separate WAP and Java Internet settings are used. [0051]
  • Additional aspects associated with provisioning registered applications include displaying applications in a form convenient for the user, ensuring compatibility with a range of user devices and communicating between the application provisioning server and the user. These aspects are described further in the following sections. [0052]
  • A. Application Catalogue
  • The system may provide carriers and portals with access to an extensive catalogue of content from which users may select applications to download. To facilitate browsing for various applications available for download, the facility may facilitate the use of a WAP or similar browser on the user's mobile device. The applications may be presented as a series of pages organized by a hierarchy of categories. An application may be marked with several different categories allowing it to appear in many places in the hierarchy. Each application may have a brochure that describes the application in detail including screenshots, pricing, etc. From the application brochure, the application can be downloaded to the user's mobile device. [0053]
  • FIG. 6 is a display diagram showing an example of an [0054] application catalogue 600 for browsing and choosing registered applications for download. The application catalogue not only allows the user to easily navigate through and select registered applications compatible with the user's mobile device, but may also function to present the menus and brochures in a fashion that best suits the mobile device's browser. The number of applications displayed on any one page may be limited to fit within the device's deck-size limits.
  • The application catalogue can provide a variety of details about each registered application. In some embodiments, this information covers three main aspects: the application brochure, the charging policy, and the usage statistics. The application brochure includes information about the application's title, both brief and detailed descriptions about the application, screenshots, developer and supplier information including logos, etc. The charging policy may be described by a set of events (e.g., download, upgrade, highscore, etc.) and the corresponding charges for each event. In some cases, a limited free-trial period can be specified. [0055]
  • Usage statistics may consist of information logs generated by the application provisioning server. Along with usage statistics, these logs can be used generate a wide range of reports giving user feedback into a carrier's purchasing and promotion decisions. Each transaction may be a time-stamped record detailing the user, application and event. Supporting information may also be available in the comprehensive system logs. Typical reports available may include download traffic graphed over time, cumulative over application or supplier. Statistics may also be available as Excel spreadsheets for more sophisticated analysis. An example of a benefit of such reporting includes being able to account to suppliers their share of revenues from downloads. Carriers or application provisioning service providers can choose the level of detail to report to suppliers according to their contractual obligations. [0056]
  • Usage statistics may be accompanied by rating information. The system may provide one or more mechanisms that allow users to rate applications. This can be done after the application terminates where the application is deployed as a registered application. Alternatively, users may rate a registered application when the application is executed online. To facilitate this process, the application provisioning server may request that users rate applications that they previously downloaded the next time that the user browses the catalogue. User ratings can be used to rank applications according to popularity more reliably than simple download frequency (which can lead to lemming-like behavior when everyone follows the first few). The user ratings can also be used to build more sophisticated profiles matched to a user's download history such as “people who liked X also liked Y.”[0057]
  • In some embodiments, the application catalogue can present different views according to the territory or language of the user. This capability may be useful for carriers and portals that span multiple territories or in a territory with several languages to support such as English and French in Canada. The application catalogue may offer the carrier or application provisioning service provider considerable editorial control to promote particular applications or particular suppliers. [0058]
  • B. Device Compatibility
  • Each registered application may have a variety of versions tailored for the range of mobile devices available. The application catalogue may have the ability to record a variety of details about each available mobile device. Carriers and application provisioning service providers can define new mobile devices themselves and record them in a database. The release of new mobile devices may be tracked across a variety of territories so that new records for additional mobile devices may be distributed on a regular basis. The application catalogue records sufficient information to supply the correct version for a user's mobile device. In the case of MIDP, each version may be a JAR (Java Archive Tool) file tagged with the set of mobile devices it is certified for and a version number that allows updates to be correctly deployed to users that have downloaded older versions. For example, the application provisioning server may identify the type of mobile device from the user-agent string passed to it by the mobile device's WAP browser or Java Application Manager. However, this may not always serve to uniquely identify each mobile device, in which case the application provisioning server can ask the user which mobile device they are using on their first visit and record this for subsequent visits. If the user later changes mobile devices, the user may have the opportunity to change their recorded mobile device information. [0059]
  • The application catalogue may, for example, also record a variety of details about the device's Java capabilities, which are used to select good matches for application versions to devices that have not yet been certified by the carrier or application provisioning service provider. Common device capabilities include screen format (width, height and implied aspect ratio); color format (monochrome, greyscale, palette color, RGB color and bits/pixel); input method (touch screen vs. keyboard and what keys available, rocker pad, roller bar, etc.); sound/vibration; maximum JAR size; maximum available memory, etc. [0060]
  • Device capability records may be distributed in XML (Extensible Mark-Up Language), allowing processing by tools other than those supplied by the facility. Such records can be imported into a live catalogue allowing carriers and application provisioning service providers to track the deployment of new mobile devices. [0061]
  • C. Use of SMS in Application Provisioning
  • While registered applications can be provisioned via the application catalogue, the use of SMS or instant messaging may compliment the overall provisioning process. Although the size of a Java application typically exceeds that which SMS or instant messaging provisioning mechanisms allow (such as ring-tones), the application provisioning server can prompt users with SMS-style notifications of promotional applications, new applications in categories they are interested in or updates of applications they had previously downloaded. The SMS or instant message can include a direct URL to the appropriate version of the application for their mobile device and on many mobile devices the user can select the link inside the SMS message and click on it to immediately begin download without having to navigate the application catalogue. [0062]
  • Since some users see unsolicited SMS as a nuisance (and in some territories there are legal problems with such schemes), the user can opt out of receiving SMS or select which SMS messages they do want to receive. To comply with legal requirements in some territories, the application provisioning server can be configured to make this opt-in by default. Some carriers and application provisioning service providers may manage this through their own portals and user registration process, in which case the application provisioning server will defer to the portal for policy. [0063]
  • Another use of SMS is for revenue-collection whereby a reverse-charged SMS is sent to the user and the content provider takes a share of the SMS charge. They system may provide strategies for presenting these charges to the user. [0064]
  • V. License Management
  • FIG. 7 is communication flow illustrating an example of a dialog between a mobile device and a server for selecting, downloading and licensing a registered application and then subsequently posting a high score and an application rating. [0065]
  • In block [0066] 701, the user connects to an application provisioning server in order to view available applications. In block 702 the server identifies the user via a subscriber ID or requests that the user login. In block 703, the server provides the user with a catalogue of applications for browsing. The catalogue may be tailored to the specific user depending on user preferences. In block 704, the user browses the available applications. In block 705, the user selects a registered application to download and approves payment for the selected application, if necessary. In block 706, the Server checks the charging model or licensing scheme. Some examples of licensing schemes are as follows:
  • Rental—the user pays to use the application for a limited period of time. [0067]
  • Rental subscription—the user can use the application while a subscription is active. [0068]
  • Limited free trial—the user can use the application free for a limited period or number of uses after which a charge must be paid to continue. [0069]
  • Coin-op—the user pays for a fixed number of uses (‘coins’) after which the coin wallet must be topped up from the server for an additional payment. [0070]
  • Feature charging—this can sit on any of the other charging models as an optional mechanism appropriate for some applications; the user pays to access certain features within the application. [0071]
  • In [0072] block 707, the server sends the registered application to the user's mobile device. In block 708, the registered application is downloaded onto the user's mobile device. Once the registered application is successfully downloaded and a licensing scheme is in place, in block 709, the user starts the registered application. In some embodiments, the license or unlock code is first fetched from the server as soon as the registered application is launched, depending on the licensing scheme that is in place. When the registered application starts up, the application manager invokes the registered application's implementation of startApp( ). This checks that it has a valid license by establishing a UDP, TCP, HTTP or other supported protocol connection to the server and transmitting a simple message. The protocol and message format is determined by the server platform but a common interface is presented to the application, the detail being hidden in the specific implementation of the registered application. In block 710, the server authenticates the request for a license or unlock code and sends the license code to the user's device. In some embodiments, the license verification proceeds as follows:
  • 1. Is there an existing license key?[0073]
  • 2. If so, the license is verified for the user and application and checked for expiry. If the license key is valid, the application then starts via startRegisteredApp( ). [0074]
  • 3. If there is no existing license key or if it has expired, the registered application queries the license server for a cost of obtaining a license. [0075]
  • 4. The registered application then asks the user to approve paying to unlock the application. The user at this point may terminate the application without cost. If the license cost is zero (either there is a free trial on or the user has already covered the license fee) this step may be skipped. [0076]
  • 5. The registered application then queries the license server for a license key. If a fee is payable, the appropriate billing event is issued by the license server. [0077]
  • This process is seamless as far as the user is concerned; only if the mobile device is temporarily out of signal will the user have to try again. In the case where this process immediately follows a successful OTA download of the application, it is unlikely that the network connection will have been lost. [0078]
  • In [0079] block 711, the user plays with the registered application (e.g., a game application). In block 712, the user gets a new high score and selects to have the score posted by having the registered application send the high score information to the server. In block 713, the server records the received high score and posts it to leaderboards. In block 714, the user receives a request from the server to rate the application and sends the rating information. In block 715, the server records the user's rating information. This information may then be made available via the application catalogue.
  • In an alternate embodiment, the registered application may be responsible for the license management via the mobile device and carrier/application provisioning service provider (as opposed to connecting to the application provisioning server to get an unlock code). In one implementation, an algorithm records the license in a RecordStore that each application has available. In the case of a registered MIDlet, because the J2ME Specification may require the RecordStore to be secure, the registered application may be protected against copying. In this way, various algorithms associated with the registered application may be used to perform license management functions, such as checking a current date against an expiration date that is supplied at the time the application is initially download or contacting a known server to acquire a license key. With respect to the latter, this key could be acquired every time the application is started or stored in the local RecordStore, where it is more likely that it will not be copied. [0080]
  • Along with facilitating license management functions, the registered application may be used to send data to the application provisioning server (e.g. high scores, feedback, user ratings, etc.) For example, the registered application may make a UDP, TCP, HTTP or other supported protocol connection to the application provisioning server and transmit a simple message such as “RATING, thisgame, fred, 7” or “HIGHSCORE, thisgame, fred, 10020” to the server. This message may then be stored for later processing such as when the “Top Ten High Scores” for a particular game is determined. The protocol and message format may be determined by the server platform, but a common interface may be presented to the application, the detail being hidden in the specific implementation of the registered application. [0081]
  • The registered application may support the addition of developer improvements to an application that has already been downloaded by a user. For example, when the registered application contacts the application provisioning server it can identify to the server the revision number of the application. The server can inform the registered application if there is a newer version of the application that the user can then be directed to download if desired. [0082]
  • As well as eliminating a cycle of updates with developers, the registered application may also provide some other standardization such as elements of user the application's user interface (e.g., how to present error states or game intro sequences). For example, some carriers choose to impose “Style Guides” on applications distributed through them. These “Style Guides” might specify the time spent presenting logos to the user and include additional requirements on branding. To further illustrate, a sequence of screens may display a series of messages such as “powered by XYZ Carrier,” “nGame presents,” “a Studio game.” The registered application may provide facilities for automating such sequences whereby the developer simply identifies their logo screen, the publisher theirs and the carrier theirs; the registered application may present the appropriately timed slideshow in accordance with the Style Guide. [0083]
  • The above detailed descriptions of embodiments of the invention are not intended to be exhaustive or to limit the invention to the precise form disclosed above. While specific embodiments of, and examples for, the invention are described above for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. For example, while steps are presented in a given order, alternative embodiments may perform routines having steps in a different order. Similarly systems consisting of components other than those described here may be utilized to implement the invention. The teachings of the invention provided herein can be applied to other systems. These and other changes can be made to the invention in light of the detailed description. [0084]
  • It will be further appreciated by those skilled in the art that the above-described facility may be straightforwardly adapted or extended in various ways. For example, the application provisioning and management techniques may be applied to manage applications outside the realm of mobile devices. While the foregoing description makes reference to preferred embodiments, the scope of the invention is defined solely by the claims that follow and the elements recited therein. [0085]

Claims (30)

I claim:
1. A method for managing a registered application, wherein the registered application is downloaded to a receiving device from an application provisioning server communicating with the receiving device via a network connection, the method comprising:
providing a registered application for download to the receiving device, wherein the registered application is configured such that, upon initial execution of the registered application by the receiving device, at least portions of the registered application cannot be executed by the receiving device without first passing temporary control of the registered application to the application provisioning server via the network connection;
gaining temporary control of the registered application after it is downloaded onto the receiving device; and
performing license management for the registered application.
2. The method of claim 1, further comprising associating an identifier with the receiving device, wherein the identifier is stored on the receiving device, wherein the identifier is configured for authorizing the receiving device to execute the registered application.
3. The method of claim 1, wherein the registered application includes a registered MIDlet.
4. The method of claim 1, wherein the registered application includes an underlying game application.
5. The method of claim 1, wherein the application provisioning server is associated with a wireless service provider.
6. The method of claim 1, wherein the registered application is further configured to receive updates from the application provisioning server.
7. The method of claim 1, wherein the registered application is developed using a streamlined application skeleton and is, prior to download onto the receiving device, reconfigured to be compatible with the type of the receiving device.
8. A method for managing a registered application, wherein the registered application is downloaded to a mobile device from an application provisioning server communicating with the mobile device via a network connection, the method comprising:
receiving control of the registered application being initially executed on the mobile device;
verifying that the mobile device is authorized to execute the registered application; and
sending an unlock code to the mobile device, wherein the unlock code is configured for allowing the mobile device to regain control of the application.
9. The method of claim 8, further comprising performing a task associated with managing the registered application, wherein performing the task includes implementing a charging scheme associated with the registered application.
10. The method of claim 8, further comprising performing a task associated with managing the registered application, wherein performing the task includes receiving, from a user of the registered application, feedback that can be used to rate the registered application.
11. The method of claim 8, further comprising performing a task associated with managing the registered application, wherein performing the task includes receiving and posting high score information for a user of the registered application.
12. The method of claim 8, further comprising performing a task associated with managing the registered application, wherein performing the task includes upgrading to a newer version of the registered application.
13. The method of claim 8, wherein the registered application is implemented in a J2ME environment.
14. The method of claim 8, wherein receiving control of the registered application includes receiving a license code from the mobile device.
15. A method for provisioning registered applications, wherein the registered applications are downloaded to mobile devices from an application provisioning server communicating with the mobile devices via a network connection, the method comprising:
providing an application catalogue containing at least one registered application, wherein the at least one registered application is configured such that, upon initial execution of the application by a mobile device, at least portions of the application cannot be executed by the mobile device without first passing temporary control to the application provisioning server via a network connection;
receiving, from a mobile device, a request for downloading a selected registered application, wherein the request includes information about the mobile device;
based on the received information, determining a download scenario appropriate for the mobile device; and
sending the registered application data for download to the mobile device using the determined download scenario.
16. The method of claim 15, wherein the sending of the selected registered application includes sending a license code for storage on the mobile device.
17. The method of claim 15, wherein the request for download includes a selection of a charging scheme.
18. The method of claim 15, wherein the selected registered application is offered on a limited free trial.
19. The method of claim 15, wherein the selected registered application is offered on a feature charging basis.
20. The method of claim 15, wherein the application catalogue provides information associated with usage statistics for each of the at least one registered applications.
21. The method of claim 15, wherein the selected registered application is bound within an application package including licensing information.
22. The method of claim 15, wherein the determined download scenario is initiated via the Wireless Application Protocol (WAP).
23. The method of claim 15, wherein the determined download scenario is initiated via a Java Application Manager.
24. A system for provisioning applications for download on mobile devices, the system comprising:
an application provisioning component configured for providing a registered application for download to a mobile device, the application provisioning component including an application provisioning server;
a network component for communication between the mobile device and the application provisioning server; and
wherein the registered application is configured such that, upon initial execution of the application by the mobile device, at least portions of the registered application cannot be executed by the mobile device without first passing temporary control of the registered application to the application provisioning server via the network component.
25. The system of claim 24, wherein the registered application includes a registered MIDlet.
26. The system of claim 24, wherein the application provisioning server is further configured to provide an application catalogue from which registered applications can be selected for download.
27. A computer-readable medium whose contents allow for preventing unauthorized execution of an application on a mobile device, the computer-readable medium comprising:
a registered application including an underlying application, wherein the registered application is downloaded to the mobile device from an application provisioning server via a communication link, wherein at least portions of the registered application cannot be initially executed by the mobile device without first passing temporary control of the registered application to an application provisioning server via the communication link; and
a license code for verifying with the application provisioning server that the mobile device is authorized to execute the registered application.
28. The computer-readable medium of claim 27, wherein the computer-readable medium is a memory in the system of an application provisioning service provider.
29. The computer-readable medium of claim 27, wherein the computer-readable medium is a memory in the system of the mobile device.
30. The computer-readable medium of claim 27, wherein the computer-readable medium is a data transmission medium carrying a generated data signal containing the contents.
US10/638,262 2002-08-08 2003-08-08 Software application framework for network-connected devices Abandoned US20040093595A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US10/638,262 US20040093595A1 (en) 2002-08-08 2003-08-08 Software application framework for network-connected devices
US12/628,471 US20100122351A1 (en) 2003-08-08 2009-12-01 Software Application Framework for Network-Connected Devices
US12/628,405 US9665860B2 (en) 2002-08-08 2009-12-01 Software application framework for network-connected devices
US12/772,059 US20100235261A1 (en) 2002-08-08 2010-04-30 Software Application Framework for Network-Connected Devices

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US40231002P 2002-08-08 2002-08-08
US10/638,262 US20040093595A1 (en) 2002-08-08 2003-08-08 Software application framework for network-connected devices

Related Child Applications (3)

Application Number Title Priority Date Filing Date
US12/628,405 Division US9665860B2 (en) 2002-08-08 2009-12-01 Software application framework for network-connected devices
US12/628,471 Division US20100122351A1 (en) 2003-08-08 2009-12-01 Software Application Framework for Network-Connected Devices
US12/772,059 Division US20100235261A1 (en) 2002-08-08 2010-04-30 Software Application Framework for Network-Connected Devices

Publications (1)

Publication Number Publication Date
US20040093595A1 true US20040093595A1 (en) 2004-05-13

Family

ID=42166404

Family Applications (4)

Application Number Title Priority Date Filing Date
US10/638,262 Abandoned US20040093595A1 (en) 2002-08-08 2003-08-08 Software application framework for network-connected devices
US12/628,471 Abandoned US20100122351A1 (en) 2003-08-08 2009-12-01 Software Application Framework for Network-Connected Devices
US12/628,405 Expired - Fee Related US9665860B2 (en) 2002-08-08 2009-12-01 Software application framework for network-connected devices
US12/772,059 Abandoned US20100235261A1 (en) 2002-08-08 2010-04-30 Software Application Framework for Network-Connected Devices

Family Applications After (3)

Application Number Title Priority Date Filing Date
US12/628,471 Abandoned US20100122351A1 (en) 2003-08-08 2009-12-01 Software Application Framework for Network-Connected Devices
US12/628,405 Expired - Fee Related US9665860B2 (en) 2002-08-08 2009-12-01 Software application framework for network-connected devices
US12/772,059 Abandoned US20100235261A1 (en) 2002-08-08 2010-04-30 Software Application Framework for Network-Connected Devices

Country Status (1)

Country Link
US (4) US20040093595A1 (en)

Cited By (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030220946A1 (en) * 2002-05-21 2003-11-27 Malik Dale W. Resource list management system
US20040237067A1 (en) * 2003-05-20 2004-11-25 Wenchao Sun Packaging system for customizing software
US20050086293A1 (en) * 2003-10-15 2005-04-21 Buckley David J. Rating service for wireless device applications
US20050091435A1 (en) * 2003-10-23 2005-04-28 Microsoft Corporation Architecture for an extensible real-time collaboration system
US20050089023A1 (en) * 2003-10-23 2005-04-28 Microsoft Corporation Architecture for an extensible real-time collaboration system
US20050149951A1 (en) * 2003-12-31 2005-07-07 Juha Uola Accessing accessory of a device
US20050153683A1 (en) * 2004-01-13 2005-07-14 Nokia Corporation Plug and play mobile services
US20050188371A1 (en) * 2004-02-25 2005-08-25 Bocking Andrew D. Method and system for selecting a program for download
US20050193101A1 (en) * 2004-03-01 2005-09-01 Oliver Mitchell B. Execution of unverified programs in a wireless, device operating environment
US20050257212A1 (en) * 2004-05-14 2005-11-17 International Business Machines Corporation System and method for autonomic software delivery for personal area networks
WO2006000641A1 (en) 2004-06-28 2006-01-05 Nokia Corporation User confirmation in data downloading
US20060036714A1 (en) * 2004-08-10 2006-02-16 Nokia Corporation Client provisioning with enhanced linking
US20060101453A1 (en) * 2004-11-04 2006-05-11 International Business Machines Corporation Deploying Java applications in resource constrained environments
US20060161839A1 (en) * 2003-06-25 2006-07-20 Claus Pedersen Method for obtaining communication settings using an application descriptor
US20060168355A1 (en) * 2005-01-24 2006-07-27 Michael Shenfield System and method for provisioning component applications
US20060269061A1 (en) * 2001-01-11 2006-11-30 Cardinalcommerce Corporation Mobile device and method for dispensing authentication codes
US20070006327A1 (en) * 2003-07-21 2007-01-04 July Systems, Inc. Dynamic service enablement of applications in heterogenous mobile environments
US20070043956A1 (en) * 2005-08-19 2007-02-22 Microsoft Corporation System and methods that facilitate third party code test development
US20070088759A1 (en) * 2002-05-21 2007-04-19 Bellsouth Intellectual Property Corporation Network Update Manager
US20070118699A1 (en) * 2005-11-23 2007-05-24 General Electric Company System and method for updating turbine controls and monitoring revision history of turbine fleet
US20070136571A1 (en) * 2005-12-08 2007-06-14 Mobicom Corporation Method and apparatus for downloading information content to a wireless terminal
US20070150815A1 (en) * 2005-12-22 2007-06-28 Microsoft Corporation Program execution service windows
US20070209060A1 (en) * 2006-02-24 2007-09-06 Nokia Corporation Application verification
EP1834236A2 (en) * 2004-12-23 2007-09-19 Motorola, Inc. Management of persistent software applications
US20070226712A1 (en) * 2006-02-06 2007-09-27 Ralph Saunders Method of providing software development services
US20070232223A1 (en) * 2006-03-30 2007-10-04 Eric Bilange Systems and methods for communicating music indicia
US20080046888A1 (en) * 2006-08-15 2008-02-21 Appaji Anuradha K Framework for Rule-Based Execution and Scheduling of Tasks in Mobile Devices
US20080059949A1 (en) * 2006-09-01 2008-03-06 Sap Ag System and method for implementing a safe framework
US7346696B2 (en) 2002-05-21 2008-03-18 At&T Deleware Intellectual Property, Inc. Group access management system
US20080114695A1 (en) * 2006-11-10 2008-05-15 Semantic Components S.L. Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
US7383579B1 (en) * 2002-08-21 2008-06-03 At&T Delaware Intellectual Property, Inc. Systems and methods for determining anti-virus protection status
US20080168162A1 (en) * 2007-01-08 2008-07-10 Weidong Chen Methods and apparatuses for automatically initiating an application
US20080320445A1 (en) * 2007-06-25 2008-12-25 Paulo Alexandre Grilo Rosado Systems and methods for gathering and processing user feedback
US20090064133A1 (en) * 2007-08-28 2009-03-05 Red Hat, Inc. Provisioning for 32-bit or 64-bit systems
US20090064132A1 (en) * 2007-08-28 2009-03-05 Red Hat, Inc. Registration process for determining compatibility with 32-bit or 64-bit software
US20090177567A1 (en) * 2008-01-09 2009-07-09 Mckerlich Ian Mobile application monitoring system
EP2115641A2 (en) * 2007-01-23 2009-11-11 Ascenna Mobile, Inc. Automated authentication process for application clients
US7634721B1 (en) * 2004-08-23 2009-12-15 Sun Microsystems Inc. Composite component architecture using javaserver pages (JSP) tags
US20100003923A1 (en) * 2008-01-09 2010-01-07 Mckerlich Ian Mobile application monitoring system
US20100023453A1 (en) * 2001-01-11 2010-01-28 Cardinalcommerce Corporation Dynamic number authentication for credit/debit cards
US20100088694A1 (en) * 2004-12-23 2010-04-08 Koninklijke Philips Electronics, N.V. Method and apparatus for configuring software resources for playing network programs
US20100122351A1 (en) * 2003-08-08 2010-05-13 Hands-On Mobile, Inc. Software Application Framework for Network-Connected Devices
US20100250400A1 (en) * 2006-11-10 2010-09-30 Media Patents, S.L. Apparatus and methods for the sale of software products
US20100280952A1 (en) * 2007-12-04 2010-11-04 Tencent Technology (Shenzhen) Company Ltd. Method, apparatus and system for implementing verification and payment in content service
US20100287529A1 (en) * 2009-05-06 2010-11-11 YDreams - Informatica, S.A. Joint Stock Company Systems and Methods for Generating Multimedia Applications
US20100318968A1 (en) * 2009-06-15 2010-12-16 Microsoft Corporation Catalog-based software component management
US20110087777A1 (en) * 2009-10-09 2011-04-14 Sony Corporation Information-processing device, information-processing method, and program
US20110126240A1 (en) * 2005-01-05 2011-05-26 Rovi Solutions Corporation Applications registry for a television environment
US20110270711A1 (en) * 2010-04-28 2011-11-03 Sap Ag Managing application interactions with enterprise systems
US8205001B1 (en) * 2004-03-30 2012-06-19 Sprint Communications Company L.P. Digital rights management integrated service solution
US8239840B1 (en) 2010-03-10 2012-08-07 Google Inc. Sensor simulation for mobile device applications
US20120216122A1 (en) * 2011-02-23 2012-08-23 Microsoft Corporation Application store topics
US20120240097A1 (en) * 2006-02-06 2012-09-20 Ralph Saunders Method of providing software development services
US20120254768A1 (en) * 2011-03-31 2012-10-04 Google Inc. Customizing mobile applications
US20120290584A1 (en) * 2011-05-09 2012-11-15 Google Inc. Recommending Applications for Mobile Devices Based on Installation Histories
US20120324440A1 (en) * 2011-06-16 2012-12-20 Microsoft Corporation Cloud based management of an in-store device experience
EP2539813A2 (en) * 2010-02-25 2013-01-02 Phunware Inc Systems and methods for enterprise branded application frameworks for mobile and other environments
US8484636B2 (en) 2011-05-09 2013-07-09 Google Inc. Generating application recommendations based on user installed applications
CN103218366A (en) * 2012-01-20 2013-07-24 腾讯科技(深圳)有限公司 Method and system for recommending download resources
US8516308B1 (en) * 2011-03-09 2013-08-20 Amazon Technologies, Inc. Crash based incompatibility prediction for classes of mobile devices crash data
US8566173B2 (en) 2011-05-09 2013-10-22 Google Inc. Using application market log data to identify applications of interest
CN103703741A (en) * 2012-11-22 2014-04-02 华为技术有限公司 Method for disseminating application distribution, terminal and server
US8731529B2 (en) 2010-11-19 2014-05-20 Mobile Iron, Inc. Management of mobile applications
US8788944B1 (en) 2011-03-09 2014-07-22 Amazon Technologies, Inc. Personalized mobile device application presentation using photograph-based capability detection
US8825663B2 (en) 2011-05-09 2014-09-02 Google Inc. Using application metadata to identify applications of interest
US20140280462A1 (en) * 2009-02-09 2014-09-18 Apple Inc. Intelligent download of application programs
US20140325506A1 (en) * 2013-04-24 2014-10-30 QRC, Inc. dba QRC Technologies, Inc. System and Method for RF Digitization and Collection
US20150026827A1 (en) * 2013-07-17 2015-01-22 Industrial Technology Research Institute Method for application management, corresponding system, and user device
US20150039515A1 (en) * 2012-08-10 2015-02-05 Adobe Systems Incorporated Interactive product improvement through the use of variants and data gathering reports in a system that can be updated on the fly
US20150112829A1 (en) * 2008-02-25 2015-04-23 Jon Jaroker System and method for deploying and maintaining software applications
US9378004B1 (en) * 2004-03-19 2016-06-28 SITO Mobile R&D IP, LLC Downloading data to a mobile device
US9652353B2 (en) 2013-10-15 2017-05-16 Oracle International Corporation Monitoring business transaction failures involving database procedure calls
US20180307472A1 (en) * 2017-04-20 2018-10-25 Sap Se Simultaneous deployment on cloud devices and on on-premise devices
US10255158B2 (en) 2013-10-15 2019-04-09 Oracle International Corporation Monitoring and diagnostics of business transaction failures
CN109800002A (en) * 2019-01-17 2019-05-24 恒峰信息技术有限公司 A kind of automatic installation and deployment method of Java software
US10348736B1 (en) 2005-04-21 2019-07-09 Seven Networks, Llc Multiple data store authentication
EP3609153A4 (en) * 2018-05-30 2020-04-22 Launch Tech Co., Ltd Maintenance equipment management method, server and computer-readable storage medium
US11290425B2 (en) * 2016-02-01 2022-03-29 Airwatch Llc Configuring network security based on device management characteristics
US11303306B2 (en) 2020-01-20 2022-04-12 Parsons Corporation Narrowband IQ extraction and storage
US11569848B2 (en) 2020-04-17 2023-01-31 Parsons Corporation Software-defined radio linking systems
US11575407B2 (en) 2020-04-27 2023-02-07 Parsons Corporation Narrowband IQ signal obfuscation
US11605166B2 (en) 2019-10-16 2023-03-14 Parsons Corporation GPU accelerated image segmentation
US11619700B2 (en) 2020-04-07 2023-04-04 Parsons Corporation Retrospective interferometry direction finding
US11849347B2 (en) 2021-01-05 2023-12-19 Parsons Corporation Time axis correlation of pulsed electromagnetic transmissions

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60236381D1 (en) * 2001-04-12 2010-06-24 Research In Motion Ltd System and method for dynamically shifting information to wireless communication devices
GB0426736D0 (en) * 2004-12-06 2005-01-12 Omnifone Ltd MyFone
US20070038528A1 (en) * 2005-08-11 2007-02-15 Sitoa Corporation Inventory-less distribution
US9021598B1 (en) * 2009-01-23 2015-04-28 Sprint Communications Company L.P. Managing application events
US8346901B2 (en) 2009-01-26 2013-01-01 Apple Inc. Selection of an appropriate online content source based on program information
US20100298011A1 (en) * 2009-05-19 2010-11-25 Alcatel-Lucent Usa Inc. Method and Appartus for Remote Software Installation and Execution on a Mobile Device
US9589114B2 (en) * 2010-01-05 2017-03-07 Microsoft Technology Licensing, Llc Policy for digital rights management
JP5545038B2 (en) * 2010-05-28 2014-07-09 株式会社リコー Information processing device
US8499333B2 (en) 2010-09-10 2013-07-30 Sony Corporation Secure device feature unlock mechanism third party development
US9053482B2 (en) * 2011-05-24 2015-06-09 Amazon Technologies, Inc. Service for managing digital content licenses
US9064276B2 (en) 2011-05-24 2015-06-23 Amazon Technologies, Inc. Service for managing digital content resales
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
KR101923487B1 (en) 2011-09-29 2018-11-30 삼성전자 주식회사 Method and Apparatus for Providing Communication Connection Service
US8971842B2 (en) * 2011-10-12 2015-03-03 Verizon Patent And Licensing Inc. Enterprise mobile application store
US8467987B1 (en) 2012-05-30 2013-06-18 Google, Inc. Methods and systems for testing mobile device builds
CN106101240B (en) * 2016-06-23 2020-01-14 北京儒博科技有限公司 Data communication continuous connection method and device
US11402812B1 (en) 2019-03-22 2022-08-02 The Chamberlain Group Llc Apparatus and method for controlling a device
US11216423B2 (en) * 2019-12-11 2022-01-04 The Boeing Company Granular analytics for software license management
US11593082B2 (en) * 2020-04-10 2023-02-28 Apple Inc. Registered applications for electronic devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6018627A (en) * 1997-09-22 2000-01-25 Unisys Corp. Tool-independent system for application building in an object oriented development environment with data stored in repository in OMG compliant UML representation
US20050021995A1 (en) * 2003-07-21 2005-01-27 July Systems Inc. Application rights management in a mobile environment
US6948070B1 (en) * 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US21995A (en) * 1858-11-02 Improvement in seeding-machines
US4888798A (en) * 1985-04-19 1989-12-19 Oms, Inc. Modular software security
US5260999A (en) * 1991-06-28 1993-11-09 Digital Equipment Corporation Filters in license management system
US5634080A (en) * 1992-06-29 1997-05-27 Elonex Ip Holdings, Ltd. Hand-held portable computer having an electroluminescent flat-panel display with pixel elements at right angles to the plane of the display and an excitation direction parallel to the plane of the display
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5765152A (en) * 1995-10-13 1998-06-09 Trustees Of Dartmouth College System and method for managing copyrighted electronic media
WO1997025798A1 (en) * 1996-01-11 1997-07-17 Mrj, Inc. System for controlling access and distribution of digital property
US6021438A (en) * 1997-06-18 2000-02-01 Wyatt River Software, Inc. License management system using daemons and aliasing
US6484182B1 (en) * 1998-06-12 2002-11-19 International Business Machines Corporation Method and apparatus for publishing part datasheets
US6169976B1 (en) * 1998-07-02 2001-01-02 Encommerce, Inc. Method and apparatus for regulating the use of licensed products
US6292833B1 (en) * 1998-07-17 2001-09-18 Openwave Systems Inc. Method and apparatus for providing access control to local services of mobile devices
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US6681212B1 (en) * 1999-04-23 2004-01-20 Nianning Zeng Internet-based automated system and a method for software copyright protection and sales
EP1076279A1 (en) * 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
US7209900B2 (en) * 1999-08-27 2007-04-24 Charles Eric Hunter Music distribution systems
US20020052229A1 (en) * 2000-04-07 2002-05-02 Ronald Halliburton Solitaire game played over the internet with features to extend play
AU7593601A (en) * 2000-07-14 2002-01-30 Atabok Inc Controlling and managing digital assets
US20020069263A1 (en) * 2000-10-13 2002-06-06 Mark Sears Wireless java technology
US6886038B1 (en) * 2000-10-24 2005-04-26 Microsoft Corporation System and method for restricting data transfers and managing software components of distributed computers
US7006997B2 (en) * 2000-12-05 2006-02-28 Kenta Hori Method and program for preventing unfair use of software
GB2373677B (en) * 2001-03-19 2005-08-10 Nokia Mobile Phones Ltd Client server system
US20020176378A1 (en) * 2001-05-22 2002-11-28 Hamilton Thomas E. Platform and method for providing wireless data services
US7421411B2 (en) * 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
US7029394B2 (en) * 2001-07-13 2006-04-18 Gameaccount Limited System and method for generating statistics for a user of a gaming application
US7054423B2 (en) * 2001-09-24 2006-05-30 Nebiker Robert M Multi-media communication downloading
US20030084165A1 (en) * 2001-10-12 2003-05-01 Openwave Systems Inc. User-centric session management for client-server interaction using multiple applications and devices
US20030182626A1 (en) * 2002-03-22 2003-09-25 Eran Davidov On-demand creation of MIDlets
US7073189B2 (en) * 2002-05-03 2006-07-04 Time Warner Interactive Video Group, Inc. Program guide and reservation system for network based digital information and entertainment storage and delivery system
US20040122774A1 (en) * 2002-08-02 2004-06-24 Martin Studd Method and system for executing applications on a mobile device
US20040093595A1 (en) * 2002-08-08 2004-05-13 Eric Bilange Software application framework for network-connected devices
US20060073820A1 (en) * 2002-10-10 2006-04-06 Craswell Ronald J Method and apparatus for remote control and updating of wireless mobile devices
US7711586B2 (en) * 2005-02-24 2010-05-04 Rearden Corporation Method and system for unused ticket management
US7587502B2 (en) * 2005-05-13 2009-09-08 Yahoo! Inc. Enabling rent/buy redirection in invitation to an online service

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6948070B1 (en) * 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US6018627A (en) * 1997-09-22 2000-01-25 Unisys Corp. Tool-independent system for application building in an object oriented development environment with data stored in repository in OMG compliant UML representation
US20050021995A1 (en) * 2003-07-21 2005-01-27 July Systems Inc. Application rights management in a mobile environment

Cited By (165)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100023453A1 (en) * 2001-01-11 2010-01-28 Cardinalcommerce Corporation Dynamic number authentication for credit/debit cards
US20060269061A1 (en) * 2001-01-11 2006-11-30 Cardinalcommerce Corporation Mobile device and method for dispensing authentication codes
US10296903B2 (en) 2001-01-11 2019-05-21 Cardinal Commerce Corporation Dynamic number authentication for credit/debit cards
US20110022671A1 (en) * 2002-05-21 2011-01-27 Malik Dale W Resource List Management System
US20030220946A1 (en) * 2002-05-21 2003-11-27 Malik Dale W. Resource list management system
US7831664B2 (en) 2002-05-21 2010-11-09 At&T Intellectual Property I, Lp Resource list management system
US7536392B2 (en) 2002-05-21 2009-05-19 At&T Intelllectual Property I, L.P. Network update manager
US8166110B2 (en) 2002-05-21 2012-04-24 At&T Intellectual Property I, L.P. Resource list management system
US7346696B2 (en) 2002-05-21 2008-03-18 At&T Deleware Intellectual Property, Inc. Group access management system
US20070288573A1 (en) * 2002-05-21 2007-12-13 At&T Bls Intellectual Property, Inc. Resource List Management System
US7263535B2 (en) * 2002-05-21 2007-08-28 Bellsouth Intellectual Property Corporation Resource list management system
US20070088759A1 (en) * 2002-05-21 2007-04-19 Bellsouth Intellectual Property Corporation Network Update Manager
US20100235261A1 (en) * 2002-08-08 2010-09-16 Lloyd David B Software Application Framework for Network-Connected Devices
US20080235800A1 (en) * 2002-08-21 2008-09-25 Catanzano M Bernard Systems And Methods For Determining Anti-Virus Protection Status
US7383579B1 (en) * 2002-08-21 2008-06-03 At&T Delaware Intellectual Property, Inc. Systems and methods for determining anti-virus protection status
US7707636B2 (en) * 2002-08-21 2010-04-27 At&T Intellectual Property I, L.P. Systems and methods for determining anti-virus protection status
US20100333078A1 (en) * 2003-05-20 2010-12-30 Wenchao Sun Packaging system for customizing software
US7814477B2 (en) * 2003-05-20 2010-10-12 Oracle International Corp. Packaging system for customizing software
US20040237067A1 (en) * 2003-05-20 2004-11-25 Wenchao Sun Packaging system for customizing software
US8595138B2 (en) 2003-05-20 2013-11-26 Oracle International Corporation Packaging system for customizing software
US20060161839A1 (en) * 2003-06-25 2006-07-20 Claus Pedersen Method for obtaining communication settings using an application descriptor
US20070006327A1 (en) * 2003-07-21 2007-01-04 July Systems, Inc. Dynamic service enablement of applications in heterogenous mobile environments
US20100122351A1 (en) * 2003-08-08 2010-05-13 Hands-On Mobile, Inc. Software Application Framework for Network-Connected Devices
US20050086293A1 (en) * 2003-10-15 2005-04-21 Buckley David J. Rating service for wireless device applications
US8321506B2 (en) 2003-10-23 2012-11-27 Microsoft Corporation Architecture for an extensible real-time collaboration system
US20050089023A1 (en) * 2003-10-23 2005-04-28 Microsoft Corporation Architecture for an extensible real-time collaboration system
US20050091435A1 (en) * 2003-10-23 2005-04-28 Microsoft Corporation Architecture for an extensible real-time collaboration system
US20050149951A1 (en) * 2003-12-31 2005-07-07 Juha Uola Accessing accessory of a device
WO2005076690A3 (en) * 2004-01-13 2006-03-23 Nokia Corp Plug and play mobile services
US7644163B2 (en) * 2004-01-13 2010-01-05 Nokia Corporation Plug and play mobile services
WO2005076690A2 (en) * 2004-01-13 2005-08-25 Nokia Corporation Plug and play mobile services
US20050153683A1 (en) * 2004-01-13 2005-07-14 Nokia Corporation Plug and play mobile services
US8239858B2 (en) * 2004-02-25 2012-08-07 Research In Motion Limited Method and system for selecting a program for download
US9092293B2 (en) 2004-02-25 2015-07-28 Blackberry Limited Method and system for selecting a program for download
US20050188371A1 (en) * 2004-02-25 2005-08-25 Bocking Andrew D. Method and system for selecting a program for download
US8869143B2 (en) 2004-02-25 2014-10-21 Blackberry Limited Method and system for selecting a program for download
US8549166B2 (en) * 2004-03-01 2013-10-01 Qualcomm Incorporated Execution of unverified programs in a wireless, device operating environment
US20050193101A1 (en) * 2004-03-01 2005-09-01 Oliver Mitchell B. Execution of unverified programs in a wireless, device operating environment
US9378004B1 (en) * 2004-03-19 2016-06-28 SITO Mobile R&D IP, LLC Downloading data to a mobile device
US8205001B1 (en) * 2004-03-30 2012-06-19 Sprint Communications Company L.P. Digital rights management integrated service solution
US20050257212A1 (en) * 2004-05-14 2005-11-17 International Business Machines Corporation System and method for autonomic software delivery for personal area networks
WO2006000641A1 (en) 2004-06-28 2006-01-05 Nokia Corporation User confirmation in data downloading
CN102394941A (en) * 2004-06-28 2012-03-28 诺基亚公司 User confirmation in data downloading
US20060031493A1 (en) * 2004-06-28 2006-02-09 Guido Cugi User confirmation in data downloading
US7600015B2 (en) * 2004-06-28 2009-10-06 Nokia Corporation User confirmation in data downloading
EP1766923B1 (en) * 2004-06-28 2018-05-09 Nokia Technologies Oy User confirmation in data downloading
AU2005256701B2 (en) * 2004-06-28 2010-03-04 Nokia Technologies Oy User confirmation in data downloading
US20060036714A1 (en) * 2004-08-10 2006-02-16 Nokia Corporation Client provisioning with enhanced linking
US9160811B2 (en) * 2004-08-10 2015-10-13 Nokia Technologies Oy Client provisioning with enhanced linking
US7634721B1 (en) * 2004-08-23 2009-12-15 Sun Microsystems Inc. Composite component architecture using javaserver pages (JSP) tags
US7849459B2 (en) * 2004-11-04 2010-12-07 International Business Machines Corporation Deploying java applications in resource constrained environments
US20060101453A1 (en) * 2004-11-04 2006-05-11 International Business Machines Corporation Deploying Java applications in resource constrained environments
EP1834236A4 (en) * 2004-12-23 2009-01-14 Motorola Inc Management of persistent software applications
US9930420B2 (en) * 2004-12-23 2018-03-27 Koniklijke Philips N.V. Method and apparatus for configuring software resources for playing network programs
US20100088694A1 (en) * 2004-12-23 2010-04-08 Koninklijke Philips Electronics, N.V. Method and apparatus for configuring software resources for playing network programs
EP1834236A2 (en) * 2004-12-23 2007-09-19 Motorola, Inc. Management of persistent software applications
US20110126240A1 (en) * 2005-01-05 2011-05-26 Rovi Solutions Corporation Applications registry for a television environment
US7853674B2 (en) * 2005-01-24 2010-12-14 Research In Motion Limited System and method for provisioning component applications
US20060168355A1 (en) * 2005-01-24 2006-07-27 Michael Shenfield System and method for provisioning component applications
US10348736B1 (en) 2005-04-21 2019-07-09 Seven Networks, Llc Multiple data store authentication
US20070043956A1 (en) * 2005-08-19 2007-02-22 Microsoft Corporation System and methods that facilitate third party code test development
US20070118699A1 (en) * 2005-11-23 2007-05-24 General Electric Company System and method for updating turbine controls and monitoring revision history of turbine fleet
US7949870B2 (en) * 2005-12-08 2011-05-24 Mochis Investments LLC Method and apparatus for downloading information content to a wireless terminal
US20070136571A1 (en) * 2005-12-08 2007-06-14 Mobicom Corporation Method and apparatus for downloading information content to a wireless terminal
US20070150815A1 (en) * 2005-12-22 2007-06-28 Microsoft Corporation Program execution service windows
US8495613B2 (en) * 2005-12-22 2013-07-23 Microsoft Corporation Program execution service windows
US20140165051A1 (en) * 2005-12-22 2014-06-12 Microsoft Corporation Program execution service windows
US9195450B2 (en) * 2005-12-22 2015-11-24 Microsoft Technology Licensing, Llc Program execution service windows
US20070226712A1 (en) * 2006-02-06 2007-09-27 Ralph Saunders Method of providing software development services
US20120240097A1 (en) * 2006-02-06 2012-09-20 Ralph Saunders Method of providing software development services
US20070209060A1 (en) * 2006-02-24 2007-09-06 Nokia Corporation Application verification
US8191109B2 (en) * 2006-02-24 2012-05-29 Nokia Corporation Application verification
US20070232223A1 (en) * 2006-03-30 2007-10-04 Eric Bilange Systems and methods for communicating music indicia
US8463245B2 (en) 2006-03-30 2013-06-11 Shoreline Innovations, Llc Systems and methods for communicating music indicia
US20080046888A1 (en) * 2006-08-15 2008-02-21 Appaji Anuradha K Framework for Rule-Based Execution and Scheduling of Tasks in Mobile Devices
US20080059949A1 (en) * 2006-09-01 2008-03-06 Sap Ag System and method for implementing a safe framework
US20110060689A1 (en) * 2006-11-10 2011-03-10 Media Patents, S.L. Process for implementing a method for the on-line sale of software products and the activation of use licenses through a data network
US8645278B2 (en) * 2006-11-10 2014-02-04 Media Patents, S.L. Process for the on-line sale of a software product
US20100235263A1 (en) * 2006-11-10 2010-09-16 Media Patents, S.L. Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
US20100235262A1 (en) * 2006-11-10 2010-09-16 Media Patents, S.L. Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
US20100235265A1 (en) * 2006-11-10 2010-09-16 Media Patents, S.L. Process for the on-line sale of a software product
US20100235264A1 (en) * 2006-11-10 2010-09-16 Media Patents, S.L. Process for the on-line sale of a software product
US20080114695A1 (en) * 2006-11-10 2008-05-15 Semantic Components S.L. Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
US20110078044A1 (en) * 2006-11-10 2011-03-31 Media Patents, S.L. Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
US20100153873A1 (en) * 2006-11-10 2010-06-17 Media Patents, S.L. Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
US20100228647A1 (en) * 2006-11-10 2010-09-09 Media Patents, S.L. Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
US8645277B2 (en) 2006-11-10 2014-02-04 Media Patents, S.L. Process for the on-line sale of a software product
US20100250400A1 (en) * 2006-11-10 2010-09-30 Media Patents, S.L. Apparatus and methods for the sale of software products
US20100153231A1 (en) * 2006-11-10 2010-06-17 Media Patents, S.L. Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
US20080168162A1 (en) * 2007-01-08 2008-07-10 Weidong Chen Methods and apparatuses for automatically initiating an application
US8407289B2 (en) 2007-01-08 2013-03-26 Cisco Technology, Inc. Methods and apparatuses for dynamically suggesting an application based on a collaboration session
US8516476B2 (en) * 2007-01-08 2013-08-20 Cisco Technology, Inc. Methods and apparatuses for managing the distribution and installation of applications during a collaboration session
US20080168140A1 (en) * 2007-01-08 2008-07-10 Weidong Chen Methods and apparatuses for dynamically suggesting an application based on a collaboration session
US20080168437A1 (en) * 2007-01-08 2008-07-10 Weidong Chen Methods and apparatuses for managing the distribution and installation of applications
US20080165391A1 (en) * 2007-01-08 2008-07-10 Weidong Chen Methods and apparatuses for selectively accessing an application
US8423612B2 (en) 2007-01-08 2013-04-16 Cisco Technology, Inc. Methods and apparatuses for selectively accessing an application
US8413260B2 (en) * 2007-01-08 2013-04-02 Cisco Technology, Inc. Methods and apparatuses for automatically initiating an application
EP2115641A2 (en) * 2007-01-23 2009-11-11 Ascenna Mobile, Inc. Automated authentication process for application clients
EP2115641A4 (en) * 2007-01-23 2012-08-01 Ascenna Mobile Inc Automated authentication process for application clients
US9612848B2 (en) 2007-06-25 2017-04-04 OutSystems—Software em Rede S.A. Systems and methods for gathering and processing user feedback
US20080320445A1 (en) * 2007-06-25 2008-12-25 Paulo Alexandre Grilo Rosado Systems and methods for gathering and processing user feedback
US8832679B2 (en) * 2007-08-28 2014-09-09 Red Hat, Inc. Registration process for determining compatibility with 32-bit or 64-bit software
US10095498B2 (en) 2007-08-28 2018-10-09 Red Hat, Inc. Provisioning a device with multiple bit-size versions of a software component
US20090064133A1 (en) * 2007-08-28 2009-03-05 Red Hat, Inc. Provisioning for 32-bit or 64-bit systems
US9652210B2 (en) 2007-08-28 2017-05-16 Red Hat, Inc. Provisioning a device with multiple bit-size versions of a software component
US20090064132A1 (en) * 2007-08-28 2009-03-05 Red Hat, Inc. Registration process for determining compatibility with 32-bit or 64-bit software
US20100280952A1 (en) * 2007-12-04 2010-11-04 Tencent Technology (Shenzhen) Company Ltd. Method, apparatus and system for implementing verification and payment in content service
US8990115B2 (en) * 2007-12-04 2015-03-24 Tencent Technology (Shenzhen) Company Ltd. Method, apparatus and system for implementing verification and payment in content service
US20100003923A1 (en) * 2008-01-09 2010-01-07 Mckerlich Ian Mobile application monitoring system
US20090177567A1 (en) * 2008-01-09 2009-07-09 Mckerlich Ian Mobile application monitoring system
US9633381B2 (en) * 2008-01-09 2017-04-25 T-Mobile Usa, Inc. Mobile application monitoring system
US20150112829A1 (en) * 2008-02-25 2015-04-23 Jon Jaroker System and method for deploying and maintaining software applications
US10938936B2 (en) * 2009-02-09 2021-03-02 Apple Inc. Intelligent download of application programs
US10084874B2 (en) * 2009-02-09 2018-09-25 Apple Inc. Intelligent download of application programs
US20140280462A1 (en) * 2009-02-09 2014-09-18 Apple Inc. Intelligent download of application programs
US20100287529A1 (en) * 2009-05-06 2010-11-11 YDreams - Informatica, S.A. Joint Stock Company Systems and Methods for Generating Multimedia Applications
US8495621B2 (en) * 2009-06-15 2013-07-23 Microsoft Corporation Catalog-based software component management
US20100318968A1 (en) * 2009-06-15 2010-12-16 Microsoft Corporation Catalog-based software component management
US20110087777A1 (en) * 2009-10-09 2011-04-14 Sony Corporation Information-processing device, information-processing method, and program
EP2539813A2 (en) * 2010-02-25 2013-01-02 Phunware Inc Systems and methods for enterprise branded application frameworks for mobile and other environments
US9965775B2 (en) 2010-02-25 2018-05-08 Phunware, Inc. Systems and methods for enterprise branded application frameworks for mobile and other environments
US10740799B2 (en) 2010-02-25 2020-08-11 Phunware, Inc. Systems and methods for enterprise branded application frameworks for mobile and other environments
EP2539813A4 (en) * 2010-02-25 2014-12-24 Phunware Inc Systems and methods for enterprise branded application frameworks for mobile and other environments
US8239840B1 (en) 2010-03-10 2012-08-07 Google Inc. Sensor simulation for mobile device applications
US8291408B1 (en) * 2010-03-10 2012-10-16 Google Inc. Visual programming environment for mobile device applications
US20110270711A1 (en) * 2010-04-28 2011-11-03 Sap Ag Managing application interactions with enterprise systems
US8862105B2 (en) 2010-11-19 2014-10-14 Mobile Iron, Inc. Management of mobile applications
US8731529B2 (en) 2010-11-19 2014-05-20 Mobile Iron, Inc. Management of mobile applications
US20120216122A1 (en) * 2011-02-23 2012-08-23 Microsoft Corporation Application store topics
US8516308B1 (en) * 2011-03-09 2013-08-20 Amazon Technologies, Inc. Crash based incompatibility prediction for classes of mobile devices crash data
US8788944B1 (en) 2011-03-09 2014-07-22 Amazon Technologies, Inc. Personalized mobile device application presentation using photograph-based capability detection
US20120254768A1 (en) * 2011-03-31 2012-10-04 Google Inc. Customizing mobile applications
US8566173B2 (en) 2011-05-09 2013-10-22 Google Inc. Using application market log data to identify applications of interest
US8484636B2 (en) 2011-05-09 2013-07-09 Google Inc. Generating application recommendations based on user installed applications
US8825663B2 (en) 2011-05-09 2014-09-02 Google Inc. Using application metadata to identify applications of interest
US8924955B2 (en) 2011-05-09 2014-12-30 Google Inc. Generating application recommendations based on user installed applications
WO2012154848A1 (en) * 2011-05-09 2012-11-15 Google Inc. Recommending applications for mobile devices based on installation histories
US20120290584A1 (en) * 2011-05-09 2012-11-15 Google Inc. Recommending Applications for Mobile Devices Based on Installation Histories
US8819025B2 (en) * 2011-05-09 2014-08-26 Google Inc. Recommending applications for mobile devices based on installation histories
US9171314B2 (en) * 2011-06-16 2015-10-27 Microsoft Technology Licensing, Llc Cloud based management of an in-store device experience
US20120324440A1 (en) * 2011-06-16 2012-12-20 Microsoft Corporation Cloud based management of an in-store device experience
CN103218366A (en) * 2012-01-20 2013-07-24 腾讯科技(深圳)有限公司 Method and system for recommending download resources
US9264502B2 (en) * 2012-01-20 2016-02-16 Tencent Technology (Shenzhen) Company Limited Download resource recommendation method, system and storage medium
US20140379808A1 (en) * 2012-01-20 2014-12-25 Tencent Technology (Shenzhen) Company Limited Download resource recommendation method, system and storage medium
US20150039515A1 (en) * 2012-08-10 2015-02-05 Adobe Systems Incorporated Interactive product improvement through the use of variants and data gathering reports in a system that can be updated on the fly
EP2827621A1 (en) * 2012-11-22 2015-01-21 Huawei Technologies Co., Ltd Application program distribution method, terminal and server
US9769247B2 (en) 2012-11-22 2017-09-19 Huawei Technologies Co., Ltd. Application distribution method, terminal, and server
EP2827621A4 (en) * 2012-11-22 2015-04-15 Huawei Tech Co Ltd Application program distribution method, terminal and server
CN103703741A (en) * 2012-11-22 2014-04-02 华为技术有限公司 Method for disseminating application distribution, terminal and server
US20140325506A1 (en) * 2013-04-24 2014-10-30 QRC, Inc. dba QRC Technologies, Inc. System and Method for RF Digitization and Collection
US9348608B2 (en) * 2013-04-24 2016-05-24 QRC, Inc. System and method for registering application and application transforms on a radiofrequency digitization and collection device
US9613223B2 (en) * 2013-07-17 2017-04-04 Industrial Technology Research Institute Method for application management, corresponding system, and user device
US20150026827A1 (en) * 2013-07-17 2015-01-22 Industrial Technology Research Institute Method for application management, corresponding system, and user device
US9652353B2 (en) 2013-10-15 2017-05-16 Oracle International Corporation Monitoring business transaction failures involving database procedure calls
US10255158B2 (en) 2013-10-15 2019-04-09 Oracle International Corporation Monitoring and diagnostics of business transaction failures
US11290425B2 (en) * 2016-02-01 2022-03-29 Airwatch Llc Configuring network security based on device management characteristics
US20180307472A1 (en) * 2017-04-20 2018-10-25 Sap Se Simultaneous deployment on cloud devices and on on-premise devices
EP3609153A4 (en) * 2018-05-30 2020-04-22 Launch Tech Co., Ltd Maintenance equipment management method, server and computer-readable storage medium
CN109800002A (en) * 2019-01-17 2019-05-24 恒峰信息技术有限公司 A kind of automatic installation and deployment method of Java software
US11605166B2 (en) 2019-10-16 2023-03-14 Parsons Corporation GPU accelerated image segmentation
US11303306B2 (en) 2020-01-20 2022-04-12 Parsons Corporation Narrowband IQ extraction and storage
US11619700B2 (en) 2020-04-07 2023-04-04 Parsons Corporation Retrospective interferometry direction finding
US11569848B2 (en) 2020-04-17 2023-01-31 Parsons Corporation Software-defined radio linking systems
US11575407B2 (en) 2020-04-27 2023-02-07 Parsons Corporation Narrowband IQ signal obfuscation
US11849347B2 (en) 2021-01-05 2023-12-19 Parsons Corporation Time axis correlation of pulsed electromagnetic transmissions

Also Published As

Publication number Publication date
US9665860B2 (en) 2017-05-30
US20100122351A1 (en) 2010-05-13
US20100235261A1 (en) 2010-09-16
US20100076871A1 (en) 2010-03-25

Similar Documents

Publication Publication Date Title
US9665860B2 (en) Software application framework for network-connected devices
US20070006327A1 (en) Dynamic service enablement of applications in heterogenous mobile environments
US9369821B2 (en) Apparatus and associated method for downloading an application with a variable lifetime to a mobile terminal
JP4139228B2 (en) Billing method and system based on application communication
US8620286B2 (en) Method and system for promoting and transferring licensed content and applications
US10043170B2 (en) Application-based value billing in a wireless subscriber network
JP5048735B2 (en) System and method for selling and servicing third party applications to wireless devices
RU2439690C2 (en) Program transfer of applications between handsets based on license information
US7266519B2 (en) Billing system with authenticated wireless device transaction event data
US20020131404A1 (en) Method and system for maintaining and distributing wireless applications
US20080301231A1 (en) Method and System for Maintaining and Distributing Wireless Applications
US20120324437A1 (en) Service providing apparatus and server providing method
US20100235889A1 (en) Application products with in-application subsequent feature access using network-based distribution system
US20050091157A1 (en) Communication terminal, billing apparatus, service providing apparatus, and program
CN101203000A (en) Method and system for downloading mobile terminal applied software
US9173050B2 (en) Application store system and development method using the application store system
CA2401691A1 (en) Method for using software products that are offered via a network

Legal Events

Date Code Title Description
AS Assignment

Owner name: MFORMA GROUP, INC., WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BILANGE, ERIC;REEL/FRAME:014798/0542

Effective date: 20031117

AS Assignment

Owner name: HANDS-ON MOBILE, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LLOYD, DAVID B.;REEL/FRAME:017953/0998

Effective date: 20060522

AS Assignment

Owner name: HANDS-ON MOBILE, INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:MFORMA GROUP, INC.;REEL/FRAME:018788/0768

Effective date: 20060407

AS Assignment

Owner name: VENTURE LENDING & LEASING IV, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HANDS-ON MOBILE, INC.;HANDS-ON MOBILE AMERICAS, INC., A CORP. OF CALIFORNIA;REEL/FRAME:019658/0525

Effective date: 20070720

Owner name: VENTURE LENDING & LEASING V, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HANDS-ON MOBILE, INC.;HANDS-ON MOBILE AMERICAS, INC., A CORP. OF CALIFORNIA;REEL/FRAME:019658/0525

Effective date: 20070720

Owner name: VENTURE LENDING & LEASING IV, INC., CALIFORNIA

Free format text: SECURITY AGREEMENT;ASSIGNORS:HANDS-ON MOBILE, INC.;HANDS-ON MOBILE AMERICAS, INC., A CORP. OF CALIFORNIA;REEL/FRAME:019658/0525

Effective date: 20070720

Owner name: VENTURE LENDING & LEASING V, INC., CALIFORNIA

Free format text: SECURITY AGREEMENT;ASSIGNORS:HANDS-ON MOBILE, INC.;HANDS-ON MOBILE AMERICAS, INC., A CORP. OF CALIFORNIA;REEL/FRAME:019658/0525

Effective date: 20070720

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: HANDS-ON MOBILE, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNORS:VENTURE LENDING & LEASING IV, INC.;VENTURE LENDING & LEASING V, INC.;REEL/FRAME:025427/0987

Effective date: 20101110

AS Assignment

Owner name: SHORELINE INNOVATIONS, LLC, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HANDS-ON MOBILE, INC.;REEL/FRAME:043730/0713

Effective date: 20121008