Abstract:
A method and system for management of digital goods is provided that allows digital goods vendors to model and manage complex product relationships involved in electronic distribution of digital goods, such as software. A variety of interactive tools to define associations among a variety of primary objects are provided that allow a vendor to create a product hierarchy that mirrors the marketing descriptions and organization of the vendor&#39;s product set. The various products are uploaded to a server for electronic distribution to end-users. A system operator implements the system across a publicly accessible network such as the Internet. The system operator, typically on a subscription basis, hosts each digital goods vendor. Each subscribing digital goods vendor provides each of their customer accounts a personalized software maintenance portal branded to the vendor that integrates with vendor&#39;s web site.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The invention relates generally to electronic distribution of digital goods. More particularly, the invention relates to methods for managing complex product relationships involved in distribution of digital goods.  
         [0003]     2. Technical Background  
         [0004]     Digital delivery has emerged as an efficient and profitable method of distributing digital goods such as software. While some suppliers of digital goods offer simple downloads from their web sites, these services provide only limited value to the supplier and the supplier&#39;s customers. There is a growing demand from end-users for increased services and from suppliers for better management and control of the complete delivery process. Increasingly, digital goods involve frequent updates, bug fixes, patches, and release notifications, resulting in exceedingly complex product relationships. Modeling/representing and managing these complex relationships poses a formidable challenge to digital goods suppliers.  
         [0005]     K. Milsted, C. Kindell, Q. Qong, Automated method and apparatus to package digital content for electronic distribution using the identity of the source content, U.S. Pat. No. 6,345,256 (Feb. 5, 2002) describe a system and related tools for secure delivery and rights management of digital assets. While Milsted, et al. appear to recognize the complex product relationships associated with digital goods, they propose no solutions for modeling and managing the relationships, focusing instead on secure delivery and rights management.  
         [0006]     W. Foster, C. Tselebis, Method, apparatus and system for merchandising related applications, U.S. Pat. No. 6,493,678 (Dec. 10, 2002) describe a system and method for organizing product line data, including product hierarchies and time horizons, for use across a variety of distribution channels. While the Foster teachings recognize the importance of managing product data, the solution they provide is essentially a streamlined method of producing a static, non-interactive product line document. The system lacks the capability of interactively distributing actual product to the customer or end-user according to associated entitlements or orders.  
         [0007]     J. Ogilvie, Automatic broker tools and techniques, U.S. Pat. No. 6,547,134 (Apr. 15, 2003) describes methods and systems for facilitating electronic commerce in digital goods, such as digitized musical works, software or electronic documents. While the Ogilvie teachings are related to distribution of digital goods, they concern themselves primarily with successful completion of transactions for the sale of digital goods in which buyer and seller are satisfied with the end result. Complex product relationships or the importance of modeling and managing them are not recognized.  
         [0008]     R. Reisman, Method and system for distributing updates by presenting directory of software available for user installation that is not already installed on user station, U.S. Pat. No. 6,557,054 (Apr. 29, 2003) provides a method and corresponding system for distributing updates for a plurality of different products to a plurality of uncoordinated user stations via a non-proprietary network. The central element of the described system consists of a software object, essentially a file transfer application, residing on each user station that establishes communication with a server to download updates of information products installed on the user station. A user interface is provided so that the user may view a directory of items available on the server and select from among the items available. Alternatively, examination of the directory and download may be automated. While Reisman provides a system that simplifies the process of locating and downloading digital goods, even recognizing the complex product relationships involved in distribution of digital goods, little attention is paid to methods for managing and modeling the relationships, or management of entitlements to the goods themselves.  
         [0009]     There exists, therefore, a need in the art for a method and system of managing digital goods that would allow vendors to model and manage the complex product relationships typically involved with distribution of digital goods, particularly as related to electronic distribution of digital goods. It would be a great advantage to represent products as a set of relationships or associations between objects to which end users can be entitled, objects that can be delivered and objects that can be downloaded. It would be a further advantage to provide a model and tools with which the associations can be defined and managed.  
       SUMMARY OF THE INVENTION  
       [0010]     The invention provides a method and system for management of digital goods. The invention is particularly suited for modeling and managing complex product relationships necessitated by fixed-duration, subscription, or contract-based electronic distribution of digital goods, among them software products and other digital products such as e-books and digitized images. Using a variety of interactive tools provided by the invention, the digital goods vendor creates a product hierarchy based on associations, or relationships among a collection of primary objects. One embodiment of the invention includes one or more of the following objects: 
        Entitlements: equivalent to an order, subscription, or contract, grants an end user customer access to a vendor&#39;s digital goods. ‘Entitlements’ also specify such terms as account, quantity and effective date. An ‘Entitlement’ is typically associated with one or more ‘Catalog items’;     Catalog items: equivalent to price list items, represent each of a vendor&#39;s individual products, for example a product or a maintenance agreement. A ‘Catalog item’ is typically associated with one or more ‘Products’;     Products: equivalent to a product release, represent actual deliverables, for example, a specific version of a product. A ‘Product’ is typically associated with one or more ‘Files’; and     Files: ‘Files’ include the actual data objects that the end user downloads, for example, the installation executable for a particular platform.        
 
         [0015]     Ideally, the resulting product hierarchy mirrors the marketing descriptions and organization of the vendor&#39;s product set. After the hierarchy is created, the vendor, again by way of interactive tools provided by the invention, uploads the individual files that make up the various ‘Products’ for download by end users, typically customers of the digital goods vendor.  
         [0016]     In a preferred embodiment, a system operator implements the invention across a publicly accessible network such as the Internet. Each digital goods vendor is hosted by the system operator, typically on a subscription basis. Using the invention, each subscribing digital goods vendor is able to provide each of their customer accounts a personalized software maintenance portal that may be branded to the vendor, integrating seamlessly with any other of the vendor&#39;s network presences, for example, a web site. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0017]      FIG. 1  provides a data flow diagram in a system for managing digital goods according to the invention;  
         [0018]      FIG. 2  shows a user interface for searching Entitlements from the system of  FIG. 1  according to the invention;  
         [0019]      FIG. 3  shows a user interface for selecting an account to entitle from the system of  FIG. 1  according to the invention;  
         [0020]      FIG. 4  shows a user interface for viewing entitlements from the system of  FIG. 1  according to the invention;  
         [0021]      FIGS. 5   a  and  5   b  show a user interface for creating and editing entitlements from the system of  FIG. 1  according to the invention;  
         [0022]      FIG. 6  shows a user interface for searching Catalog Items from the system of  FIG. 1  according to the invention;  
         [0023]      FIG. 7  shows a user interface for viewing Catalog Items from the system of  FIG. 1  according to the invention;  
         [0024]      FIG. 8  shows a user interface for creating and editing Catalog Items from the system of  FIG. 1  according to the invention;  
         [0025]      FIG. 9  shows a user interface for searching Products from the system of  FIG. 1  according to the invention;  
         [0026]      FIG. 10  shows a user interface for viewing Products from the system of  FIG. 1  according to the invention;  
         [0027]      FIGS. 11   a  and  11   b  show a user interface for creating and editing Products from the system of  FIG. 1  according to the invention;  
         [0028]      FIG. 12  shows a user interface for searching Files from the system of  FIG. 1  according to the invention;  
         [0029]      FIG. 13  shows a user interface for viewing Files from the system of  FIG. 1  according to the invention;  
         [0030]      FIG. 14  shows a user interface for creating and editing Files from the system of  FIG. 1  according to the invention;  
         [0031]      FIG. 15  provides a diagram of a Catalog Item level from a product hierarchy in the system of  FIG. 1  according to the invention;  
         [0032]      FIG. 16  provides a diagram of a Product level from a product hierarchy in the system of  FIG. 1  according to the invention;  
         [0033]      FIG. 17  provides a diagram of a File level from the product hierarchy in the system of  FIG. 1  according to the invention;  
         [0034]      FIG. 18  diagrams a product hierarchy for managing subscription and non-subscription catalog items according to the invention; and  
         [0035]      FIG. 19  provides a flow chart for date management of products according to the invention. 
     
    
     DETAILED DESCRIPTION  
       [heading-0036]     The System  
         [0037]     The invention provides a hosted, network-based delivery and support solution that enables vendors of digital goods to easily deliver, track and manage the digital goods and entitlements that the vendors distribute to their global customers. Advantageously, the solution is rapidly implemented and seamlessly integrated into a customized web site, and supports any e-commerce, direct, or channel sales model. The invention finds particular application in electronic distribution of digital goods such as software.  
         [0038]      FIG. 1  provides a diagram of a system for managing digital goods  100 . The system may be implemented across a publicly accessible network, such as the Internet. Data flow within the invented system is also shown. The invented system is built around a repository  101 , the repository including one or more servers and associated mass storage that store a copy of a vendor&#39;s product, documentation, release notes and any other related material. These are typically provided by the vendor  102  as part of the original implementation of the product management and distribution service provided through the system. Subsequently, the materials are refreshed as products are updated. The system also associates each downloadable file (image) with one or more vendor part numbers. Typically, the system operator makes the system available to vendors on a subscription, or fee basis; however, other business models are possible  
         [0039]     Once the images are loaded into the system, and the part numbers created, the system is ready to process orders  103  and deliver the digital goods, for example, software, to the vendor&#39;s customers  104 . This ‘entitlement’ process typically happens with, for example, an XML-based data feed that originates with the vendor&#39;s order management or ERP (enterprise resource planning) system. The data feed specifies which customers are being entitled to which part numbers, and under what license and maintenance terms. The entitlement data feed may also contain other vendor-specific information, such as license keys and support codes. Other methods of transmitting order information to the system may be envisioned by one having an ordinary level of skill and are well within the scope of the invention.  
         [0040]     The system processes the data feed and creates user accounts, if necessary, and the entitlements that allow the customer to see and download the appropriate images when they log into the service web site. The system also associates all the vendor and customer specific information with the vendor part numbers so that they are available at the time of delivery.  
         [0041]     The system then generates e-mail messages  105  to designated contacts within the customer account to notify them that their software is available. The email may include a unique URL that gives the customer access to his or her own dynamically generated, and password-protected web site, thus providing the customer a personalized, digital goods management portal. The web site may be branded to the vendor, having the same look and feel as the rest of the vendor&#39;s web site. Through this personalized web site, the customer gains ready access to any digital goods the customer is entitled to, as well as any related documentation, access keys, release notes, and contact information, not only for the current order, but also for any previous releases to which that customer is entitled.  
         [0042]     The system can also be configured so that when the customer first attempts to download a particular product, the customer is required to read and to accept online end-user license agreement (EULA). A reporting function  107  delivers regular reports to the vendor, allowing the vendor to closely monitor activities from all of the vendor&#39;s customer accounts.  
         [heading-0043]     Managing Entitlements  
         [0044]     As previously described, entitlement is the process of matching customers with the product(s) that they have purchased, and granting them access to the product(s). Accordingly, an entitlement may be seen as being the equivalent of an order, but may also be used to grant direct access to software without an order.  FIGS. 2 through 5  provide screenshots of user interfaces for managing entitlements  
         [0045]     By means of the user interfaces for managing entitlements, a vendor is able to view, create and/or edit entitlements. Entitlement management initially involves searching for and selecting an existing entitlement ( FIG. 2 ), or by creating a new one ( FIG. 5 ). Because entitlements are granted to accounts, the vendor must first select an account ( FIG. 3 ) or create a new one (not shown).  
         [0046]     Entitlement management includes the following options:  
         [0047]     Search Entitlements—the user interface  200  for searching Entitlements provides the following search criteria: 
        Account name;     Account ID;     System Account ID;     Order ID;     System Entitlement ID;     Order date range;     Purchase order no.;     Invoice ID; and     Catalog Item ID (described below).        
 
         [0057]     View Entitlements—The ‘View Entitlement’ screen  400  is accessed either by searching for and selecting an existing Entitlement or by creating a new Entitlement Item. The ‘View Entitlement’ screen displays the current values for Entitlement attributes. This screen also shows the Catalog Items associated with this Entitlement. Clicking on a Catalog Item navigates the user to that Catalog item&#39;s ‘View Catalog Item’ page.  
         [0058]     Entitle Account—Because entitlements are granted to accounts, the system provides a means of locating the account to be entitled, using the ‘Find account’ user interface  300 , shown in  FIG. 3 . When the desired account is located, the actual entitlement is added, wherein the products the account needs to be entitled to are specified. Definition of the entitlement is accomplished using the user interface for creating and editing entitlements  500  as shown in  FIGS. 5   a  and  5   b . Vendor definable Entitlement attributes include: 
        Account name;     AccountID;     System Account ID;     OrderID;     System Entitlement ID;     Order date;     Effective date;     Expiration date;     Purchase order no.;     Invoice ID;     Invoice date;     Sales rep;     Catalog Item ID (described below).     Quantity;     Download limit;     Extended price;     License group; and     Status. 
 
 Product Management 
       
 
         [0078]     Using the product management interface, new product information can be added, or products that are already in the system can be edited or updated, and the corresponding downloadable files added. The invention permits product information to be organized as a multi-level hierarchy. The product management interface allows the vendor to create a variety of objects, each type of object corresponding to a level in the product hierarchy. The product management interface is currently instantiated as both a web based interactive user interface and as a programmatic XML-based interface. One skilled in the art can easily envision additional representations for this functionality. In the current embodiment, products are managed using at least three different levels: Catalog Item, Product, and File. Thus, there exist the following corresponding object types: 
        Catalog Items (price list items) represent a vendor&#39;s discrete product offerings; for example, a product or a maintenance agreement. ‘Catalog Items’ generally are associated with one or more ‘Products’.     Products (product releases) represent the things that the vendor wants delivered, for example, a specific version of a product. ‘Products’ reference one or more ‘Files’.     Files (images) are the actual software files that the end user downloads, for example, the installation executable for a particular platform. A ‘File’ may be associated with one or more ‘Products’.        
 
         [0082]     The invention provides vendor definable-objects for each level of the hierarchy. Attributes for each object are defined by means of the product management interface.  
         [heading-0083]     Catalog Item ( FIG. 16 )  
         [heading-0084]     Editing or Updating a Catalog Item  
         [0085]     The invention includes a search Catalog Item user interface  600  that allows a vendor to locate a Catalog Item using a variety of search criteria. If the search criteria match more than one ‘Catalog Item’, the searcher is presented with a selectable list of Catalog Items satisfying the search criteria.  
         [0086]     Possible search criteria include: 
        Catalog Item ID;     System ID;     Catalog Item description;     Catalog Manufacturer;     Catalog product line; and     Status, i.e. ‘active’ or ‘inactive’.        
 
         [0093]     Upon selecting a Catalog Item, the selected Catalog Item is displayed in the view Catalog Item user interface  700 .  
         [0094]     Having searched for and selected a Catalog Item, the vendor may: 
        Update the item;     Add or delete Products from the Catalog Item;     Re-identify the Catalog Item;     Inactivate/Reactivate the Catalog Item; and     Copy the Catalog item to create new object.        
 
         [0100]     Editing or updating a Catalog Item is by way of the user interface for creating and editing Catalog Items  800 .  
         [heading-0101]     Creating a Catalog Item  
         [0102]     A ‘Catalog Item’ may include any or all or the following vendor-definable attributes: 
        Catalog Item ID—the unique identifier for the particular Catalog Item in the vendor&#39;s system, for example a sale catalog or price list ID;     Catalog Item Description—a brief description of the particular Catalog Item;     Type—possible values: ‘normal’, ‘report only’, ‘ignore SKU’. Can be used to inform the system not to process orders for the Catalog item. Most catalog items would be of ‘normal’ type, but a service agreement would not involve a deliverable product;     Subscription—Yes/No, defaults to ‘Yes’: indicates whether or not the particular Catalog Item is a subscription;     Temporary—Yes/No, defaults to ‘No’: indicates whether or not access to the particular Catalog Item should end when an entitlement expiration date has passed;     Default Duration—defines the default duration to use for an entitlement to the particular Catalog Item;     Download limit—(Yes/No), defaults to ‘No’. If ‘Yes’ is selected, the files associated with Products that are entitled through this Catalog Item may only b e downloaded a limited number of times, specified by Default Maximum Download Limit;     Default Maximum Download Limit—the default maximum number of times that a user will be allowed to download any files associated with the particular Catalog Item;     Catalog Manufacturer—List of configured companies or product groups.        
 
         [0112]     Manufacturer is configured via the “Configuration” menu, described below; 
        Catalog Product Line—the manufacturer to which the particular Catalog Item belongs;     License Group—the license group to use when assigning licenses to entitlements to the particular Catalog Item. License groups are configured at the time of site creation;     Support Agreement—the support agreement for the particular Catalog Item; and     Restricted Certificate (Yes/No)—defaults to ‘No’. If set to ‘Yes’, then only users specifically named on an Entitlement will have access to the products entitled through the particular Catalog Item.        
 
         [0117]     In addition to the vendor-supplied Catalog Item ID, each Catalog Item is assigned a unique system ID at time of creation. Creation of a new Catalog Item is by way of the user interface  800 .  
         [0118]     As shown in  FIG. 16 , a ‘Catalog Item’ is associated with one or more ‘Products’. It will be apparent to one skilled in the art, that the definition of a particular ‘Catalog Item’ may not require the vendor to define all of the attributes listed above.  
         [0119]     Provided herein below is a more detailed description of Catalog Item operations:  
         [heading-0120]     View Catalog Item  
         [0121]     The ‘View Catalog Item’ screen  700  is accessed either by searching for and selecting an existing Catalog Item or by creating a new Catalog Item. The ‘View Catalog Item’ screen displays the current values for Catalog Item attributes. This screen also shows the Products associated with this ‘Catalog Item’. Clicking on a Product Description navigates the user to that Product&#39;s ‘View Product’ page.  
         [heading-0122]     Update Catalog Item  
         [0123]     The ‘Update Catalog Item’ form  800  is used to edit any of the catalog attributes except the ‘Catalog Item’ ID. All existing entitlements based on the Catalog Item remain in place but will reflect the new Catalog Item attributes in the reporting feature and wherever displayed on the system site. Changing the Catalog Item ID requires use of the ‘re-identify’ feature.  
         [heading-0124]     Add/Delete Products to/from Catalog Item  
         [0125]     To Add or Delete Products from a Catalog Item, it must first be identified either by searching for and selecting an existing ‘Catalog Item’, or by creating a new Catalog Item. The ‘Add/Delete Products’ feature lists any Products currently associated with the particular Catalog Item. Selecting a ‘delete’ checkbox next to the product and submitting the deletions deletes the selected Products from the Catalog Item.  
         [0126]     To associate existing Product(s) to the Catalog Item, Choose ‘Associate Product’ from the menu. Search for the Product(s). All matching Products will be displayed. Select the one(s) to associate to the ‘Catalog Item’ and dick the submit button. The Product(s) selected are added to the list of ‘Products in this Catalog Item.’ 
         [heading-0127]     Re-Identify Catalog Item  
         [0128]     The Re-identify feature is used to change the Catalog Item ID. All existing entitlements based on the Catalog Item remain in place but reflect the new Catalog Item ID in the system reporter and wherever displayed on the system site.  
         [heading-0129]     Inactivate/Reactivate Catalog Item  
         [0130]     Selecting ‘Inactivate’ or ‘Reactivate’ from the Catalog Menu changes the status of the particular Catalog Item. When ‘Inactivate’ is selected, the Catalog Item&#39;s status changes to ‘Expired’. New entitlements cannot be processed for expired ‘Catalog Item’s but existing entitlements are not affected. Inactive ‘Catalog Item’s can be restored to active status by selecting “Reactivate” from the ‘Catalog Item’ menu.  
         [0131]     A ‘Copy Catalog Item’ function is used to create a new Catalog Item that is very similar to an existing one. The ‘Copy’ function will take all of the attribute values of the original Catalog Item and copy them into the corresponding fields of a new ‘Add Catalog Item’ form. One can then make any changes necessary to distinguish the new Catalog Item from the original and then save the new Catalog Item.  
         [heading-0132]     Product ( FIG. 17 )  
         [heading-0133]     Editing or Updating a Product  
         [0134]     Products are also searchable by way of the ‘Search Products’ user interface  900  in a manner similar to that previously described for Catalog Items.  
         [0135]     Possible search criteria include: 
        Product ID;     System ID;     Product description;     Product Manufacturer;     Product line; and     Status.        
 
         [0142]     As with Catalog Items, after a Product is selected, it is displayed by way of the view Product user interface  1000 . Having searched for and selected a Product, the vendor may: 
        Update the item;     Add or delete Files to/from from the Product;     Re-identify the Product;     Inactivate/Reactivate the Catalog Item;     Find all Catalog Items that include the particular Product;     Copy Product information as a short-cut to making a new Product having similar characteristics;     Add the particular Product to a selected Catalog Item, or Items; and        
 
         [0150]     Instruct the system to use the particular Product in all Catalog Items where some other product is used, for example, instructing the system of use version 2.1.1 wherever version 2.1 is found; and 
        Send email notification to users who have entitlements which include this Product        
 
         [0152]     The vendor can also create a Catalog Item based on the Product; that is, a Catalog Item having the same ID, Description, Product Line, and so on. Selecting this option navigates the Vendor to a ‘Create Catalog Item’ form that has been pre-populated with the attributes from the Product. When the new Catalog Item is saved, the Product will already be associated with it.  
         [heading-0153]     Creating a Product  
         [0154]     A Product constitutes a logical description of one or more downloadable files, often bundled together as a release. Such deliverable products are associated with one or more Catalog Items that have been previously configured, and through which the Product is entitled. New Products may be created, or existing ones edited by way of a user interface for creating and editing Products  1100 . A Product may include any or all of the following vendor-definable attributes: 
        Product ID—the unique identifier for the particular Product in the vendor&#39;s system;     Description—a description of the particular Product, preferably a user— friendly name for the product. The product description is displayed and used as a landmark when navigating the vendor&#39;s web site;     Product Version—typically a numerical or textual designator;     Available Date—the date when the particular Product should start showing up for members that have entitlements containing it;     Archive Date—Once this date has passed the product/version is no longer actively displayed, but is accessible by selecting an ‘Archive’ tab from the end user interface;     BIS (Bureau of Industry and Standards) classification—includes ECCN (EXPORT CONTROL CLASSIFICATION NUMBER), ENC (ENCRYPTION COMMODITIES AND SOFTWARE), and CCATS (COMMODITY CLASSIFICATION AUTOMATIC TRACKING SYSTEM) codes; specifies the product&#39;s encryption levels and export licenses, allowing the product to be distributed worldwide;     Product manufacturer—A list of configured companies or product groups, Manufacturer is configured via the “Configuration” menu     Product line—Product Line is configured via the “Configuration” menu;     End user license agreement (EULA)—A list of configured click-through agreements that may be associated with a Catalog Item. EULA&#39;s are configured through the ‘Configuration’ menu.     Product Note—Supplemental information for the end user, the Product Note is displayed on the Product Download page of the vendor&#39;s web site.        
 
         [0165]     Physical distribution available—indicates whether or not the particular Product is available through physical distribution in addition to electronic delivery; and 
        Send Update Notification (Y/N)— configurable from a separate screen.        
 
         [0167]     In addition to the vendor-supplied Product ID, each Product is assigned a unique system ID at time of creation.  
         [0168]     As shown in  FIG. 16 , a Product is associated with one or more Files. It will be apparent to one skilled in the art that the definition of a particular Product may not require the vendor to define all of the attributes listed above.  
         [0169]     Provided herein below is a more detailed description of Product operations:  
         [heading-0170]     View Product  
         [0171]     The ‘View Produc’ screen is accessed either by searching for and selecting an existing Product  900  or by creating a new Product  1100 . The ‘View Product’ screen  1000  displays the current values for the particular Product&#39;s attributes. This screen also shows the Files associated with the particular Product. Clicking on a File Description navigates the user to that File&#39;s ‘View File’ page.  
         [heading-0172]     Update Product  
         [0173]     Once a Product has been selected, the vendor can dick on ‘Update’ to edit and update the Product attributes. The Update Product form behaves much like the Create Product form and allows the vendor to modify all of the product information except the ‘Product ID’. If the vendor needs to change the ‘Product ID’, they must use the ‘Re-identify Product’ feature.  
         [heading-0174]     Add/Delete File  
         [0175]     To add or delete Files from a Product, the vendor must first identify the Product either by searching for and selecting an existing Product, or by creating a new Product. The Add/Delete Files form lists any Files currently associated with this Product. To delete one or more of these Files, the vendor must dick on a ‘delete’ checkbox next to the item(s) and then click on ‘Submit’. To associate an existing File to a Product, the vendor must search for and select the Product to which it s desired to associate Files. The vendor then chooses an ‘Associate File’ feature and searches for the File(s). All matching Files will be displayed. The vendor then selects the one(s) to be associated with the Product and dicks the ‘Submit’ feature. The File(s) selected will be added to the list of ‘Files in this Product’. The vendor may also add a specific file to one or more Products by using an “Add To” menu item from the View File screen  1300 .  
         [heading-0176]     Re-Identify Product  
         [0177]     If for some reason the vendor needs to change the Product ID of a Product that already exists in the system  100 , one can do so by selecting ‘Re-identify’ once one has selected a Product. The ‘Re-identify’ form prompts the user for a new Product ID.  
         [heading-0178]     Inactivate/Reactivate Product  
         [0179]     The most common reason to inactivate a Product is that a vendor&#39;s company is retiring the product or product line. Inactivating the Product does not affect accounts that already have entitlements to the Product, although it does prevent new orders for Catalog Items that include the Product from granting new entitlements to the product. Inactive Products can be reactivated by clicking on ‘Reactivate’ once the user has selected the Product.  
         [heading-0180]     Where Used  
         [0181]     A ‘Where Used’ function lets the vendor find all of the Catalog Items that include the particular Product. Clicking on ‘Where Used’ returns a list of the Catalog Items that use the particular Product. Clicking on the name of a Catalog Item within this list will take you to the View Catalog Item screen from which you can also manage the Catalog Item.  
         [heading-0182]     Copy  
         [0183]     To create a new Product that is very similar to an existing one, the vendor can use the ‘Copy’ function on the Product menu. The ‘Copy’ function will take all of the attribute values of the original Product and copy them into the corresponding fields of a new ‘Create Product’ form. One can then make any changes necessary to distinguish the new Product from the original and then save the new Product.  
         [heading-0184]     Add To  
         [0185]     An ‘Add To’ function allows the vendor to associate the particular Product with one or more Catalog Items. After clicking ‘Add To’, the vendor is presented with a Catalog Item Search screen  600 . A wildcard search capability allows the vendor to search for and select Catalog Item(s) to add this Product to.  
         [heading-0186]     Use Where  
         [0187]     In some cases the vendor may not want to explicitly select Catalog Items to associate the particular Product with. An alternative is to tell the system to use the Product wherever some other Product is already being used. That is, to associate the Product with all the Catalog Items with which another Product is associated. When the vendor clicks on ‘Use Where’, a ‘Product Search’ screen  900  is presented. The wildcard search capability allows the user to search for and select the Product(s) that will serve as the template for associating the particular Product with Catalog Items. Note that the ‘Use Where’ function will update all Catalog Items that contain the template Product unless the Catalog Item is a “non-Subscription” item. In order to associate a Product with a non-Subscription item the user must use the ‘Add To’ function.  
         [heading-0188]     Send Notification  
         [0189]     A ‘Send Notification’ function allows the user to provide email text that will be sent to all users who have an entitlement that includes the particular Product. The vendor provides the subject line and the text of the email message.  
         [heading-0190]     File ( FIG. 17 )  
         [heading-0191]     Editing or Updating a File  
         [0192]     ‘Files’ are also searchable, as previously described for ‘Catalog Items’ and ‘Products’ b y way of the search Files user interface  1200 .  
         [heading-0193]     Possible Search Criteria Include:  
         [none]    
       
         
           
              File ID;  
              System File ID  
              Short Description—The “name” of the file that the user sees.  
              File Status (Active, Inactive, or Both); and  
              File Name—Actual system level name of the file; for example, “installer — 2 — 7.zip”.  
           
         
       
     
         [0199]     Having searched for and selected a File the selected File is displayed in the view Files user interface  1300 . After selecting a File, the vendor may: 
        Update the File information;     Upload a file (that is, upload the actual bits associated with the particular File object);     Find all the Products where this File is used (Where Used);     Add the file to one or more Products;     Inactivate/Reactivate the File; and     Instruct the system to use this File in all Products where some other File is used; for example, “use Widget — 2_l.ReadMe.txt wherever Widget — 2_l.exe is found”. 
 
 Creating a File 
       
 
         [0207]     Files are what the end user actually downloads. Files that are part of the same release are grouped together into one or more Products, that are in turn entitled through Catalog Items. Files are created by way of a user interface for editing or creating Files  1400 . A ‘File’ may include any or all of the following vendor-definable attributes 
        File ID—A unique value by which the vendor identifies the particular file, for example an identifier from a release management or source code control system;     Short Description—The file name that the end user sees, ideally a brief but descriptive name, for example, “Enterprise Server 2.4 Solaris”;     Long description—Additional installation information or compatibility hints or to provide detailed information about the file content. Note that if the file provided is in a zip format then the user interface will automatically display the .zip file contents in addition to the information provided by the vendor;     File Sort Order—If numeric values are provided, then the files that are part of the particular Product will be sorted in ascending numeric order. If no sort order is specified or when more than one file has the same ‘File Sort Order’ number, the files will be sorted in alphabetical according to the ‘Short Description’;     Deliver File via (Upload/Other)—‘Upload’ allows the vendor to use a system ‘Upload Product Files’ feature to upload the file from a browser; and     Retrieve From—The vendor specifies the location of the image file. The most common methods of supplying the file are by uploading to the system server, providing a link to an ftp server, or sending CD&#39;s or some other removable medium. When a file is uploaded, this field is filled in automatically. If the file is to be provided from an FTP server, the vendor must provide a fully qualified path to the file. If the file is provided on removable media, information needed to load the file and correctly associate it with the product needs to be provided.        
 
         [0214]     In addition to the vendor-supplied File ID, each File is assigned a unique system ID at time of creation.  
         [0215]     Provided herein below is a more detailed description of File operations:  
         [heading-0216]     View File  
         [0217]     The ‘View File’ screen  1300  is accessed either by searching for and selecting an existing File  1200  or by creating a new File  1400 . The View File screen displays the current values for the particular File&#39;s attributes.  
         [heading-0218]     Update File Information  
         [0219]     Once the vendor has selected a File, they can dick on ‘Update’ to edit and update the File attributes The ‘Update File’ form behaves much like the ‘Create File’ form and allows the vendor to modify all of the product information except the ‘File ID’. If the actual base file has been uploaded and is in the system then the vendor may also update the File Name.  
         [heading-0220]     Upload File  
         [0221]     One can upload the actual system file to an existing File object by selecting ‘Upload File’ from the menu. An ‘Upload File’ form displays the details of the File object the file is being uploaded to. The vendor can either enter a file path (relative to the vendor&#39;s computer) or dick a ‘Browse’ button to open a system window which will allow the vendor to choose the file using the OS file manager. Clicking on ‘Submit’ uploads the file to the system.  
         [heading-0222]     Where Used  
         [0223]     The ‘Where Used’ function allows the vendor to find all of the Products that include the particular File. Selecting ‘Where Used’ returns a list of the Products that use the File. Clicking on the name of a Product within this list will navigate the user to the ‘View Product’ screen  1000 .  
         [heading-0224]     Add To  
         [0225]     The ‘Add To’ function allows one to associate this File with one or more Products. After selecting ‘Add To’, a Product Search screen appears  900 . The wildcard search capability allows the vendor to search for and select the Product(s) to add the File to.  
         [heading-0226]     Use Where  
         [0227]     In some cases, the vendor may not want to explicitly select the Products to which they want the File associated. As an alternative one can tell the system to use this File wherever some other File is already being used. That is, associate this File with all the Products with which another after dicking ‘Use Where’, a ‘File Search’ screen appears. The wildcard search capability allows the vendor to search for and select the File(s) that will serve as the template for associating this File with Products. Note that the ‘Use Where’ function updates all Products that contain the template File unless the Product is a non-Subscription item. Associating a File with a non-Subscription item requires use of the ‘Add To’ function.  
         [0228]     The product hierarchy may also include the following entities: 
        one or more product families;     one or more bundles; and     one or more product lines.        
 
         [0232]     These additional product groupings are defined by way of a ‘Configuration’ user interface (not shown).  
         [0233]     The foregoing listing of levels, objects and object attributes is meant only to be illustrative. Other hierarchies, levels, objects and object attributes may be envisioned by one having an ordinary level of skill in the art, and are entirely consistent with the spirit and scope of the invention.  
         [heading-0234]     Subscription and Non-Subscription Items  
         [0235]      FIG. 18  shows a data flow diagram for 1) non-subscription and 2) subscription items. 
        Non-Subscription items—as shown, customer accounts specifically entitled to separate versions of a vendor&#39;s product, denoted by separate Catalog Items, are granted access only to that version; and     Subscription items—the customer account is granted access based on the effective and expiration dates of the Entitlement and the Product. 
 
 Date Management 
         
         [0239]     As previously described, an end user receives access to a vendor&#39;s product either: 1) through a new entitlement to a ‘Catalog Item’ that has one or more products associated with it, or 2) through a new ‘Product’ update to a subscription-based ‘Catalog Item’ to which the user was previously entitled.  
         [0240]     For subscription Catalog Items, the product selection the end user sees on the service site is determined by the effective dates defined for the Products and the effective period specified on the entitlement to the corresponding Catalog Item. The overlap window between the effective and expiration dates of the Product and of the Entitlement determine which products the end user is granted access to, as shown in  FIG. 19 .  
         [0241]     The invention is implemented and practiced using conventional techniques known to those skilled in the art of computer programming. A number of common programming, scripting, and/or markup languages are suitable for implementation and practice of the invention.  
         [0242]     Although the invention has been described herein with reference to certain preferred embodiments, one skilled in the art will readily appreciate that other applications may be substituted for those set forth herein without departing from the spirit and scope of the present invention. Accordingly, the invention should only be limited by the claims included below.