US20080270310A1 - Facilitating dynamic configuration of software products - Google Patents
Facilitating dynamic configuration of software products Download PDFInfo
- Publication number
- US20080270310A1 US20080270310A1 US11/829,430 US82943007A US2008270310A1 US 20080270310 A1 US20080270310 A1 US 20080270310A1 US 82943007 A US82943007 A US 82943007A US 2008270310 A1 US2008270310 A1 US 2008270310A1
- Authority
- US
- United States
- Prior art keywords
- purchased
- software
- user
- features
- modules
- 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 37
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 235000002020 sage Nutrition 0.000 description 3
- 241000282374 Puma concolor Species 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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]
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Definitions
- the present invention relates to techniques for dynamically configuring software products. More specifically, the present invention relates to a system that facilitates dynamic configuring of software products.
- Retail establishments typically carry and display the various software products in a given product family, which places demands on valuable shelf or floor space, thereby increasing the size of the retail establishments and significantly increasing inventory requirements. Unfortunately, it is often difficult to properly manage inventory for such a broad range of software products. Consequently, retail establishments may have too little inventory for popular software products and too much inventory for less-popular software products.
- One embodiment of this invention relates to a system that provides access to at least a portion of a software product.
- this system receives purchase information from a first location, where the purchase information includes information about purchased software features to which a user purchased access and where the purchased software features are provided by a first subset of modules in the software product.
- the system receives an access request from a second location, where the access request includes an identifier provided to the user when the user purchased access to the purchased software features.
- the system provides configuration instructions to the second location from which the software product can be accessed, where the configuration instructions dynamically enable the first subset of the modules.
- the configuration instructions include a decryption key.
- the decryption key may include a public key associated with a private key that was used to encrypt at least a portion of the software product.
- dynamically enabling the first subset of modules allows the user to use the purchased software features: without reinstalling a portion of the software product; without first rebooting a computer on which the software product is installed; and/or without installing another portion of the software product.
- dynamically enabling the first subset of modules allows the user to use the purchased software features without downloading additional modules.
- the first subset of modules is dynamically enabled while the software product is executing on a computer.
- the configuration instructions facilitate ‘a la carte’ selection of the purchased software features by the user from modules which are already tested and compiled in the software product.
- the first location is a physical retail establishment and/or an online retail establishment. Moreover, the first location may be different from the second location.
- the configuration instructions are provided by a server to the second location via a network.
- the operations of receiving the access request and providing the configuration instructions are repeated after a time interval, thereby allowing synchronization of current software features that are enabled in the software product.
- the system receives a purchase request and payment from the user, where the purchase request includes information associated with additionally purchased software features, and where the additionally purchased software features are associated with a second subset of modules in the software product.
- the system provides additional configuration instructions to the second location, where the additional configuration instructions dynamically enable the second subset of the modules.
- the additionally purchased features may be different than the purchased features or the additionally purchased features may at least partially overlap the purchased features.
- the payment is based on the additionally purchased software features.
- Another embodiment relates to a computer program product for use in conjunction with the system.
- This computer program product may include instructions corresponding to at least some of the above-described operations.
- Another embodiment provides a method for providing access to at least a portion of the software product. This method may perform at least some of the above-described operations.
- FIG. 1 is a block diagram illustrating a computer system including computers and servers that are networked together in accordance with an embodiment of the present invention.
- FIG. 2 is a flow chart illustrating a method for providing access to at least a portion of the software product in accordance with an embodiment of the present invention.
- FIG. 3 is a block diagram illustrating a computer system in accordance with an embodiment of the present invention.
- FIG. 4 is a block diagram illustrating a data structure in accordance with an embodiment of the present invention.
- FIG. 5 is a block diagram illustrating a data structure in accordance with an embodiment of the present invention.
- Embodiments of a computer system, a method, and a computer program product for use with the computer system are described. These systems, software, and processes may be used to provide access to at least a portion of a software product.
- the computer system may provide configuration instructions to a user who has previously purchased access to software features. These configuration instructions may dynamically enable use of a subset of modules in a software product that are associated with the purchased software features.
- the access to the software features may be purchased in a physical retail establishment and/or in an online retail establishment, such as at a website or a web page.
- the configuration instructions facilitate ‘a la carte’ selection of the purchased software features by the user from modules which are already tested and compiled in the software product.
- the user may dynamically enable the subset of modules: without reinstalling a portion of the software product; without first rebooting a computer on which the software product is installed; and/or without installing another portion of the software product.
- the user may purchase additional software features from the computer system, and the computer system may provide additional configuration instructions that dynamically enable an additional subset of modules in the software product that are associated with the additional software features.
- the additional modules may be different than or at least partially overlap the subset of modules, and that payment may be based on the additionally purchased software features.
- ⁇ may be implemented as a stand-alone software application, or as a program module or subroutine in another application.
- the program may be configured to execute on a client computer (such as a personal computer, a laptop computer, cell phone, PDA, or other device capable of manipulating computer readable data) or remotely from a client computer via associated computing systems over a network (such as the Internet, Intranet, LAN, WAN, MAN, or combination of networks, or other technology enabling communication between computing systems).
- a client computer such as a personal computer, a laptop computer, cell phone, PDA, or other device capable of manipulating computer readable data
- a network such as the Internet, Intranet, LAN, WAN, MAN, or combination of networks, or other technology enabling communication between computing systems.
- the purchase information, the software product, and the configuration instructions may be stored locally (for example, on a local computer) and/or remotely (for example, on a computer or server that is accessed via a network).
- these techniques allows software features in this software product to be customized to the needs of a given user.
- this capability allows retail establishments to carry and display fewer software products, thereby simplifying operations, reducing expenses, and/or reducing shortfalls or excesses in inventory.
- software products are generally less complex, and easier to test and distribute. For example, by allowing the user to only purchase those features that are of interest, the user interface can be simplified and overall user experience can be improved.
- FIG. 1 presents a block diagram illustrating an embodiment of a computer system 100 including computers and servers that are networked together.
- a user may first purchase a software product or access to at least a portion of the software product from one or more retail establishments 116 , which can include: a store 118 , a distributor 120 , a website 122 , and/or another 124 sales channel.
- the software product or at least the portion of the software product includes one or more software features that the user would like to use.
- these software features are associated with at least a subset of the modules in the software product.
- the user When the user purchases the software product or purchases access to a portion of the software product, the user receives a token or an identifier, which corresponds to the user's purchase. Moreover, the user may receive instructions on how to use the identifier to receive the software product, or to enable access to the portion of the software product. For example, the user may purchase an encrypted version of the software product, and (as described below) the user may follow the instructions and use the identifier to enable access to at least the portion of the software product. Alternatively, the user may follow the instructions and use the identifier to receive at least the portion of the software product or to access the software feature(s) associated with at least the portion of the software product.
- the retail establishment may provide purchase information to a server 114 via a network 112 , such as the Internet.
- This server may be associated with a provider of the software product, and the purchase information may include the identifier provided to the user, and information about the software product or a portion of the software product that the user has paid to access. More generally, the purchase information includes information about purchased software features to which the user has purchased access.
- Computer 110 may be remotely located from the retail establishments 116 .
- computer 110 may be at the user's home or work location.
- the user may provide an access request, which includes the identifier.
- the server 114 may enable the user to access the subset of the modules and/or the subset of the features in the software product (which may be associated with the subset of the software modules).
- the server 114 may provide configuration instructions to the computer 110 . These configuration instructions may dynamically enable the subset of the modules and/or the subset of the features.
- the configuration instructions may include a decryption key, such as a public key associated with a private key that was used to previously encrypt at least the portion of the software product. Using this decryption key, the user may decrypt at least the portion of the software product that was purchased from one of the retail establishments 116 .
- the user installs the purchased software product on the computer 110 .
- This software product may include multiple modules (associated with different software features). Moreover, the multiple modules may already be compiled and tested, and are hence ready for use. However, these modules may be encrypted, so that the user first needs to decrypt a given module prior to using the module. By accessing and receiving the configuration instructions (including one or more decryption keys), the user may decrypt and use the appropriate subset of the modules that the user has paid to access.
- the software product sold by the retail establishments 116 may include more modules and/or more software features than the typical user may want to access at a given time. Rather than stocking and selling different versions of this software product, retail establishments 116 can stock a generic version of the software product. Moreover, retail establishments 116 can tailor this generic software product to the needs a specific user by allowing the user to select, ‘a la carte,’ those software features that the user would like to access. As described above, computer system 100 allows the users to subsequently receive the appropriate configuration instructions to dynamically enable the subset of the modules and/or the subset of the software features that are purchased.
- the dynamic enablement of the subset of the modules and/or the subset of the software features in the software product may be performed without the user: reinstalling a portion of the software product; without first rebooting the computer 110 on which the software product is installed; and/or without installing another portion of the software product.
- dynamically enabling the subset of modules and/or the subset of the software features allows the user to use the purchased software features without downloading additional modules. Consequently, the subset of modules and/or the subset of the software features may be dynamically enabled while the software product is executing on the computer 110 .
- the user repeats the operation of providing the access request to the server 114 , and the server 114 repeats the operation of providing the configuration instructions.
- a version of the configuration instructions may expire after the time interval, and a newer version may be needed. This may allow synchronization of current software features that are enabled in the software product or may allow access to the software features to be sold on a subscription basis.
- the user may routinely or periodically pay to continue access to the subset of the modules and/or the subset of the software features.
- the user may choose to purchase access to an additional subset of the modules and/or additional subset of the software features in the software product.
- the user may purchase access to the additional software features from one of the retail establishments 116 or directly from the provider of the software product (for example, via the server 114 ).
- server 114 may provide additional configuration instructions that dynamically enable the additional subset of the modules and/or the additional subset of the software features to the computer 110 .
- these additional software features may include the original software features purchased by the user, may partially overlap the original software features, or may be different software features.
- the additional subset of the modules may include the subset of the modules, may partially overlap the subset of modules, or may include different modules.
- the user does not receive the software product from one of the retail establishments 116 at the time of purchase.
- the user may subsequently download the software product from the server 114 onto computer 110 .
- the software product may be a stand-alone application on the computer 110 and/or may be embedded in another application.
- the software product includes income-tax preparation software and/or financial-accounting software.
- the income-tax software includes: TurboTaxTM (from Intuit, Inc., of Mountain View, Calif.), TaxCutTM (from H&R Block, Inc., of Kansas City, Mo.), TaxActTM (from 2 nd Story Software, Inc., of Cedar Rapids, Iowa), and/or other software capable of preparing an income-tax return.
- the financial-accounting software includes payroll-accounting software, such as QuickBooksTM (from Intuit, Inc., of Mountain View, Calif.), PeachTree CompleteTM (from the Sage Group PLC, of London, the United Kingdom), MYOB Business EssentialsTM (from MYOB US, Inc., of Rockaway, N.J.), NetSuite Small Business AccountingTM (from NetSuite, Inc., of San Mateo, Calif.), Cougar MountainTM (from Cougar Mountain Software, of Boise, Id.), Small Business ManagerTM (from Microsoft Corporation, of Redmont, Wash.), Simply AccountingTM (from the Sage Group PLC, of London, the United Kingdom), CYMA IV AccountingTM (from CYMA Systems, Inc., of Temple, Ariz.), DacEasyTM (from Sage Software SB, Inc., of Lawrenceville, Ga.), Microsoft MoneyTM (from Microsoft Corporation, of Redmont, Wash.), and/or other financial-accounting software capable of processing payroll information.
- payroll-accounting software such as QuickBooks
- the financial-accounting software includes financial-planning software, such as QuickenTM (from Intuit, Inc., of Mountain View, Calif.), Microsoft MoneyTM (from Microsoft Corporation, of Redmont, Wash.), SplashMoneyTM (from SplashData, Inc., Los Gatos, Calif.), MvelopesTM (from In2M, Inc., Draper, Utah), and/or open-source applications such as GnucashTM, PLCashTM, BudgetTM (from Snowmint Creative Solutions, LLC), and/or other financial-planning software capable of processing financial information.
- financial-planning software such as QuickenTM (from Intuit, Inc., of Mountain View, Calif.), Microsoft MoneyTM (from Microsoft Corporation, of Redmont, Wash.), SplashMoneyTM (from SplashData, Inc., Los Gatos, Calif.), MvelopesTM (from In2M, Inc., Draper, Utah), and/or open-source applications such as GnucashTM, PLCashTM, BudgetTM (
- the software product may be resident on the computer 110
- other embodiments may utilize a software tool that is embedded in a web page (once again, either as a stand-alone application or as a portion of another application).
- This web page may be provided by a server 114 via network 112 .
- the financial-software tool is a software package written in JavaScriptTM (i.e., the financial-software tool includes programs or procedures containing JavaScript instructions), ECMAScript (the specification for which is published by the European Computer Manufacturers Association International), VBScriptTM (a trademark of Microsoft, Inc.) or any other client or server-side scripting language.
- the software tool may include programs or procedures containing JavaScript, ECMAScript instructions, VBScript instructions, or instructions in another programming language suitable for rendering by a browser or another client application on the computer 110 .
- configuration instructions provided with the web page or previously provided to the computer 110 may be used to dynamically enable access to the software tool.
- a software product sold by the retail establishments includes modules and/or features associated with three software product types (such as consumer, advanced, and professional), each of which includes five groups of software features. Based on the user selections, the software product may be configured to the needs of a given user. For example, the configuration instructions may select one of the software product types and one of four different arrangements of the five groups of software features.
- the computer system 100 includes fewer or additional components. Moreover, two or more components can be combined into a single component, and/or a position of one or more components may be changed.
- FIG. 2 presents a flow chart illustrating an embodiment of a method 200 for providing access to at least a portion of the software product, which may be implemented in a computer system, such as the computer system 100 in FIG. 1 .
- this system receives purchase information from a first location ( 210 ), where the purchase information includes information about purchased software features to which a user purchased access and where the purchased software features are provided by a first subset of modules in the software product.
- the system receives an access request from a second location from which the software product can be accessed ( 212 ), where the access request includes an identifier provided to the user when the user purchased access to the purchased software features.
- the system provides configuration instructions to the second location ( 214 ), where the configuration instructions dynamically enable the first subset of the modules.
- the system optionally receives a purchase request and payment from the user ( 216 ), where the purchase request includes information associated with additionally purchased software features and where the additionally purchased software features are associated with a second subset of modules in the software product.
- the system optionally provides additional configuration instructions to the second location ( 218 ), where the additional configuration instructions dynamically enable the second subset of the modules.
- FIG. 3 presents a block diagram illustrating an embodiment of a computer system 300 .
- Computer system 300 includes: one or more processors 310 , a communication interface 312 , a user interface 314 , and one or more signal lines 322 coupling these components together.
- the one or more processing units 310 may support parallel processing and/or multi-threaded operation
- the communication interface 312 may have a persistent communication connection
- the one or more signal lines 322 may constitute a communication bus.
- the user interface 314 may include: a display 316 , a keyboard 318 , and/or a pointer 320 , such as a mouse.
- Memory 324 in the computer system 300 may include volatile memory and/or non-volatile memory. More specifically, memory 324 may include: ROM, RAM, EPROM, EEPROM, FLASH, one or more smart cards, one or more magnetic disc storage devices, and/or one or more optical storage devices. Memory 324 may store an operating system 326 that includes procedures (or a set of instructions) for handling various basic system services for performing hardware dependent tasks. While not shown in the computer system 100 , in some embodiments memory 324 includes a browser. Memory 324 may also store communication procedures (or a set of instructions) in a communication module 328 . These communication procedures may be used for communicating with one or more computers and/or servers, including computers and/or servers that are remotely located with respect to the computer system 300 .
- Memory 324 may include multiple program modules (or a set of instructions), including configuration module 330 (or a set of instructions) and/or encryption module 350 (or a set of instructions).
- Configuration module 330 may use purchase information 332 (such as that associated with commercial establishment A 334 - 1 and/or commercial establishment B 334 - 2 ) to provide configuration instructions 344 in response to one or more access requests 336 .
- purchase information 332 such as that associated with commercial establishment A 334 - 1 and/or commercial establishment B 334 - 2
- one or more user identifiers 348 and/or payment information 346 are provided along with the one or more access requests 336 .
- These configuration instructions 344 may dynamically enable at least a subset of the modules and/or a subset of the software features in software products 340 (such as module A 342 - 1 and/or module B 342 - 2 ).
- the configuration instructions 344 include one or more decryption keys associated with encryption module 350 .
- encryption module 350 may encrypt the software products 340
- the decryption keys may be used to decrypt one or more of the modules 342 .
- the configuration module 330 is used to routinely or periodically synchronize the enabled modules and/or enabled features in the software products 340 using optional synchronization information 338 .
- Instructions in the various modules in the memory 324 may be implemented in a high-level procedural language, an object-oriented programming language, and/or in an assembly or machine language.
- the programming language may be compiled or interpreted, i.e., configurable or configured to be executed by the one or more processing units 310 .
- FIG. 3 is intended to provide a functional description of the various features that may be present in the computer system 300 rather than as a structural schematic of the embodiments described herein.
- the functions of the computer system 300 may be distributed over a large number of servers or computers, with various groups of the servers or computers performing particular subsets of the functions.
- some or all of the functionality of the computer system 300 may be implemented in one or more ASICs and/or one or more digital signal processors DSPs.
- Computer system 300 may include fewer components or additional components. Moreover, two or more components may be combined into a single component and/or a position of one or more components may be changed. In some embodiments the functionality of the computer system 300 may be implemented more in hardware and less in software, or less in hardware and more in software, as is known in the art.
- FIG. 4 presents a block diagram illustrating an embodiment of a data structure 400 .
- This data structure may include purchase information 410 .
- purchase information 410 such as purchase information 410 - 1
- FIG. 5 presents a block diagram illustrating an embodiment of a data structure 500 .
- This data structure may include information associated with software products 5 10 .
- Information for a given software product, such as software product 510 - 1 may include: a time stamp 512 - 1 , one or more software features 514 - 1 , one or more modules 516 - 1 , and/or compiled code 518 - 1 .
Abstract
Description
- This application is a continuation-in-part of pending U.S. patent application Ser. No. 11/476,990, filed on Jun. 27, 2006 by inventors Edmund Y. L. Sung, Timothy A. Rosemore, Jennifer Possin, Raymond S. Tenenbaum, and Stephen L. Molloy, entitled, “Method and Apparatus for Authorizing a Software Product to be Used on a Computer System” (Attorney Docket No. INTU-060798), the contents of which are herein incorporated by reference. This application hereby claims priority under 35 U.S.C. §120 to the above-listed parent patent application.
- The present invention relates to techniques for dynamically configuring software products. More specifically, the present invention relates to a system that facilitates dynamic configuring of software products.
- While there has been considerable recent growth in on-line commerce, physical retail establishments remain an important sales channel. Unfortunately, these physical retail establishments have inherent operating costs that can limit profit margins. For example, many retail establishments carry a diverse range of products and maintain large inventories to satisfy the needs of different customers. However, the diverse range of products and the large inventories increase the expense involved in running a retail establishment, for example, by requiring more display space.
- These problems also affect software products. In particular, many software vendors provide a range of closely related software products in a product family that have different features and price points, such as consumer and professional versions of tax-preparation software. Typically, the software products in these product families share multiple modules. Consequently, when changes to a given module are required, these changes can impact multiple software products, with associated effects on testing and distribution.
- Retail establishments typically carry and display the various software products in a given product family, which places demands on valuable shelf or floor space, thereby increasing the size of the retail establishments and significantly increasing inventory requirements. Unfortunately, it is often difficult to properly manage inventory for such a broad range of software products. Consequently, retail establishments may have too little inventory for popular software products and too much inventory for less-popular software products.
- Moreover, companies typically bundle a discrete set of features into each of these software products in an attempt to meet the needs of a specific group of customers and to differentiate the software products from one another. However, customers often purchase a given software product based on a small subset of these features, and the remaining features have little or no incremental value to the customer. Moreover, these additional features often increase the complexity of user interfaces in the given software product and may therefore degrade the overall user experience for the software product.
- Therefore, the sale of software products through retail establishments is often complicated by the need to provide a wide range of software products having different sets of fixed features.
- One embodiment of this invention relates to a system that provides access to at least a portion of a software product. During operation, this system receives purchase information from a first location, where the purchase information includes information about purchased software features to which a user purchased access and where the purchased software features are provided by a first subset of modules in the software product. Next, the system receives an access request from a second location, where the access request includes an identifier provided to the user when the user purchased access to the purchased software features. Next, the system provides configuration instructions to the second location from which the software product can be accessed, where the configuration instructions dynamically enable the first subset of the modules.
- In some embodiments, the configuration instructions include a decryption key. For example, the decryption key may include a public key associated with a private key that was used to encrypt at least a portion of the software product.
- In some embodiments, dynamically enabling the first subset of modules allows the user to use the purchased software features: without reinstalling a portion of the software product; without first rebooting a computer on which the software product is installed; and/or without installing another portion of the software product. Moreover, in some embodiments dynamically enabling the first subset of modules allows the user to use the purchased software features without downloading additional modules.
- In some embodiments, the first subset of modules is dynamically enabled while the software product is executing on a computer.
- In some embodiments, the configuration instructions facilitate ‘a la carte’ selection of the purchased software features by the user from modules which are already tested and compiled in the software product.
- In some embodiments, the first location is a physical retail establishment and/or an online retail establishment. Moreover, the first location may be different from the second location.
- In some embodiments, the configuration instructions are provided by a server to the second location via a network.
- In some embodiments, the operations of receiving the access request and providing the configuration instructions are repeated after a time interval, thereby allowing synchronization of current software features that are enabled in the software product.
- In some embodiments, the system receives a purchase request and payment from the user, where the purchase request includes information associated with additionally purchased software features, and where the additionally purchased software features are associated with a second subset of modules in the software product. Next, the system provides additional configuration instructions to the second location, where the additional configuration instructions dynamically enable the second subset of the modules. Note that the additionally purchased features may be different than the purchased features or the additionally purchased features may at least partially overlap the purchased features. Moreover, in some embodiments the payment is based on the additionally purchased software features.
- Another embodiment relates to a computer program product for use in conjunction with the system. This computer program product may include instructions corresponding to at least some of the above-described operations.
- Another embodiment provides a method for providing access to at least a portion of the software product. This method may perform at least some of the above-described operations.
-
FIG. 1 is a block diagram illustrating a computer system including computers and servers that are networked together in accordance with an embodiment of the present invention. -
FIG. 2 is a flow chart illustrating a method for providing access to at least a portion of the software product in accordance with an embodiment of the present invention. -
FIG. 3 is a block diagram illustrating a computer system in accordance with an embodiment of the present invention. -
FIG. 4 is a block diagram illustrating a data structure in accordance with an embodiment of the present invention. -
FIG. 5 is a block diagram illustrating a data structure in accordance with an embodiment of the present invention. - Note that like reference numerals refer to corresponding parts throughout the drawings.
- The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
- Embodiments of a computer system, a method, and a computer program product (i.e., software) for use with the computer system are described. These systems, software, and processes may be used to provide access to at least a portion of a software product. In particular, the computer system may provide configuration instructions to a user who has previously purchased access to software features. These configuration instructions may dynamically enable use of a subset of modules in a software product that are associated with the purchased software features. Note that the access to the software features may be purchased in a physical retail establishment and/or in an online retail establishment, such as at a website or a web page.
- In some embodiments, the configuration instructions facilitate ‘a la carte’ selection of the purchased software features by the user from modules which are already tested and compiled in the software product. Moreover, the user may dynamically enable the subset of modules: without reinstalling a portion of the software product; without first rebooting a computer on which the software product is installed; and/or without installing another portion of the software product.
- At a later time, the user may purchase additional software features from the computer system, and the computer system may provide additional configuration instructions that dynamically enable an additional subset of modules in the software product that are associated with the additional software features. Note that the additional modules may be different than or at least partially overlap the subset of modules, and that payment may be based on the additionally purchased software features.
- These techniques may be implemented as a stand-alone software application, or as a program module or subroutine in another application. Furthermore, at least a portion of the program may be configured to execute on a client computer (such as a personal computer, a laptop computer, cell phone, PDA, or other device capable of manipulating computer readable data) or remotely from a client computer via associated computing systems over a network (such as the Internet, Intranet, LAN, WAN, MAN, or combination of networks, or other technology enabling communication between computing systems). Therefore, the purchase information, the software product, and the configuration instructions may be stored locally (for example, on a local computer) and/or remotely (for example, on a computer or server that is accessed via a network).
- By dynamically enabling subsets of modules and/or subsets of features in a previously tested and complied software product, these techniques allows software features in this software product to be customized to the needs of a given user. In turn, this capability allows retail establishments to carry and display fewer software products, thereby simplifying operations, reducing expenses, and/or reducing shortfalls or excesses in inventory. Moreover, such software products are generally less complex, and easier to test and distribute. For example, by allowing the user to only purchase those features that are of interest, the user interface can be simplified and overall user experience can be improved.
- We now describe embodiments of systems, devices, and processes for providing access to at least a portion of a software product.
FIG. 1 presents a block diagram illustrating an embodiment of acomputer system 100 including computers and servers that are networked together. In this embodiment, a user may first purchase a software product or access to at least a portion of the software product from one or moreretail establishments 116, which can include: astore 118, adistributor 120, awebsite 122, and/or another 124 sales channel. In general, the software product or at least the portion of the software product includes one or more software features that the user would like to use. Moreover, these software features are associated with at least a subset of the modules in the software product. - When the user purchases the software product or purchases access to a portion of the software product, the user receives a token or an identifier, which corresponds to the user's purchase. Moreover, the user may receive instructions on how to use the identifier to receive the software product, or to enable access to the portion of the software product. For example, the user may purchase an encrypted version of the software product, and (as described below) the user may follow the instructions and use the identifier to enable access to at least the portion of the software product. Alternatively, the user may follow the instructions and use the identifier to receive at least the portion of the software product or to access the software feature(s) associated with at least the portion of the software product.
- After the purchase transaction is complete, the retail establishment (such as the store 118) may provide purchase information to a
server 114 via anetwork 112, such as the Internet. This server may be associated with a provider of the software product, and the purchase information may include the identifier provided to the user, and information about the software product or a portion of the software product that the user has paid to access. More generally, the purchase information includes information about purchased software features to which the user has purchased access. - Then, the user may access the
server 114 from acomputer 110 throughnetwork 112.Computer 110 may be remotely located from theretail establishments 116. For example,computer 110 may be at the user's home or work location. When the user accessesserver 114, the user may provide an access request, which includes the identifier. - Based on the purchase information and the access request, the
server 114 may enable the user to access the subset of the modules and/or the subset of the features in the software product (which may be associated with the subset of the software modules). In some embodiments, theserver 114 may provide configuration instructions to thecomputer 110. These configuration instructions may dynamically enable the subset of the modules and/or the subset of the features. For example, the configuration instructions may include a decryption key, such as a public key associated with a private key that was used to previously encrypt at least the portion of the software product. Using this decryption key, the user may decrypt at least the portion of the software product that was purchased from one of theretail establishments 116. - In an exemplary embodiment, the user installs the purchased software product on the
computer 110. This software product may include multiple modules (associated with different software features). Moreover, the multiple modules may already be compiled and tested, and are hence ready for use. However, these modules may be encrypted, so that the user first needs to decrypt a given module prior to using the module. By accessing and receiving the configuration instructions (including one or more decryption keys), the user may decrypt and use the appropriate subset of the modules that the user has paid to access. - Note that in these embodiments the software product sold by the
retail establishments 116 may include more modules and/or more software features than the typical user may want to access at a given time. Rather than stocking and selling different versions of this software product,retail establishments 116 can stock a generic version of the software product. Moreover,retail establishments 116 can tailor this generic software product to the needs a specific user by allowing the user to select, ‘a la carte,’ those software features that the user would like to access. As described above,computer system 100 allows the users to subsequently receive the appropriate configuration instructions to dynamically enable the subset of the modules and/or the subset of the software features that are purchased. - The dynamic enablement of the subset of the modules and/or the subset of the software features in the software product may be performed without the user: reinstalling a portion of the software product; without first rebooting the
computer 110 on which the software product is installed; and/or without installing another portion of the software product. Moreover, in some embodiments dynamically enabling the subset of modules and/or the subset of the software features allows the user to use the purchased software features without downloading additional modules. Consequently, the subset of modules and/or the subset of the software features may be dynamically enabled while the software product is executing on thecomputer 110. - In some embodiments, after a time interval, the user repeats the operation of providing the access request to the
server 114, and theserver 114 repeats the operation of providing the configuration instructions. For example, a version of the configuration instructions may expire after the time interval, and a newer version may be needed. This may allow synchronization of current software features that are enabled in the software product or may allow access to the software features to be sold on a subscription basis. Thus, the user may routinely or periodically pay to continue access to the subset of the modules and/or the subset of the software features. - Moreover, after the initial purchase, the user may choose to purchase access to an additional subset of the modules and/or additional subset of the software features in the software product. In these embodiments, the user may purchase access to the additional software features from one of the
retail establishments 116 or directly from the provider of the software product (for example, via the server 114). After receiving a purchase request (including information associated with additional software features) and payment from the user (which may be based on the additional software features),server 114 may provide additional configuration instructions that dynamically enable the additional subset of the modules and/or the additional subset of the software features to thecomputer 110. Note that these additional software features: may include the original software features purchased by the user, may partially overlap the original software features, or may be different software features. Furthermore, the additional subset of the modules: may include the subset of the modules, may partially overlap the subset of modules, or may include different modules. - In other embodiments, the user does not receive the software product from one of the
retail establishments 116 at the time of purchase. For example, the user may subsequently download the software product from theserver 114 ontocomputer 110. Note that the software product may be a stand-alone application on thecomputer 110 and/or may be embedded in another application. In an exemplary embodiment, the software product includes income-tax preparation software and/or financial-accounting software. - In some embodiments, the income-tax software includes: TurboTax™ (from Intuit, Inc., of Mountain View, Calif.), TaxCut™ (from H&R Block, Inc., of Kansas City, Mo.), TaxAct™ (from 2nd Story Software, Inc., of Cedar Rapids, Iowa), and/or other software capable of preparing an income-tax return. Furthermore, in some embodiments the financial-accounting software includes payroll-accounting software, such as QuickBooks™ (from Intuit, Inc., of Mountain View, Calif.), PeachTree Complete™ (from the Sage Group PLC, of London, the United Kingdom), MYOB Business Essentials™ (from MYOB US, Inc., of Rockaway, N.J.), NetSuite Small Business Accounting™ (from NetSuite, Inc., of San Mateo, Calif.), Cougar Mountain™ (from Cougar Mountain Software, of Boise, Id.), Small Business Manager™ (from Microsoft Corporation, of Redmont, Wash.), Simply Accounting™ (from the Sage Group PLC, of London, the United Kingdom), CYMA IV Accounting™ (from CYMA Systems, Inc., of Temple, Ariz.), DacEasy™ (from Sage Software SB, Inc., of Lawrenceville, Ga.), Microsoft Money™ (from Microsoft Corporation, of Redmont, Wash.), and/or other financial-accounting software capable of processing payroll information. Finally, in some embodiments the financial-accounting software includes financial-planning software, such as Quicken™ (from Intuit, Inc., of Mountain View, Calif.), Microsoft Money™ (from Microsoft Corporation, of Redmont, Wash.), SplashMoney™ (from SplashData, Inc., Los Gatos, Calif.), Mvelopes™ (from In2M, Inc., Draper, Utah), and/or open-source applications such as Gnucash™, PLCash™, Budget™ (from Snowmint Creative Solutions, LLC), and/or other financial-planning software capable of processing financial information.
- While the software product may be resident on the
computer 110, other embodiments may utilize a software tool that is embedded in a web page (once again, either as a stand-alone application or as a portion of another application). This web page may be provided by aserver 114 vianetwork 112. In an exemplary embodiment, the financial-software tool is a software package written in JavaScript™ (i.e., the financial-software tool includes programs or procedures containing JavaScript instructions), ECMAScript (the specification for which is published by the European Computer Manufacturers Association International), VBScript™ (a trademark of Microsoft, Inc.) or any other client or server-side scripting language. In other words, the software tool may include programs or procedures containing JavaScript, ECMAScript instructions, VBScript instructions, or instructions in another programming language suitable for rendering by a browser or another client application on thecomputer 110. In these embodiments, configuration instructions provided with the web page or previously provided to thecomputer 110 may be used to dynamically enable access to the software tool. - In an exemplary embodiment, a software product sold by the retail establishments includes modules and/or features associated with three software product types (such as consumer, advanced, and professional), each of which includes five groups of software features. Based on the user selections, the software product may be configured to the needs of a given user. For example, the configuration instructions may select one of the software product types and one of four different arrangements of the five groups of software features.
- In some embodiments the
computer system 100 includes fewer or additional components. Moreover, two or more components can be combined into a single component, and/or a position of one or more components may be changed. - We now discuss methods for providing access to software products. More specifically,
FIG. 2 presents a flow chart illustrating an embodiment of amethod 200 for providing access to at least a portion of the software product, which may be implemented in a computer system, such as thecomputer system 100 inFIG. 1 . During operation, this system receives purchase information from a first location (210), where the purchase information includes information about purchased software features to which a user purchased access and where the purchased software features are provided by a first subset of modules in the software product. Next, the system receives an access request from a second location from which the software product can be accessed (212), where the access request includes an identifier provided to the user when the user purchased access to the purchased software features. Then, the system provides configuration instructions to the second location (214), where the configuration instructions dynamically enable the first subset of the modules. - In some embodiments, the system optionally receives a purchase request and payment from the user (216), where the purchase request includes information associated with additionally purchased software features and where the additionally purchased software features are associated with a second subset of modules in the software product. Next, the system optionally provides additional configuration instructions to the second location (218), where the additional configuration instructions dynamically enable the second subset of the modules.
- Note that in some embodiments of the
method 200 there may be: additional or fewer operations; the order of the operations may be changed; and two or more operations may be combined into a single operation. - We now describe computer systems for implementing these techniques.
FIG. 3 presents a block diagram illustrating an embodiment of acomputer system 300.Computer system 300 includes: one ormore processors 310, acommunication interface 312, auser interface 314, and one ormore signal lines 322 coupling these components together. Note that the one ormore processing units 310 may support parallel processing and/or multi-threaded operation, thecommunication interface 312 may have a persistent communication connection, and the one ormore signal lines 322 may constitute a communication bus. Moreover, theuser interface 314 may include: adisplay 316, akeyboard 318, and/or apointer 320, such as a mouse. -
Memory 324 in thecomputer system 300 may include volatile memory and/or non-volatile memory. More specifically,memory 324 may include: ROM, RAM, EPROM, EEPROM, FLASH, one or more smart cards, one or more magnetic disc storage devices, and/or one or more optical storage devices.Memory 324 may store anoperating system 326 that includes procedures (or a set of instructions) for handling various basic system services for performing hardware dependent tasks. While not shown in thecomputer system 100, in someembodiments memory 324 includes a browser.Memory 324 may also store communication procedures (or a set of instructions) in acommunication module 328. These communication procedures may be used for communicating with one or more computers and/or servers, including computers and/or servers that are remotely located with respect to thecomputer system 300. -
Memory 324 may include multiple program modules (or a set of instructions), including configuration module 330 (or a set of instructions) and/or encryption module 350 (or a set of instructions).Configuration module 330 may use purchase information 332 (such as that associated with commercial establishment A 334-1 and/or commercial establishment B 334-2) to provideconfiguration instructions 344 in response to one or more access requests 336. Moreover, in some embodiments one ormore user identifiers 348 and/orpayment information 346 are provided along with the one or more access requests 336. Theseconfiguration instructions 344 may dynamically enable at least a subset of the modules and/or a subset of the software features in software products 340 (such as module A 342-1 and/or module B 342-2). - In some embodiments, the
configuration instructions 344 include one or more decryption keys associated withencryption module 350. For example,encryption module 350 may encrypt thesoftware products 340, and the decryption keys may be used to decrypt one or more of the modules 342. - Moreover, in some embodiments the
configuration module 330 is used to routinely or periodically synchronize the enabled modules and/or enabled features in thesoftware products 340 usingoptional synchronization information 338. - Instructions in the various modules in the
memory 324 may be implemented in a high-level procedural language, an object-oriented programming language, and/or in an assembly or machine language. The programming language may be compiled or interpreted, i.e., configurable or configured to be executed by the one ormore processing units 310. - Although the
computer system 300 is illustrated as having a number of discrete components,FIG. 3 is intended to provide a functional description of the various features that may be present in thecomputer system 300 rather than as a structural schematic of the embodiments described herein. In practice, and as recognized by those of ordinary skill in the art, the functions of thecomputer system 300 may be distributed over a large number of servers or computers, with various groups of the servers or computers performing particular subsets of the functions. In some embodiments, some or all of the functionality of thecomputer system 300 may be implemented in one or more ASICs and/or one or more digital signal processors DSPs. -
Computer system 300 may include fewer components or additional components. Moreover, two or more components may be combined into a single component and/or a position of one or more components may be changed. In some embodiments the functionality of thecomputer system 300 may be implemented more in hardware and less in software, or less in hardware and more in software, as is known in the art. - We now describe data structures that may be used in the computer system 100 (
FIG. 1 ) and/or 300 (FIG. 3 ).FIG. 4 presents a block diagram illustrating an embodiment of adata structure 400. This data structure may include purchase information 410. Given purchase information 410, such as purchase information 410-1, may include: a time stamp 412-1, a user 414-1, one or more software products 416-1, one or more software features 418-1, and/or one or more commercial establishments 420-1. -
FIG. 5 presents a block diagram illustrating an embodiment of adata structure 500. This data structure may include information associated with software products 5 10. Information for a given software product, such as software product 510-1, may include: a time stamp 512-1, one or more software features 514-1, one or more modules 516-1, and/or compiled code 518-1. - Note that that in some embodiments of the data structures 400 (
FIG. 4 ) and/or 500 there may be fewer or additional components. Moreover, two or more components may be combined into a single component, and/or a position of one or more components is changed. - The foregoing descriptions of embodiments of the present invention have been presented for purposes of illustration and description only. They are not intended to be exhaustive or to limit the present invention to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present invention. The scope of the present invention is defined by the appended claims.
Claims (20)
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/829,430 US20080270310A1 (en) | 2006-06-27 | 2007-07-27 | Facilitating dynamic configuration of software products |
DE102008033004A DE102008033004A1 (en) | 2007-07-27 | 2008-07-14 | Simplify dynamic configuration of software products |
AU2008203150A AU2008203150A1 (en) | 2007-07-27 | 2008-07-15 | Facilitating dynamic configuration of software products |
GB0813340A GB2451555A (en) | 2007-07-27 | 2008-07-24 | Facilitating dynamic configuration of a subset of modules of a software product |
CN200810144045.0A CN101359392B (en) | 2007-07-27 | 2008-07-25 | Promote software product dynamic-configuration |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/476,990 US9471756B2 (en) | 2006-06-27 | 2006-06-27 | Method and apparatus for authorizing a software product to be used on a computer system |
US11/829,430 US20080270310A1 (en) | 2006-06-27 | 2007-07-27 | Facilitating dynamic configuration of software products |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/476,990 Continuation-In-Part US9471756B2 (en) | 2006-06-27 | 2006-06-27 | Method and apparatus for authorizing a software product to be used on a computer system |
Publications (1)
Publication Number | Publication Date |
---|---|
US20080270310A1 true US20080270310A1 (en) | 2008-10-30 |
Family
ID=39737395
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/829,430 Abandoned US20080270310A1 (en) | 2006-06-27 | 2007-07-27 | Facilitating dynamic configuration of software products |
Country Status (5)
Country | Link |
---|---|
US (1) | US20080270310A1 (en) |
CN (1) | CN101359392B (en) |
AU (1) | AU2008203150A1 (en) |
DE (1) | DE102008033004A1 (en) |
GB (1) | GB2451555A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080168131A1 (en) * | 2007-01-08 | 2008-07-10 | Microsoft Corporation | Platform for defining single-page web signup facilities |
WO2011012704A1 (en) * | 2009-07-30 | 2011-02-03 | Xaga Network | Application management system |
US20110276805A1 (en) * | 2010-04-19 | 2011-11-10 | Aashin Nagpal | System and Method for Third Party Creation of Applications for Mobile Appliances |
US20140019274A1 (en) * | 2012-07-13 | 2014-01-16 | Ncr Corporation | Mobile point-of-sale (pos) techniques |
US9814984B2 (en) | 2012-05-31 | 2017-11-14 | Sony Interactive Entertainment Inc. | Information processing system for enabling information processing devices to execute applications in affiliation |
CN112559074A (en) * | 2020-12-18 | 2021-03-26 | 昂纳工业技术(深圳)有限公司 | Dynamic configuration method of machine vision software and computer |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103632074A (en) * | 2013-12-12 | 2014-03-12 | 用友软件股份有限公司 | Characterization function deployment device and characterization function deployment method based on basic function model |
Citations (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5398285A (en) * | 1993-12-30 | 1995-03-14 | Motorola, Inc. | Method for generating a password using public key cryptography |
US5956505A (en) * | 1991-12-24 | 1999-09-21 | Pitney Bowes Inc. | Remote activation of software features in a data processing device |
US6169976B1 (en) * | 1998-07-02 | 2001-01-02 | Encommerce, Inc. | Method and apparatus for regulating the use of licensed products |
US20020088855A1 (en) * | 2001-01-05 | 2002-07-11 | Hodes Mark B. | Point of sale activation for software and metered accounts |
US20020088851A1 (en) * | 2001-01-05 | 2002-07-11 | Hodes Mark B. | Method and apparatus for point of sale activated delivery of products or services |
US6442559B1 (en) * | 1999-06-22 | 2002-08-27 | Microsoft Corporation | Dynamic SKU management |
US6460140B1 (en) * | 1999-12-30 | 2002-10-01 | Starnet Communications Corporation | System for controlling the use of licensed software |
US20030004889A1 (en) * | 2001-01-05 | 2003-01-02 | Riverborne Communications, Llc | Point-of-sale activation and subsequent registration of products |
US20040044901A1 (en) * | 2002-08-30 | 2004-03-04 | Serkowski Robert J. | License file serial number tracking |
US20040044631A1 (en) * | 2002-08-30 | 2004-03-04 | Avaya Technology Corp. | Remote feature activator feature extraction |
US20040044630A1 (en) * | 2002-08-30 | 2004-03-04 | Walker William T. | Software licensing for spare processors |
US20040125954A1 (en) * | 2002-12-31 | 2004-07-01 | Riebe Heinrich Henning | System for persistently encrypting critical software data to control the operation of an executable software program |
US20040139318A1 (en) * | 2002-11-06 | 2004-07-15 | Digital Interactive Entertainment, Llc | Activation and personalization of downloadable content |
US20040193545A1 (en) * | 2000-10-30 | 2004-09-30 | Gady Shlasky | Method and system for digital licensing distribution |
US20050049893A1 (en) * | 2003-08-27 | 2005-03-03 | Tien Yuan Hui | System and method for reconciliation in commission sales |
US20060048132A1 (en) * | 2004-09-01 | 2006-03-02 | Microsoft Corporation | Licensing the use of a particular feature of software |
US20060106727A1 (en) * | 2004-11-18 | 2006-05-18 | Yellai Prabhakara R | Method and system for transferring software and hardware feature licenses between devices |
US20060106733A1 (en) * | 1996-02-26 | 2006-05-18 | Graphon Corporation | Computer for operating distributed software |
US20060106728A1 (en) * | 2004-11-18 | 2006-05-18 | Yellai Prabhakara R | Method and system for installing software and hardware feature licenses on devices |
US20060118616A1 (en) * | 2004-12-06 | 2006-06-08 | Target Brands, Inc. | Stored-value card adapted to be read by an electronic device |
US20060179002A1 (en) * | 2005-02-04 | 2006-08-10 | Microsoft Corporation | Flexible licensing architecture for licensing digital application |
US20060213979A1 (en) * | 2005-03-25 | 2006-09-28 | Bluko Information Group | Method and system of detecting fraud and incremental commitment of value |
US20060213978A1 (en) * | 2005-03-25 | 2006-09-28 | Bluko Information Group | Method and system of advancing value from credit card account for use with stored value account |
US20060213980A1 (en) * | 2005-03-25 | 2006-09-28 | Bluko Information Group | Method and system of detecting cash deposits and attributing value |
US20060259189A1 (en) * | 2005-05-12 | 2006-11-16 | Cruz Bay Solutions, Inc. | Method and apparatus for printing a gift card |
US20070043677A1 (en) * | 2005-08-17 | 2007-02-22 | Idt Corporation | Point of sale product authorization |
US20070107067A1 (en) * | 2002-08-24 | 2007-05-10 | Ingrian Networks, Inc. | Secure feature activation |
US7225165B1 (en) * | 2000-02-01 | 2007-05-29 | Fuji Xerox Co., Ltd. | License-issuing system and method |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7174568B2 (en) * | 2001-01-31 | 2007-02-06 | Sony Computer Entertainment America Inc. | Method and system for securely distributing computer software products |
US20060004668A1 (en) * | 2004-07-01 | 2006-01-05 | Hamnen Jan H | Method of distributing electronic license keys |
US20060217996A1 (en) * | 2005-03-23 | 2006-09-28 | E2Interactive, Inc. D/B/A E2Interactive, Inc. | Point-of-sale activation of media device account |
US20070028233A1 (en) * | 2005-07-29 | 2007-02-01 | Miller David D | Traffic control software lock and method |
CN1988469A (en) * | 2005-12-22 | 2007-06-27 | 华为技术有限公司 | Automatic managing software method and system |
US9471756B2 (en) * | 2006-06-27 | 2016-10-18 | Intuit Inc. | Method and apparatus for authorizing a software product to be used on a computer system |
-
2007
- 2007-07-27 US US11/829,430 patent/US20080270310A1/en not_active Abandoned
-
2008
- 2008-07-14 DE DE102008033004A patent/DE102008033004A1/en active Pending
- 2008-07-15 AU AU2008203150A patent/AU2008203150A1/en not_active Abandoned
- 2008-07-24 GB GB0813340A patent/GB2451555A/en not_active Withdrawn
- 2008-07-25 CN CN200810144045.0A patent/CN101359392B/en active Active
Patent Citations (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956505A (en) * | 1991-12-24 | 1999-09-21 | Pitney Bowes Inc. | Remote activation of software features in a data processing device |
US5398285A (en) * | 1993-12-30 | 1995-03-14 | Motorola, Inc. | Method for generating a password using public key cryptography |
US20060106733A1 (en) * | 1996-02-26 | 2006-05-18 | Graphon Corporation | Computer for operating distributed software |
US6169976B1 (en) * | 1998-07-02 | 2001-01-02 | Encommerce, Inc. | Method and apparatus for regulating the use of licensed products |
US6442559B1 (en) * | 1999-06-22 | 2002-08-27 | Microsoft Corporation | Dynamic SKU management |
US6460140B1 (en) * | 1999-12-30 | 2002-10-01 | Starnet Communications Corporation | System for controlling the use of licensed software |
US7225165B1 (en) * | 2000-02-01 | 2007-05-29 | Fuji Xerox Co., Ltd. | License-issuing system and method |
US20040193545A1 (en) * | 2000-10-30 | 2004-09-30 | Gady Shlasky | Method and system for digital licensing distribution |
US20020088851A1 (en) * | 2001-01-05 | 2002-07-11 | Hodes Mark B. | Method and apparatus for point of sale activated delivery of products or services |
US20020088855A1 (en) * | 2001-01-05 | 2002-07-11 | Hodes Mark B. | Point of sale activation for software and metered accounts |
US20030004889A1 (en) * | 2001-01-05 | 2003-01-02 | Riverborne Communications, Llc | Point-of-sale activation and subsequent registration of products |
US20020091573A1 (en) * | 2001-01-05 | 2002-07-11 | Hodes Mark B. | Method and apparatus for point of sale activated delivery of products or services |
US20070107067A1 (en) * | 2002-08-24 | 2007-05-10 | Ingrian Networks, Inc. | Secure feature activation |
US20040044901A1 (en) * | 2002-08-30 | 2004-03-04 | Serkowski Robert J. | License file serial number tracking |
US20040044631A1 (en) * | 2002-08-30 | 2004-03-04 | Avaya Technology Corp. | Remote feature activator feature extraction |
US20040044630A1 (en) * | 2002-08-30 | 2004-03-04 | Walker William T. | Software licensing for spare processors |
US20040139318A1 (en) * | 2002-11-06 | 2004-07-15 | Digital Interactive Entertainment, Llc | Activation and personalization of downloadable content |
US20040125954A1 (en) * | 2002-12-31 | 2004-07-01 | Riebe Heinrich Henning | System for persistently encrypting critical software data to control the operation of an executable software program |
US20050049893A1 (en) * | 2003-08-27 | 2005-03-03 | Tien Yuan Hui | System and method for reconciliation in commission sales |
US20060048132A1 (en) * | 2004-09-01 | 2006-03-02 | Microsoft Corporation | Licensing the use of a particular feature of software |
US20060106727A1 (en) * | 2004-11-18 | 2006-05-18 | Yellai Prabhakara R | Method and system for transferring software and hardware feature licenses between devices |
US20060106728A1 (en) * | 2004-11-18 | 2006-05-18 | Yellai Prabhakara R | Method and system for installing software and hardware feature licenses on devices |
US20060118616A1 (en) * | 2004-12-06 | 2006-06-08 | Target Brands, Inc. | Stored-value card adapted to be read by an electronic device |
US20060179002A1 (en) * | 2005-02-04 | 2006-08-10 | Microsoft Corporation | Flexible licensing architecture for licensing digital application |
US20060213979A1 (en) * | 2005-03-25 | 2006-09-28 | Bluko Information Group | Method and system of detecting fraud and incremental commitment of value |
US20060213978A1 (en) * | 2005-03-25 | 2006-09-28 | Bluko Information Group | Method and system of advancing value from credit card account for use with stored value account |
US20060213980A1 (en) * | 2005-03-25 | 2006-09-28 | Bluko Information Group | Method and system of detecting cash deposits and attributing value |
US20060259189A1 (en) * | 2005-05-12 | 2006-11-16 | Cruz Bay Solutions, Inc. | Method and apparatus for printing a gift card |
US20070043677A1 (en) * | 2005-08-17 | 2007-02-22 | Idt Corporation | Point of sale product authorization |
Non-Patent Citations (4)
Title |
---|
Internet Archive Wayback Machine, archive of "Amazon.com: EverQuest Online Adventures for PlayStation 2: Computer & Video Games". Archived 28 November 2006. Available from <http://web.archive.org/web/20061128002918/http://www.amazon.com/EverQuest-Online-Adventures-PlayStation-2/dp/B00007UHR7>. * |
Internet Archive Wayback Machine, archive of "EverQuest Online Adventures Game Card 30-day". Archived 20 March 2006. Available from <http://web.archive.org/web/20060320170223/https://store.station.sony.com/hardgood.jsp?SKU=EQOA1-SU-GC0203-EQOAGC>. * |
Internet Archive Wayback Machine, archive of "EverQuest Online Adventures Review". Archived 12 December 2003. Available from <http://web.archive.org/web/20031212180110/http://www.gamespot.com/ps2/rpg/everquestonlineadventures/printable_2911115.html>. * |
Internet Archive Wayback Machine, archive of "SOE Game Card - 30-day". Archived 20 March 2006. Available from <http://web.archive.org/web/20060320171835/https://store.station.sony.com/hardgood.jsp?SKU=SOERE-SU-GC0904-30DYGC>. * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080168131A1 (en) * | 2007-01-08 | 2008-07-10 | Microsoft Corporation | Platform for defining single-page web signup facilities |
WO2011012704A1 (en) * | 2009-07-30 | 2011-02-03 | Xaga Network | Application management system |
FR2948788A1 (en) * | 2009-07-30 | 2011-02-04 | Xaga Network | APPLICATION MANAGEMENT SYSTEM |
US20110276805A1 (en) * | 2010-04-19 | 2011-11-10 | Aashin Nagpal | System and Method for Third Party Creation of Applications for Mobile Appliances |
US9135434B2 (en) * | 2010-04-19 | 2015-09-15 | Appcentral, Inc. | System and method for third party creation of applications for mobile appliances |
US9814984B2 (en) | 2012-05-31 | 2017-11-14 | Sony Interactive Entertainment Inc. | Information processing system for enabling information processing devices to execute applications in affiliation |
US20140019274A1 (en) * | 2012-07-13 | 2014-01-16 | Ncr Corporation | Mobile point-of-sale (pos) techniques |
US10043167B2 (en) * | 2012-07-13 | 2018-08-07 | Ncr Corporation | Mobile point-of-sale (POS) techniques |
CN112559074A (en) * | 2020-12-18 | 2021-03-26 | 昂纳工业技术(深圳)有限公司 | Dynamic configuration method of machine vision software and computer |
Also Published As
Publication number | Publication date |
---|---|
GB2451555A (en) | 2009-02-04 |
CN101359392A (en) | 2009-02-04 |
CN101359392B (en) | 2016-01-20 |
GB0813340D0 (en) | 2008-08-27 |
AU2008203150A1 (en) | 2009-02-12 |
DE102008033004A1 (en) | 2009-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4909360B2 (en) | System and method for creating, distributing and tracking advertisements via an electronic network | |
CA2724858C (en) | Techniques for acquiring updates for application programs | |
US6216112B1 (en) | Method for software distribution and compensation with replenishable advertisements | |
US20100235254A1 (en) | Application Products with In-Application Subsequent Feature Access Using Network-Based Distribution System | |
US20080270310A1 (en) | Facilitating dynamic configuration of software products | |
US20170323303A1 (en) | Distributing coupon content and transactional advertisements | |
US20100049603A1 (en) | Locally driven advertising system | |
US20100235889A1 (en) | Application products with in-application subsequent feature access using network-based distribution system | |
US8826260B2 (en) | Customization of mobile-application delivery | |
US20020004744A1 (en) | Micro-target for broadband content | |
US20020002488A1 (en) | Locally driven advertising system | |
US20100076818A1 (en) | Behavior tracking and user profiling system | |
US20020107701A1 (en) | Systems and methods for metering content on the internet | |
JPH10222579A (en) | Virtual sales system, electronic data distribution, license and rental managing method | |
US20090043907A1 (en) | Local portal | |
US8683081B2 (en) | Methods for displaying advertisement content on host system using application launched from removable memory device | |
US20010042016A1 (en) | Local portal | |
US9141980B2 (en) | Method and apparatus for offering digital content for sale over a communications network | |
JP2002521742A (en) | A viewer system for trying and purchasing electronic software distribution | |
US6834269B1 (en) | Factory-installed software purchase verification key | |
EP2078248A2 (en) | Software development and sales life-cycle services | |
US8683082B2 (en) | Removable memory devices for displaying advertisement content on host systems using applications launched from removable memory devices | |
EP2104913A2 (en) | Technology platform for electronic commerce and a method thereof | |
US20090012854A1 (en) | Flexible, dynamic design to allow for fixed and percentage discount pricing at configurable option levels | |
US6889202B2 (en) | Internet print device font distribution method and web site |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTUIT INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DEGRAAFF, DAVID B.;WOODS, ANDREW A.;LEE, ALVIN HSUNG-UN;AND OTHERS;REEL/FRAME:019873/0090;SIGNING DATES FROM 20070624 TO 20070913 |
|
AS | Assignment |
Owner name: INTUIT INC., CALIFORNIA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE NUMBER OF PAGES IN THE ORIGINAL ASSIGNMENT DOCUMENT PREVIOUSLY RECORDED ON REEL 019873 FRAME 0090;ASSIGNORS:DEGRAAFF, DAVID B.;WOODS, ANDREW A.;LEE, ALVIN HSUNG-UN;AND OTHERS;REEL/FRAME:020426/0451;SIGNING DATES FROM 20070624 TO 20070913 |
|
AS | Assignment |
Owner name: INTUIT INC., CALIFORNIA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE SIXTH INVENTOR'S NAME NEEDS TO BE CORRECTED TO HUNTER D. SMITH PREVIOUSLY RECORDED ON REEL 020426 FRAME 0451;ASSIGNORS:DEGRAAFF, DAVID B.;WOODS, ANDREW A.;LEE, ALVIN HSUNG-UN;AND OTHERS;REEL/FRAME:021758/0670;SIGNING DATES FROM 20070624 TO 20070913 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |