US20040093595A1 - Software application framework for network-connected devices - Google Patents
Software application framework for network-connected devices Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 45
- 238000004891 communication Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims 1
- 238000012795 verification Methods 0.000 abstract description 4
- 230000007246 mechanism Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 11
- 239000000969 carrier Substances 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000010354 integration Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- XIJXHOVKJAXCGJ-XLPZGREQSA-N 1-[(2r,4s,5r)-4-hydroxy-5-(hydroxymethyl)oxolan-2-yl]-5-iodopyrimidin-2-one Chemical compound C1[C@H](O)[C@@H](CO)O[C@H]1N1C(=O)N=CC(I)=C1 XIJXHOVKJAXCGJ-XLPZGREQSA-N 0.000 description 1
- 235000006719 Cassia obtusifolia Nutrition 0.000 description 1
- 235000014552 Cassia tora Nutrition 0.000 description 1
- 244000201986 Cassia tora Species 0.000 description 1
- 241000238366 Cephalopoda Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/12—Payment architectures specially adapted for electronic shopping systems
- G06Q20/123—Shopping for digital content
- G06Q20/1235—Shopping for digital content with control of digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/04—Billing or invoicing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0645—Rental transactions; Leasing transactions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/50—Service 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
Description
- This application claims priority to U.S. Provisional Application No. 60/402,310, filed Aug. 8, 2002, herein incorporated in its entirety by reference.
- The present invention is directed to the field of software applications and, more particularly, to the field of provisioning and managing software applications.
- 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.
- 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).
- 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.
- 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.
- 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.
- 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. 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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).
- 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 acentral database 102 that holds anapplication catalogue 104, user and supplier accounts 106 and transaction records 108. Thecentral 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, thecentral 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 thelarger J2EE platform 207. - A
catalogue provision module 208 may be implemented using JSP (JavaServerPages), Servlets and a CMP business logic layer (not shown) to reduce load on thecentral database 102. The JSP pages may be WML, HTML or other format (e.g., proprietary format, etc.). - One or more application provisioning servers110 (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
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 ormore 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). Theapplication catalogue 104 may be managed from remote workstations (not shown) via a secure connection to the database with one ormore catalogue managers 112, an easy-to-use tool that may be provided as part of the system. The use ofmultiple catalogue managers 112 allows different departments to administer theapplication catalogue 104 concurrently. Thecatalogue manager 112 may be supplied as a J2EE client application that can be run on a content manager's desktop remotely from theserver 110 running the central database. Thecatalogue manager 112 may provide a simple visual tool for maintenance of theapplication 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
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
OTA servers 110 use the information stored in thecentral database 102 to generate views on theapplication catalogue 104 as requested by a portal 114. EachOTA 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, eachOTA 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 aclient 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, agame 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 billinginterface 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
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 server226 (“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.
- 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.
- 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 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:
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:
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( ).
- 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.
- 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:
verifyLicence = false;\ - 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
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
block 304. To facilitate download, the application package may be emailed to a content manager or other administrator, who uses a tool such as thecatalogue 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
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. Inblock 402, the facility identifies the user's mobile device and may provide troubleshooting if needed. Inblock 403, applications compatible with the user's mobile device are presented to the user, organized by categories. Inblock 404, the user is presented with an application brochure for a selected application. Indecision 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
block 406 where the user confirms download. Otherwise, the routine continues atblock 407, where alternative download instructions are provided. Afterblock block 408 where the application is downloaded. Depending on the mobile device type, as determined inblock 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. 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.
- FIG. 5 is a flow diagram illustrating a routine500, 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.
- In
block 501, the device starts the Internet and either enters the OTA URL or finds it from a larger menu (e.g., carrier portal). Inblock 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. Inblock 503, the mobile device selects an application from the menu of those available. Inblock 504, a short information screen is displayed on the device describing the application, including size and cost. Inblock 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. Inblock 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.
- 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. 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.
- 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.”
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- In block701, 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. Inblock 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. Inblock 704, the user browses the available applications. Inblock 705, the user selects a registered application to download and approves payment for the selected application, if necessary. Inblock 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.
- 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.
- In
block 707, the server sends the registered application to the user's mobile device. Inblock 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. Inblock 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?
- 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( ).
- 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.
- 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.
- 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.
- 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.
- In
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. Inblock 714, the user receives a request from the server to rate the application and sends the rating information. Inblock 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.
- 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.
- 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.
- 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.
- 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.
- 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.
Claims (30)
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,405 US9665860B2 (en) | 2002-08-08 | 2009-12-01 | 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/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,405 Expired - Fee Related US9665860B2 (en) | 2002-08-08 | 2009-12-01 | 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/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,405 Expired - Fee Related US9665860B2 (en) | 2002-08-08 | 2009-12-01 | 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/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 (85)
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 |
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 |
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 |
US20080168140A1 (en) * | 2007-01-08 | 2008-07-10 | Weidong Chen | Methods and apparatuses for dynamically suggesting an application based on a collaboration session |
US20080320445A1 (en) * | 2007-06-25 | 2008-12-25 | Paulo Alexandre Grilo Rosado | Systems and methods for gathering and processing user feedback |
US20090064132A1 (en) * | 2007-08-28 | 2009-03-05 | Red Hat, Inc. | Registration process for determining compatibility with 32-bit or 64-bit software |
US20090064133A1 (en) * | 2007-08-28 | 2009-03-05 | Red Hat, Inc. | Provisioning for 32-bit or 64-bit systems |
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 |
WO2012154848A1 (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 |
US20210168140A1 (en) * | 2018-08-14 | 2021-06-03 | Traitware, Inc. | System and Method for Automatically Registering a Verified Identity in an On-Line Environment |
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002084975A2 (en) * | 2001-04-12 | 2002-10-24 | Research In Motion Limited | System and method for dynamically pushing information on wireless data 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)
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)
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 |
EP0880840A4 (en) * | 1996-01-11 | 2002-10-23 | 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 |
US6966832B2 (en) * | 2001-07-13 | 2005-11-22 | Gameaccount Limited | System and method for providing game advice to 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 |
AU2003279246A1 (en) * | 2002-10-10 | 2004-05-04 | Action Engine Corporation | 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 |
-
2003
- 2003-08-08 US US10/638,262 patent/US20040093595A1/en not_active Abandoned
-
2009
- 2009-12-01 US US12/628,405 patent/US9665860B2/en not_active Expired - Fee Related
- 2009-12-01 US US12/628,471 patent/US20100122351A1/en not_active Abandoned
-
2010
- 2010-04-30 US US12/772,059 patent/US20100235261A1/en not_active Abandoned
Patent Citations (3)
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 (167)
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 |
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 |
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 download |
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 |
US8645277B2 (en) | 2006-11-10 | 2014-02-04 | Media Patents, S.L. | Process for the on-line sale of a software product |
US20100235265A1 (en) * | 2006-11-10 | 2010-09-16 | Media Patents, S.L. | Process for the on-line sale of a software product |
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 |
US20100235264A1 (en) * | 2006-11-10 | 2010-09-16 | 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 |
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 |
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 |
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 |
US8645278B2 (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 |
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 |
US20080168140A1 (en) * | 2007-01-08 | 2008-07-10 | Weidong Chen | 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 |
US20080168437A1 (en) * | 2007-01-08 | 2008-07-10 | Weidong Chen | Methods and apparatuses for managing the distribution and installation of applications |
US20080168162A1 (en) * | 2007-01-08 | 2008-07-10 | Weidong Chen | Methods and apparatuses for automatically initiating an application |
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 |
US8407289B2 (en) | 2007-01-08 | 2013-03-26 | Cisco Technology, Inc. | Methods and apparatuses for dynamically suggesting an application based on a collaboration session |
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 |
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 |
US10095498B2 (en) | 2007-08-28 | 2018-10-09 | Red Hat, Inc. | Provisioning a device with multiple bit-size versions of a software component |
US8832679B2 (en) * | 2007-08-28 | 2014-09-09 | Red Hat, Inc. | Registration process for determining compatibility with 32-bit or 64-bit software |
US20090064133A1 (en) * | 2007-08-28 | 2009-03-05 | Red Hat, Inc. | Provisioning for 32-bit or 64-bit systems |
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 |
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 |
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 |
US10084874B2 (en) * | 2009-02-09 | 2018-09-25 | Apple Inc. | Intelligent download of application programs |
US10938936B2 (en) * | 2009-02-09 | 2021-03-02 | 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 |
US10740799B2 (en) | 2010-02-25 | 2020-08-11 | 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 |
EP2539813A2 (en) * | 2010-02-25 | 2013-01-02 | 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 |
US8291408B1 (en) * | 2010-03-10 | 2012-10-16 | Google Inc. | Visual programming environment for mobile device applications |
US8239840B1 (en) | 2010-03-10 | 2012-08-07 | Google Inc. | Sensor simulation 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 |
US20120290584A1 (en) * | 2011-05-09 | 2012-11-15 | Google Inc. | Recommending Applications for Mobile Devices Based on Installation Histories |
WO2012154848A1 (en) * | 2011-05-09 | 2012-11-15 | Google Inc. | Recommending applications for mobile devices based on installation histories |
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 |
US8566173B2 (en) | 2011-05-09 | 2013-10-22 | Google Inc. | Using application market log data to identify applications of interest |
US8924955B2 (en) | 2011-05-09 | 2014-12-30 | Google Inc. | Generating application recommendations based on user installed applications |
US8819025B2 (en) * | 2011-05-09 | 2014-08-26 | 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 |
US9171314B2 (en) * | 2011-06-16 | 2015-10-27 | Microsoft Technology Licensing, Llc | Cloud based management of an in-store device experience |
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 |
CN103218366A (en) * | 2012-01-20 | 2013-07-24 | 腾讯科技(深圳)有限公司 | Method and system for recommending download resources |
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 |
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 |
EP2827621A1 (en) * | 2012-11-22 | 2015-01-21 | Huawei Technologies 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 |
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 |
US20140325506A1 (en) * | 2013-04-24 | 2014-10-30 | QRC, Inc. dba QRC Technologies, Inc. | System and Method for RF Digitization and Collection |
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 |
US12126596B2 (en) | 2016-02-01 | 2024-10-22 | Omnissa, Llc | Configuring network security based on device management characteristics |
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 |
US20210168140A1 (en) * | 2018-08-14 | 2021-06-03 | Traitware, Inc. | System and Method for Automatically Registering a Verified Identity in an On-Line Environment |
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 |
---|---|
US20100235261A1 (en) | 2010-09-16 |
US20100122351A1 (en) | 2010-05-13 |
US9665860B2 (en) | 2017-05-30 |
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 | |
US6832230B1 (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 | |
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 | |
US10043170B2 (en) | Application-based value billing in a wireless subscriber network | |
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 | |
KR101779397B1 (en) | Method of managing event of online appalication and system performing the same |
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 |