Facebook, Inc. v. Phoenix Media/Communications Group, Inc. et al

Filing 106

DECLARATION re 105 Preliminary Claim Construction Briefs by Facebook, Inc.. (Attachments: # 1 Exhibit A, # 2 Exhibit B, # 3 Exhibit C, # 4 Exhibit D, # 5 Exhibit E)(Torres, Javier)

Download PDF
EXHIBIT A 111111 1111111111111111111111111111111111111111111111111111111111111 US006199157Bl United States Patent (10) Dov et al. (12) (45) (54) SYSTEM, METHOD AND MEDIUM FOR MANAGING INFORMATION (75) Inventors: Dan Bar Dov, Tel Aviv (IL); Oded Ben-Haim, Cupertino, CA (US); Roy Lauer, Ramat-Gan (IL); Amotz Maimon, Cupertino, CA (US); Michael Palatnik, Rishon LeZion (IL) (73) ( *) 5,826,065 5,877,819 5,956,337 6,002,854 Primary Examiner-Thomas C. Lee Assistant Examiner-Omar A. Omar (74) Attorney, Agent, or Firm-Hale & Dorr (22) Filed: (51) (52) (58) A system, method and medium for configuring an item such as a machine having multiple optional components is provided. This is accomplished using "options," which correspond to the optional components of the machine, and are selected by a user according to those optional components that the user desires to have as part of the machine. Each option is envisioned to be created to contain the necessary properties (such as attributes and constraints) to appropriately configure the corresponding optional component within the machine. Embodiments of the present invention envision that the options can be arranged in a hierarchical option tree to help allow a user to better visualize the structure of the machine in making decisions concerning configuration. Int. Cl? ...................................................... G06F 9/455 U.S. Cl. ................................................... 713/1; 712/15 Field of Search .................................... 713/1, 2, 100; 712/15 Mar. 30, 1998 References Cited U.S. PATENT DOCUMENTS 5/1991 12/1996 7/1997 6/1998 Gorin et a!. ........................ Landis eta!. ........................ Duff eta!. ........................... Curtis eta!. ......................... ABSTRACT (57) Appl. No.: 09/049,910 * * * * Hinsberg, III et a!. .............. 395!500 Branson ............................... 348/701 Gaddis ................................. 370/395 Lynch et a!. .................... 395/500.01 * cited by examiner (21) 5,020,059 5,588,148 5,644,487 5,774,689 10/1998 3/1999 9/1999 12/1999 Mar.6,2001 Applied Materials, Inc., Centura(TM) HDP Dielectric Etch, Operations Manual, Dec. 1995. Subject to any disclaimer, the term of this patent is extended or adjusted under 35 U.S.C. 154(b) by 0 days. (56) * * * * US 6,199,157 B1 OTHER PUBLICATIONS Assignee: Applied Materials, Inc., Santa Clara, CA(US) Notice: Patent No.: Date of Patent: 371/11.3 395/601 364/140 395!500 26 Claims, 11 Drawing Sheets USER COMPUTER A 102 ' HARD DISK A1 ' FLOPPY DISKC d • \Jl • USER COMPUTER A 102 DISK CONTROLLER MANAGER HARD DISK CONTROLLER B '' FIG. 1 ' ' ' d • \Jl 202 • 204 USER COMPUTER BB'S A ~--------~ LOCKS 206 ~ ------~~--------------------· 208 HARD DISK CONTROLLER CLASS 224 HARD DISK CONTROLLER A ... DISK CONTROLLER MANAGER I HARD DISK CONTROLLER I X TRACKS I .. .DISK CONTROLLER MANAGER I HARD DISK CONTROLLER I Y SECTORS PERTRACK - : BB'S HARD DISK A2 HARD DISK CONTROLLER B ... DISK CONTROLLER MANAGER I HARD DISK CONTROLLER I X TRACKS ... DISK CONTROLLER MANAGER I HARD DISK CONTROLLER I Y SECTORS PER TRACK LOCKS 212 222 BB'S { I I LOCKS 210 HARD DISK A 1 FORCES TAPE BACKUP 216 218 e \Jl -..a-.. 1-" \0 -..\0 I I 1-" FIG. 2 (It -.....l ~ 1-" U.S. Patent Mar.6,2001 Sheet 3 of 11 US 6,199,157 B1 PROJECT DESCRIPTION TREE • • • I . .. USER COMPUTER A I . .. I HARD DISK CONTROLLER A I X TRACKS I . .. USER COMPUTER A I . .. I HARD DISK CONTROLLER A I Y SECTORS PER TRACK I . .. USER COMPUTER A I . .. I HARD DISK CONTROLLER 8 I X TRACKS I . .. USER COMPUTER A I . .. I HARD DISK CONTROLLER 8 I Y SECTORS PER TRACK • • • • I . .. USER COMPUTER A I . .. I HARD DISK A 1 I ROTATION SPEED I . .. USER COMPUTER A I . .. I HARD DISK A 2 I ROTATION SPEED • • • FIG. 3 U.S. Patent Mar.6,2001 Sheet 4 of 11 US 6,199,157 B1 ICF • • I . .. USER COMPUTER A I . .. I HARD DISK CONTROLLER A I X TRACKS I ... USER COMPUTER A I ... I HARD DISK CONTROLLER A I Y SECTORS PER TRACK I . .. USER COMPUTER A I . .. I HARD DISK A 1 I ROTATION SPEED FIG. 4 U.S. Patent Mar.6,2001 Sheet 5 of 11 US 6,199,157 B1 LOCK A PRINTER A DESELECT PRINTER B B HARD DISK A 1 REQUIRES FLOPPY DISK C C HARD DISK A 1 FORCES TAPE BACKUP FIG. 5 U.S. Patent Mar.6,2001 Sheet 6 of 11 US 6,199,157 B1 602 CREATE AN OPTION BASED ON AN OPTIONAL MACHINE COMPONENT IN THE CONTROL HIERARCHY CREATE OPTION TREE ALL 604 OPTIONS FOR OPTION NO ~-----' DESCRIPTION TREE CREATED ? 606 BUILD PRODUCT DESCRIPTION TREE 608 SELECT MACHINE CONFIGURATION FROM OPTION TREE 610 GENERATE ICF BASED UPON SELECTION OF OPTIONS 612 OPERATE CONFIGURED MACHINE FIG. 6 U.S. Patent Mar.6,2001 US 6,199,157 B1 Sheet 7 of 11 706 702 NO 704 WILL OPTION BE RE-USED ? YES CREATE AN OPTION CLASS 708 CREATE AN UNCLASSED OPTION CREATE AN OPTION BASED ON THE OPTION CLASS ADD BUILDING BLOCKS 710 NO YES 714 ADD LOCKS BACK TO FIG. 6 FIG. 7 602 d • \Jl • DEVELOPMENT ENVIRONMENT 802......._ 804 r- s LAUNCHER - OPTION TREE INPUT FILES "- 806 ~ s !+" -._. ~ BUILDING BLOCK INPUT FILE~ PRODUCTION (END USER) ,810 OPTION TREE I OPTION I OPTION CLASS EDITOR USER ) SELECTIONS ~ ( 820 ['812 BUILDING BLOCK EDITOR ..;;: ~ r-~ DATABASE - ,.,.816 PDT BROWSER l- SETUP APPLICATION (822 818) SPECIFIC MACHINE CONFIGURATION FILE(S) (ICF) 830) (824 7832 FIG. 8 d • \Jl • OPTION FACET A OPTION I FILE VIEW EDIT NAME: I FACET- A I TITLE: I FACET A I CLASS: r-- I FACETCLASS FLAGS:- II SELECT 1 I D SHOW ~ CH - INST- NAME EQV_INST NAME PARAMETERS I> FACET NAME FACET_ANGLE I USER ENTRIES I RLP NAME VACUUM CONTROL SUBOPTIONS I I CURRE NT WORK lNG FILE MUTEX I LOCKS W. FILE: ETCH STTS II> v I EDIT... I I ADD ... II REMOVE: FIG. 9A CURRE NTLY SELEC TED LIST OF PROPE RTIES I <ll I I DONE I CLASS SELECTOR BUTTO N IATTACHED BBs I I 0 SHOWS CLASS- INHERITED PROPE RTIES COMM ON LIST OP ERATIONS d • \Jl • OPTION CLASS FLOW9 EXTENDED MENU I I NAME: I FLOW9 TITLE: SUBSYSTEM OF THE CLASS TITLE OPTION CLASS VIEW EDIT FILE I FLOW# SUBSYSTEM: I 0 VISIBLE 0 MUTEX 0 GROUPING IEJ GASFLOW -FLAGS:- .) IATTACHED BBs I> CH_XX_FLOW1_GLBL CH XX FLOW1 I PARAMETERS CH XX FLOW2 IUSER ENTRIES CH XX FLOW1 5200 I SUBCLASSES - - ~ - - I - LOCKS W.FILE: 5200 CONTROLLER.SUS I DONE I I <ll ID lv I EDIT... I I ADD ... II REMOVE I FIG. 98 SUB SYSTEMS ME NU BUTTON U.S. Patent Mar.6,2001 Sheet 11 of 11 US 6,199,157 B1 1002 CPU(S) 1004 ~----------------~ STORAGE DEVICE(S) 1006 f---------; DISPLAY (S) 1008 II 0 1000 FIG. 10 US 6,199,157 B1 1 2 SYSTEM, METHOD AND MEDIUM FOR MANAGING INFORMATION was still very cumbersome. In addition, such schemes, which often utilize a pure tree-based data model, do not assist the user in determining the relationship between the various components that could be configured. For example, they do not indicate whether certain components of the machine are necessary when other components are chosen, or whether certain components are mutually exclusive with one another (e.g., there are no rule-based constraints associated with them). Consequently, what is needed is an efficient, "intelligent" scheme for assisting in the choosing of components for the configuration of a machine. BACKGROUND OF THE INVENTION I. Field of the Invention The present invention relates to a system, method and medium for configuring an item such as a machine, where the item can have a multitude of optional components. With reference to embodiments envisioning configuring a machine, the present invention allows a user to choose from various "options" (representative of machine components) so that the necessary aspects (e.g., software) for operating the desired machine can be implemented. In the course of choosing options, the present invention can guide the user to determine which additional options (and thus which other corresponding machine components) may, e.g., also be required to properly configure the machine in view of those options specifically chosen by the user. It is envisioned that properties of these options are determined by a user prior to choosing the options for configuring the machine. II. Related Art Software is increasingly found in various types of electrical and electromechanical devices. For example, over the past few years, devices such as automobiles and toaster ovens have been incorporated with more and increasingly sophisticated software. Often, software used with a given piece of machinery is written for a particular machine (i.e., a specific configuration of a machine). However, there are also many situations where a "base-model" machine has numerous optional components that can be chosen, requiring a change in the software that is used to operate the machine. For example, many computers can be sold with numerous different options available (e.g., different types and different numbers of hard drives, memory systems, peripherals, etc.). Also, there may be devices that come equipped with numerous different features which a user may want to activate (or deactivate). In any event, it would be very burdensome and highly undesirable for the manufacturer to develop and maintain a complete copy of each type of software suitable for each of the different possible configurations of the machine that users may desire. In some situations, schemes have been developed to sense which optional hardware components exist in a machine configuration, and automatically configure the software accordingly. These schemes require that each component have some feature that allows it to be identified, typically in the form of some electronic connection. However, a user may want to use components that are not manufactured with such identification features. Implementation of such a feature (either during or after manufacture) for each component can be an expensive and cumbersome proposition, significantly adding to the cost of each component, and thus making the finished machine more expensive. To provide a user with an efficient and flexible scheme for configuring machines having multiple possible configurations, various techniques and schemes have been developed. One example was the development of the Masterfab Cluster Controller (MCC) by Applied Materials of Santa Clara, Calif. The MCC uses an inheritance-based control hierarchy scheme to assist a user in configuring the particular machine of their choosing. Specifically, the user can choose specific attribues relating to the desired machine configuration, wherein the attributes are stored for use with the machine during its operation. However, schemes such as the MCC mentioned above are deficient in that the way a user had to configure the machines 5 10 SUMMARY OF THE INVENTION 15 20 25 30 35 40 45 50 55 60 65 The present invention addresses the problem described above by providing a system, method and medium for configuring an item such as a machine in a flexible and efficient manner. Specifically, and with regard to configuring machines, it is envisioned that a given machine may be manufactured with any number of user-selectable optional components (e.g., cars and computers often have numerous available optional components). To allow such a machine with a variety of potential components to be flexibly and efficiently configured (e.g., to have appropriate software attributes implemented to operate the machine) once, e.g., specific optional components have been chosen, the present invention utilizes "options." Options, represented by data in a computer, correspond to the optional components of the machine. They are selected by a user according to the optional components that the user desires to have as part of the machine. Each option is envisioned to be created to contain the necessary information to appropriately configure the corresponding optional component of the machine. Specifically, in creating options corresponding to the optional components, the present invention contemplates that the options are instilled with various properties. In particular, it is envisioned that these properties include attributes and a form of constraint referred to as "locks." The attributes can represent various features of the corresponding component, such as a specific settings to which a machine component should be set. The locks allow options to be related to other designated options in a variety of ways. For example, a lock can force one option to be chosen if a related option is specifically chosen by a user. Embodiments of the present invention also envision that the options can be arranged in a hierarchical option tree. This, for example, allows a user to better visualize the structure of the machine in making decisions concerning configuration. In any event, utilizing this combination of option tree hierarchy and constraints helps allow the present invention to provide a flexible and convenient scheme for configuring an item such as a machine having numerous potential components. Where certain properties may be utilized by more than one option, the present invention also contemplates the creation of an option class. The option class, which itself has various properties associated with it, can be associated with specified options such that those options then take on the properties of the option class (either in whole or in part). Once the options are set up as described above, embodiments of the present invention then contemplate that the user can choose from those options within the option tree to configure a desired machine (having the desired components). The various requirements for operating the machine (e.g., certain portions of software and/or inputs US 6,199,157 B1 3 thereof) are then implemented so that the machine can be appropriately operated. Although the present invention is described primarily in terms of configuring machines, it should be understood that the various aspects of the present invention are applicable to various other types of items, as well. 4 to configure. Some of these components may be optional (and thus may or may not be chosen by a user) while others may be required (either as an integral part of all possible configurations or as a result of choosing a particular 5 component). This blueprint might also describe various relationships between the components. Embodiments of the present invention, in effect, envision possibly using this blueprint as a conceptual starting point in assisting a user to BRIEF DESCRIPTION OF THE DRAWINGS appropriately configure (e.g., prepare for use) a desired Various objects, features, and attendant advantages of the 10 machine configuration. An example of such a blueprint depicting various possible present invention can be more fully appreciated as the same hardware components is shown with regard to FIG. 1. become better understood with reference to the following Referring now to FIG. 1, a computer network having various detailed description of the present invention when considpossible components that can be used to make up a specific ered in connection with the accompanying drawings, in configured machine is shown. In particular, the example of which: 15 FIG. 1 depicts what can be viewed as a "control hierarchy," FIG. 1 is hierarchical diagram depicting example comin which the higher-level components "control" the lowerponents of a machine. level ones (e.g., "disk controller manager" controls "hard FIG. 2 is a hierarchical diagram of an option tree and an disk controller A," which then controls "hard disk A1"). In option class based upon the example machine of FIG. 1. addition, within this hierarchy, it is contemplated that certain FIG. 3 depicts an example of a project description tree 20 aspects of the higher-level (i.e., "parent") components can based upon the example option tree of FIG. 2. automatically apply to the lower-level ones. Thus, FIG. 1 FIG. 4 depicts an example of an instance creation file contemplates a scheme having certain object-oriented based upon a hypothetical selection of certain options from characteristics, yet also having control ramifications as well. the example option tree of FIG. 2. In order to allow the user to not only choose a particular 25 FIG. 5 depicts examples of locks as contemplated by configuration for a desired machine, but also to assist the embodiments of the present invention. user to ensure that a "sound" configuration is chosen, the present invention contemplates that the options are strucFIG. 6 is a flow diagram of a method for creating and tured and implemented so that the appropriate properties are selecting options, as contemplated by embodiments of the present invention. 30 conveniently associated with each option, enabling the appropriate software (and appropriate attributes thereof) for FIG. 7 is a flow diagram of a method for creating options, the corresponding machine component to be implemented as as contemplated by embodiments of the present invention. a result of choosing the option. The present invention FIG. 8 is a diagram showing an example environment contemplates that such structuring and implementation of used for creating and choosing options, as contemplated by 35 the options can be done using any number of available embodiments of the present invention. techniques. One such technique is to create an objectFIGS. 9A and 9B depict example interfaces, as contemoriented "option tree" hierarchy, as shown in FIG. 2. plated by embodiments of the present invention. The options in the option tree example of FIG. 2 are based FIG. 10 is a block diagram of a computer environment, (at least conceptually) on the machine component possibilicomponents thereof and communication schemes used 40 ties depicted in the control hierarchy example of FIG. 1. therewith, as contemplated by embodiments (and environReferring now to FIG. 2, the option tree is composed of a ments thereof) of the present invention. series of "options" representing corresponding machine components that the user can choose. For example, hard disk DETAILED DESCRIPTION controller A208 is one such option that can be chosen by the The present invention relates to a system, method and 45 user. Each of the options has associated "building blocks" (BE's) as well as "locks," which give the option its associmedium for configuring an item such as a machine, where ated properties. the item can have a multitude of optional components. With reference to embodiments envisioning configuring a As envisioned in conjunction with embodiments of the machine, the present invention allows a user to choose from present invention, the option tree of FIG. 2 displays all the various "options" (representative of machine components) 50 options which can be chosen by the user, while the control so that the necessary aspects (e.g., software) for operating hierarchy of FIG. 1 displays the corresponding physical the desired machine can be implemented. In the course of components (which can include software components) that choosing options, the present invention can guide the user to might be included in a configured machine (though not all of determine which additional options (and thus which other which are necessarily selectable in the option tree). For corresponding machine components) may, e.g., also be 55 example, the "disk control manager" 102 as shown in FIG. required to properly configure the machine in view of those 1 might not be a selectable option by itself, but may always options specifically chosen by the user. It is envisioned that be automatically included with the selection of the option properties of these options are determined by a user prior to corresponding to "user computer A" 202 (thus, note that the choosing the options for configuring the machine. disk control manager does not appear in FIG. 2 as an option). Embodiments of the present invention contemplate that 60 Embodiments of the present invention envision that the use of the option tree is to provide a user with a convenient "options" and the properties they possess are created by a user using various editing tools which will be described scheme for organizing and visualizing the potential configfurther below. In any event, the type and number of options urable machines and optional components therein. However, embodiments also envision that the options in the option tree created will be based upon some type of blueprint indicating the possible components that the machine(s) might have. 65 can inherit the properties of their "parent" option. Thus, in This blueprint thus represents at least the superset of the those embodiments, a "child" option may inherit properties from a "parent" option. components needed for any machine that a user may desire US 6,199,157 B1 5 6 Regarding the building blocks, these are envisioned to that must be excluded if other machine components are used. contain certain attributes to be implemented in association As a particular embodiment for facilitating this goal, the with the corresponding machine component. For example, present invention contemplates utilizing option constraints for the option of hard disk controller A (208), the associated called "locks," which can be associated with the various building block (210) indicates the number of tracks and the 5 options and option classes. As an example, lock 218 is number of sectors per track that hard disks under its control shown as associated with the option "hard disk A1," indiare to have. (Though attributes include, e.g., "x tracks," it cating that choosing hard disk A1 "forces" the choosing of should be understood that embodiments of the present the tape backup. In other words, if a user chooses the option invention also envision that x could be a specific number.) "hard disk A1," the tape backup option (not shown in FIG. It should be noted that these attributes are associated with 10 2, but assumed to exist for the purposes of this example) hard disk controller A's position in the control hierarchy in must also be chosen as an option. Embodiments of the order to properly identify the attribute with the appropriate present invention envision that the mandatory choosing of instance of hard disk controller (i.e., "network/user comthe tape backup option can be automatic. It should be puter Ndisk controller manager/hard disk controller_", the understood, however, that the present invention also confirst two portions ("network/user computer A") having been 15 templates other schemes for implementing this type of omitted from the building block shown in FIG. 2 for brevity. relation functionality, and is not limited to the use of "locks" In embodiments of the present invention, it is contemas specifically defined herein. plated that there may be situations where options of like or Ultimately, after the desired options are chosen, it is similar type within the hierarchy (e.g., all hard disks) are envisioned (in, e.g., machine configuration embodiments) likely to use the same attributes. In such situations, it is 20 that software is generated (incorporating the chosen envisioned that some scheme can be implemented wherein attributes based on the building blocks) that operates the the appropriate attributes are created so that they can be used machine having components corresponding to the chosen (and re-used) by designated options. Specifically, in embodioptions. In addition, it is envisioned by embodiments of the ments contemplated by the present invention, "option present invention that when selecting an option from the classes" can be created, comprising attributes and partially 25 hierarchical option tree, an option may be selected only if its unresolved instances. These option classes can serve as "parent" option was selected. (Alternatively, the parent templates for automatically setting default properties of an option can be automatically selected when the child option option, if desired by a user. In particular, embodiments of the gets selected). present invention contemplate that an option may inherit As indicated above, the building blocks of the various these properties as defined in the classes or add to them or 30 options contain the various attributes that are utilized in override them (completely or in part). conjunction with the individual options. Embodiments of the In the example of FIG. 2, a hard disk controller option present invention contemplate that all of these attributes class 224 has been created, and the attributes therein are (along with their associated instance designations) are stored used by the building block 210 associated with the option "hard disk controller A" 208. The "hard disk controller_" 35 together in a "project description tree" (PDT). Consequently, the PDT has in it all of the attributes and associated resolved instance in building block 210 is thus partly unresolved (i.e., instances (i.e., each machine component is uniquely the "_" represents an unresolved parameter) since it is described) for all possible configurations of machine comderived from the hard disk controller class, which may be ponents. Thus, for example, as shown with regard to FIG. 3, used by other options (e.g., hard disk controller B 220). the PDT contains all permutations of the attributes associEmbodiments of the present invention contemplate that 40 ated with both hard disk controller A and hard disk controller the building block contents could also be used for concepts B. (Thus, even though there is a hard disk controller class, other than for configuring machines. For example, the all possible instance and attribute permutations are building blocks could contain paragraphs of text in an accounted for here.) instruction manual for a device such as a car. Then, dependEmbodiments of the present invention contemplate that ing upon the optional accessories chosen by the buyer, a 45 the PDT is the result of all of the building blocks associated custom instruction manual can be generated. As a specific with the options created for the option tree. example, if the buyer chose a car with air conditioning, then When a user finally chooses various options from the a user of the present invention could choose an "air condioption tree to configure a desired machine, various charactioning" option, resulting in the appropriate paragraph(s) appearing in the manual. If the user further chose that the air 50 teristics of those options, such as those indicated by the attributes associated with the options, are implemented. In conditioning unit should contain a thermostat, the user particular, embodiments of the present invention envision would also choose the thermostat option (which would be a that the relevant instances and attributes for the specific "child" option of the previous air conditioning option). configuration of the machine chosen are placed into an Moreover, embodiments of the present invention also allow certain paragraphs to, e.g., be chosen if others are selected 55 instance creation file (ICF). Embodiments of the present invention contemplate that this ICF contains all of the (using a scheme such as "locks," described below). Of resolved instances and associated attributes from the relcourse, it should be understood that the present invention evant building blocks from the user-chosen options and, contemplates use with all types of various items other than therefore, from the relevant corresponding portions of the configuring machines and creating manuals. In addition to associating various attributes with the 60 PDT. Embodiments of the present invention also contemplate that the ICF is a derivative of the PDT. options (through the building blocks), the present invention also envisions that a certain level of guidance or "intelliAn example of an ICF where the Hard Disk Controller A and Hard DiskA1 options were chosen is shown with regard gence" can be implemented to assist a user in configuring an appropriate and workable machine from the available to FIG. 4. Referring now to FIG. 4, it can be seen that the optional machine components (as reflected by the options 65 various instances and attributes corresponding to the building blocks of those options (where the instances are fully presented to the user). Thus, for example, there may be certain optional machine components that are required or resolved, as in the PDT) are shown. Any other instances and US 6,199,157 B1 7 8 attributes corresponding to options chosen to make the now to FIG. 6, the first step is that an option based on an "optional" machine component in the control hierarchy is specific configuration desired by the user would also go into this ICF. Embodiments of the present invention envision that created, as indicated by a Block 602. Thus, as indicated the I CF is created after the user has selected all options. previously, options are created only for "optional" compoIt is envisioned by embodiments of the present invention 5 nents of the machine, since those components that are mandatory would not require an option (i.e., they are just that when the specifically designed machine is started, the included in the machine). I CF is accessed so that the attributes stored therein can be The next step is to determine whether all options that a accessed and utilized. In particular, choosing certain options user would wish to create for the option tree have been may cause appropriate portions of software (e.g., subroutines) to be accessed and executed during the opera- 10 created, as indicated by a decision Block 604. If the answer is "no," then an additional option will be created, and control tion of the configured machine. The attributes of the ICF will go back to Block 602. Otherwise, if all desired options would themselves be used as inputs for this software. have been created, then the next step is to build a product Of course, it should be understood that the present invendescription tree (PDT) based on the building blocks assotion also contemplates the use of schemes other than the ICF, where various attributes (or the like) can be chosen and 15 ciated with the chosen options, as indicated by a Block 606. The PDT was discussed previously with regard to FIG. 3. stored. Once the various options and PDT are in place, the next As mentioned above, the present invention contemplates step is to select a machine configuration from the option tree, the use of various types of constraint-like mechanisms for as indicated by a Block 608. Embodiments of the present ensuring that certain options are appropriately designated 20 invention contemplate that the actual selection can be when other options have been chosen. One such mechanism accomplished using any number of user interface techniques previously mentioned is a "lock," which adds a level of (e.g., graphical editors), where the available options can, for guidance to the machine configuration process. Certain example, be displayed to a user, who then selects desired specific types of locks contemplated by the present invention options using any number of input devices. are as follows: The next step is the generation of an ICF based upon the 25 (1) "Option A requires Option B"-use of this lock selected options from the option tree, as indicated by a Block indicates that Option A may be selected only if Option 610. As indicated above, embodiments of the present invenB is already selected. tion contemplate that the ICF is derived from the appropriate (2) Option A forces Option B-this lock indicates that if components in the PDT, and thus the ICF is a derivative of Option A is selected, and the parent option of Option B 30 the PDT. has already been selected, then Option B, itself, is Finally, the machine as configured by the user is operated, selected automatically. as indicated by a Block 612. It is envisioned that the ICF is (3) Option A deselects Option B-this lock indicates that used as input for the software operating the configured where either one of these options is selected, the other machine (e.g., the software reads in the attributes as input). 35 Of course, it should be understood that, in addition to the is then automatically deselected. steps described with regarding FIG. 6, additional or alterIn addition to being associated with specific options, native steps, as well as a different ordering of the steps embodiments of the present invention envision that the locks can also be one of the properties of an option class, and thus described herein, are also contemplated by embodiments of can be re-used. For example, a lock "Option_ requires the present invention. Option_" could be associated with an option class, and the 40 FIG. 7 is a more detailed illustration of the operation of blank would be resolved to include the particular option(s) Block 602 of FIG. 6. Referring now to FIG. 7, the first step chosen. is to determine whether the option that is being created will be re-used (e.g., the building block attributes will be used by Of course, the present invention contemplates the use of other options), as indicated by a decision Block 702. If the other specific types of locks, as well. FIG. 5 depicts examples of the usage of the locks men- 45 answer is "yes," then an option class will be created if one tioned above, in the context of the example machine comdoes not already exist, as indicated by a Block 706. Embodiponents depicted in FIG. 1 (and options envisioned to exist ments of the present invention contemplate that the option with regard to FIG. 2, some of which are not shown). created will then, itself, be based upon this option class (that is, it will utilize the attributes of the option class) as Referring now to FIG. 5, lock A indicates that if Printer A is selected, then Printer B would be deselected and vice versa. 50 indicated by a Block 708. If the appropriate option class If this lock were to exist, for example, as part of a printer already existed for the created option, then the option will just be created based upon this existing option. option (for either printer A or B), then only one of those If, however, the option will not be re-used, then an printers could be selected at any one time. unclassed option will be created, as indicated by a Block Lock B indicates that hard disk A1 specifically requires floppy disk C. This might be put into effect in conjunction 55 704. In that situation, it is envision that all the attributes and with the hard disk A1 option (of, e.g., FIG. 2), where, for associated instances will be completely defined. example, it is necessary for each configured machine to have In either of the above cases, the option is associated with at least one floppy disk. an appropriate position within the hierarchy of the option Lock C indicates that the hard disk A1 forces the tape tree. backup. Thus, selection of the hard disk A1 will automati- 60 The next step is to add the building blocks to the option, as indicated by a Block 710. Here, the instances and assocally cause the choosing of the tape backup option. This could, for example, be implemented where a tape backup is ciated attributes are associated with the option or option considered critical for any machine configured with a hard class. If an appropriate option class was already created, the disk. option will merely utilize that class' building block inforMethods contemplated by embodiments of the present 65 mation (or add additional information). invention regarding the generation of structures mentioned The next step is to determine whether the option requires/ forces/excludes other options, as indicated by a Block 712. previously are discussed with regard to FIG. 6. Referring US 6,199,157 B1 9 10 In other words, should there be any locks associated with the software to configure a physical machine that has already this option. If "yes," then the locks are added, as indicated been constructed, or to test whether a desired configuration by a Block 714. If "no," then step 714 is skipped. As is feasible. However, embodiments of the present invention indicated above, the particular locks as mentioned in decialso contemplate that choosing the options also automatisian Block 712 are exemplary. In addition, the present 5 cally causes the physical components of the machine to be invention contemplates that various types of constraint assembled, as well (i.e., the configuration generation can schemes can also be used. also include the physical assembly of the machine) and/or In general, it should be understood that the various steps, draws a schematic of the chosen machine. and ordering thereof, are exemplary, and that the present FIGS. 9A and 9B depict examples of user interfaces that invention contemplates that other steps and step ordering are 10 can allow a user to view and edit the contents of a particular also envisioned. option or option class. Referring first to FIG. 9A, various FIG. 8 depicts an exemplary environment in which the property and property types of an option are shown. For present invention may be utilized. Referring now to FIG. 8, example, the "name" of the option (typically corresponding there is shown a "development environment" 830, in which to the name of the potential component to be included into the various structures of the present invention, previously 15 the configured machine) is shown here as "facet_A." It is also shown that this option belongs to the class "Facetmentioned, are created and defined. In a production or "end user" environment 832, an end-user can then select the Class." Thus, the various aspects (e.g., building blocks) associated with FacetClass are also associated with this options previously created in order to configure a specific particular option (unless specifically overwritten, which machine. Referring first to the development environment of Block 20 embodiments of the present invention allow). Also as shown, the user may choose to view various aspects of the 830, it is envisioned that various editors and files exist to create, edit and store the various structures of the present option, including attached building blocks, parameters (i.e., unresolved instances associated with option classes) and invention previously mentioned. Specifically, embodiments suboptions (i.e., "child" options in the option tree hierarchy; of the present invention contemplate that the options and option classes can be created and edited using the option 25 designating options as suboptions using menu schemes of tree/option/option class editor 810, and the building blocks similar nature to that shown in FIG. 9A, as well as pull-down menu schemes and tree diagrams, are ways the present associated therewith can be chosen therefrom. Option tree invention envisions options being positioned within the input files 804 are envisioned to contain items such as a list hierarchy of the option tree). In this particular example, the of potential options which may be created. Similarly, building block input files 806 are stored with instances and 30 user is viewing the various parameters of the option. Also attributes, which can be edited by the building block editor viewable and editable are the locks. 812, and ultimately associated with an option or option class FIG. 9B shows a corresponding user interface for viewing using option tree/option/option class editor 810. The resultand editing an option class. In this particular case, a different ing option tree containing the options, option classes and option class is being shown from the one depicted in the associated properties (e.g., building blocks and locks) is then 35 option of FIG. 9B (specifically, "Flow 9"). In addition, the stored in database 818. In addition, the PDT, which is class is shown to belong to a subsystem (which is a group of option classes from which the option classes can, created from the building blocks associated with the options, themselves, inherit various properties), which embodiments is also stored in database 818. The PDT can be browsed using PDT browser 816. Thus, the database 818 is given the of the present invention also contemplate to exist. necessary information for an end-user to simply choose the 40 With regard to FIGS. 9A and 9B, it should be understood that these user interfaces are shown by way of example, and pre-prepared options to configure the desired machine. that the present invention contemplates that any number of Embodiments of the present invention contemplate that other user interfaces can be used for creating, viewing, and the various editors and browsers (810, 812 and 816) are interconnected (as shown by the non-arrowed lines connectediting options and option classes, and associated informaing them) and are initiated via a "launcher" interface 802. 45 tion belonging thereto. FIG. 10 shows some exemplary hardware for use as part With regard to the end user environment 832, the user selects the options to be chosen using setup application 822. of and/or as the environment of the present invention. Referring now to FIG. 10, one of more CPU's 1002 are In this way, the user selects the desired configuration. The present invention envisions that any number of schemes shown, connected to one or more storage devices 1004 by utilizing input devices can be used for making the selections. 50 bus 1010. The CPUs could be any number of different types, such as any of the line of Intel CPUs such as the Pentium or Then, based upon the options chosen, the appropriate porPentium II manufactured by Intel of Santa Clara, Calif., or tions of the PDT are obtained to form the ICF in file(s) 824. The ICF can then be used to operate the machine as ones manufactured by Motorola of Schaumburg, Ill. The storage device(s) 1004 are contemplated to be various configured by the user. It should be understood that the environments shown and 55 computer memories (e.g., RAM, EPROM, etc.) as well as described with regard to FIG. 8 are by way of example, and disk storage. It is contemplated that one or more aspects of that the present invention contemplates other types of the present invention are located in storage device(s) 1004. situations, as well. For example, the end-user may also be Also attached to bus 1010 is one or more displays 1006, involved with the development and editing process of the providing a user with a visual interface for preparing and individual options, as well (and, thus, developer and end 60 editing various aspects of the present invention. Also shown user are the same entity). In addition, it should also be attached to bus 1010 is an 1!0 1008, which is contemplated understood that the specific types of editors and files are to be various devices such as keyboard and mouse, as well as devices for interfacing aspects of the present invention exemplary, and the present invention envisions other types and schemes for implementing the features of the present with the actual hardware that is to be implemented as per the invention as well. 65 various options chosen. Embodiments of the present invention contemplate that, The computer 1000 having the various components menwithin the end user environment, the user may be generating tioned above can be any number of computers, such as a US 6,199,157 B1 11 12 SparcStation 5 from Sun Microsystems of Mountain View, c) said first option forces said second option. 6. A computer-implemented method for configuring an Calif., or a Pentium-based computer, and can be used in any item, wherein said item comprises two or more optional number of operating systems, such as Sun OS or Microsoft Windows from Microsoft Corporation of Redmond, Wash. machine components, comprising the steps of: It should be understood that the "user," as mentioned 5 (1) creating two or more options, wherein said two or herein, can itself be an automated entity such a computer or more options correspond to said two or more optional computer program. machine components; In general, it should be emphasized that the various (2) associating attributes with each of said two or more components of embodiments of the present invention can be options, wherein said attributes relate to characteristics implemented in hardware, software or a combination 10 of said two or more machine components; thereof. In such embodiments, the various components and (3) creating, from said two or more options, a hierarchical steps would be implemented in hardware and/or software to option tree; perform the functions of the present invention. Any pres( 4) associating an option constraint with a first option of ently available or future developed computer software lansaid two or more options, wherein said option conguage and/or hardware components can be employed in such 15 straint implements a relation between said first option embodiments of the present invention. For example, at least and a second option, some of the functionality mentioned above could be implewherein said relation is based upon a relationship mented using C, C++ or Small talk programming languages. between those of said optional machine components It is also to be appreciated and understood that the specific corresponding to said first option and said second embodiments of the invention described hereinbefore are 20 option; merely illustrative of the general principles of the invention. (5) selecting one or more options from said option tree; Various modifications may be made by those skilled in the art consistent with the principles set forth hereinbefore. ( 6) implementing, responsive to said step ( 5), at least one What is claimed is: attribute corresponding to said one or more selected 1. A computer-implemented method for configuring an 25 options, and placing said at least one attribute into an item, wherein said item comprises two or more optional instance creation file; and components, comprising the steps of: (7) accessing and utilizing said instance creation file (1) creating two or more options, wherein said two or during the operation of said item. more options correspond to said two or more optional 7. The computer-implemented method of claim 6, further components; 30 comprising the steps of: (2) associating attributes with each of said two or more (5) selecting one or more options from said option tree; options, wherein said attributes relate to characteristics and of said two or more components; ( 6) implementing, responsive to said step ( 5), at least one (3) creating, from said two or more options, a hierarchical attribute corresponding to said one or more selected 35 option tree; options. 8. The computer-implemented method of claim 6, (4) selecting one or more options from said option tree; wherein said step (2) comprises the step of associating a (5) implementing, responsive to said step ( 4), at least one designated option of said two or more options with an option attribute corresponding to said one or more selected options, and placing said at least one attribute into an 40 class, wherein said option class contains inheritable attributes, and wherein at least some attributes of said instance creation file; and designated option are thereby inherited from said option ( 6) accessing and utilizing said instance creation file class. during the operation of said item. 9. The computer-implemented method of claim 8, 2. The computer-implemented method of claim 1, wherein said step (2) comprises the step of associating a 45 wherein said step (2) comprises the step of associating a designated option of said two or more options with an option designated option of said two or more options with an option class, wherein said option class contains inheritable class, wherein said option class contains inheritable constraints, and wherein at least some constraints of said attributes, and wherein at least some attributes of said designated option are thereby inherited from said option designated option are thereby inherited from said option class. class. 50 10. The computer-implemented method of claim 8, 3. The computer-implemented system of claim 1, further wherein the properties of all options in said option tree are comprising the step of associating an option constraint with stored together in a database. a first option of said two or more options, wherein said 11. The computer-implemented method of claim 10, option constraint implements a relation between said first wherein the properties of all options chosen using said option and a second option. 55 configuration selector are stored together in a database, for 4. The computer-implemented method of claim 3, use in operating the machine. wherein said step (2) comprises the step of associating a 12. A system for configuring an item, wherein said item designated option of said two or more options with an option comprises two or more optional components, comprising: class, wherein said option class contains inheritable two or more options, wherein said two or more options constraints, and wherein at least some constraints of said 60 corresponding to said two or more optional compodesignated option are thereby inherited from said option nents; class. 5. The computer-implemented method of claim 3, wherein each of said two or more options contains wherein the relation between said first option and said attributes relating to said two or more optional comsecond option is chosen from one of the following group: 65 ponents; a) said first option deselects said second option; an option tree, wherein said two or more options are b) said first option requires said second option; associated within a hierarchy; US 6,199,157 B1 13 14 a configuration selector, for allowing the selection of one or more options from said option tree; and a configuration generator, responsive to said configuration selector, for implementing at least one attribute corresponding to said one or more selected options, and placing said at least one attribute into an instance creation file, wherein said item accesses and utilizes said instance creation file during the operation of said item. 13. The system of claim 12, further comprising an editor for creating said attributes and for associating said attributes with said two or more options. 14. The system of claim 12, wherein at least some of said attributes of a designated option of said two or more options are inherited by associating said designated option with an option class, wherein said option class contains inheritable attributes. 15. The system of claim 12, further comprising an option constraint associated with a first option of said two or more options, wherein said option constraint implements a relation between said first option and a second option. 16. The system of claim 15, wherein at least some of said constraints of a designated option of said two or more options are inherited by associating said designated option with an option class, wherein said option class contains inheritable constraints. 17. The system of claim 15, wherein the relation between said first option and said second option is chosen from one of the following group: a) said first option deselects said second option; b) said first option requires said second option; c) said first option forces said second option. 18. A system for configuring a machine, wherein said machine comprises two or more optional components, comprising: two or more options, wherein said two or more options corresponding to said two or more optional machine components; wherein each of said two or more options contains attributes for affecting said two or more optional machine components; an option tree, wherein said two or more options are associated within a hierarchy; and an option constraint, associated with a first option of said two or more options, wherein said option constraint implements a relation between said first option and a second option, wherein said relation is based upon a relationship between those of said optional machine components corresponding to said first option and said second option; an option selector, wherein said option selector selects one or more options from said option tree; and an implementor, wherein said implementor implements at least one attribute corresponding to said one or more selected options, and wherein said implementor places said at least one attribute into an instance creation file, wherein said machine accesses and utilizes said instance creation file during the operation of said machine. 19. The system of claim 18, further comprising: a configuration selector, for allowing the selection of one or more options from said option tree; and a configuration generator, responsive to said configuration selector, for implementing at least one attribute corresponding to said one or more selected options. 20. The system of claim 19, wherein the properties of all options in said option tree are stored together in a database. 21. The system of claim 20, wherein the properties of all options chosen using said configuration selector are stored together in a database, for use in operating the machine. 22. A computer-readable medium for configuring an item, wherein said item comprises two or more optional components, by performing the steps of: (1) creating two or more options, wherein said two or more options correspond to said two or more optional components; (2) associating attributes with each of said two or more options, wherein said attributes relate to characteristics of said two or more components; (3) creating, from said two or more options, a hierarchical option tree; ( 4) selecting one or more options from said option tree; (5) implementing, responsive to said step ( 4), at least one attribute corresponding to said one or more selected options, and placing said at least one attribute into an instance creation file; and ( 6) accessing and utilizing said instance creation file during the operation of said item. 23. The computer-readable medium of claim 22, wherein said step (2) comprises the step of associating a designated option of said two or more options with an option class, wherein said option class contains inheritable attributes, and wherein at least some attributes of said designated option are thereby inherited from said option class. 24. The computer-readable medium of claim 22, further comprising the step of associating an option constraint with a first option of said two or more options, wherein said option constraint implements a relation between said first option and a second option. 25. The computer-readable medium of claim 24, wherein said step (2) comprises the step of associating a designated option of said two or more options with an option class, wherein said option class contains inheritable constraints, and wherein at least some constraints of said designated option are thereby inherited from said option class. 26. The computer-readable medium of claim 24, wherein the relation between said first option and said second option is chosen from one of the following group: a) said first option deselects said second option; b) said first option requires said second option; c) said first option forces said second option. 5 10 15 20 25 30 35 40 45 50 55 * * * * *

Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.


Why Is My Information Online?