WO2007072309A1 - Appareil et procédé permettant de distribuer de manière sélective des actifs logiciels par le biais d'une installation soustractive - Google Patents

Appareil et procédé permettant de distribuer de manière sélective des actifs logiciels par le biais d'une installation soustractive Download PDF

Info

Publication number
WO2007072309A1
WO2007072309A1 PCT/IB2006/054787 IB2006054787W WO2007072309A1 WO 2007072309 A1 WO2007072309 A1 WO 2007072309A1 IB 2006054787 W IB2006054787 W IB 2006054787W WO 2007072309 A1 WO2007072309 A1 WO 2007072309A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage medium
data
assets
panoplex
soft assets
Prior art date
Application number
PCT/IB2006/054787
Other languages
English (en)
Inventor
Alan J. Shapiro
Original Assignee
Shapiro Alan J
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/428,374 external-priority patent/US8286159B2/en
Application filed by Shapiro Alan J filed Critical Shapiro Alan J
Priority to CN200680053273.6A priority Critical patent/CN101390050B/zh
Priority to EP06832215A priority patent/EP1969463A1/fr
Priority to JP2008546730A priority patent/JP2009521043A/ja
Publication of WO2007072309A1 publication Critical patent/WO2007072309A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order

Definitions

  • This invention relates to methods and apparatus for digital data processing and, in particular, to subtractive installation, a particularly efficient mechanism for dispensing digital content chosen from a constructed set of possible assets, held within a digital storage medium, by removing those assets external to a customized subset of the possible assets.
  • percepta are soft assets that, by convention, depict qualities, in contrast to "data” representing quantities.
  • Percepta typically represent simple or complex sensory stimuli, of fixed or variable duration.
  • Percepta are generally structured as individually selectable items of self-describing content or organized sets of one or more files.
  • percepta include digital representations of information, while in other embodiments, analog or other types of representations are used. Examples of percepta include still images (including paintings, drawings, and photographs), motion- picture and sound files depicting cinema and video, e-books, radio programs, music, ring tones, virtual-reality simulations, computer games, and fonts.
  • percepta may include representations of other senses, including touch, taste, motion, smell, proximity, temperature, and direction.
  • the installation process must pause for the user to indicate a choice.
  • a user is occasionally required to read and affirm a lengthy end-user licensing agreement.
  • Other times a user might need to separately enter a long, abstract code string, the user's name and address, or other information for validation and activation of every program.
  • Each such action required of the end user represents undue complexity, an inconvenient delay and annoyance, and a potential source of error during the installation process.
  • ECM Contract Manufacturing
  • EMS Electronics Manufacturing Services
  • ODM Original Design Manufacturer
  • a number of patents describe attempts to improve the customization of software on computers, sometimes referred to as a build-to-order process. Such a process typically uses "additive installation” wherein software packages are successively loaded and/or installed on a disk drive.
  • a build-to-order process typically uses "additive installation” wherein software packages are successively loaded and/or installed on a disk drive.
  • United States Patent 6,080,207 System and method of creating and delivering software” issued to Kroening, et al. on June 27, 2000, and is incorporated herein by reference.
  • Kroening et al. describe a computerized method for generating a custom software configuration for a hard drive of a computer system according to a desired software configuration defined by a purchasing customer.
  • the system and method utilize an image builder for creating a disk image of the desired software configuration and transferring the image to a storage device.
  • the storage device is connected to an image server that transfers the disk image (e.g., of a baseline software configuration) directly to the hard drive during a manufacturing and assembly process of the computer system.
  • the image server broadcasts additional data (e.g., of changes corresponding to the difference between the baseline software configuration and the desired software configuration) to the computer system via a wired or wireless connection.
  • Harikrishnan et al. describe a computer program product having a facility for uninstalling itself.
  • the facility only backs up a minimal set of files that may be affected by an installation of the computer program product.
  • the facility dynamically adapts to different possible installations so as to only store compressed backup copies for the particular installation that is to be used.
  • the facility leverages a number of installation files to determine what files to back up. When a program is uninstalled, the backed-up files are restored in an attempt to return the computer system to a state that existed before the program was installed, such that the backed-up files are again on the system in their original form.
  • Curtis describes a method for installing a program onto a computer having an operating system.
  • Dependency objects indicate a dependent component on which the program to install depends.
  • the program processes the dependency objects before installing the program and determines an operating-system command that is capable of determining whether the dependent component is installed in the computer.
  • the program then executes the operating-system command. An indication is made as to which dependent components have been determined to be not installed.
  • the service-provider computer stores information in an update database about the software updates of the diverse software vendors, identifying the software products for which updates are available, their location on the network at the various software-vendor computer systems, information for identifying the software products stored in the client computers, and information for determining which products have software updates available.
  • the client computers connect to the service-provider computer and obtain a current version of portions of the database.
  • the client computer determines from the database which products have updates available.
  • User-selected updates are downloaded from the software vendors' computers and installed on the client computer. Payment for the software updates is mediated by the service-provider computer. Authentication of the user ensures only registered users obtain software updates. Authentication of the software updates ensures that the software updates are virus free and uncorrupted. Changes to the client computer during installation are monitored and archived, allowing the updates to be subsequently removed by the user.
  • the present invention provides a method, article of manufacture, computer program product, and/or apparatus useful for "sideloading" soft assets into a finished device.
  • Sideloading (unlike other processes such as downloading software from the internet, or uploading soft assets from a CDROM) involves quickly generating a storage medium having therein a deeply customized, user-specified set of installed soft assets. Coupling the storage medium, loaded with installed soft assets (i.e., the software), to an information-processing device (i.e., the hardware) makes the device operational (i.e., the hardware and software when co-functionally joined together are substantially ready-to-use).
  • installed soft assets i.e., the software
  • an information-processing device i.e., the hardware
  • Sideloading provides the benefits of an expert-optimized, user-customized installation of a uniquely selected set of soft assets needed to make the hardware operational, without the cost and time previously required to additively install such a set of assets.
  • different portions of the sideloading process are done either before or after the storage medium is coupled to the device.
  • sideloading is made possible by "subtractive installation.”
  • Subtractive installation presents a user with a large active superset of soft assets (a set of maximum complexity) from which to choose. The user chooses which assets are to be kept and non-chosen assets are removed.
  • “Gryphing” is the term used herein as a process to remove from a storage medium, which initially had a vast array of previously installed soft assets, those assets not part of the chosen set of assets to keep (or equivalently, to remove those assets that are part of the set chosen to remove).
  • Gryphing involves culling assets, erasing data and/or uninstalling programs from a directory, registry, and/or other areas of digital storage.
  • gryphing a user chooses a subset of the soft assets for purchase. The user pays only for the software and other soft assets she or he desires, and all other soft assets (those not selected) are culled by the gryphing process. A typical user would not be able to afford to buy all of the soft assets included in the superset, but benefits from the ability to choose, from the wide variety available, just those assets he or she wants to buy. The vendor benefits from the additional sales achieved by the availability of the wide variety of soft assets.
  • the present invention provides for receiving and installing a user-customized order for an information-processing appliance that is to have user-selected computer programs or other soft assets, and, based on the user- customized order, uninstalling unselected items from a storage medium that previously held a selected superset of available assets.
  • selection information may be transmitted to a central server and gryphing information transmitted from a central server.
  • a monetary amount is charged to the user's account based on the selection information.
  • sideloading provides a fully customized and operational processing device (also called an information-processing appliance) by operatively coupling a user-customizable storage medium to the information-processing device.
  • the device could be a personal computer, server, MP3 player, cell phone, digital video recorder, personal digital assistant, game console, vehicle (e.g., an automobile having one or more processors that control the automobile's operation, provide a database for its GPS guidance, preloaded entertainment, and model-specific maintenance documentation and diagnostics), refrigerator, industrial tool, cash register, weapon, or the like.
  • the customized storage medium is formed by subtractive installation of soft assets, wherein the storage medium is preloaded with a superset of soft assets for possible purchase and/or distribution (a collection of available content called a "panoplex"), and is then gryphed to remove non-selected soft assets (creating erased space that can then be used for other data) and to retain selected assets (which are thereby substantially ready to use without substantial effort or additional input from the end user).
  • the panoplex functions as a dispenser (an automated machine that can provide or deliver, when spurred by human operator, something already stored in it) in that it is a virtual container so designed that its contents can be used only in prescribed amounts.
  • the present invention provides a storage medium with a panoplex stored thereon.
  • the panoplex provides the superset of soft assets from which a customizable subset may be selected.
  • the storage medium in that initial state is considered to be an intermediate workpiece; one that has been partially processed according to the present invention to copy the superset of assets onto the storage medium, but which needs further processing to remove those assets not selected for retention and/or to enable for use those assets selected for retention.
  • such a combination might be an end-product itself.
  • the customized storage medium is formed, at least in part, by additive installation of soft assets (e.g., software programs, control algorithms, music, video, still images, databases, and the like) to the storage medium by copying sets of files and modifying operating-system parameters.
  • soft assets e.g., software programs, control algorithms, music, video, still images, databases, and the like
  • additive installation is used after the subtractive installation described above, for programs or other soft assets that happen not to be in the original panoplex and for user-specific information.
  • sideloading using subtractive installation provides user-selected content dispensed from a storage medium into which a superset (a "panoplex") of available content had previously been replicated.
  • a non-selected portion of the available content is subsequently removed by gryphing, leaving the selected content available and/or installed on the storage medium.
  • Selected content is, in effect, "installed” by removal of non-selected content, as the gryphed storage medium is functionally equivalent to a storage medium to which selected soft assets have been properly incrementally installed in a manner that optimizes compatibility and/or the order of installation.
  • the gryphed storage medium for example, an optical disk or disk drive (ODD), magnetic disk drive, or solid-state memory (e.g., FLASH or holographic memory)
  • ODD optical disk or disk drive
  • magnetic disk drive or solid-state memory (e.g., FLASH or holographic memory)
  • solid-state memory e.g., FLASH or holographic memory
  • a device for example, a computer, music player, video player, cell phone or hybrid cell-phone that also plays stored music
  • Such optimal coupling of customized content with a suitably operational device creates an information-processing appliance with appliance-like ease-of-use.
  • the present invention provides a method that includes generating a panoplex that includes a universe of separately selectable installed soft assets, copying the panoplex to each one of a plurality of information-processor- usable, end-user storage media, obtaining a first set of selection data that distinguishes "ipselecta" (i.e., a first subset of the plurality of installed soft assets that are to be retained) from "relicta" (i.e., a second subset of the plurality of installed soft assets that are not to be retained), gryphing a selected first end-user storage medium (culling, erasing and/or uninstalling the relicta from the end-user storage medium as specified by the selection data), and delivering the gryphed end-user storage medium (e.g., delivering it to an end user).
  • a panoplex that includes a universe of separately selectable installed soft assets
  • copying the panoplex to each one of a plurality of information-processor- usable,
  • a charging mechanism charges or debits an account of the user for the retained content
  • gryphing also includes checking whether this particular user is authorized to receive certain of the selected assets, and gryphing may require a specific authorization code (or the like) to be provided in order to unlock those certain ones of the selected assets. In some embodiments, unless a specific authorization code were provided, certain assets would be excluded from the list presented to, or selectable by, the user of the superset of assets from which she or he could select.
  • the ipselecta are individually user-determined notional bundles of content.
  • the first end-user storage medium is selected, based on a fit to the first set of selection data (e.g., from a first customer's choices), from among a plurality of different storage media, each of which has a different one or more panoplexes stored thereon.
  • the list of selections shown to a particular user may be limited based on a criteria determined by the seller or provider (e.g., a retail outlet having a special sale that excludes certain assets otherwise available on the panoplex, or a corporation that limits, or requires management authorizations for, the selections available to its employees of certain departments or ranks or divisions) or by the purchaser (e.g., someone who only wishes to see selections from hip-hop, blues, or jazz).
  • a criteria determined by the seller or provider e.g., a retail outlet having a special sale that excludes certain assets otherwise available on the panoplex, or a corporation that limits, or requires management authorizations for, the selections available to its employees of certain departments or ranks or divisions
  • the purchaser e.g., someone who only wishes to see selections from hip-hop, blues, or jazz.
  • a second storage medium is selected, based on a second set of selection data from a second customer's choices.
  • the second storage medium is then gryphed to obtain a different ipselecta for the second customer's device.
  • the generating of the panoplex includes providing a computer system having an operating system and an installation storage medium, and using the operating system and/or other software to install a plurality of soft assets onto the installation storage medium to initially create a master panoplex.
  • This one-time master-panoplex creation allows experts at the manufacturer or a supplier to select an optimal order and internal storage configuration for installation. They can also determine, adjust, and fix interdependencies and other installation problems among a large number of potentially desired programs and/or other soft assets.
  • the panoplex can vary by operating system and file system, device type and media file type; storage media and copying methods (e.g., fixed, removable, hard disk drive, FLASH, and/or optical), the number of panoplexes installed per device, the sequencing and staging of steps, the location and party undertaking the steps, the degree of method refinement, various combinations of panoplexes, stub installs (installs of software that facilitate activation of already copied software and/or downloads of software and/or upgrades, compliance checking (whether each soft assets complies with a standard that helps ensure interoperability and functionality of various combinations of software), and/or whether the installation of the soft assets is part of manufacturing new devices (such as new personal computers, cell phones, or music players), manufacturing of upgrade devices (such as disk drives or FLASH memories that can be attached to existing personal computers, cell phones, or music players to upgrade their capabilities), or upgrade done at a retail establishment (such as erasing, formatting and reloading of a storage medium in an existing computer).
  • storage media and copying methods
  • the panoplex can be copied en massed a storage medium that is later gryphed to obtain a user-selected subset of soft assets customized to the choosing of a particular end-user.
  • Each purchaser of a device e.g., computer hardware
  • can pick- and-choose any subset of the soft assets e.g., software needed to make the hardware useful
  • Some embodiments include selecting among a plurality of storage media to find one having a panoplex that includes as many of the user's choices as possible.
  • the panoplex is then gryphed based on the customer-selected set of soft assets, such that the non-selected assets (the "relicta”) are erased and/or uninstalled, and the selected assets (the "ipselecta”) are delivered to the user as part of a ready-to-use "new" device.
  • the resulting devices using that storage medium are more reliable than if each end- user were to randomly select an order of installation and additively install a corresponding set of soft assets, and are much more quickly generated than if the manufacturer or end user were to individually install the selected subset of assets even if that were done in an optimal order.
  • two or more panoplexes are stored on a master storage medium.
  • a first selected panoplex is copied from the master storage medium onto each of a first plurality of end-user storage media, and a second selected panoplex is copied onto each of a second plurality of end-user storage media.
  • a selected panoplex is written to a selected plurality of end-user storage media as a last operation in a manufacturing and testing process for a disk drive or other storage medium.
  • a set of zeros or some other blank data pattern i.e., typically not programs or other soft assets are the last data written to the entire data area of the disk, and this last pattern is read and its data compared to the data intended to be written.
  • the writing and reading of the panoplex replaces or follows this last operation.
  • one or more data-encryption, sequestering, or other protection methods are used to obscure and prevent access to the soft assets contained within the panoplex on the end-user storage media unless and until a gryphing program is run on each end-user storage medium.
  • a "blank" directory structure is written to a default location used by an operating system for the directory of the end-user storage medium, such that the storage medium appears to the operating system and user to be substantially blank if used as is by that operating system.
  • actual directory data for the panoplex is written elsewhere on the end-user storage medium or on an external storage device, such that the gryphing program can access the panoplex directory data, gryph it, and write it to the default location used by the operating system for its directory.
  • a selection program presents to a user an interactive user interface that facilitates selection of the soft assets to be retained in the ipselecta.
  • a price/profit-optimization/maximization program is coupled with the selection program to effectively provide different prices for a particular soft asset based on such information as the relative "value" of the particular customer, the other assets, products and services selected for purchase, the overall price and/or profitability of all goods selected, seasonal and/or other temporal information, promotions, sales, or the relationship of a company's current achieved performance metrics to their projected objectives, and the like.
  • FIG. 1 A is ⁇ block diagram of a sideloading process 189 for dispensing soft assets into a personal computer or similar information-processing device.
  • FIG. I B is a block diagram of a sideloading process 190 for dispensing soft assets into a preceptor or similar device.
  • FIG. 1 C is a flow diagram of a process 130 for dispensing soft assets into a storage medium 150.
  • FIG. I D is a flow diagram of a gryphing process 152.
  • FIG. I E is a flow diagram of a network-activated gryphing process 155.
  • FIG.2A is a block diagram of a panoplex-generation and panoplex-gryphing process 200 for creating a storage medium 150 having a customized and/or user-selected set of soft assets.
  • FIG.2B is a block diagram of another panoplex-generation and panoplex-gryphing process 204 for creating a storage medium 150 having a customized and/or user-selected set of soft assets.
  • FIG.2C is a block diagram of a storage device 260 (e.g., embodied on a disk drive 261) having a self-contained gryphing program 240.
  • FIG.2D is a block diagram of a storage device 270 (e.g., embodied on a solid-state drive 271) having a self-contained gryphing program 240.
  • a storage device 270 e.g., embodied on a solid-state drive 271 having a self-contained gryphing program 240.
  • FIG.2E is a block diagram of gryphing process 280 used on a storage device 231.
  • FIG.2F is a block diagram of intransient signal carrier 290 used for a storage device 231.
  • FIG.2G is a block diagram of a process 288 to process a blankoplex 253 used for a storage device 236.
  • FIG.3A is a Venn diagram of a set of soft assets 300.
  • FIG.3B is a Venn diagram of a set of soft assets 350 selected and gryphed.
  • FIG.4A is a block diagram of a process 100 for duplication of a master disk containing a panoplex to be customized and installed in a computer.
  • FIG.4B is a logic flow diagram of one embodiment of the customization 410 of the duplicated panoplex.
  • FIG.4C is a logic flow diagram of content distribution 430, including customization in the manner shown in FIG.4B.
  • FIG.4D is a block diagram illustrating some of the components 400 of the dispensing computer 102 of FIG.4A.
  • FIG.5 is a block diagram of the panoplex 502 duplicated in FIG. 4A, FIG.4B, and FIG. 4C in one illustrative embodiment.
  • FIG. 6 is a block diagram of system-customization logic 600 of FIG.4D in greater detail.
  • FIG. 7 is a logic flow diagram illustrating creation 700 of the panoplex of FIG. 5.
  • FIG. 8 is a logic flow diagram illustrating customization 800 of the panoplex of FIG.5.
  • FIG. 9 shows, in diagrammatic form, the customization 900 of a panoplex for storage in a disk of insufficient capacity to store the panoplex in its entirety.
  • FIG. 10 and FIG. 11 illustrate various panes of a window 1000 and 1100 in a graphical user interface for selection of soft assets of a panoplex.
  • FIG. 12 is a state diagram of various selection states 1200 supported in the graphical user interface shown in FIG. 10 and FIG. 11.
  • FIG. 13 is a block diagram of a pricing engine 1300 for determining a price of selected soft assets of the panoplex.
  • FIG. 14 is a flow diagram of a validation process 1400.
  • FIG. 15A is a flow diagram of a method 1501.
  • FIG. 15B is a block diagram of a system 1502
  • FIG. 15C is a flow diagram of a method 1503.
  • FIG. 15D is a flow diagram of a computer-implemented method 1504.
  • FIG. 16 is a flow diagram of a fast-secure erase method 1600.
  • leading digit(s) of reference numbers appearing in the Figures generally corresponds to the Figure number in which that component is first introduced, such that the same reference number is used throughout to refer to an identical component that appears in multiple Figures. Trailing letters appending reference numbers generally refer to variations of embodiments regarding a component or process. Signals and connections may be referred to by the same reference number or label, and the actual meaning will be clear from its use in the context of the description.
  • one unique aspect of the present invention is that some embodiments actually install, on every device, the maximum feasible software functionality by putting a universe of selectable soft assets (the panoplex) on a flexible base (the intransient signal carrier, in some embodiments).
  • the panoplex is designed, customized and debugged to function on a predetermined hardware base, but the panoplex of soft assets is then depopulated (at an arbitrarily fine level of granularity) to achieve the separate and individual price and functionality point desired by each the customer. Because of the ability to quickly erase data from a storage medium, fast and efficient depopulation is feasible.
  • subtractive installation wherein a storage medium is customized by removal of non-selected content from a superset of available content pre-stored on the storage medium
  • the removal of content from a storage medium is efficient and fast, requires little human interaction, and lends itself particularly well to automation.
  • substantially all the complexities of additive installation are isolated to a one-time process and relegated to experts at a manufacturer when the experts create a customized local universe of available content, referred to herein as a panoplex.
  • a panoplex is instantiated (i.e., copied) onto multiple end-user storage media, from which different sets of extraneous content can be easily identified (e.g., from the logical NAND of the specific set of selections made by a customer with the panoplex set, in some embodiments) and then automatically culled to provide easy, automatic, and scalable customization of content.
  • culling includes making the relicta data unavailable and freeing storage locations that were used for holding the relicta.
  • culling includes any suitable method including erasing directory and other entries that point to the data, erasing some or all of locations holding the data, erasing decryption keys needed to decrypt the data, encrypting the data, marking the storage locations as available for storing other data, defragmenting the storage medium, and/or the like.
  • "Erasing” and “uninstalling” as used herein refer to processes that cause transitions from normal operating- system-mediated data and program availability, to the loss of availability and gain of related storage space.
  • Conscealing” and “obscuring” as used herein refer to techniques for creating storage holding selectively unavailable data and/or programs.
  • erasing can include writing zeros or other data patterns to some or all of the location(s) of data, thereby displacing and/or overwriting the previous data and making that previous data unreadable and unavailable; performing an erase operation (such as are available on certain types of electrically erasable programmable read-only memory chips) that erases one or more entire blocks of data at once; setting status indicators (such as setting or clearing certain bits in at least one directory entry, and/or resetting one or more directory entries or file-allocation-table entries or cluster pointers to a "blank" state that removes name and/or pointer information and/or indicates the directory entry is available for new data) that are interpreted and enforced by operating-system software as indicating that the storage locations of the data are not readable as data or instructions; and/or other suitable methods.
  • an erase operation such as are available on certain types of electrically erasable programmable read-only memory chips
  • "erasing" can include creating a directory that does not include directory information needed by an operating system to access certain particular data that is stored on a storage medium but that is intended to be considered as erased (e.g., soft assets that are to be relicta), but wherein the directory does include directory information needed by an operating system to access certain other data that is stored on a storage medium and that is to be considered as available (e.g., soft assets that are to be ipselecta).
  • uninstalling means transitioning from a state that includes changes made by installing a program to a state that would have existed had the program not been installed.
  • uninstalling (which removes registry information -- e.g., pointers to directories, library files, and or other information used by the operating system to properly execute a program -- and which may or may not remove directory entries or erase other data) is different from erasing (which typically removes directory information and/or sets/clears status indicators in a directory entry but does not typically change the registry).
  • uninstalling replaces one or more library files associated with the program being uninstalled with corresponding files that existed before the program was originally installed (e.g., files installed by earlier- installed programs).
  • a "new device” is one that has not been used for its intended use by its initial end user or purchaser.
  • a new device may, however, have been used (in a manner that utilizes or simulates utilization of the device for its intended use) by the manufacturer or others in the distribution and sales chain for assembly, loading of data, testing and/or burn- in.
  • a new storage device might include a used storage device that has been reformatted to a new "blank" state.
  • an information-processing appliance is any type of digital, analog, or hybrid device that processes stored information, including general-purpose computers, special-purpose computers, embedded computers, enterprise computers, servers, cell phones, wireless email processors (e.g., BlackberryTM-type devices), telephone switches, electronic- planner devices, GPS and/or trip-planning devices preceptors, appliances (such as refrigerators, televisions, washing machines, toasters and the like that include information-processing features), machinery, vehicles, and so on.
  • the information-processing appliance is a storage medium (e.g., a disk drive or FLASH-type memory) that is designed to be connected to other electronics in order to provide its intended function.
  • processor microprocessor, controller, computer and the like are circuits that process data or control operation of a device. Each term refers to a device that may contain one or more units that process instructions and/or one or more logic circuits configured to perform one or more functions. In various embodiments, these terms include tightly or loosely coupled multiprocessors as well as networked processors that each performs different portions of one or more overall functions.
  • an "electronic processor” is a processor that operates on electronic principles, while a “processor” is not so confined and may include one or more electrical, optical, magnetic, acoustic, quantum-spin, and/or other components).
  • the described processor includes one or more electrical, optical, magnetic, acoustic, quantum-spin, and/or other components.
  • the present invention provides an apparatus and method wherein user-selected content is, in effect, "installed” on a storage medium by copying an installed superset of available content (i.e., many more assets than would ever be selected for purchase by a typical purchaser) to the storage medium and culling non-selected portions of the available content to leave the selected content.
  • This subtractive installation to sideload content is efficient and lends itself particularly well to automation. By using such sideloading, all the complexities of additive installation need be performed only once, thus creating an optimized universe of available content from which extraneous content can be removed easily (manually or automatically), allowing customized selections of content to be conveniently distributed. Sideloading content enables customized, ready-to-use devices.
  • a typical retail computer store may only stock an inventory on the order of hundreds of software titles, since the store cannot afford to devote shelf space and financial resources to maintain a large inventory of titles that sell infrequently.
  • a commonly available 300GB disk drive could hold several thousand titles in a preloaded panoplex, and terabyte drives are forthcoming.
  • a "disk drive” is an exemplary storage medium having one or more rotating disks that store data and one or more transducers that read data from and write data to, the one or more disks (which use magnetic, optical, both magnetic and optical, or other suitable technologies).
  • Disk drives typically include a mechanical frame and enclosure (these are sometimes merged as a single unit), one or more circuit boards and/or flexible substrates having surface-mount components soldered thereto, and disk(s) and transducer(s) inside the enclosure.
  • the circuit-board components typically include one or more processors, buffers, coder/decoders (CODECs), transducer interfaces (handling signals to and from the disk transducers), upstream interfaces (handling signals to and from external components such as personal-computer processors or music-player controllers, and using protocols such as IDE, SCSI, SATA, serial SCSI, and the like) and the like, used to provide the functionality of the disk drive.
  • CDECs coder/decoders
  • transducer interfaces handling signals to and from the disk transducers
  • upstream interfaces handling signals to and from external components
  • protocols such as IDE, SCSI, SATA, serial SCSI, and the like
  • the term "disk” will be used for brevity, and from the context, one of skill in the art will recognize that the disk may be the disk itself, removable and exchangeable from the drive described and other drives (such as, for example, a DVDRW disk that can be removably inserted into a DVDRW drive) or may be the disk drive itself, with its disk(s) permanently integrated within the drive (such as, for example, the one or more magnetic disks in a hard-drive unit).
  • a disk drive or a disk as the storage medium
  • any other suitable storage medium such as a solid-state memory unit (e.g., a FLASH drive) or a storage disk itself (i.e., a removable rotating medium such as a floppy disk, CDRW, DVDRW, and the like), which is designed to be removably inserted into a drive.
  • a solid-state memory unit e.g., a FLASH drive
  • a storage disk itself i.e., a removable rotating medium such as a floppy disk, CDRW, DVDRW, and the like
  • the description herein may describe duplicating or copying a disk drive, and from the context, one of skill in the art will recognize that it is some or all of the data on the disk that is being duplicated or copied.
  • the data is rearranged and/or compressed (e.g., in some embodiments, by doing file copying through the operating system, which may place a file onto the destination disk drive in a different location than that file was on the source disk drive), while in other embodiments, the data is copied "bit-by-bit" to form a exact duplicate disk drive with exactly the same panoplex data, partition information, directory information and the like in identical locations on the destination disk drive as it was on the source disk drive.
  • Disk-drive-data replicators are well known in the art, and may be obtained, for example, from ICS (9350 Eton Ave., Chatsworth, CA 91311), which makes an Industrial High-Speed Multiple-Hard-Drive Duplicator used for hard-drive cloning, copying data, upgrading computers and sanitizing hard drives on the production line of major PC Manufacturers, as well as other large- and middle-size corporations.
  • ICS Industrial High-Speed Multiple-Hard-Drive Duplicator used for hard-drive cloning, copying data, upgrading computers and sanitizing hard drives on the production line of major PC Manufacturers, as well as other large- and middle-size corporations.
  • Such equipment provides ease of use for multiple-hard-drive duplication in an industrial environment. It can copy data in different modes, image hard drives of different size and models, erase data, copy hidden partitions, format hard drive, use an SATA adapter to copy Serial ATA Drives and has additional different optional software and hardware features for disk-drive cloning.
  • Another benefit is that erasing content from a storage medium such as a disk, in general, is significantly faster than writing the same content to the same storage medium.
  • a storage medium such as a disk
  • customization by culling of the storage medium in order to store primarily only the selected content
  • This combination of speed and the ability to prepare panoplex copies out-of-sequence relative to the rest of the manufacturing process is a significant factor for relieving throughput bottlenecks when using sideloading to manufacture BTO devices.
  • Yet another benefit is the higher overall system quality achieved from the greater operational stability of content that remains as installed after removal of the culled content.
  • the creator of the panoplex has the opportunity to control the computer environment and the order of installation, and optimize the various elements of content for interoperability.
  • One form of optimization is in the exclusion from the panoplex of soft assets likely to interfere with proper functioning of the other soft assets of the panoplex.
  • Another form of optimization is to offer programs constructed using side-by-side isolation technologies. Other forms of optimization include ensuring proper installation, registration, and unregistration of shared resources.
  • a user inexperienced in software installation can introduce system instability by installing a new program that is not entirely compatible with those already installed on the computer. For example, if the user is installing a program that includes a DLL file that is older than another version of the same DLL file already installed by a previously added program, the user must choose between overwriting the newer DLL and risk impairing the operation of the previously added program, or keeping the newer DLL and risk impairing the program now being installed.
  • the various programs in a panoplex are properly characterized by experts who make astute choices for installation, organization, interoperability and compatibility of the entire set of software, and test the removal process, then the various subsets will be compatible. When programs are removed from the tested set of programs that has been predetermined to be compatible and not to cause catastrophic failure when any particular program is removed from the system, the remaining software is unlikely to become unstable. Thus, the practice of sideloading can put an end to DLL Hell.
  • One synergy that the present invention provides is the ability to provide fine-grained customization of mass- produced computer equipment, including BTO devices, whereby a storage medium, used in conjunction with a device, becomes the vehicle for distributing content appropriate for that device.
  • the panoplex once created and optimized, may be replicated many times (and potentially in many locations) to produce an inventory of computer storage media "blanks" - blank, in the lithic- reduction sense, the same way a large block of marble is a "blank” statue until the extraneous marble is removed.
  • a panoplex can be designed by one or more various parties, including industry specialists, disk jockeys, movie critics, chefs, corporate IT departments, school administrators, and software reviewers, on behalf of equipment manufacturers.
  • the removal of the extraneous soft assets to form the customized memory can be performed in any of a variety of manners and sequences to effect dispensing of customized content to the customer, depending on the embodiment.
  • the content removal can be performed before, after, or concurrently with assembly of the hardware into which the customized disk is to be installed.
  • the content removal can be performed by a variety of entities, including the original equipment manufacturer (OEM) of the hardware and their contractors, by a value-added reseller, by an enterprise IT (information technology) organization, by a retailer, or by the customer.
  • content removal may be done by a separate computer.
  • culling is done by the device into which the storage medium is installed.
  • Content removal may be controlled locally or remotely via a network, depending on the embodiment.
  • copies of a panoplex can be alternatively manufactured by various parties in the supply chain prior to content removal.
  • Removal of the non-selected content from a panoplex within a storage medium enables dispensing the selected soft assets from the panoplex by the same methods and apparatus by which the storage medium itself is dispensed - e.g., as an integral part of a device or system sold through hardware sales and delivery channels, or as a part sold through hardware sales and delivery channels for direct inclusion in an appropriate device or system, as with an upgrade to a new operating system.
  • Marketing channels that benefit from the present invention include, for example, direct-to-customer Internet sales BTO OEMs.
  • An order to a personal-computer vendor e.g., Dell
  • a desktop computer having a 120GB disk drive includes the option to choose assets from a panoplex installed thereon.
  • the present invention provides a vast selection of possible software, games, and/or music preinstalled and operable when the computer is delivered.
  • a separate assembly line parallel to the hardware assembly lime is provided at the vendor for gryphing disk drives plugged into a controller alone (i.e., without the final device hardware, for gryphing according to each purchaser's order) and the gryphed disk drive for a particular customer is later inserted into a personal computer as it is assembled.
  • the gryphing is accomplished during the hardware test and burn-in cycle.
  • the choices for various soft assets from a particular user are analyzed to determine which panoplex of a plurality of possible pre-built panoplexes best matches the user's choices, and a disk drive having that selected panoplex is gryphed for that particular user and delivered in a finished ready-to-use device.
  • various panoplexes are provided for different customer segments (e.g., small business/home office, hobbyists, gamers, music-lovers, dry cleaners, engineers, architects, and the like).
  • different pricing formulae are tied to different customer segments, different time periods, different offerings available from competitors, the overall state of the national economy, and/or different corporate internal financial requirements.
  • customer-unique customization is also performed, such as inserting (to the proper locations in storage) the end user's name, address, time zone, company and department name, and/or the like.
  • the computer is ready to run as soon as it is unloaded from the shipping box.
  • some or all of the gryphing process is automatically run in the customer's home or place of business when the computer is first plugged in, with little or no input required from the customer, such that when this gryphing process completes, the computer is ready to run.
  • An exemplary but hypothetical scenario of some embodiments is as follows: Bill is tired of figuring out his income taxes by hand. He has a computer he can use at work, but doesn't want to bring into the office his sensitive financial files. He browses the Dell web site and sees that they sell TurboTax for $15. He is happy because it costs twice that at the Intuit web site and the best price he could find on Froogle was five dollars more. He decides he only needs a simple office suite, so he picks StarOffice 11 Office Suite for $20, figuring a $300 savings over Microsoft Office. He realizes that he would like to research his family's history. Dell offers a choice of thirteen products. After reading the accompanying reviews, he chooses Legacy, the cheapest at $15.
  • Figure IA is a block diagram of a sideloading process 189 for dispensing soft assets into a personal computer 104 or similar information-processing device, for example, a new device being purchased by its initial user.
  • Conventional methods for dispensing soft assets into a personal computer 104 occasionally include downloading 192 of soft assets from a network 191.
  • network 191 could be a manufacturer's internal network used to preload soft assets into a device being assembled.
  • software and music are commonly available for purchase (or even for free, in some cases) and immediate download from the internet 191 via a process of "downloading.”
  • some assets are available as downloads from proprietary wireless networks 191, such as those operated by cell-phone carriers.
  • one aspect of sideloading process 189 of the present invention provides sideloading 198 of soft assets, wherein ⁇ large chosen set (an "ipselecta") of soft assets are in effect loaded en masse onto a storage medium 150 that is operatively coupled to computer 104, either before or after the ipselecta are in effect loaded onto the storage medium.
  • storage medium 150 includes a disk drive and/or FLASH card or chip (e.g., a SanDisk®, TransFlash® or microSD® card) or any other suitable storage medium that is preloaded (for example, as described below for Figure 2A or Figure 2B below), then plugged into an appropriate slot or cradle and connected by appropriate signal and power cabling to other hardware in computer 104, resulting in an operational, ready-to-use device 104, also known as "awesome out-of- the-box.”
  • a disk drive and/or FLASH card or chip e.g., a SanDisk®, TransFlash® or microSD® card
  • any other suitable storage medium that is preloaded (for example, as described below for Figure 2A or Figure 2B below), then plugged into an appropriate slot or cradle and connected by appropriate signal and power cabling to other hardware in computer 104, resulting in an operational, ready-to-use device 104, also known as "awesome out-of- the-box.”
  • Figure I B is a block diagram of a sideloading process 190 for dispensing soft assets into a "precepter" 105 or similar device.
  • Precepters are devices that process percepta, including but not limited to MP3 players, multi-function cell phones, video players and the like, and thus receive and output sensory stimulation to a user's senses (i.e., sight and sound, as well as touch, smell, temperature, and the like).
  • Process 190 is similar to process 189 of Figure IA, except that often an intermediate device such as computer 104 is typically required as a download intermediary between network 191 and precepter 105 for downloaded "percepta" (such as songs or other audio and/or video files) or other soft assets.
  • An intermediate device such as computer 104 is also frequently required as a media-install intermediary between physical media 193 and preceptor 105 for manually installed soft assets (such as songs that are read from a music CD, compressed (or “ripped”), and loaded into an MP3 player)
  • manually installed soft assets such as songs that are read from a music CD, compressed (or “ripped"), and loaded into an MP3 player
  • one aspect of sideloading process 190 of the present invention provides direct sideloading 198 of soft assets, wherein a preloaded storage medium 150 is operatively coupled to preceptor 105, either before or after the ipselecta are chosen and made available.
  • storage medium 150 is preloaded (for example, as described below for Figure 2A or Figure 2B), then plugged into an appropriate slot and connected by appropriate signal and power cabling to other hardware in preceptor 105 (which is, in some embodiments for example, a cell phone and/or music player), again resulting in an operational, ready-to-use device.
  • the sideloading into a preceptor is supplemented by also downloading and/or manually installing soft assets that were not in the ipselecta.
  • FIG. 1 C is a flow diagram of a process 130 for dispensing soft assets into a storage medium 150.
  • process 130 includes obtaining one or more compliance definitions 131 (that define the standards, interfaces, and other requirements to make software or other soft assets compatible with process 130) by independent software vendor (ISV) 132.
  • ISV 132 produces a set of soft assets 133 (including, e.g., software programs, data, and percepta content) that is compatible due to ISV conforming to the compliance definitions 131 during the process of producing soft assets 133.
  • a p ⁇ noplex-cre ⁇ tion program or process 134 aggregates a plurality of soft assets 133 from one or more ISVs 132 and installs the soft assets to create a panoplex master 135.
  • Replication process 136 obtains a plurality of blank storage media 235, and onto each stores a copy of panoplex 211 from the panoplex master to create intermediate workpiece storage medium 230.
  • a purchaser or user 99 indicates to gryphing process 140 her or his choice of soft assets that are to be retained (the ipselecta 255), and gryphing process 140 performs a selective uninstall to customize the storage medium 230 and thus create storage medium 150 having the customized and/or user-selected set 255 of soft assets.
  • FIG. I D is a flow diagram of subtractive installation using a gryphing process 152 for processing a first storage medium having a prewritten plurality of installed soft assets.
  • the gryphing process 152 includes OBTAINING SELECTION DATA 153, and AUTOMATICALLY MODIFYING THE FIRST STORAGE MEDIUM 154 based on the selection data such that, in place of those assets not relevant to the selected assets, erased space becomes available for storage of other data, and selected assets are available as installed.
  • the installed assets are unavailable to the end user of the device that ultimately uses the storage medium unless and until the modifying operation is run (in contrast to a conventional system that might allow a user to delete multiple files after selecting those files, in which case those files would have been available to the user before the delete operation, and would have remained available if the delete operation were not to be performed).
  • selection data or “selection information” in association with the gryphing process and apparatus refer to any information that can be used to distinguish “ipselecta” (i.e., a first subset of the plurality of installed soft assets that are to be retained, also called “selected assets”) from “relicta” (i.e., a second subset of the plurality of installed soft assets that are not to be retained, also called “non-selected assets”).
  • the selection data can list or otherwise identify the selected assets that would be kept and made available to the user, while substantially all other assets would be implied to be non-selected assets to be culled, erased, uninstalled, made unavailable, and/or otherwise removed.
  • the selection data can list or otherwise identify the non-selected assets, and substantially all those assets would be assets to be culled, erased, uninstalled, made unavailable, and/or otherwise removed, while all other assets would be implied to be selected assets to be kept and made available to the user.
  • the selection data can include names of assets, coded data associated with assets (e.g., product identifiers (such as universal product codes), serial numbers, indices, tables, databases, or the like), addresses where the assets are located, or any other suitable information usable to identify assets to be kept, assets to be culled, or both assets to be kept and assets to be culled.
  • the selection data may be inferred, such as when a component (such as a spell checking program) may be shared, and only when all the possible using programs of that component (such as word processors, spreadsheet programs, and databases) are non-selected, then the shared component would then be a non-selected asset.
  • a component such as a spell checking program
  • programs of that component such as word processors, spreadsheet programs, and databases
  • the unavailability is accomplished by software encrypting, directory unavailability or obscuring, file-allocation-table-linked-list reordering, or other techniques.
  • the assets on the storage media would not be readily available to a user who obtained possession of a storage medium having a panoplex, even before gryphing is performed, in order to prevent unauthorized release of the assets to the public.
  • Some operation performed in conjunction with the culling operation of the gryphing (such as creation of a working directory structure, decrypting of the soft assets, or other data manipulation operation) is required before one or more of the assets became available. These protections for the panoplex are termed data security.
  • the storage media are kept in locked or physically secure locations or vehicles (also called supply-chain quarantine), wherein the corporations and/or other entities having possession of the storage media that hold panoplexes are not released to a user until gryphing of the assets is performed.
  • These protections for the panoplex are termed physical security.
  • a residue of the panoplex and the gryphing operation(s) performed on it are left on the storage medium (e.g., a permanent serial number or other code(s) associated with such data, or one or more hidden sectors or other indicia of which panoplex was once stored, and/or which assets were culled or made available), in order to provide evidence of unauthorized reconstruction or use of assets that were not selected and/or paid for, to allow for legal prosecution of perpetrators of such unauthorized reconstruction or use.
  • legal contracts (such as click licenses) supplement such information.
  • Figure I E is a flow diagram of a network-activated gryphing process 155 for processing a first storage medium having a prewritten plurality of installed soft assets.
  • the network-activated gryphing process 155 includes obtaining 153 selection data, sending 157 gryphing commands and selection data across a network (parts of which, in some embodiments, are wireless) to a gryphing program and automatically gryphing 158 the first storage medium 154 based on the selection data such that, in place of those assets not relevant to the selected assets, erased space becomes available for storage of other data, and selected assets are available as installed.
  • a dispensing computer (see, e.g., dispensing computer 102 in Figure 4A or Figure 4D) is called or includes a grypher or gryphing device.
  • the present invention provides an apparatus having a grypher that includes that dispenses a customized set of soft assets chosen for installation to a device of a particular user) is coupled to a network.
  • the dispensing of soft assets includes gryphing of a panoplex, which is controlled across the network.
  • the network is any suitable network, such as a LAN (local-area network), SAN (storage-area network), or WAN (wide-area network) including the Internet, for example.
  • a network may be wireless, as with a cellular phone, Wi-Fi, Wi-Max network, or the like, and is accessed from the dispensing computer using network-access circuitry (see, e.g., network-access circuitry 409 in Figure 4D) that sends and receives data through such a network.
  • the network-access circuitry includes Ethernet circuitry and controls the gryphing process across a wired network across a local-area network; while in other embodiments, the local network is also attached via a suitable router or modem to a wide-area network such as the Internet.
  • the purchaser effectively connects the newly purchased or ungryphed device to an internet connection and the gryphing process is controlled from a remote or centralized computer facility while the new device is in the user's possession.
  • a purchaser connects a new personal computer (e.g., purchased from a vendor such as Acer) to an internet connection at the purchaser's home or place of business, and gryphing occurs in the personal computer in the purchaser's home or business.
  • the network-access circuitry includes wireless connectivity.
  • a purchaser connects a new cellular telephone, optionally including a MP3 music player (e.g., purchased from a vendor such as Sprint) to a cellular network (e.g., by making a telephone call to a particular special telephone number) from anywhere (e.g., a local coffee shop), and gryphing occurs there.
  • a purchaser connects a new laptop, optionally including a Wi-Fi connection (e.g., purchased from a vendor such as HP) to a Wi-Fi network from a Wi-Fi hotspot (e.g., a local internet-cafe or airport), and gryphing occurs there.
  • a Wi-Fi connection e.g., purchased from a vendor such as HP
  • a Wi-Fi hotspot e.g., a local internet-cafe or airport
  • gryphing occurs there.
  • control of culling the extraneous content is exercised across a network.
  • at least a portion of the network is wireless.
  • FIG. 2A is a block diagram of a process 200 for creating a storage medium 150 having a customized and/or user- selected set of soft assets 255.
  • storage medium 150 once completed, is sideloadable according to the descriptions for Figure IA and Figure I B above.
  • process 200 includes a panoplex-generation process 201 and panoplex-gryphing process 202.
  • a plurality of soft assets 297 is installed into an installation storage medium (ISM) 210 using one or more installation programs 298. In some embodiments, this operation is performed with ISM 210 coupled to and controlled by a device that is similar to the final device 260 (see Figure 2B).
  • ISM installation storage medium
  • ISM 210 is an initially blank, formatted storage medium onto which a plurality of soft assets (e.g., software programs or MP3 songs) is installed using one or more installation programs 298.
  • panoplex 211 is then copied to a master storage medium (MSM) 220 (for example, a large-capacity disk drive having one or more other panoplexes (e.g., panoplex 221 and panoplex 222) stored thereon.
  • MSM master storage medium
  • ISM 210 is then reformatted and again used to create a different panoplex having a different set of soft assets.
  • an inventory of at least one blank end-user storage medium 235 is converted to intermediate workpiece 230 by copying into it the data for panoplex 211 (e.g., the software portion) from MSM 220.
  • blank end-user storage medium 235 is, in some embodiments, a disk drive or FLASH card that is part of the complete hardware 260 for the final user device (i.e., it is a complete hardware combination 260 with an embedded blank storage medium as described in Figure 2B).
  • panoplex- gryphing process 202 a blank end-user storage medium 235 becomes, by copying a panoplex 211 onto it, an intermediate workpiece 230, and this becomes, after gryphing to remove relicta data, gryphed storage medium 150.
  • panoplex-gryphing process 202 includes obtaining a set of gryph source data 232 from the panoplex 211 on an intermediate workpiece 230, obtaining ipselecta-relicta selection data (IRSD) 233 that indicates the selections of soft assets of a particular user, and gryphing the panoplex 211 by using gryphing program 240 to achieve subtractive installation.
  • the subtractive installation accomplished by gryphing program 240 culls the relicta (the soft assets that are to be removed), leaving erased space 258 in the place of the culled soft assets, and retaining the ipselecta 255 (the soft assets selected to be retained) to obtain a gryphed storage medium 150.
  • the gryph source data 232 includes the data for the directory and the registry
  • the gryphing program removes the directory entries and the registry entries for the relicta, and then writes the resulting directory and registry to their respective locations (i.e., the locations on the storage medium where the operating-system software expects to find this data) on intermediate workpiece (storage medium) 230, thus forming the gryphed storage medium 150. That is, a blank end-user storage medium 235 becomes, by copying a panoplex 211 onto it, an intermediate workpiece 230, and this becomes, after gryphing to remove relicta data, gryphed storage medium 150.
  • the following is sample code for reading the installed programs and list-driven uninstalling.
  • the first program code shows that you do not, in every embodiment, really need the .ppx manifest to determine what programs are installed.
  • the second code shows a method for bulk uninstall of the relecta.
  • the text preceded by a single quote is comment text for the code.
  • the following first code creates a text file listing of the products on the system that were installed with Windows Installer. It writes the identifying Guid and name to the file. This just illustrates how to produce a list of the Guids.
  • This Visual Basic-type script when run, generates as its output, a file called prods.txt. From the prods.txt file, the user can choose the soft assets to retain.
  • test.txt that has the same layout as the file prods.txt produced by the listallproducts script above.
  • This script should not be run on a typical personal computer (i.e., one not set up for gryphing), since it will uninstall all listed files, in some embodiments. If one were to run this script and test.txt equaled prods.txt, it would uninstall everything listed in that file. Rather, soft assets selected to retain are removed from prods.txt to create test.txt.
  • the functional part is the Installer.ConfigureProduct call. That is what does the uninstall, and the preceeding line that sets UILevel can be tailored to show as much or as little user interface as required.
  • Option Explicit is what does the uninstall, and the preceeding line that sets UILevel can be tailored to show as much or as little user interface as required.
  • the culling includes a "fast secure erase” that clears or obscures the directory entry (e.g., zeroing or overwriting the directory-entry information with other data that makes it difficult to identify the name, identity, and/or location of the asset that was erased, and/or zeros or reorders the order of sectors of a file (e.g., in a file-allocation table or NTFS data structure), in order to make much more difficult any attempt to access or reconstruct the data that makes up the asset. See Figure 16, below.
  • the ipselecta-relicta selection data 233 is data that is interactively elicited and received from the end user (e.g., the purchaser of the final device).
  • the IRSD 233 specifies each soft asset in the panoplex and whether that respective asset is to be kept or culled. In other embodiments, the IRSD 233 specifies only the soft assets in the relicta, wherein the non-specified assets are retained as selected assets by default. In some embodiments, the IRSD specifies the particular order in which the relicta are to be uninstalled.
  • IRSD 233 specifies which soft assets in the panoplex are to be kept (i.e., specifying the ipselecta), implicitly specifying that the relicta are all other soft assets on the panoplex (i.e., in these cases, IRSD 233 specifies only the soft assets in the ipselecta, wherein the non-specified assets are culled as non-selected assets by default).
  • the gryphing program 240 or a table that it uses specifies the particular order in which the relicta are to be uninstalled.
  • the IRSD specifies some or all of the selected assets and some or all of the non- selected assets, and the other assets are implied to be selected assets to be kept or non-selected assets to be culled.
  • the monetary amount of a purchaser's order could imply certain assets (e.g., bonus assets) would be provided for free, while those assets would otherwise need to be separately selected and paid for.
  • a user could specify a price limit (e.g., "sell me all songs that are available for $0.99 or less each," or "give me all free songs that will fit on the storage medium but still leave me 200GB of erased, empty or available space").
  • IRSD 233 specifies to financial invoice/charging program 241 which soft assets in the panoplex are to be charged for, and financial invoice/charging program 241 charges (in some embodiments, based on pricing rules
  • invoice includes any mechanism or facility to transfer, obtain, or ask for payment from a purchaser;
  • invoicing includes any mechanism or facility to ask for payment or create a debt, such as, for example, creating an invoice that is mailed or electronically transmitted to a purchaser and that requests or demands future payment or otherwise debits a credit-card account; and
  • deducting includes any mechanism or facility for transferring money at substantially the present time from a purchaser's account to an account for the benefit of the seller.
  • each intermediate workpiece 230 includes, as part of panoplex 211, sufficient gryph source data 232 (e.g., directory and registry data) to provide the information needed by gryphing program 240 to cull the undesired/unselected relicta portion of panoplex 211, under control of the IRSD 233.
  • each intermediate workpiece 230 includes the program code of gryphing program 240, such that alone or with the assistance of external operating- system code, the gryphing can be accomplished (either in the final device 260, or by a dedicated gryphing system).
  • FIG. 2B is a block diagram of another panoplex-generation and panoplex-gryphing process 204 for creating a storage medium 150 having a customized and/or user-selected set of soft assets 255.
  • process 204 includes a panoplex-generation process 205 and panoplex-gryphing process 206.
  • a plurality of soft assets 297 is installed into an installation storage medium (ISM) 210 using one or more installation programs 298.
  • ISM installation storage medium
  • panoplex 211 is then copied in two parts (panoplex ' 226 (the panoplex less a certain amount of gryph data) and gryph data set 229) to a master storage medium (MSM) 223.
  • MSM 223 has one or more other panoplexes (e.g., panoplex ' 224 and panoplex ' 225) and corresponding gryph data sets (e.g., gryph data set 227 and gryph data set 228) stored thereon.
  • gryph data sets e.g., gryph data set 227 and gryph data set 228, stored thereon.
  • an inventory of one or more intermediate workpieces 231 (which are each, e.g., a hardware/software combination) is created by copying the data for panoplex ' 226 (e.g., the software portion) from MSM 223 to a corresponding number of blank end-user storage media 235 (the hardware portion, e.g., a disk drive or FLASH card).
  • An individual one of the inventory of intermediate workpieces 231 is supplied, as needed, to panoplex-gryphing process 206.
  • the gryph data set 229 is transmitted, transported, and/or supplied as gryph source data 232 that is input to gryphing program 240.
  • panoplex-gryphing process 206 includes obtaining a set of gryph source data 232 from the gryph data set 229, using a user interface and/or input device 259 to present choices and/or prices to a purchaser and elicit responses and receive selections (and, in some embodiments, receiving a credit-card number, bank information for a virtual cheque, or other information regarding the financial transaction corresponding to the selections) from the purchaser and thereby obtaining ipselecta-relicta selection data (IRSD) 233 that indicates the selections of soft assets of a particular user, and gryphing the panoplex ' 226 by using gryphing program 240 to achieve subtractive installation.
  • IRSD ipselecta-relicta selection data
  • gryphing program 240 executed in a computer having an interface 251 (e.g., serial ATA, USB2, or other suitable interface) to the storage medium.
  • the subtractive installation performed by gryphing program 240 culls the relicta (the soft assets that are to be removed), leaving erased space 258 in the place of the culled soft assets, and retaining the ipselecta 255 (the soft assets selected to be retained) to obtain a gryphed storage medium 150.
  • the set of ipselecta 255 include the ipselecta directory 252, the ipselect ⁇ registry 254, and the ipselecta asset data 256.
  • each intermediate workpiece 231 omits from panoplex ' 226, sufficient gryph source data 232 (e.g., directory and registry data) to make the soft assets of panoplex ' 226 substantially useless unless rejoined with gryph source data 232 (obtained or received from a different source) and gryphed by gryphing program 240.
  • intermediate workpiece 231 is operatively coupled to end-user device 260 before the gryphing program executes.
  • end-user device 260 is substantially or completely ready-to- use and functional for its end user.
  • each intermediate workpiece 231 includes the program code of gryphing program 240, such that alone or with the assistance of external operating-system code, the gryphing can be accomplished in and by the final device 260.
  • FIG. 2C is a block diagram of a rotating-media storage device 260 (e.g., embodied on a disk drive 261) having a self-contained gryphing program 240.
  • a rotating-media storage device 260 e.g., embodied on a disk drive 261 having a self-contained gryphing program 240.
  • process 202 is performed in the storage device 260.
  • disk drive 261 has one or more rotating disks 269 having data stored thereon, wherein the data is written and read by transducer 259 that is moved to selected data positions by actuator 257.
  • disk drive 261 also includes various electronics including processor or controller 263, a data/instruction store 265, one or more buffers 264, and an external-device interface (also called a system interface) 262 used to accept data-transfer requests from an external device, and to send data to and receive data from the external device such as the electronics of a personal computer 104 (see Figure IA) or preceptor 105 (see Figure I B) through connector 256 (e.g., a serial ATA (SATA), serial SCSI, universal serial bus (USB), IEEE 1394 FirewireTM connector, or other suitable interface).
  • the data on disk(s) 269 is divided into two or more subsets, including a user-data subset 258 and the disk drive's reserved-area subset 268.
  • control program 266 and access-control program 267 are used to control operation of disk drive 261, and to translate or map system addresses (e.g., logical-block addresses (LBAs) used by the external system to access disk-drive data) into disk-drive addresses (e.g., cylinder-head-sector (CHS) addresses used by controller 263 to access data on disk drive 269).
  • LBAs logical-block addresses
  • CHS cylinder-head-sector
  • the present invention uses a basic low-level operating system such as MS-DOS, which allows read and write access to any disk sectors, including those used by the high-level operating system for its directory (including the NTFS directory). See the description of Figure 16, below.
  • that mapping process is also used to reassign spare sectors for those sectors that have failed or have unreadable or uncorrectable data, and to prevent user access to reserved area 268.
  • a panoplex 211 (see Figure 2A) is initially stored on disk drive 269, but access to the data in the panoplex 211 by external devices is blocked by access-control program 267 until gryphing program 240 has been run to cull the unselected soft assets (relicta) and/or to charge the user for the retained assets (ipselecta 255).
  • control parameters, authorization codes and/or decryption keys are sent to gryphing program 240 through system interface 262 by an external device (such as an ordering, customization and/or selection computer), in order to enable gryphing program 240 to perform its gryphing operation, which, once completed, provides full access to the ipselecta 255.
  • Access-control program 267 prevents reading the panoplex data before gryphing and the relicta data after gryphing.
  • the access-control program 267 will allow such normal use but will present zeros or some other data pattern instead of the panoplex data if any user-data sector is read before the system writes data to it. This allows the same disk drive 261 to be used as a gryph-able panoplex (if interfaced to a gryphing-program controller before first use) or as a normal blank drive (if accessed first by any other program), thus providing economies of scale and reducing inventory requirements to the system manufacturer.
  • FIG. 2D is a block diagram of a solid-state device 270 (e.g., embodied on a flash or other type of solid-state memory device or drive 271, or in some embodiments, the solid-state memory is part of a preceptor 105) having a self-contained gryphing program 240.
  • the operation of device 270 is substantially the same as described for device 260 of Figure 2C, and most or all of process 202 (see Figure 2A) is performed in the storage device 270.
  • solid- state drive 271 has one or more memory chips 279 having data stored thereon (e.g., using non-volatile memory such as FLASH, or memory that uses a thin-film battery embedded in device 270).
  • solid-state drive 271 also includes various electronics including processor or controller 263, a data/instruction store 265, zero or more buffers 264, and a system interface 262 used to accept data-transfer requests and to send and receive data from an external device such as the electronics of a personal computer 104 (see Figure IA) or preceptor 105 (see Figure I B) through connector 256 (e.g., a USB connector).
  • the data on chip(s) 279 is divided into two or more subsets, including a user-data subset 258 and a reserved-area subset 268.
  • control program 266 and access-control program 267 are used to control operation of solid-state drive 271, and to translate or map system addresses (e.g., logical-block addresses (LBAs) used by the external system to access disk-drive data), into chip-sector addresses used by controller 263 to access data on chip(s) 279). That mapping process is also used to reassign spare sectors for those sectors that have failed or have unreadable or uncorrectable data, and to prevent user access to the reserved area 268.
  • LBAs logical-block addresses
  • a panoplex 211 (see Figure 2A) is initially stored on chip(s) 279, but access to the data in the panoplex 211 by external devices is blocked by access- control program 267 until gryphing program 240 has been run to cull the unselected soft assets (relicta) and/or to charge the user for the retained assets (ipselecta 255).
  • control parameters, authorization codes and/or decryption keys are sent to gryphing program 240 through system interface 262 by an external device (such as an ordering, customization and/or selection computer), in order to enable gryphing program 240 to perform its gryphing operation, which, once completed, provides full access to the ipselecta 255.
  • Access-control program 267 prevents reading the panoplex data before gryphing and the relicta data after gryphing.
  • FIG. 2 E is a block diagram of a gryphing process 280 used on a storage device 231.
  • gryphing process 280 obtains intermediate workpiece 231 having a copy of the data for panoplex ' 226 (e.g., the software portion) stored on a blank end-user storage media 235 (the hardware portion, e.g., a disk drive or FLASH card).
  • ipselecta-relicta selection data (IRSD) 233 indicates the selections of soft assets of a particular user, and in some embodiments as shown here, includes pointers to the individual ipselecta members 281 (the soft assets to be retained that together form the ipselecta 255), such that culling process 283 removes or erases the relicta 282 (the soft assets not selected and other data not relevant to the ipselecta 255).
  • the resulting storage medium 150 having the customized and/or user- selected set of soft assets (for example, a collection of software and/or audio and/or video files) is then ready for use.
  • the IRSD 233 specify the individual relicta members that the culling process 283 is to remove or erase.
  • a defragmentation process 284 is also run to optimize the locations of the stored ipselecta 255 and the performance of the device that will use the ipselecta 255, and/or to provide additional assurance that the relicta cannot subsequently be reconstructed or unerased and later used.
  • the panoplex e.g., panoplex ' 226 or other variations such as panoplex 211
  • contains the universe of selectable soft assets that have been installed e.g.,
  • FIG. 2F is a block diagram of intransient signal carrier 290 used for a storage device 231.
  • lntransient signal carrier 290 is any mechanism that can deliver soft assets to a device at an arbitrary future time.
  • transient signal carriers such as radio waves and network signals on a wire or fiber
  • soft assets are stored data or information (which include software, programs, audio, video, or other assets, whether in digital, analog, or any other form).
  • intransient signal carrier 290 is a storage medium 150 having soft assets stored thereon that can be coupled to a computer 104 or preceptor 105.
  • intransient signal carrier 290 can be gryphed to remove non-selected assets, enable selected assets, and/or provide available space to place other information in place of the removed non-selected assets.
  • some or all of the device's operating system 293 is stored elsewhere, but is used to access information from the intransient signal carrier 290, using such structures as the program registry 292, the file directory 294, and/or MSI installer database 295.
  • the operating system 293 is completely maintained within the intransient signal carrier 290.
  • a set of user-specific data that customizes the device for a particular user, called insignification, 296 is stored on the intransient signal carrier 290.
  • parts of insignification 296 are contained within the program registry 292.
  • an asset-security program or device 297 (such as an "Ultimate Packer for Xecutables" (UPX)-derived protection system) is used to protect the assets from unauthorized use.
  • a manifest 298 is provided, which tracks which assets are on the panoplex, and provides a preferred order for removal.
  • some or all of the data of file directory 294, registry 292, MSI installer DB 295, insignification data 296, manifest data 298, gryphing API 242, and/or other data are stored on the intransient signal carrier 290, while in other embodiments, some or all of these data are stored elsewhere and brought together with intransient signal carrier 290 as and when needed.
  • FIG. 2G is a block diagram of a process 288 to process a blankoplex 253 stored on a storage device 236.
  • the process of gryphing reads at least some program(s) (such as the gryphing program itself) and/or data (such as file directory data, registry data, manifest data and the like) in order to perform the gryphing process.
  • program(s) such as the gryphing program itself
  • data such as file directory data, registry data, manifest data and the like
  • no data need be read from storage medium 236.
  • a directory structure 237 (and/or registry data, partition data, manifest data) is provided at the location(s) expected by the operating system, wherein this initial directory 237 is blank or substantially blank (i.e., indicating that all or substantially all of the storage space (other than the directory itself) is available for storage of user data.
  • blankoplex 236 acts as a normal blank storage medium (e.g., a blank disk drive or blank solid-state drive). If, instead, gryphing process 243 operates and writes directory data and/or registry data and/or the like, then storage medium 236 will end up with ready-to-use ipselecta.
  • a process such as process 204 of Figure 2B, separates a panoplex 211 into certain gryph data 229 and the remaining panoplex ' 226.
  • the separated gryph data 229 is the total panoplex directory and registry (TPDR) data 238 (which, in some embodiments, also contains other data) shown in Figure 2G, and is input to selector-charger process 243, along with ipselecta-relicta selection data (IRSD) 233 obtained from choices made by a user or purchaser.
  • TPDR total panoplex directory and registry
  • selector-charger process 243 includes a gryphing API (application programming interface) that operates on TPDR data 238 to generate the gryphed ipselecta directory-registry 239 (containing only data relevant to the ipselecta, and indicating all other storage space is available for storing of other data) and a pricing-charging API #xxx that presents pricing options to the user and elicits and receives selection data based on the choices and prices selected by the user.
  • selector-charger process 243 debits an amount (based on the selections made and ipselecta kept) from the user's account 245 (either directly or by invoice presented to the user).
  • selector-charger process 243 causes the ipselecta directory-registry 239 to be written on top of the blank directory area 237 to convert blankoplex 253 into a ready-to-use storage medium 150 (see Figure 2B) having the customized and/or user-selected set 255 of soft assets and erased space 258.
  • storage medium 150 is coupled to the device that will use its soft assets after the gryphing process 243 operates, while in other embodiments, blankoplex 236 is coupled to the device first, and gryphing process 243 operates afterward.
  • the individual files and assets of panoplex ' 226 are broken into pieces and stored in a scattered manner, in order to make reconstruction and/or use of the assets more difficult unless provided with the gryphed ipselecta directory-registry 239.
  • FIG. 3A is a Venn diagram of a set of various intangibles referred to as soft assets 300.
  • Soft assets set 300 can include soft digital assets (e.g. operating systems, programs, data sets, or digitized music and the like), analog assets (audio or video recordings in analog format) and/or other types of intransient signals.
  • the "universal" set 300 of possible soft assets includes a plurality of overlapping types of assets including programs 310, percepta 320, interactive games (which may include both percepta 320 such as audio and video storage as well as stories and programs 310), music or other audio 324 (e.g., digitized and compressed files in MP3 format, synthesized-music-specification files such as MIDI-type music files, and the like), video 326 (e.g., digitized and compressed files in an MPEG format, cinema, animation, simulations, and the like), photos and other images 328 (e.g., digitized and compressed files in JPEG format, drawings, paintings, illustrations, fonts, symbols and the like), and databases (such as data and vector data for geographical or geological maps, engineering specifications, architectural features or plans, numerical-control data for automatically building or fabricating parts, statistical data, financial information, and the like).
  • Figure 3B is a Venn diagram of a universal set of soft assets 350, some of which are grouped and installed into one or more of a plurality of panoplexes (in Figure 3B, these are denoted as the diagonal boxes labeled as panoplexes 331, 332, 333, and 334, although in other embodiments, a greater or fewer number of panoplexes may be used).
  • one or more of the p ⁇ noplexes is loaded onto each one of a plurality of end-user storage media (e.g., in some embodiments, one inventory or set of one or more storage media 335 each has panoplex 331, another set 336 has panoplex 332, another set 337 has panoplex 333, another set 338 has panoplex 334, and yet another set 339 has both panoplex 332 and panoplex 333).
  • one inventory or set of one or more storage media 335 each has panoplex 331, another set 336 has panoplex 332, another set 337 has panoplex 333, another set 338 has panoplex 334, and yet another set 339 has both panoplex 332 and panoplex 333).
  • the panoplex-selection program XXX would examine the asset selections of each purchaser (e.g., from the data on a purchase order or data transmitted via the internet from a web interface) and select a storage medium having the panoplex(es) with the best fit with a particular purchasers selected set of assets. For example, upon examining the purchase order of a first user X who selected the five individual assets labeled X, the panoplex-selection program would select a storage medium 338 having panoplex 334 from the inventory of storage media 338 (panoplex 334 happens to include all five of the assets labeled X). The selected storage medium 338 is then gryphed in order to uninstall all other assets and leave just the five individual assets labeled X.
  • panoplex-selection program upon examining the purchase order of a second user Y who selected the nine individual assets labeled Y, the panoplex-selection program would select a storage medium 339 having both panoplex 332 and panoplex 333 (panoplex 332 happens to include four of the selected assets labeled Y, panoplex 333 happens to include six of the selected assets labeled Y (five of which are not in panoplex 332, while panoplex 331 has three of the selected assets Y). The selected storage medium 339 is then gryphed in order to uninstall all other assets and leave just the nine individual assets labeled Y.
  • panoplex 331 Since three of the selected assets are in panoplex 331, panoplex 331 would not be selected, since a better fit is found in panoplex 332 with four of the selections labeled Y and panoplex 333 with the remaining five, and better yet with both of these panoplexes that are stored on storage media 339.
  • panoplex-selection program upon examining the purchase order of a third user Z who selected the eleven individual assets labeled Z, the panoplex-selection program would select a storage medium 339 having both panoplex 332 and panoplex 333 (panoplex 332 happens to include six of the selected assets labeled Z, panoplex 333 happens to include five of the selected assets labeled Z (three of which are not in panoplex 332), while panoplex 331 has four of the selected assets Z). The selected storage medium 339 is then gryphed in order to uninstall all other assets and leave just the nine individual assets labeled Z.
  • panoplex 332 or panoplex 333 Since two of the selected assets are not in panoplex 332 or panoplex 333, in some embodiments, those two assets would be installed in a conventional additive-installation manner, or those assets would be indicated as not available through the gryphing process and could be purchased and installed separately.
  • Providing a panoplex on a storage medium like a raw block of marble for a sculptor
  • removing certain of the installed soft assets to leave the selected assets using a process that performs "subtractive installation" of the non-selected assets, which is like removing chips from the block of marble to leave the desired statue
  • gryphing is much faster and easier to do than additively "casting" a sculpture from scratch, at the time of order.
  • vendors of notebook computers have their notebook computers designed and built by an original design manufacturer (ODM) (e.g. Compal Electronics) in a low-cost-of-labor country (e.g., China), and that ODM assembles laptop sans memory (DRAM) and/or disk drive.
  • ODM original design manufacturer
  • the vendor e.g., Toshiba
  • Toshiba gryphs disk drives per the individual user's order mates the disk drive into the rest of the laptop, adds the DRAM, and delivers to the user.
  • the ODM in Shanghai receives the software selection information, gryphs the storage medium, and ships a customized device per the specific customer order. With a minimum of new investment, Toshiba provides its customers with BTO laptops.
  • a personal computer manufacturer e.g., Lenova
  • a pharmaceutical manufacturer e.g., Pfizer
  • the information-services (IS) department at the corporate customer e.g., Pfizer
  • an individual provides her employee number and/or other insignification information over an intranet link to the personal computer manufacturer (e.g., Lenova).
  • this data automatically determines the selection within the set of corporate software to include in the ipselecta, and provide the user- specific insignification information that is merged into the ipselecta.
  • Lenova chooses a storage medium holding a duplicate of the master Pfizer corporate panoplex, decodes the information, selects the assets to include in the ipselecta, gryphs the Pfizer panoplex, insignifies the software with the user's particular data, and ships the appropriate computer hardware, coupled with the factory-gryphed storage medium, holding the correct insignified ipselecta, to the Pfizer employee and bills the Pfizer accounts payable department according to a pre-established corporate contract. Pfizer boosts IS productivity.
  • a computer vendor e.g., HP
  • a desktop computer with an embedded disk drive containing a panoplex to a big-box retailer (e.g., COMPUSA or Best Buy).
  • the desktop computer uses BIOS extensions that create a protected environment (e.g. Phoenix Technologies' Core Managed Environment (cME)) for soft assets and only allows an ordering-and-payment application to run.
  • cME Phoenix Technologies' Core Managed Environment
  • the end-user purchases the desktop computer, takes it home, connects to internet, and a remote computer provides control information that elicits and receives selection indications from the user as to which soft assets are to be in the ipselecta, controls gryphing of the computer, charges the purchase to the user's account, and transmits encoded information (e.g., a decryption token and the like) back to the desktop computer in the user's home to unlock the extended function and storage of the desktop computer. Buying a new computer becomes hassle-free.
  • encoded information e.g., a decryption token and the like
  • a big box retailer and its customer-assistance organization provides, customizes, and installs upgrade disk drives, containing a new OS (e.g., an operating system, such as Microsoft Windows Vista or the like) and new OS-capable soft assets.
  • a customer goes to an in-store computer kiosk (that may in some embodiments be network attached) and selects and pays for applications and other soft assets.
  • a panoplex on a disk drive coupled to the kiosk or to a network-attached grypher is gryphed according to the user's selections and payment.
  • the customer-assistance organization (e.g., Geek Squad) swaps out the old disk drive from the customer's computer and installs the new upgrade disk drive with its soft assets into old machine.
  • the service includes transferring unique customer data and files to the new drive.
  • the panoplex-containing storage medium incorporates data obscuring and protection methods, that allow the customer to perform the upgrade away from the store. Best Buy gains a new revenue stream.
  • a panoplex on a read/write (R/W) optical disk (e.g., a Blu-ray disc (BD)) for use with a gaming computer console (e.g., a Sony Playstation) is gryphed and supplied with the console (as an alternative to an embodiment installing the panoplex to the console's internal magnetic disk drive and gryphing the panoplex on the disk drive).
  • R/W read/write
  • BD Blu-ray disc
  • purchase and gryphing of the panoplex on the R/W optical disk can also happen independently of the sale of gaming console, wherein the gryphed R/W optical disk incorporating Digital Rights Management (DRM) software that allow loading onto one console or a designated console, while preventing loading on multiple or undesignated consoles, is then forwarded to the customer post device purchase.
  • DRM Digital Rights Management
  • a panoplex on a hybrid cell phone that also plays stored music and/or videos is shipped to retail stores with the intact panoplex in a micro-hard-disk drive (micro HDD) or FLASH drive.
  • a customer uses an in-store terminal to select a phone plan, and one or more soft assets (e.g., ring tones, music, games, videos and the like), wherein substantially all assets are unavailable until phone is activated.
  • the cell phone device is designed so that it can only call Cingular's switch for activation.
  • the switch When contacted, the switch receives the cell phone's electronic serial number (ESN), finds the user selection and payment information, links the assigned phone number to the ESN, and wirelessly sends a relicta list to the cell phone for use by the gryphing program, which then runs in the cell phone.
  • ESN electronic serial number
  • the cell phone sends to the switch a completion-code handshake and the switch sends a key or decryption code to unrestrict internal phone functions, activate network phone service and release for customer use the ipselecta of soft assets.
  • the gryphing and activation occurs anywhere within signal reach of the Cingular network. Sending the small relecta file doesn't tie up the network as would sending the selection of soft assets. Customers don't incur the high connect charges of downloading their tunes after activation or queue in stores to download assets.
  • an educational institution e.g., Duke University
  • a certain new laptop personal computer e.g. a Dell Latitude
  • a media player e.g., an iPod
  • the educational institution creates one or more panoplex for each school (for example, the law school, medical school, engineering school, and the liberal-arts college would each have its own panoplex for each device).
  • the panoplex of soft assets includes academically relevant commercial, proprietary, and freeware software programs (e.g. Corel WordPerfect Office, Wolfram Mathematica, Adobe Photoshop, Macromedia Freehand, Visual Basic, TeX, LaTex, and the like).
  • the panoplex of soft assets includes course-related materials (e.g. electronic textbooks (licensed or in the public domain), instructor course notes, instructional films, assigned readings, reference materials, virtual lab experiments, web links, quizzes, recorded lectures (in various embodiments, as audio, PowerPoint, and video presentations), and the like).
  • the panoplex includes the school-related materials (e.g. school calendar, class schedules, and contact information for the faculty, staff, emergency, and other university services).
  • Duke could also provide (and sell) legal copies of other soft assets (e.g. music, movies, or video) to discourage campus piracy.
  • the educational institution creates software that creates an ipselecta and insignation for each student as they enroll, based substantially on the student's selected classes and major.
  • Each matriculating student receives their gryphed (customized) devices with the materials appropriate for her own specific course load at orientation or the devices are sent to her home.
  • the educational institution outsources some or all of the work to a computer vendor or value added reseller (e.g., Dell, Apple, or the like).
  • a computer vendor or value added reseller e.g., Dell, Apple, or the like.
  • a student benefits from not having to spend a hectic day in a bookstore, buying at retail, expensive, heavy textbooks, that clutter their dorm room.
  • a student also gains the substantial advantages of having his course work organized and available electronically. Lured by such an customized, high-tech, high-touch offering, Duke captures higher- performing students, in a highly competitive educational environment.
  • a multimedia hardware company e.g., Kalidiscape
  • PVR personal video recorders
  • themed panoplexes e.g. movie or video by era, genre, language, director, actor, studio, child-age rating, appropriateness level and the like.
  • the company gryphs a selected panoplex (as in Fig 3B) according to a customer's order (wherein the particular panoplex may be selected from a plurality of panoplexes based on a correlation to the customer's selections) and installs the storage medium with only the specified movies into the ordered player unit for shipment.
  • Figure 4A is a block diagram of a process 100 according to some embodiments of the invention for creation and duplication of a panoplex (to be gryphed) on a master disk 106 containing according to choices for a particular user, and installed in a computer or other information-processing appliance.
  • dispensing computer 102 is operatively coupled to at least one master disk 106 and at least one end-user disk 108.
  • a panoplex is created onto master disk 106 by installing the plurality of digital assets that together form the panoplex using dispensing computer 102, while in other embodiments, the panoplex is created on a different computer (i.e., an installation computer having an installation storage medium onto which the panoplex is created by installing a large number of soft assets) and copied to master disk 106.
  • the data from master disk 106 is copied to each of a plurality of end-user disk drives 108 (e.g., using a disk-copy program or other suitable method).
  • Each end-user disk 108 is to be customized (by selecting content to be kept and gryphing to remove all other non-relevant data) for installation in /connecting to a corresponding end-user device (e.g., a personal computer) 104 for delivery to a particular end-user.
  • end-user disk 108 is already installed into computer 104 before panoplex copying and/or gryphing.
  • Master disk 106 includes a panoplex (or a plurality of panoplexes), which is (are each) a complete collection of all functional content available for selection by the end user (or, in other embodiments, the selections are made for the end user, for example, when a corporation or enterprise customizes a computer for each employee).
  • the end-user has already selected a subset of the panoplex for installation in computer 104 and selection data representing that selection is provided to dispensing computer 102, which then culls the unselected content, leaving a substantially ready-to-use and functional end-user device (a combination of software and hardware, which herein is called a totum).
  • selection data representing that selection is provided to dispensing computer 102, which then culls the unselected content, leaving a substantially ready-to-use and functional end-user device (a combination of software and hardware, which herein is called a totum).
  • Figure 4B is a logic flow diagram illustrating a method 410 for customizing end-user disk 108.
  • dispensing computer 102 duplicates the data from master disk 106 onto new disk 108 to replicate the entire panoplex within disk 108.
  • dispensing computer 102 removes the non-selected, extraneous content from end-user disk 108 to leave the selected content.
  • end-user disk drive 108 is now customized to the specifications of the end-user.
  • end-user disk drive 108 is installed into computer 104 to form a customized product according to the specification of the individual end-user. The particular order of execution of these blocks can be varied in other embodiments, for example as described below.
  • erasing data from a non-volatile storage medium or other intransient signal carrier is much faster than writing the same data to the same storage medium or even reading the same data from the same storage medium. Even when most of the data is to be erased, it can take a shorter time to erase that large amount of data than it would take to install a few soft assets.
  • Writing a file requires setting up information in a directory and writing the substantive digital content of the file to the physical locations of, for example, drive clusters or sectors of a disk drive or flash memory cells. Since storage medium and/or memory access is slow relative to typical processor speeds, writing a file is very time consuming relative to other tasks performed by a computer.
  • Reading a file requires reading such directory entries and moving a disk-drive arm, rotating a disk, and/or traversing the memory to access the substantive content of the file.
  • Erasing a file requires as little as mere modification of one or more elements of the file system directory to decouple the physical bits of the file from the file information in the directory that is used to logically make files available to or through the operating system, in order that the previously physically stored data become inaccessible, out-of-order, and/or without proper context. Therefore, time required to read or write a file is roughly proportional to the size of the file; however, time to erase a file stays small and relatively fixed and is a fraction of the time to write or even merely read the file. Accordingly, time to erase multiple files is more closely related to the number of files than the size of individual files.
  • adding content to a storage medium generally requires some guidance, such as a particular hierarchical directory structure or multiple-program context into which to store the content.
  • adding content often requires human intervention.
  • removal of content from a storage medium generally requires little more than accurate identification of the content within the storage medium.
  • an expert can design a removal program to automatically handle many instances where human intervention would otherwise be needed to properly remove programs. In either case, human intervention is substantially less important in removal of content from a storage medium. Accordingly, installation by removal lends itself particularly well to automation.
  • a music-retail store allows in-store filling of an Apple® iPod® or similar hard-drive- or flash-based digital music player with music selected by the purchaser at a discount, e.g., as a promotion.
  • the digital music player has a capacity of 60 GB and is accessible through a USB 2.0 connection, supporting nominal data-transfer speeds of 480 Mb/s (which is about 48 megabytes per second). In practice, however, the attainable, sustained transfer rate is less than one third of the theoretical rate.
  • each digital music player is preloaded (e.g., at a mass-copying facility) with a panoplex of digital music.
  • block 412 Figure 4B
  • block 416 has already been performed. Only block 414 remains to be done.
  • block 414 is performed by one or more in-store computers at high speed.
  • each soft asset represents about 3 to 5 MB.
  • each individually selectable soft asset e.g., a feature- length movie
  • every individual movie DVD disk takes one-half hour to upload.
  • additive installation of a few hundred movies can literally take days, while customization by subtractive installation of a few hundred movies is just a matter of minutes.
  • a storage medium as it is built and tested, writes one or more test-data patterns and then reads back that test data to verify correct operation of the storage medium.
  • a blank pattern is written (e.g., a default partition and directory, with the rest of the storage medium zeroed).
  • the panoplex data is written as the final test data of the manufacturing process and is left on the storage medium, there is substantially no time or cost penalty.
  • Figure 4C shows a block diagram of a process 430 that illustrates broader perspective of the customization system shown in Figure 4A and the method shown in Figure 4B .
  • master disk 106 is created, i.e., the panoplex is created within master disk 106.
  • the user 99 selects content to be included in the customized disk drive, e.g., disk 108.
  • selection can be made by any conventional user-interface mechanism involving physical manipulation of one or more user-input devices by the user.
  • One useful user interface for conducting user selection of desired content is described below.
  • selection of the desired content implicitly identifies the extraneous content.
  • the user explicitly selects the extraneous content that is to be removed, thereby implicitly identifying the desired content.
  • logic flow diagram 410 the content of disk 106 is copied to end-user disk 108 and customized in accordance with the user's selection received at block 434.
  • the functions of logic flow diagram 430 can be performed in a different order than that shown and described.
  • the panoplex on master disk 106 should be created at block 432 prior to copying of the master disk at block 412, and the removal of extraneous content at block 414 should be performed after the panoplex on end-user disk 108 has been copied from master disk 106 at block 412 and after the user has identified desired content, thereby implicitly identifying the extraneous content.
  • the panoplex creation of block 432 typically involves some human interaction.
  • someone chooses approximately 20,000 songs for preloading onto digital music players.
  • the assets can be organized into an appropriate hierarchy, for example, genre, artist, and/or album, among other criteria.
  • the songs and the particular organization is determined by the provider of the preloaded available content, i.e., by the provider of the panoplex.
  • Digital music has the advantage of being fully self-contained. All the information and references required for playback of a particular song are included in the single file containing the digital version of the song. Removal of a file representing one song does not affect the ability of other songs represented by other files to be played back. Thus, interoperability of the content of the panoplex is generally not a significant concern when the soft assets are self-contained in this way.
  • panoplex includes computer programs that share resources such as DLLs
  • interoperability of the constituent soft assets of the panoplex can be a significant concern. This concern is addressed below.
  • Duplication of the panoplex from master disk 106 at block 412 (see Figure 4B above) onto end-user disk 108 can use the fastest copying available — disk-image software copying, bit-by-bit, or sector-by-sector copying, or file-by-file copying.
  • this copying of the panoplex data onto end-user disk 108 is done by the disk-drive manufacturer as the last step of assembly and testing (e.g., as the last test data pattern that is written to the disk drive and then read back to check that the writing operation performed correctly). Copying may be done by specialized media-duplication machines or regular computer hardware.
  • Disk-to-disk copying via computer may use a tool like Microsoft® WinPE to assist and use disk-cloning software, such as Symantec ghost, to make copies.
  • a tool like Microsoft® WinPE to assist and use disk-cloning software, such as Symantec ghost, to make copies.
  • block 412 can be readily automated, creating many cloned disk copies of the data of master disk 106, without significant human intervention.
  • such cloned disks can be installed, packaged, and shipped for near instantaneous, in-plant, in-store, or in-home, as described below, customization.
  • a significant benefit of using disk-image copying in duplication of master disk 108 is that a disk image can be captured and stored in a larger disk, several spanned disks, or an array of disks.
  • a large, 300GB disk can store several disk images of master disks of smaller capacities, e.g., 60GB.
  • a virtual disk can be used in lieu of an actual hard drive. Such a virtual drive can substitute for multiple smaller physical drives or enable creation of a panoplex that is larger than the capacity of a real physical drive.
  • FIG. 4D shows a block diagram of a system 440 having dispensing computer 102.
  • dispensing computer 102 includes one or more processors 402 that retrieve data and/or instructions from memory 404 and execute retrieved instructions in a conventional manner.
  • Memory 404 in various embodiments, can include persistent memory such as magnetic and/or optical disks, ROM, and PROM, and volatile memory such as RAM.
  • processors or microprocessors 402 and memory 404 are connected to one another through an interconnect 406, which is a bus in this illustrative embodiment. Interconnect 406 is also connected to an input/output controller 408 and network-access circuitry 409.
  • Input/output controller 408 can be coupled to one or more input and/or output devices including as input devices, for example, a keyboard, a keypad, a touch-sensitive screen, a proximity sensor, a motion sensor, a mouse, a microphone and including as output devices a display - such as a liquid crystal display (LCD)- and one or more loudspeakers.
  • input/output controller 408 is coupled to master disk 106 and end-user disk 108 (e.g., one of a plurality of end-user disks to which a panoplex is to be copied and gryphed). Accordingly, processors 402 can cause input/output controller 408 to execute reading and writing operations on master disk 106 and end-user disk 108.
  • the panoplex on master disk drive 106 can be replaced with a disk image thereof stored in memory 404 or, alternatively, within another computer accessible through a computer network (e.g., within an array of disks in network-attached-storage (NAS) device).
  • NAS network-attached-storage
  • dispensing computer 102 is coupled to a network, such as a LAN, SAN, or WAN, including the Internet, for example. Some or all of such a network may be wireless, as with a cellular phone, Wi-Fi or Wi-Max network. Accordingly, network-access circuitry 410 can send and receive data through such a network. In some embodiments, network- access circuit 410 includes Ethernet circuitry.
  • System-customization logic 420 is all or part of one or more computer processes executing in processors 402 from memory 404, and performs the functions of logic flow diagrams 410 ( Figure 4B) and 430 ( Figure 4C) in one embodiment.
  • some soft assets of master disk 106 can rely on the presence of shared resources stored on master disk 106. Such is particularly true if the soft assets include computer programs that depend on shared resources. In some embodiments, care is taken to promote stability in the panoplex as installed on master disk 106 and as customized on disk 108, particularly stability in execution of the constituent computer programs of the panoplex after one or more non-selected computer programs are removed.
  • stability is promoted by ensuring that programs are logically isolated in their operations so as not to interfere with the operation of other programs, that their required resources are included in the panoplex on master disk 106, and that resources used by removed programs are not removed from end-user disk 108 during customization, if they are still required by other programs remaining in the panoplex.
  • Concerns regarding stability are addressed primarily in two phases: first, in the creation of the panoplex and, second, in the paring of the panoplex at block 414.
  • content is required to include an installation script and a removal script.
  • a script is a simple computer program, often expressed in a very high-level procedural scripting language or scripting environment.
  • a removal script is sometimes referred to as an uninstall script.
  • both the install script and the removal script of a given soft asset should be executable without human intervention.
  • human intervention during execution of the install script for creating the panoplex is tolerable since the panoplex is created once and used many times to create customized disks such as disk 108.
  • Installation and removal scripts are well known and are only described briefly herein to facilitate appreciation and understanding of the described embodiments of the present invention.
  • Installation of a computer program often includes copying of numerous files to proper locations within a file system.
  • a file system is an organization of a storage medium into files that can be accessed independently of one another.
  • a primary executable file e.g., with an ".exe” file extension in Microsoft operating systems
  • Dedicated resources such as images, templates, etc.
  • Other resources are typically copied to shared resource locations within the file system and their presence registered and published for use by other programs.
  • Installation of the computer program also typically includes storing data in a program registry, including information for graphical-user-interface (GUI) elements for invocation of the computer program to be made available to the user.
  • GUI graphical-user-interface
  • data stored during installation can add an entry in the well-known "Start" menu and/or add an icon to the desktop for invocation of the installed computer program.
  • Execution of the installation script causes each of the files associated with installation of the computer program to be copied or moved to their respective proper locations within the file system. In addition, such execution stores the data in the appropriate registries and/or locations to render the computer program capable of easy invocation and proper execution.
  • Execution of a removal script causes removal of the subject computer program, dedicated resources, and the related data in the registries and elsewhere.
  • execution of the removal script in some embodiments checks to see if any other computer program requires each of the shared resources and removes each shared resource that is not required by another computer program.
  • MSI package a Microsoft® Windows® Software Installer having an ".msi" file-name extension
  • An MSI package provides self-describing database tables and the computer program, along with all dedicated and shared resources and the appropriate installation and removal instructions.
  • installation and removal scripts, resources, and the computer program can be included in packages that can be installed and/or removed using such package management systems as the "dpkg” Debian package manager (a GNU General Public License or Linux software package available at www.debian.org) and/or the "rpm” or Red Hat package manager (available at www.rpm.org or www.redhat.com).
  • the panoplex is constructed on master disk 106 by (i) installing an operating system and (ii) executing the installation scripts of each and every computer program to be included in the panoplex.
  • Both the Debian and Red Hat package managers ensure that similar installation scripts for each and every required resource, generally referred to as a package dependency, are executed or fail.
  • conflicts represented by incompatible dependencies of packages to be installed are detected and avoided by failing any installation that would result in such a conflict.
  • An MSI package includes the required resources, as specified by the software publisher. Care should be taken, by conscientiously following Microsoft- recommended best practices, to avoid installing any required resource that would supersede any required resources of any other computer programs.
  • removal of non-selected extraneous computer programs at block 416 is accomplished by execution of removal scripts specific to the extraneous computer programs to be removed.
  • Both the Debian and Red Hat package managers provide for removal of packages, including removal of any packages dependent upon the removed packages.
  • An MSI package typically includes an uninstall script, execution of which properly removes the computer program of the MSI package. The installation and removal scripts can be provided by the producers of the various computer programs to be included in the panoplex.
  • the installation and removal scripts can be constructed by a single entity, namely, the entity creating the panoplex, to ensure proper installation and removal of each computer program of the panoplex.
  • each computer program of the panoplex is installed onto a clean system on master disk 106, i.e., a system in which only the operating system has been installed onto an empty master disk 106.
  • a clean system can be real or virtual, the latter created, in some embodiments, using a product like VMware Workstation. Comparison of the entire state of master disk 106 prior to and immediately after installation shows which files are changed and which registry entries are changed. MSI packages for installation and removal of the computer programs are created to accurately represent these changes.
  • the operating system of the panoplex is the Windows XP operating system and its successors.
  • the installation and removal scripts are developed and managed by non-Microsoft tools (e.g. Wise Package Studio or Macrovision I nstci MSh ield).
  • the installation and removal scripts are Microsoft MSI packages that comport with Microsoft's guidelines for Component Object Model usage, to ensure backwards compatibility, embedding and maintaining correct resource version information, comparing of respective versions of a resource before overwriting one version of a resource with another, installing resources to a shared directory, and registration of files.
  • FIG. 5 shows a panoplex 502 of some embodiments in diagrammatic form.
  • panoplex 502 is the panoplex stored on master disk 106.
  • panoplex 502 includes an operating system 508.
  • Operating system 508 provides basic resources and provides general, basic functionality of a computer, e.g., computer 104.
  • Applications 504 are computer programs that provide specific functionality. Examples of applications 504 include word-processor programs, spreadsheet programs, database programs, graphical-image-manipulation programs, music-creation, music-editing, and music-playback programs, and the like. As is well known, these are all end uses of a computer and are typically provided by applications 504.
  • Shared resources 506 provide intermediate levels of functionality.
  • Examples of shared resources 506 include libraries of executable modules that can be leveraged by applications 504 to provide such intermediate functionality as file management, window management, graphical-user-interface (GUI) tools, etc., as well as soft assets such as fonts, icons, sounds, graphics, etc.
  • GUI graphical-user-interface
  • FIG. 6 is a block diagram of a system 600 having system-customization logic 420 (of Figure 4D) in greater detail.
  • System-customization logic 420 includes panoplex-dispensing logic 602, panoplex-replication logic 604, panoplex-customization logic 606, and a number of application records such as application record 608A.
  • panoplex-dispensing logic 602, panoplex- replication logic 604, and panoplex-customization logic 606 are shown to be part of system-customization logic 420 and therefore executing in a single computer system, it should be appreciated that in other embodiments panoplex-dispensing logic 602, panoplex-replication logic 604, and panoplex-customization logic 606 can be implemented in separate respective computer systems and can execute independently of one another.
  • application records such as application record 608A can be stored in a database accessible by panoplex-dispensing logic 602, panoplex-replication logic 604, and panoplex-customization logic 606. In some embodiments, the database is stored within panoplex 502.
  • system-customization logic 420 includes an application record for each application included in panoplex 502 that can be removed by non-selection by the user.
  • Application record 608A is representative of each of the application records included in some embodiments of system- customization logic 420.
  • application record 608A includes a name 610A that is unique among the respective names of the application records of system-customization logic 420 and that, in some embodiments, serves as an identifier of application record 608A.
  • Application record 608A includes data representing a number of dependencies, e.g., dependency 612A, each of which identifies another application record of system-customization logic 420. For proper functioning, the application represented by application record 608A requires that the application identified by dependency 612A is properly installed.
  • Dependencies such as dependency 612A can be represented implicitly within installation script 614A and removal script 616A, which are described below.
  • application record 608A includes an installation script 614A and a removal script 616A, execution of which installs and removes, respectively, the application represented by application record 608A.
  • application record 608A also includes a required count 618A which represents the number of other applications for which the application of application record 608A is a prerequisite. Required count 618A can be omitted if a registry or other component of operating system 508 maintains similar information enabling determination that a particular resource is no longer needed when all dependent applications have been removed.
  • application record 608A includes a pricing policy 620A that determines the price to charge for the application of application record 608A. Pricing policy 620A is described more completely below.
  • FIG. 7 is a logic flow diagram 700 illustrating one manner in which panoplex-authoring logic 602 builds panoplex 502.
  • panoplex-authoring logic 602 installs operating system 508.
  • Loop block 704 and next block 708 define a loop in which all available applications of panoplex 502 are processed according to block 706. In each iteration of the loop of blocks 704-708, the particular application processed is sometimes referred to as the subject application.
  • panoplex-authoring logic 602 installs the subject application using the installation script of the subject application, e.g., installation script 614A.
  • installation script 614A is an MSI script, execution of which includes installation of any required resources such as DLLs and soft assets.
  • panoplex- authoring logic 602 identifies and installs all required resources recursively in block 706.
  • panoplex-authoring logic 602 stores removal scripts, e.g., removal script 616A, for all applications in panoplex 502. This constitutes a preferred embodiment.
  • removal scripts are maintained within system-customization logic 420 within memory 404 and not stored within panoplex 502.
  • the advantage of storing removal scripts in panoplex 502 is that panoplex 502 contains all that is needed for removal of extraneous, non-selected content at block 414 ( Figure 4B), such that block 414 can be performed in an entirely different environment from that in which panoplex 502 is created.
  • panoplex-authoring logic 602 cleans panoplex 502 by removing extraneous byproducts of installation.
  • extraneous byproducts include temporary files and drivers for hardware components not expected to be used with panoplex 502, for example.
  • the hardware context of the ultimate operating environment of pared copies of panoplex 502 is known, e.g., computer 104.
  • Drivers for hardware components not included in such an operating environment are extraneous and are removed at block 712.
  • panoplex-authoring logic 602 optimizes panoplex 502 for improved performance.
  • Block 714 can be performed in response to manual direction by a human systems administrator to adjust various performance settings of panoplex 502.
  • Manual optimization is one of the surprising advantages achieved through content customization in the manner described herein. While each duplicated copy of panoplex 502 is ultimately customized to the specification provided by an end-user, each such copy starts as a direct duplicate of panoplex 502. Accordingly, any minor adjustments and improvements of panoplex 502 propagate to all customized duplicates of panoplex 502. In effect, optimized quality is mass-produced for customized goods.
  • panoplex-authoring logic 602 performs regression testing by iteratively removing applications from panoplex 502 and testing for system operation and stability.
  • Block 716 can be performed manually and over an extended period of time. Since panoplex 502 is to be mass-produced prior to customization, the sometimes tedious and expensive process of quality assurance is offset by economies of scale.
  • processing according to logic flow diagram 700 completes.
  • panoplex 502 stored on master disk 106.
  • Panoplex 502 represents a fully functional installation of operating system 508, shared resources 506, and applications 504.
  • master disk 106 is now ready for duplication at block 412 as described above (see Figure 4B).
  • block 412 is repeated many times to accumulate a large inventory of copies of master disk 106 as a "blank" for subsequent installation in a computer, such as computer 104.
  • the term "blank" is used to indicate that the panoplex stored on each duplicate disk has not been pared and reduced to reflect customization in accordance with choices made by a particular user.
  • the business plan calls for build-to-order operation.
  • Hard drives are components provided by a disk-drive manufacturer.
  • the contract with the drive supplier can include preloading the selected panoplex into the drives and delivering these to the computer manufacturer.
  • the drives pass from the drive supplier to a contract manufacturer that loads the panoplex onto a disk.
  • the original-equipment manufacturer i.e., the brand-name manufacturer, loads the panoplex onto the drives.
  • the order When an order is received from a customer, the order includes an indication of the customer's selection of the desired content.
  • the necessary customization is accomplished and the finished machine with the desired programs installed is delivered.
  • a manufacturer who builds computers to place in their inventory will store the finished machines; each loaded with the selected panoplex, and will later customize the devices, as needed, before shipping. Further, as will be seen, customization can be carried out in a retail establishment or even at a home or place of business. In each instance, the time-consuming loading operation is done when time is most available, and delivery to a customer is effected more quickly than would be the case were the desired content added after specification.
  • panoplex-replication logic 604 can perform a disk-image copy, a bit-by-bit or sector- by-sector copy, or a file-by-file copy of master disk 106 to end-user disk 108.
  • end-user disk 108 is to be bootable and include computer programs, it is preferred that panoplex-replication logic 604 use a disk-image copy at block 412.
  • a disk image of the data on master disk 106 i.e., the panoplex
  • storage media e.g., end-user disk drives 108 having complete duplicates of the full, uncustomized copy of panoplex 502 become parts for inclusion in computers manufactured to customers' specifications, and can be accumulated in an inventory and kept ready for such use.
  • customization of such a end-user disk 108 begins concurrently with assembly of computer 104 into which the duplicate will eventually be installed, with receipt of a build order from a seller of customized computers.
  • the build order includes hardware specifications, including computer case, processor type and speed; amount and configuration of RAM; and disk-drive type, speed, and capacity, for example.
  • the build order also includes customer-specific information such as the customer's name and time zone, for example.
  • the build order also includes data identifying which of the available content of panoplex 502 is to be removed (or, alternatively, includes data identifying which content is to be retained, such that the content to be removed is implicitly all the other content).
  • dispensing computer 102 is the customization computer.
  • the customization computer can be different than the computer executing panoplex-authoring logic 602 and the computer executing panoplex-replication logic 604.
  • Panoplex-customization logic 606 executes within the customization computer.
  • Panoplex-customization logic 606 customizes replicated panoplex 502 in a manner illustrated by logic flow diagram 800 ( Figure 8).
  • panoplex-customization logic 606 identifies content to be removed from panoplex 502. As described above, such information is included in the build order, in some embodiments.
  • Loop block 804 and next block 808 define a loop in which all extraneous applications of panoplex 502 are processed according to block 806. In each iteration of the loop of blocks 804-808, the particular extraneous application processed is sometimes referred to as the subject application.
  • panoplex-customization logic 606 removes the subject application using the removal script of the subject application, e.g., removal script 616A.
  • removal script 616A is an MSI script, execution of which includes de-registration of use by the subject application of any required resources such as DLLs and soft assets.
  • panoplex-customization logic 606 identifies and removes those of the previously required resources no longer required by any remaining application recursively at block 806.
  • panoplex-customization logic 606 customizes a registry in operating system 508 of panoplex 502.
  • panoplex-customization logic 606 includes user-specific data in the registry to make the ultimate completed computer system specific to the user. Such information can include user names, user initials, company name, time zone, serial numbers, user accounts, initial passwords, network specifics, and the like.
  • Block 810 represents another opportunity for optimization of the customized panoplex.
  • panoplex-customization logic 606 creates a unique initial password for an administrative account and creates a restricted account for casual use of the ultimately completed computer.
  • panoplex-customization logic 606 cleans the registry, thereby removing unnecessary keys, files, file associations, and shortcuts, and checks for registry coherence. Registry cleaning is known and is not described further herein.
  • panoplex-customization logic 606 verifies the presence of all expected files in panoplex 502 after customization in the manner described above. [00238] At block 816, p ⁇ noplex-customiz ⁇ tion logic 606 corrects file-type associations within the registry such that all file- type associations refer to applications that remain after removal of the extraneous applications. In one embodiment, the build order includes the user's preferred file-type associations; panoplex-customization logic 606 implements those preferences in the registry at block 816.
  • end-user disk 108 (which now contains only the ipselecta 255 of the original panoplex 211) is removed from the customization computer and installed in computer 104 to thereby provide the customized functionality to computer 104.
  • end-user disk 108 is installed in computer 104 for customization within and by computer 104.
  • computer 104 is fully customized for, and deliverable to, the user after such customization.
  • FIG. 9 is a block diagram of a process that can be used for handling large panoplexes.
  • panoplex 502 can be larger than the capacity of end-user disk drive 108 onto which panoplex 502 is to be copied.
  • Figure 9 shows an embodiment in which such disparity in capacity between master disk 106 and end-user disk 108 is present.
  • Panoplex- replication logic 604 (as shown in Figure 6) duplicates panoplex 502 (as shown in Figure 5) of master disk 106 (as shown in Figure 9) on to an intermediate disk drive 902 of sufficient capacity to store the entirety of panoplex 502.
  • Panoplex-customization logic 606 (as shown in Figure 6) customizes panoplex 502 on intermediate disk drive 902 in the manner described above with respect to logic flow diagram 800 (as shown in Figure 8) and/or with respect to block 414. After such customization, the customized panoplex is sufficiently small to be stored on end-user disk 108. In a manner similar to that described above with respect to block 412, panoplex-customization logic 606 duplicates the customized ipselecta from the original panoplex onto end-user disk drive 108. In general, a disk-image copy will not work when copying from a larger disk to a smaller disk. However, data-image copying, which copies only those sectors containing data, can work.
  • panoplex-customization logic 606 defragments the customized panoplex of intermediate disk drive 902 prior to copying the customized ipselecta to end-user disk drive 108.
  • intermediate disk drive 902 can be reused, beginning with replication of data from master disk 106 in a subsequent customization of panoplex 502.
  • end- user disk drive 108 (which now contains only the ipselecta of the original panoplex stored thereon), is installed in a computer to form a complete and functional, yet fully customized, product.
  • panoplex will be customized and installed in computer 104.
  • the primary disk of a desktop machine might include a new-technology file system (NTFS) disk containing the operating system and customized programs while a secondary file-allocation table (FAT) disk holds other soft assets such as music, video, or text.
  • NTFS new-technology file system
  • FAT secondary file-allocation table
  • the panoplex is customized as specified in user-supplied information.
  • the user chooses some content of the panoplex, thereby implicitly relegating the remainder for removal from the panoplex.
  • thousands of digital soft assets can be installed.
  • some 20,000 songs could be included in the panoplex of a 60GB drive.
  • Disk drives of many times that capacity are now available - 750GB - with capacities expected to double almost every year. The problems in easily finding, manipulating, and selecting from such enormous volumes of information expose the weaknesses in current selection and purchase methodologies.
  • the selections made by the user are included in the build order.
  • the selections are made through a conventional web browser used by the user and the user interface is implemented by a web-based application implemented by a server that collects data to construct the build order and to forward the build order to the manufacturer.
  • selection of desired soft assets can also be made automatically on behalf of an enterprise customer making an order. Appropriate content can be selected for each respective end-user within the enterprise according to such characteristics as his or her organizational rank and/or the function within the enterprise.
  • the user interface can be implemented within in-store computers serving as kiosks.
  • User selections can be stored on smart cards by the kiosks for subsequent reading and digital- music-player-content customization at the register.
  • each user can manually enter her or his name at the kiosks and the user selections can be communicated along with each user's name through a local area network to the register for subsequent customization of digital-music-player content.
  • the computer can be customized after purchase by the user himself or herself.
  • the user interface is implemented within the computer itself.
  • a pre-selection boot program that forces user selection of desired content is included such that the computer is not usable by the user until selections are made.
  • Payment for selected content can be effected through a network connection.
  • the device attaches to a network that provides the user interface and authorization for content selection.
  • the selector experiences a user interface through which the user indicates choices by manipulation of one or more input devices.
  • the result is selection data that (i) can be included in a web order; (ii) can be used to generate end-user profiles in a large, enterprise order; (iii) can be sent to point-of-sale equipment for customization of a device at the time of purchase; or (iv) can be used to perform local customization after receipt of the panoplex by the end-user, for example.
  • FIG. 10 illustrates various panes of a window 1000 in one exemplary graphical user interface for selection of soft assets of a panoplex.
  • window 1000 includes four (4) panes 1002, 1004, 1006 and 1008, each of which is independently scrollable. Scrolling panes of a window is known and not described herein.
  • window 1000 implements a user interface for selecting video content of a panoplex.
  • Panes 1002, 1004, 1006 and 1008 can generally be re-arranged, e.g., in accordance with user-specified preferences.
  • pane 1002 includes a checklist of categories; pane 1004 includes a list of instances of a selected category; pane 1006 includes a checklist of occurrences of a selected instance; and pane 1008 displays details of a selected occurrence.
  • categories listed in pane 1002 can include such things as genre, actor, producer, title, year of release, etc.
  • Each category can have subcategories shown as indented items in a "tree" view similar to the tree folder structure in the ubiquitous Windows Explorer® included with all Windows® operating systems of Microsoft Corporation.
  • subcategories of the actor category can include male, female, and awards.
  • the subcategory of awards can have further subcategories of winner, nominee, Oscar®, Golden Globe®, etc.
  • category 1010 is highlighted as selected and represents the actor category.
  • Pane 1004 includes a checklist of instances of the selected category, e.g., category 1010.
  • pane 1004 includes a checklist of actors listed alphabetically. Actor 1012 is shown as selected and highlighted in this illustrative example.
  • Pane 1006 includes a checklist of occurrences of the selected instance, e.g., actor 1012.
  • pane 1006 includes a checklist of films and/or television shows in which the selected actor has appeared.
  • Occurrence 1014 is shown as selected and highlighted in this illustrative example.
  • Pane 1008 includes general information regarding selected occurrence 1014.
  • pane 1008 includes general information about the particular film represented by occurrence 1014.
  • Such general information can include, for example, the title, appearing actors, producer, director, genre, year of release, a representative image (e.g., artwork from a poster or a DVD cover), a brief summary such as what appears on a DVD cover, and perhaps a review of the film.
  • pane 1008 or another pane shows an indication of price for each possible selection. In some embodiments, prices will change, depending on other selections that have been purchased (e.g., for example, providing a volume discount for purchasing more selections.
  • FIG 11 shows window 1100 (the result of window 1000 in which the user has made some choices). Unlike conventional check boxes, which toggle between two states, a checked state and an unchecked state, in response to actuation by a user, the check boxes of window 1000 cycle sequentially through more than two states, namely, six states in this illustrative example.
  • Figure 12 is a state diagram of state transitions 1200 that are obtained in response to actuation of a check box of window 1000 by the user.
  • the check box is unchecked. This is the initial state of all check boxes in window 1000, in some embodiments.
  • the check box is shown as a dollar sign to indicate that the user intends to purchase the associated item.
  • Occurrences 1112 ( Figure 11), 1114, and 1116 are shown as selected for purchase by the user.
  • the check box is shown as a selection check mark to indicate that the associated item is to be included in the selection criteria for occurrences shown in pane 1006.
  • check boxes 1104 and 1108 indicate that occurrences in pane 1006 should include films and/or television shows in which the two associated actors both appear.
  • Check box 1102 indicates that occurrences in pane 1006 should belong to the category associated with check box 1102, e.g., films and/or television shows associated with awards.
  • check box 1106 indicates that occurrences in pane 1006 should exclude films and/or television shows in which the associated actor appears.
  • the check box is shown as a question mark to indicate that the user is undecided with respect to the associated item. In some embodiments, the user is prompted to review all items designated as undecided prior to finalizing the selection.
  • check box 1110 indicates that the user is undecided about occurrence 1014 and would like to be reminded to reconsider this choice prior to finalizing all selections.
  • state 1212 the check box is shown as an arrow to indicate a change in perspective. This change in perspective within the user interface of Figure 10 and Figure 11 is sometimes referred to as pivoting and is described more completely below.
  • the user changes the state of a check box by simply clicking on the check box. On each clicking by the user, the state changes in the manner shown in state diagram 1200. As an alternative, the user can right-click on the check box to see a pop-up menu in which the states of state diagram 1200 are presented to the user for selection.
  • pane 1008 includes active text, much like a hypertext link on a conventional web page. Clicking on such active text causes pivoting.
  • active text much like a hypertext link on a conventional web page. Clicking on such active text causes pivoting.
  • pane 1008 The item of the list pertaining to the director whose name was clicked in pane 1008 is selected and highlighted, automatically scrolling to show the director's name in the list of pane 1004 if necessary.
  • Pane 1006 is changed to include films and/or television shows directed by the selected director.
  • the particular film or television show represented in pane 1008 shows as selected and highlighted, automatically scrolling to show the film or television show in the list of pane 1006 if necessary.
  • the user may also right-click on active text in pane 1008.
  • a pop-up menu allows the user to select from one of the states of state diagram 1200 (Figure 12).
  • the states can be represented by the icons shown in state diagram 1200 and/or by textual descriptions of the states, e.g., "Clear any actions for this director,” “Buy all work by this director,” “Show work by this director,” “Hide work by this director,” “Remind me to reconsider this director,” and “Shift focus to this director” for start- anew state 1202, purchase state 1204, selection state 1206, de-selection state 1208, tentative state 1210, and shift-focus state 1212, respectively.
  • panes 1002, 1004, 1006 and 1008 are dynamic in that changes in states of items in any pane are immediately and automatically reflected in others of panes 1002, 1004, 1006 and 1008. For example, if the user has previously selected (at selection state 1206) the category of awards and then selects (again at selection state 1206) the category of genres, pane 1004 immediately and automatically changes from a list of works that are associated with awards to a list of genres of works. If pane 1004 includes a list of actors and an additional actor is selected (yet again at selection state 1206), the works listed in pane 1006 are immediately and automatically pared down to include only those works in which the newly selected actor has also appeared. If a different work is selected in pane 1006, pane 1008 is immediately and automatically updated to show information regarding the newly selected work.
  • pane 1006 In addition to being able to change states of individual items, the user is presented graphical-user-interface elements to allow changing the state of all items in a particular pane, such as pane 1006. This allows the user to use the user- interface elements above to create a list in pane 1006 of all works meeting certain criteria, e.g., all romantic comedies in which Meg Ryan and Tom Hanks appeared. The user can then change all works listed in pane 1006 to a particular state, e.g., state 1204 indicating that the works are to be purchased.
  • a running total is updated to reflect the cost to the user if the user were to finalize all selections at that time.
  • a second total is given that includes all uncertain items (items that have been checked as "uncertain” or "undecided” at tentative state 1210) and a difference between the two totals. This allows the user to compare various collections of content.
  • the interface also provides limitation via paired sliding controls that provide dynamic constraints to the otherwise- chosen search results. Such limitations can be placed on any ordered dimension, such as release date. By sliding to the extreme right, a user could constrain selection to new releases. By sliding in the other direction, she could limit the selection to classics. This versatile approach can be used with metrics such as price, popularity, audience, program length, and the like.
  • a single sliding control can be used to alphti- numerically index into a table without need for keystrokes or mouse clicks.
  • This locating tool acts as an electronic thumb index and can be integrated into the pane scroll bar.
  • the user interface Due to the abundant choice expected to be offered to the user, the user interface provides the ability to save a current selection and to re-load the saved current selection at a later time. This provides the user with the opportunity to carefully evaluate and research various options of the selection.
  • Hardware and software are economically complementary goods. Making software cheaper makes the hardware that runs it easier to sell. Hardware devices are more expensive than most individual software programs or percepta, but support lower profit margins. Options for a hardware device like a notebook computer, e.g., more memory, a larger drive, an extra battery, some cables, a carrying case and a printer are limited. However, the programs and other soft assets in a panoplex, as illustrated in the music-playing cell phone above, are virtually unlimited and support higher profit margins on both the immediate sale and on follow-on upgrades.
  • Pricing approaches can vary by cost, perceived value, or market rate. Pricing can provide signals as to quality of an item. Relative pricing can steer a purchaser from a low-margin product to higher-margin products. By dynamically pricing, a vendor can alter the likelihood, size, product mix, and profitability of a potential sale. Furthermore, by dynamically aggregating the flow of such sales along particular characteristics, a company can continuously steer towards attaining complex, and sometimes conflicting corporate goals. The general psychology of pricing favors setting a reference price and making reductions relative to that reference price, i.e., a "sale.” Thus, prices in a broad sense includes sticker price, rebates, discounts, coupons, freebees, two-for-one offers, and the like. Reductions can be event-driven and time-limited to spur a customer to a desired action.
  • the total price is updated by applying sets of rules, "i.e. the pricing policies," to all selected content (those items that have been checked as "to purchase” at purchase state 1204).
  • Each pricing policy e.g., pricing policy 620A ( Figure 6) or pricing rules 244 (Figure 2A) or pricing engine 1300 ( Figure 13), specifies conditions and associated pricing.
  • a very simple pricing policy is fixed pricing, wherein the price of the associated content is fixed and remains the same regardless of other circumstances surrounding the selection.
  • a slightly more complex pricing policy is bundling pricing, in which the price is one value if another item is not selected and another, lower value if the other item is selected.
  • the Microsoft Visio® drawing program is one price if the Microsoft Word® word-processing program is not selected and another, lower price if the Microsoft Word® word-processing program is selected.
  • the Microsoft Visio® drawing program is one price if the Microsoft Word® word-processing program is not selected and another, lower price if the Microsoft Word® word-processing program is selected.
  • pricing policy 620A Another pricing policy that can be represented as pricing policy 620A is a hardware-bundling pricing policy.
  • a CD/DVD-burning application can be offered at a substantial discount, if computer 104 includes a CD/DVD drive capable of writing to disks.
  • photo-viewing, photo-editing, and photo-printing software can be discounted in price if the order were to include a digital camera, extra memory, and/or a color printer.
  • the conditions of a pricing policy are intended to be sufficiently flexible that the entity designing the pricing of the panoplex has great latitude in specifying conditions for various prices.
  • an office suite can have a default price and a much-lower price if a competing office suite is in an undecided state (at tentative state 1210) or, in an alternative pricing policy, if the competing office suite has been viewed for an appreciable amount of time in pane 1008.
  • a "please come back" pricing policy can set a default price and a heavily discounted price if the content was selected (at purchase state 1204) and then subsequently de-selected (at tentative state 1210 or start-anew state 1202).
  • a subscription-service provider such as an internet-service provider can provide large subsidies for other content to ensure a long-term service contract — much like rebates sometimes offered by Internet service providers on retail computer equipment.
  • a subscription service provider can offer up to some amount (e.g., $200) of free software in exchange for a long-term contract (e.g., 2 years).
  • software publishers can subsidize subscriptions for new releases and updates to be delivered automatically. .
  • the content of a panoplex is a time-limited resource like seats on an airline flight or rooms in a hotel.
  • a computer shipped without content is an irrevocably lost opportunity to capture revenue.
  • the panoplex content has low variable costs, is a resellable inventory, and has fluctuating demand with known historical data (sales fluctuate with the start of the school year, holidays, release of new operating systems or a new class of high-speed processors). Accordingly, some yield-management pricing approaches used by airlines and the hospitality industry are applicable to sideloading.
  • FIG 13 shows a pricing engine 1300 used to implement panoplex pricing (e.g., such as pricing rules 244 shown in Figure 2A) in some embodiments.
  • pricing engine 1300 includes a micro-economic pricing engine 1302 and a macro-economic pricing engine 1304, each of which monitors the state of the order and provides pricing information to an order- management artificial-intelligence engine 1306, which in turn provides pricing information to user interface 1308.
  • User interface 1308 controls the user interface described above with respect to Figure 10, Figure 11, and Figure 12.
  • micro-economic pricing engine 1302 processes order-centric information specific to the particular user and to the particular selection being made by that user.
  • Customer-valuation engine 1310 determines a particular value of the user-as-a-customer, based on such criteria as past ordering history and prospective future ordering history.
  • order characteristics 1312 include such information as the size of the current order (e.g., number of customized computers, value of customized computers — high-end versus bargain machines, etc.).
  • Customer-relations-management database 1314 contains the customer history data used by customer-valuation engine 1310 in determining the value of the user-as-a- customer.
  • Product-pricing database 1316 includes pricing information specific to the content of the panoplex and includes pricing policies such as pricing policy 620A (see Figure 6).
  • Customer-segmentation engine 1318 determines a value of the user as a customer from information other than the user's history as a customer — e.g., using the customer's address information to determine a level of affluence, determining from address information that the user is a business customer or is a private individual customer, etc.
  • Current promotions 1320 represents current, short-term pricing policies and can be used to periodically fine-tune overall pricing policies.
  • Macro-economic pricing engine 1304 processes information independent of the particular order to influence pricing on a larger scale, e.g., for all sales from a given entity referred to herein as the seller.
  • Business-history database 1322 includes information of various economic metrics of the seller and/or of the industry in which the seller participates.
  • Seasonal— order- history database 1324 represents buying patterns over time - identifying patterns specific to holidays, the start of the school year, beginning/ending of fiscal quarters, and simply the four seasons of winter, spring, summer, and autumn.
  • Corporate interim results 1326 include a recent history of economic performance of the seller.
  • Analyst expectations 1328 include information regarding what financial-market experts expect from the seller and suggest consequent effects in the value of the seller's equity, based on success or failure in meeting those expectations.
  • Corporate objectives 1330 represent large-scale economic objectives of the seller as measured by Return on Invested Capital (ROIC) and the like, and may very closely correlate to, or differ significantly from, analyst expectations 1328.
  • Competition and industry trends 1332 represents tendencies of competitors and the industry and the overall economy generally — e.g., to promote growth at the expense of profit or to promote profit at the expense of growth, and the degree to which to promote one over the other.
  • Pricing policies 1334 and pricing rules and actions 1336 allow for manually crafted adjustments in macro-economic pricing engine 1304.
  • Order-management artificial-intelligence engine 1306 combines the information, targets, and adjustments of micro-economic pricing engine 1302 and macro-economic pricing engine 1304 to provide an actual offering price to user interface 1308 for display to the user, in response to a change in the current selection.
  • all criteria independent of the particular details of the order being placed by the user, are evaluated and processed one time to form baseline-pricing properties, such as a base price and/or minimum acceptable margin.
  • baseline-pricing properties such as a base price and/or minimum acceptable margin.
  • FIG 14 is a flow diagram of a validation process 1400.
  • software is installed and validated that the install worked correctly.
  • the validation process is used in some embodiments, to verify that a soft asset (such as one or more software programs) will function properly if installed onto a storage medium during a panoplex-generation procedure.
  • a soft asset such as one or more software programs
  • the content of the installation package is examined for items that can conflict with other applications in the superset of soft assets in a panoplex 211.
  • This validation starts at block 1410 (operation vl) where the installation package is opened.
  • a check is made for conflicts (some of the items that may cause conflict are Component Object Model (COM) classes that may be shared with the other applications in the panoplex superset).
  • COM Component Object Model
  • one requirement for this validation operation is that the program author at block 1414, is to change the installation program to use side-by-side objects, and that the Class and SelfReg tables contain no entries.
  • a decision block 1420 is provided to check whether the installation program requires a reboot or schedules reboot entries as part of the installation, and if so, at block 1418, the author (e.g., the software company that created the soft asset) is to remove the requirement to reboot.
  • the requirement for no reboot is dropped and the program may ask for a reboot as part of installation.
  • a check is made to determine whether installation of the soft asset creates "permanent components" that would not be erased if the soft asset were uninstalled or removed by gryphing. If so, at block 1422, the validation program or its user would validate with the author whether or not the permanent data was unavoidably required to be permanent, and if not, the permanent aspect of that data would need to be removed by the author before the soft asset could be validated or certified to be usable in a panoplex.
  • a check is made to determine whether installation of the soft asset is performed by "custom action entries" that would not be transparent as to what action was being performed (i.e., in some embodiments, the validation process requires that all actions performed by the installation program be visible and verifiable by the validation process. If custom actions were being used, at block 1426, the validation program or its user would require the author to remove the custom actions and make all actions performed by the installation program be visible and verifiable in order to be validated or certified to be usable in a panoplex.
  • FIG. 15A is a flow diagram of a method 1501.
  • computer-implemented method 1501 includes copying 1510 a panoplex containing a plurality of soft assets onto a storage device; obtaining 1512 customer-specific selection data differentiating an ipselecta of authorized soft assets from a relicta of unauthorized soft assets; and automatically culling 1514 the unauthorized soft assets from the panoplex such that the storage device contains only the authorized assets and storage space is available in place of the unauthorized assets, and wherein the plurality of soft assets is unavailable to the user before the culling operation is performed.
  • Figure 15B is a block diagram of a system 1502.
  • system 1502 includes a managed set 220 of one or more digital master panoplex images 1520, each holding a set of soft assets, a duplication facility 1522 coupled to the managed set and operable to transfer an instance of a selected master panoplex image onto a storage device, a data interface 1524 eliciting and receiving selection data for a customized subset of soft assets in the selected master panoplex image, a gryphing engine 1526 operable to selectively remove certain assets from the storage medium based on the selection data, and a charging mechanism 1528 operable to charge a selected account an amount of money based on the selection data, and to authorize delivery of a device that uses the soft assets available on the storage medium to a consumer.
  • Figure 15C is a flow diagram of a method 1503.
  • method 1503 includes a computer- implemented method including providing 1530 a computer-readable master storage medium having a plurality of panoplexes stored thereon including a first panoplex that includes a first plurality of installed soft assets and a second panoplex that includes a different second plurality of installed soft assets, providing 1532 a first computer-readable and computer-writable end-user storage medium, obtaining 1534 data that specifies a first selected one of the plurality of panoplexes, and writing 1536 the first selected panoplex to the first end-user storage medium, wherein the first plurality of installed soft assets are unavailable for use until a further operation uninstalls a subset of the soft assets.
  • this method is performed in a different order than that shown, for example, the providing 1532 a first computer-readable and computer-writable end-user storage medium, and the obtaining 1534 data that specifies a first selected one of the plurality of panoplexes, are performed in reverse order from that shown.
  • method 1503 optionally includes creating the first panoplex by installing the first plurality of soft assets. In some such embodiments, method 1503 optionally includes uninstalling 1535 a set of unselected soft assets from the first-selected panoplex before writing the first-selected panoplex to the first end-user storage medium.
  • FIG. 15D is a flow diagram of a computer-implemented method 1504.
  • computer- implemented method 1504 includes generating 1540 a panoplex that includes a universe of separately selectable installed soft assets, copying 1542 the panoplex to each one of a plurality of computer-readable and computer-writable end-user storage media, obtaining 1544 selection data that distinguishes ipselecta (a first subset of the plurality of installed soft assets that are to be retained) from relicta (a second subset of the plurality of installed soft assets that are not to be retained), gryphing 1546 a selected first end-user storage medium (erasing and/or uninstalling the relicta from the end-user storage medium as specified on the selection data), and delivering 1548 the gryphed end-user storage medium.
  • a storage medium having a FAT32 volume is divided into four areas: the boot record, the File Allocation Tables, the root directory, and the data area.
  • the boot record is the first 3 sectors of a FAT32 volume. It defines the volume, as well as the whereabouts of the other three areas. If the volume is bootable, then the first sector of the boot record also contains the code required to enter the file system and boot the OS.
  • the File Allocation Table is a series of addresses that is accessed as a lookup table to see which cluster comes next, when loading a file or traversing a directory.
  • the system had just loaded cluster 23, it would look up offset 23 in the FAT and the address there would be that of the next cluster; typically 24.
  • FATl and FAT2 there are typically two copies (i.e. FATl and FAT2) so that corruption of the FAT can be detected and, hopefully, intelligently repaired.
  • the root directory is fixed in length and typically located at the start of the volume (after the FAT), but FAT32 treats the root directory as just another cluster chain in the data area. However, even in FAT32 volumes, the root directory will typically follow immediately after the two FATs.
  • the data area fills the rest of the volume, and is divided into clusters (the size of which depend on the total size of the volume or storage medium); it is here that the file data is stored.
  • Subdirectories are files with a particular structure that is understood by the file system, and are marked as being directories rather than files by setting the "directory" attribute bit in the directory entry that points to it.
  • a file has at least one and usually three components: a directory entry that defines the file, a set of values in the FAT that define the data clusters, if any, and/or none or more data clusters that contain the actual data itself. If a file has zero length, then there are no data clusters or FAT entries associated with it.
  • NTFS new technology file system
  • a system file is one used by the file system to store its metadata and to implement the file system.
  • System files are placed on the volume by the Format utility.
  • One embodiment of NTFS directory metadata is shown in the following Table of Metadata Stored in the NTFS Master File Table:
  • Master file table $Mft O Contains one base file record for each file and folder on an NTFS volume. If the allocation information for a file or folder is too large to fit within a single record, other file records are allocated as well.
  • Log file $LogFile 2 Contains a list of transaction steps used for NTFS recoverability.
  • Log file size depends on the volume size and can be as large as 4 MB. It is used by Windows NT/2000 to restore consistency to NTFS after a system failure.
  • Volume $Volume 3 Contains information about the volume, such as the volume label and the volume version.
  • Attribute $AttrDef 4 A table of attribute names, numbers, and descriptions. definitions Root file name $ 5 The root folder. index
  • Cluster bitmap $Bitmap 6 A representation of the volume showing which clusters are in use.
  • Boot sector $Boot 7 Includes the BPB used to mount the volume and additional bootstrap loader code used if the volume is bootable.
  • Bad cluster file $BadClus 8 Contains bad clusters for the volume.
  • Security file $Secure 9 Contains unique security descriptors for all files within a volume.
  • Upcase table $ U p c ci s e 10 Converts lowercase characters to matching Unicode uppercase characters.
  • NTFS extension file $Extend 11 Used for various optional extensions such as quotas, reparse point data, and object identifiers.
  • other metadata is used in the directory structures.
  • Other file systems and directory structures are known to those of skill in the art, and one of skill in the art can readily find and use information on any particular file system and directory structure, and use a low-level operating system or program to directly access sectors, clusters, boot records, and other structures needed to create, read, modify, and/or write data needed in order to gryph a storage medium to erase non-selected soft assets.
  • the present invention uses a basic low-level operating system such as MS-DOS, which allows read and write access to any disk sectors, including those used by the high-level operating system for its directory (including the NTFS directory).
  • MS-DOS basic low-level operating system
  • Figure 16 is a flow diagram of a fast-secure erase method 1600 used to enhance system security and make it more difficult to reconstruct erased relicta culled by gryphing.
  • a storage medium having a panoplex is gryphed to remove non-selected soft assets.
  • the process 1600 more fully obliterates directory entries, FAT table cluster linkages, NTFS MFT data, and/or any other metadata in the directory, in order to make it much more difficult to reconstruct erased soft assets that were culled from the panoplex.
  • such directory metadata is overwritten with zeros ("zeroed"), while in other embodiments, any other suitable data patterns (including, in some embodiments, pseudo-random or random data) are used.
  • the operating system e.g., Windows XP or VISTA
  • Windows XP or VISTA e.g., Windows XP or VISTA
  • a low-level program and/or operating system capable of directly or indirectly reading and writing to anywhere on the intransient signal carrier or storage medium, is used to provide the capability and function needed to implement the fast-secure erase function.
  • the fast-secure erase function also includes a "enablement- metadata-erase" function.
  • an enablement- metadata-erase function operates to locate and obliterate such enablement-metadata or registration-key data that may be located outside the directory metadata.
  • the fast-secure erase function also includes a "registry-key-erase" function.
  • Many programs, in order to run, require one or more specific keys (registry metadata) to be entered that enables functionality of some or all of the soft asset.
  • the registry-key-erase function operates to locate and obliterate such registry-key that may be located outside the directory metadata. In some such embodiments, this function also compresses the remaining registry data or eliminates the spaces previously used for relicta registry data.
  • the fast-secure erase function also includes a "background-erase;” a background-running program or function that systematically locates storage-medium sectors or clusters of data which are not used for holding the ipselecta or the data added after gryphing (e.g., the user's new data or programs) and which can be assumed to have held files or other data structures of the relicta, and writes a predetermined data pattern (e.g., zeros, ones, patterns of ones and zeros, and/or pseudo-random or random data) onto those file sectors and clusters.
  • a predetermined data pattern e.g., zeros, ones, patterns of ones and zeros, and/or pseudo-random or random data
  • a data structure is created during gryphing that specifically identifies the sectors and clusters holding relicta data, and that data structure is used (in conjunction with a checking function that verifies such clusters and sectors have not already been overwritten with new or user data) to direct the background erase.
  • the fast-secure erase 1600 obliterates (e.g., overwrites with other data) all or substantially all the directory metadata associated with identifying and locating relicta (soft assets that were erased by the gryphing program).
  • the fast-secure erase runs a background-erase program that runs during idle or wait times of the processor, and systematically obliterates the file-data areas (e.g., sectors and/or clusters) where relicta were located.
  • the fast secure erase includes both obliterating directory metadata as well as obliterating, through a background-erase, the relicta file-data areas.
  • COM classes must be installed in the side-by-side mode that makes them private to the using software application, not shared between all applications. This means that there must be no COM class registration in the installation package for the software application.
  • a Class ID (CLSID) is typically a 128-bit number that represents a unique identifier for a software application or application component. The validation can be implemented using example Visual Basic script as follows, which tests for the presence of entries in the Class and SelfReg tables in the installation package:
  • Database Installer. OpenDcitabasefthe MSI installation package
  • Database Installer. OpenDcitabasefthe MSI installation package
  • a permanent component should not be added to the computer system when the installation package is installed.
  • a permanent component is one that is not uninstalled when the application is uninstalled. This means that unnecessary files or registry entries would remain on the computer system. These will not be used by the software applications that remain after the CreateFinalSubset API is called, and they occupy disk space.
  • Database Installer. OpenDcitabasefthe MSI installation package)
  • View Database.OpenView ('Select Attributes from Component')
  • AttributeRecord View.Fetch
  • AttributeValue AttributeRecord. IntegerData(l)
  • Custom Actions are custom code that the author of the installation package has added to be run during the install or uninstall of the application. This custom code can break validation because it can violate the rules that prove that the installation package does not conflict with other applications in the superset. As an example, the custom code in a custom action can create a COM registration entry or cause the computer to reboot. The requirement for validation at this operation is that the installation package contains no custom actions.
  • Database Installer. OpenDcitabasefthe MSI installation package
  • View Database.OpenView (' Select Action from CustomAction')
  • an additional next stage of validation is performed, which includes: Checking the candidate MSI against the others already in the superset:
  • Fast, secure erasure seeks a middle ground between ordinary erasure and high-security erasure. Ordinary erasure leaves enough of deleted files behind for reconstruction of such deleted files in a process generally referred to as "undeleting.”
  • An unsecure erasure is an undesirable circumstance, since a user could simply not select certain valuable content and thereafter "undelete" the erased valuable content.
  • Defragmentation can defeat simple undelete/unerase programs but is relatively time-consuming.
  • Some high-security erasure techniques typically involve several iterations of writing randomly selected bit values over the previously stored substantive data and metadata to prevent even close examination of magnetic patterns on the surface of the storage medium from revealing the data previously stored on the medium. These multiple iterations are much more time-consuming than either simple erasure or defragmentation.
  • the present invention provides an erasure mechanism that is more expensive to defeat than the cost of the erased content.
  • the cost of a conventional undeletion of a conventionally deleted file can be trivial. Accordingly, a more-secure mechanism should be used.
  • the cost of defeating high-security erasure could be many times greater than the value of the erased panoplex content, but the use of high-security erasure exacts a toll on the manufacturer or retailer in terms of throughput (e.g., machines per hour) of the customization process. Accordingly, a more efficient erasure mechanism is needed.
  • removal of extraneous content of the panoplex uses a secure, quick erase that overwrites file directory information that would otherwise allow file reconstruction.
  • file directory information includes any file-in-use flag, file length, file-folder location, and cluster-allocation pointers.
  • Such an erasure foils normal undelete programs and makes any attempt to reconstruct the content more costly than the cost of acquiring the content.
  • secure, quick erasure includes making the following modifications to the file as represented in the file system directory structure: (i) marking (changing to a predetermined value) the first byte of the file name, (ii) zeroing data representing the file size, (iii) traversing FAT cluster entries and zeroing all cluster entries traversed, and (iv) zeroing the address of the first FAT cluster.
  • FAT FiIe Allocation Table
  • secure, quick erasure includes making the following modifications to the file as represented in the file system directory structure: (i) zeroing the erase flag of the file, (ii) zeroing data representing the file size, (iii) zeroing all data attributes of the file, and (iv) zeroing the $Bitmap clusters of the file.
  • NTFS New Technology File System
  • secure, quick erasure destroys data used in currently used undelete mechanisms and is far more time efficient than the high-security erasure mechanisms.
  • This secure, quick erasure can be implemented as a stand-alone module, a filter driver, or a patch to the conventional erasure routine included in the operating system of the panoplex. If the secure, quick erasure is implemented as a stand-alone module or as a filter driver, the respective installation and, more importantly, removal scripts of the various pieces of content of the panoplex are modified to use the secure, quick erasure mechanism rather than the conventional, recoverable erasure mechanism.
  • the secure, quick erasure is implemented by a patch to, i.e., modification of, the conventional erasure routine, it is preferred that the patch is removed following complete customization of the panoplex such that conventional, recoverable erasure is restored and the user's experience thereafter is conventional and as expected.
  • panoplexes are surreptitiously identified as such.
  • superfluous content is included in the panoplex and is never removed during customization of the panoplex, regardless of the selections made by the user.
  • Such superfluous content is preferably disguised as required content such that the casual copyist would leave the superfluous content in place for fear of damaging the proper functioning of the panoplex.
  • the superfluous content can be disguised as a DLL and the registry can be modified to indicate that the DLL is required for at least one module of the operating system to prevent removal of the DLL.
  • Another method is to create an unremovable, dummy or stub program for each panoplex, whose MSI table contents log the panoplex creation and software program removal from that panoplex.
  • masked identification elements are termed taggants.
  • percepta e.g., sound files, images, motion video, etc.
  • percepta are watermarked using a particularly efficient watermarking mechanism such as that described in U.S. Patent 6,209,094 by Earl Levine entitled “Robust Watermark Method and Apparatus for Digital Signals.”
  • a particularly efficient watermarking mechanism such as that described in U.S. Patent 6,209,094 by Earl Levine entitled “Robust Watermark Method and Apparatus for Digital Signals.”
  • percepta that are required by the operating system and/or valuable to one or more applications likely to be selected by the user are watermarked in this manner. Examples include computer desktop wallpapers, sounds played by the operating system on occurrence of system events such as startup or shutdown, and clipart used by popular office suites.
  • a panoplex without an operating system e.g., a hard drive used in a digital music player, a substantial portion, if not all, of the soft content (typically digital music files) is watermarked.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

L'invention concerne un appareil et un procédé permettant d'obtenir un support d'enregistrement présentant un ensemble personnalisable en profondeur de contenu installé. Des actifs logiciels (par exemple, des programmes, des chansons, des vidéos, etc.) constituant le contenu sont sélectionnés parmi un ensemble nettement plus important d'actifs logiciels pré-installés stockés précédemment sur un support d'enregistrement, tel que des lecteurs de disques. Dans quelques modes de réalisation, en fonction des sélections de l'utilisateur, les actifs non sélectionnés sont effacés de manière permanente d'un support d'enregistrement, alors que les actifs restant sont disponibles tels qu'ils ont été installés (sensiblement aucun autre traitement n'est nécessaire pour les installer).Dans quelques modes de réalisation, un nouveau dispositif utilise le support d'enregistrement afin de mettre en place pour l'utilisateur un dispositif totalement fonctionnel, l'installation distincte des actifs logiciels à partir d'une pluralité de sources (par exemple, à partir de CDROMS de programme-distribution et analogue) n'étant plus nécessaire. Dans quelques modes de réalisation, le support d'enregistrement comprend les actifs logiciels installés et un programme mettant à jour les sélections de l'utilisateur et effaçant les actifs non sélectionnés.
PCT/IB2006/054787 2005-12-22 2006-12-12 Appareil et procédé permettant de distribuer de manière sélective des actifs logiciels par le biais d'une installation soustractive WO2007072309A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN200680053273.6A CN101390050B (zh) 2005-12-22 2006-12-12 通过相减性安装达成选择性分配软件资源的装置与方法
EP06832215A EP1969463A1 (fr) 2005-12-22 2006-12-12 Appareil et procédé permettant de distribuer de manière sélective des actifs logiciels par le biais d'une installation soustractive
JP2008546730A JP2009521043A (ja) 2005-12-22 2006-12-12 減算インストレーション装置及び方法

Applications Claiming Priority (16)

Application Number Priority Date Filing Date Title
US75363505P 2005-12-22 2005-12-22
US60/753,635 2005-12-22
US74720106P 2006-05-14 2006-05-14
US60/747,201 2006-05-14
US11/428,376 2006-06-30
US11/428,352 2006-06-30
US11/428,374 US8286159B2 (en) 2005-12-22 2006-06-30 Method and apparatus for gryphing a data storage medium
US11/428,359 US7712094B2 (en) 2005-12-22 2006-06-30 Method and apparatus for replicating a panoplex onto a storage medium from a master
US11/428,369 US20070150889A1 (en) 2005-12-22 2006-06-30 Method and apparatus for panoplex generation and gryphing
US11/428,352 US20070150887A1 (en) 2005-12-22 2006-06-30 Apparatus and method for selectively dispensing soft assets
US11/428,359 2006-06-30
US11/428,376 US8321859B2 (en) 2005-12-22 2006-06-30 Method and apparatus for dispensing on a data-storage medium customized content comprising selected assets
US11/428,369 2006-06-30
US11/428,346 2006-06-30
US11/428,346 US7398524B2 (en) 2005-12-22 2006-06-30 Apparatus and method for subtractive installation
US11/428,374 2006-06-30

Publications (1)

Publication Number Publication Date
WO2007072309A1 true WO2007072309A1 (fr) 2007-06-28

Family

ID=37965017

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2006/054787 WO2007072309A1 (fr) 2005-12-22 2006-12-12 Appareil et procédé permettant de distribuer de manière sélective des actifs logiciels par le biais d'une installation soustractive

Country Status (3)

Country Link
EP (1) EP1969463A1 (fr)
JP (1) JP2009521043A (fr)
WO (1) WO2007072309A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099437B2 (en) 2005-12-22 2012-01-17 Alan Joshua Shapiro Method and apparatus for selective file erasure using metadata modifications
CN110032481A (zh) * 2019-03-21 2019-07-19 杭州涂鸦信息技术有限公司 一种无线产品测试方法、无线产品测试系统及电子设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768566A (en) 1996-03-01 1998-06-16 Microsoft Corporation Method and facility for uninstalling a computer program package
US5794052A (en) * 1995-02-27 1998-08-11 Ast Research, Inc. Method of software installation and setup
US6006035A (en) 1997-12-31 1999-12-21 Network Associates Method and system for custom computer software installation
US6026439A (en) 1997-10-28 2000-02-15 International Business Machines Corporation File transfers using playlists
US6080207A (en) 1998-06-04 2000-06-27 Gateway 2000, Inc. System and method of creating and delivering software
US6209094B1 (en) 1998-10-14 2001-03-27 Liquid Audio Inc. Robust watermark method and apparatus for digital signals
US6385766B1 (en) 1999-05-20 2002-05-07 Dell Usa L.P. Method and apparatus for windows-based installation for installing software on build-to-order computer systems
US6442754B1 (en) 1999-03-29 2002-08-27 International Business Machines Corporation System, method, and program for checking dependencies of installed software components during installation or uninstallation of software
US20030110241A1 (en) 1996-06-07 2003-06-12 William Cheng System, method, and computer program product for uninstalling computer software
US20040015956A1 (en) * 2001-04-05 2004-01-22 International Business Machines Corporation System and method for automatically de-installing previously installed software based on user defined preferences

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03228136A (ja) * 1990-02-02 1991-10-09 Pfu Ltd 選択ソフトウェア書込み処理方式
JP3153837B2 (ja) * 1993-06-07 2001-04-09 富士写真フイルム株式会社 ハイブリッドディスクへのデータ記録方法
JP2002163505A (ja) * 2000-11-27 2002-06-07 Nec System Technologies Ltd コンピュータの販売方法及びコンピュータ販売支援システム

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5794052A (en) * 1995-02-27 1998-08-11 Ast Research, Inc. Method of software installation and setup
US5768566A (en) 1996-03-01 1998-06-16 Microsoft Corporation Method and facility for uninstalling a computer program package
US20030110241A1 (en) 1996-06-07 2003-06-12 William Cheng System, method, and computer program product for uninstalling computer software
US6026439A (en) 1997-10-28 2000-02-15 International Business Machines Corporation File transfers using playlists
US6006035A (en) 1997-12-31 1999-12-21 Network Associates Method and system for custom computer software installation
US6080207A (en) 1998-06-04 2000-06-27 Gateway 2000, Inc. System and method of creating and delivering software
US6209094B1 (en) 1998-10-14 2001-03-27 Liquid Audio Inc. Robust watermark method and apparatus for digital signals
US6442754B1 (en) 1999-03-29 2002-08-27 International Business Machines Corporation System, method, and program for checking dependencies of installed software components during installation or uninstallation of software
US6385766B1 (en) 1999-05-20 2002-05-07 Dell Usa L.P. Method and apparatus for windows-based installation for installing software on build-to-order computer systems
US20040015956A1 (en) * 2001-04-05 2004-01-22 International Business Machines Corporation System and method for automatically de-installing previously installed software based on user defined preferences

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099437B2 (en) 2005-12-22 2012-01-17 Alan Joshua Shapiro Method and apparatus for selective file erasure using metadata modifications
US8521781B2 (en) 2005-12-22 2013-08-27 Alan Joshua Shapiro Apparatus and method for selective file erasure using metadata modifications
US8782089B2 (en) 2005-12-22 2014-07-15 Alan Joshua Shapiro Selective file erasure using metadata modifications and apparatus
US9171005B2 (en) 2005-12-22 2015-10-27 Alan Joshua Shapiro System and method for selective file erasure using metadata modifcations
CN110032481A (zh) * 2019-03-21 2019-07-19 杭州涂鸦信息技术有限公司 一种无线产品测试方法、无线产品测试系统及电子设备
CN110032481B (zh) * 2019-03-21 2023-08-18 杭州涂鸦信息技术有限公司 一种无线产品测试方法、无线产品测试系统及电子设备

Also Published As

Publication number Publication date
JP2009521043A (ja) 2009-05-28
EP1969463A1 (fr) 2008-09-17

Similar Documents

Publication Publication Date Title
US9176971B2 (en) Method and apparatus for subtractive installation
US8935658B2 (en) Digital asset delivery system and method
Bouman et al. Pentaho solutions
US8065204B2 (en) System and method for software integration and factory deployment
CN100580667C (zh) 利用表单类型生成表单的方法和装置
US9286308B2 (en) System and method for metadata modification
WO2007072309A1 (fr) Appareil et procédé permettant de distribuer de manière sélective des actifs logiciels par le biais d'une installation soustractive
Sarmiento et al. Docker Images and Containers
Finsel The handbook for reluctant database administrators
Torres Windows Admin Scripting Little Black Book
Month ORANGE BYTES STAFF
Out Mac Inside Out: All-in-one guide to optimizing Apple computers
Whitney Windows 8 Five Minutes at a Time
Tymes et al. Switching to Microsoft Windows 7: The Painless Way to Upgrade from Windows XP Or Vista
Brinkley et al. Distribution of databases on CD-ROM

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2008546730

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2006832215

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2006832215

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 200680053273.6

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2006832215

Country of ref document: EP