throbber
(12) United States Patent
`Loomans et al.
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`US 7,873,503 B2
`Jan. 18, 2011
`
`USOO7873503B2
`
`(54) METHOD, SYSTEM, AND PRODUCT FOR
`PERFORMING SUB-CONFIGURATION OF
`ENTITIES
`
`(75) Inventors: Jeffrey William Loomans’ San
`Francisco CA
`Lisa Ann Laane
`’
`,
`’
`’
`CuPemnos CA (Us)
`
`(73) Assigneei Siebel Systems, Inc-s San Mateo, CA
`(Us)
`
`( * ) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 1320 days.
`
`_
`(21) Appl' NO" 10/299’215
`(22) Filed_
`NOV 18 2002
`
`.
`
`.
`
`,
`
`3/1996 Sonty et a1. ............... .. 710/104
`5,499,357 A *
`5/1996 Lynch et a1. . . . . . .
`. . . .. 703/13
`5,515,524 A *
`9/1998 Bentley et al.
`.... .. 703/4
`5,815,415 A *
`5,970,242 A * 10/1999 O’Connor et a1. .
`717/100
`6,223,342 B1: 4/2001 George ........... ..
`717/116
`6,237,139 B1
`5/2001 Hotta et a1. ......... ..
`717/126
`6,256,773 B1* 7/2001 Bowman-Amuah ..
`717/121
`6,289,382 B1 *
`9/2001 Bowman-Amuah ..
`709/226
`
`6,711,688 B1* 3/2004 H b h
`
`t l.
`
`. . . . .
`
`. . . . .. 726/7
`
`715/765
`4/2004
`6,717,595 B1 *
`463/43
`7/2004 Luciano et al.
`6,758,757 B2 *
`.... .. 713/1
`6,854,052 B2* 2/2005 Beeston et a1.
`6,996,711 B2 *
`2/2006 Patterson et a1. .......... .. 713/156
`_
`* _
`Clted by exammer
`Primary ExamineriPaul L Rodriguez
`Assistant ExamineriEunhee Kim
`(74) Attorney, Agent, or Firm4Campbell Stephenson LLP
`
`(65)
`
`Prior Publication Data
`
`(57)
`
`ABSTRACT
`
`Us 2010/0204970 A1
`
`Aug 12, 2010
`
`Related US. Application Data
`(63) Continuation of application No. 09/967,852, ?led on
`Se 28 2001 now abandoned
`p'
`’
`’
`'
`(51) Int Cl
`(2006 01)
`G081? 27/50
`(200601)
`G0 6 F 9/44
`703/13_ 717/116
`'
`52 U 5 Cl
`’
`(
`)
`_'
`'
`' """ "_' """ "_ """"""""""" "
`(58) Field of Classi?cation Search ........ ..: ...... .. 703/13,
`_
`_
`703/22’ 717/121’ 116
`See apphcanon ?le for Complete SearCh hlswry'
`References Cited
`
`(56)
`
`U.S. PATENT DOCUMENTS
`
`Techniques to performing sub-con?guration of components
`of an entity. In one method, the entity is con?gured via a
`parent model and each sub-con?gurable component is con
`?-gured Vla?one Ofa Humbler Of iub—nnkodelsdnmany a seleciq
`tron to con gure'a partrcu ar su -co gura e component 0
`the entity is received, and a sub-model for the selected com
`ponent is identi?ed. One or more values for one or more
`features of the selected component are received (e.g., from the
`parent model or via the sub-model) and form a con?guration
`for the component, Which is then validated based on the
`associated sub-model and the received values. Con?guration
`of the entity is also validated based on the parth model and
`the validated con?guration forthe selected component. Feed
`backs may be provided for each con?guration of the parent
`model and sub-models. The data for the parent model and
`sub-models may be localized or globalized.
`
`5,247,683 A *
`
`9/1993 Holmes et a1. ............ .. 709/221
`
`29 Claims, 11 Drawing Sheets
`
`Identify sub»model map
`for selected sub-model
`
`,514
`Receive seleotlon tori
`of N children sub-models
`in sub-model mapping
`set (e.g., "Storage")
`
`Receive selection for a
`sub-model map value from
`set at options (e.g., "A560
`
`:
`
`(522
`Receive selection tor a
`feature mapping set
`(e.g.. "Power Rating")
`c526
`Receive selection for a
`feature map value
`(e.g., >35“ = '40A")
`
`t
`
`|
`
`i," a.
`
`532 _________e\___________ u. e. Q
`
`' nether
`mapped feature
`Cl 117
`
`Run sub-model in context
`at all selected feature map
`“was Kain Mar Knit)
`
`Return to parent model and
`map values from sub-model
`to parent model
`____I
`
`Page 1 of 24
`
`FORD 1105
`
`

`
`US. Patent
`
`Jan. 18, 2011
`
`Sheet 1 0111
`
`US 7,873,503 B2
`
`A
`f Chasis
`
`700
`
`,/
`Computer System
`
`B
`Processor
`
`C Drive Bay 1
`D Drive Bay 2
`E Drive Bay 3
`
`F Storage
`
`FIG. 1
`
`G
`Power
`Supply
`
`F
`E
`D
`C
`B
`A
`Processor Drive Bay 1 Drive Bay 2 Drive Bay 3 Storage
`Chasis
`P4 1.0GHz
`Floppy
`32xCD
`6.4 GB
`None
`short
`medium P4 1.0GHz
`Floppy
`32xCD
`6.4 GB
`None
`tail
`P4 1.0GHZ
`Floppy
`32xCD
`6.4 GB
`None
`short
`P4 1.3GHz
`Floppy
`32xCD
`6.4 GB
`None
`
`250
`V
`
`G
`Supply
`20 A
`20 A
`20 A
`20 A
`
`FIG. 23
`
`Page 2 of 24
`
`FORD 1105
`
`

`
`US. Patent
`
`Jan. 18, 2011
`
`Sheet 2 0f 11
`
`US 7,873,503 B2
`
`A
`Chasis
`short
`medium
`tail
`903
`
`C
`Drive Bay 1
`Disk Drive
`CD-Drive
`Hard Disk
`None
`\
`210o
`
`B
`Processor
`P4 1.0GHz
`P4 1.3GHz
`P4 1.5(3Hz
`AMD 1.0GHz
`AMD 1-5GHZ
`C l 800M
`9
`HZ 210o
`Cel 1.0GHz
`
`D
`Drive Bay 2
`Disk Drive
`CD-Drive
`Hard Disk
`None
`‘\
`210d
`
`E
`Drive Bay 3
`Disk Drive
`CD-Drive
`Hard Disk
`None
`\
`2109
`
`F
`Storage
`ABC
`XYZ
`\ 210r
`
`G
`Supply
`20 A
`40 A
`
`60 A
`
`210
`80 A
`100 A f 9
`
`Disk
`Drive
`Floppy
`Zip disk
`Superdisk
`\
`210n
`
`CD-
`Drive
`32xCD
`DVD
`CD-R/W
`\
`210i
`
`Hard
`Disk
`6.4 GB HD
`12 GB HD
`18 GB HD
`24 GB HD
`2‘10]-
`
`FIG. 2A
`
`ABC
`Storage
`5 GB
`10 GB
`20 GB
`40 GB
`80 GB
`\‘
`210k
`
`XYZ
`Storage
`18 GB
`28 GB
`56 GB
`\
`2101
`
`Page 3 of 24
`
`FORD 1105
`
`

`
`US. Patent
`
`Jan. 18, 2011
`
`She et3 0f11
`
`US 7,873,503 B2
`
`300
`“1
`
`Sub-Model
`Mapping Set
`1
`I310
`2
`:35
`_
`
`for
`Sub-Model Map 1
`r———L—'__\
`M 330m
`Sub-Model
`Sub-Model 2 330!)
`Sub-Model 1
`
`l
`
`Sub-Model
`(SM) Map 1
`
`'
`N
`
`320n
`32Gb
`320a!
`
`FIG. 3A
`
`Sub-Model 1
`
`33‘”
`
`Feature 1
`value 1 ~344a
`value 2 ~344b
`
`m Feature L
`value 1
`value 2
`
`value K1 ~344k
`5312
`
`value KL
`
`FIG. 3B
`
`Page 4 of 24
`
`FORD 1105
`
`

`
`US. Patent
`
`Jan. 18, 2011
`
`Sheet 4 0f 11
`
`US 7,873,503 B2
`
`410
`
`r4100
`
`Feature Table
`for "Chassis"
`Short
`,412
`Medium
`Tail
`
`Sub-Model
`Mapping Set
`Chasis
`Processor
`Drive Bay 1
`Drive Bay 2
`Drive Bay 3
`Storage w
`Supply
`Sub-Model Map
`for "Storage"
`ABC
`f420
`XYZ
`
`430a
`
`Sub-Model for "ABC"
`440a\v
`440bx
`Storage Amount
`Power Rating
`20 GB ~444a
`40 A
`40 GB ~444b
`60 A
`80 GB ~444c
`80 A
`$42
`
`FIG. 4
`
`Sub-Model for "XYZ" 430D
`
`Storage Amount
`28 GB
`56 GB
`
`Power Rating
`20 A
`60 A
`
`Page 5 of 24
`
`FORD 1105
`
`

`
`US. Patent
`
`Jan. 18, 2011
`
`Sheet 5 0f 11
`
`US 7,873,503 B2
`
`C
`
`Start
`
`)
`
`500 r/
`
`7V Run parent model in context I512
`
`Receive se|ection for 1
`of current set of all features
`of N Chndren submodels
`1 m
`in sub-model mapping
`v \N 4/ set (e.g., "Storage")
`Identify sub-model map
`[516
`(513
`.
`.
`for selected sub-model
`Receive selectlon for a
`
`1 ... \M _ _ _ _ f_\~ sub-model map value from
`
`set of options (e.g., "ABC")
`
`[522
`Receive selection for a
`feature mapping set
`(e.g., "Power Rating")
`
`YES
`
`Another
`mapped feature
`selected?
`NO
`
`Run sub-model in context
`of all selected feature map
`values (Xvalt' Xva12’
`XvalL)
`
`\ 01 00 M
`
`L..._..._ _ ~ _ _ _ _ _ _ __
`
`V
`Return to parent model and
`map values from sub-model
`to parent model
`l
`
`,542
`
`FIG. 5
`
`_ _ _ _ _ _ _ _ _ _ __
`
`V
`Identify sub-model for
`selected sub-model map value
`
`>1 "'
`v
`Identify feature map for
`selected feature mapping set
`
`L
`
`:
`[520 ' l
`|
`1
`4'4'\-'
`I
`{524 :
`|
`
`r525
`Recelve selectlon for a
`‘1 m \K 4* feature map value
`Identify selected
`,528
`(8'9" Xva" : 40A)
`feature map value
`
`.
`
`.
`
`r
`
`_________R___________ 01 A Q
`
`Page 6 of 24
`
`FORD 1105
`
`

`
`US. Patent
`
`Jan. 18, 2011
`
`Sheet 6 0f 11
`
`US 7,873,503 B2
`
`( Start
`l
`Run parent model
`
`)
`
`K500
`
`,612
`
`614
`
`Sub-model
`selected?
`
`616
`
`Selected
`sub-model previously
`con?gured?
`
`YES
`
`Pull in data for the selected
`sub-model and set up
`selections for features in
`the selected sub—model
`
`f618
`
`lk
`
`Validate each child
`sub-model of parent model
`l
`Validate parent model
`
`( Start
`FIG. 6
`
`I620
`
`,622
`
`>
`
`Page 7 of 24
`
`FORD 1105
`
`

`
`US. Patent
`
`Jan. 18, 2011
`
`Sheet 7 0f 11
`
`US 7,873,503 B2
`
`C» BRAND
`
`700
`
`71,0
`
`Family
`
`,;
`
`Y“:
`
`
`$9.1 amai ‘
`' Mggch-o-ggn
`
`'
`
`' 'r
`
`?E§QQLQ
`km
`
`M i
`
`,
`
`,, w
`
`“Mm/u- , m
`
`~
`
`740"“ '
`r/
`Compatibility
`
`.
`You:
`W235
`
`750a
`
`9
`
`
`
`i Qon?ggge gggg elf
`
`
`
`Buiid. I’M/erase A g, 12535
`
`' “v '
`
`Height'm }
`
`In? W
`
`Your mm:
`C on?ggre your mate
`
`L522
`
`Lv<
`
`,5»
`
`
`
`
`
`Average Age: 12535 {'1
`
`
`
`Home: Nurnbe! of Cars: ‘3 "7"
`
`w
`
`7223
`
`722b
`
`7220
`
`The cost of your car(s)
`730\ exceeds your family
`income. Please recon?gure
`your car.
`
`FIG. 7A
`
`Page 8 of 24
`
`FORD 1105
`
`

`
`US. Patent
`
`Jan. 18, 2011
`
`Sheet 8 0f 11
`
`US 7,873,503 B2
`
`
`
`hm: hwaQmQ
`
`330 33m
`
`89%
`
`$6
`
`5.333 3mm
`
`“Sum
`
`
`
`T 30 Baum—
`
`“98% .6 39:32 Y
`
`HEEGE Emm n
`
`um 36
`
`“as m
`
`M
`
`W W W M W
`
`:mTorg?mil .
`
`mEme'nuw .
`
`a»,
`
`a»
`
`Page 9 of 24
`
`FORD 1105
`
`

`
`US. Patent
`
`Jan. 18, 2011
`
`Sheet 9 0f 11
`
`US 7,873,503 B2
`
`can
`
`\
`
`Sum?oam 380 030% 805A x35
`
`
`
`82$ 8wa
`1..- @im.% an
`
`
`
`83 a "33% :8
`
`. , as
`
`330 ohm
`
`
`
`335 315"“
`
`2:35 2
`
`
`
`“£8: .99»
`
`
`
`b m92w>< Twasm
`
`393m
`
`wm?m vw? Q 3 mac
`
`23% 50>
`
`
`
`"SHE knew
`
`ssoam @ @
`
`
`
`0 we 30 “.20
`
`
`
`$38 . 936 @PC bz?wanoo Maia @ Hag glad
`
`
`
`
`
`.
`
`
`
`
`
`"new Exxmmraxm? >=Eom
`
`Page 10 of 24
`
`FORD 1105
`
`

`
`US. Patent
`
`Jan. 18, 2011
`
`Sheet 10 0f 11
`
`US 7,873,503 B2
`
`800
`\1
`
`814\
`Configuration
`Engine
`
`812 x l
`User Interface
`
`at >
`
`810
`/
`Host Server
`
`[816
`Loca| Storage
`
`‘
`'
`
`820
`f’
`Database Sewer
`
`Object Manager
`
`8221
`
`24
`18
`I
`Data Manager
`
`826
`
`\szfe/
`
`l
`
`‘
`
`‘
`
`'
`
`Sub-
`
`models
`
`FIG. 8
`
`Page 11 of 24
`
`FORD 1105
`
`

`
`U.S. Patent
`
`Jan. 18, 2011
`
`Sheet 11 of 11
`
`US 7,873,503 B2
`
`
`
`
`
`EmzmzwnzmmmE2m.Ema
`
`39:0550
`
`AmVmo_>oo
`
`Awvmo_>oo
`
`SQE650P_mon>ov_
`
`aGE
`
`wo_>mo59:0
`
`mom.tm.E_
`
`wo_>wQ39.;
`
`womtwE_
`
`(VV‘
`O)
`
`vtoémz
`
`momtwE_
`
`$905.550>307.xmfiEm:
`mmo_>mn_V65
`
`
`
`Am:ommmoo._n_
`
`cg
`
`EmN3
`
`Q3
`
`Page 12 of 24
`
`FORD 1105
`
`Page 12 of 24
`
`FORD 1105
`
`
`

`
`US 7,873,503 B2
`
`1
`METHOD, SYSTEM, AND PRODUCT FOR
`PERFORMING SUB-CONFIGURATION OF
`ENTITIES
`
`BACKGROUND OF THE INVENTION
`
`The present invention relates generally to computer pro
`cessing, and more particularly to techniques for performing
`sub-con?guration of complicated entities.
`For many applications, it is necessary to de?ne and repre
`sent complicated structures or entities. A complicated entity
`may include multiple components, each of which may be
`con?gurable and may further include sub -components . As the
`number of components and sub-components increases, the
`task of modeling such entity also (exponentially) increases
`along with the resources needed to represent the entity.
`One example of such a complicated entity may be a com
`puter system offered for sale by a vendor. The computer
`system may include a number of components (e.g., chassis,
`processor, storage, and so on) that may be customized to suit
`a buyer’s preference and requirements. Each component may
`be associated with a number of possible choices (e.g., the
`chassis may be tall, medium, or short). A buyer may then
`customize the computer system by selecting a particular
`choice for each component.
`The con?guration of a complicated entity can be challeng
`ing. For practical considerations and possibly due to system
`constraints, not all possible combinations of choices for the
`components (i.e., con?gurations) may be available or valid.
`In one conventional implementation, rules and constraints
`may be de?ned to validate con?gurations. These rules and
`constraints may be invoked once a speci?c con?guration has
`been selected, and are used to determine whether or not that
`con?guration is valid. In another conventional implementa
`tion, all valid con?gurations may be de?ned in a master table.
`Once a speci?c con?guration has been selected, the master
`table may be consulted to validate the con?guration. How
`ever, this master table may be very large for a complicated
`entity.
`Besides the complexity in representing complicated enti
`ties and valid con?gurations, other challenges may also be
`associated with the con?guration process. For example, if the
`validation of a selected con?guration is performed after all
`choices have been selected and the con?guration is then
`deemed to be invalid, then the selection process may need to
`be repeated again. Each iteration of the selection and valida
`tion processes is typically associated with a cost that should
`be minimized. Moreover, it may be desirable to provide rec
`ommendations based on choices that have already been
`selected, and this may be dif?cult to support using the con
`ventional rules/constraints or a master table.
`Thus, techniques that can be used to support con?guration
`of complicated entities are highly desirable.
`
`SUMMARY OF THE INVENTION
`
`The invention provides techniques to con?gure compli
`cated entities using sub-con?guration, which effectively par
`titions the con?guration of a complicated top-level entity into
`a set of con?gurations of smaller sub-level entities (i.e., com
`ponents of the top-level entity) in combination with a con
`?guration of a “simpli?ed” top-level entity. The top-level
`entity may be represented by and con?gured via a parent
`model, and each sub-con?gurable component may be repre
`sented by and con?gured via a child sub-model.
`Sub-con?guration simpli?es the data modeling for con?g
`uring complicated entities. (Data modeling is the process of
`
`5
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`encoding data and logic that represent information used to
`represent con?guration information.) With sub-con?gura
`tion, shared options for the top-level entity may be extracted
`and modeled with a single sub-model or a set of sub-models.
`Each sub-model may be referenced and instantiated as
`needed for any of the common options. The sub-models
`reduce the amount of redundancy by localizing data and logic
`needed to represent the shared options, and further simplify
`the data structure and logic for the top-level entity.
`Multiple levels of sub-con?guration may be supported. In
`this case, each child sub-model may be a parent model that
`includes one or more child sub-models. Each child sub-model
`may also be viewed as an independent model, and each sub
`con?gurable component may be con?gured and validated
`individually and independently.
`Sub-con?guration may be implemented in various man
`ners and based on various data modeling structures. In one
`implementation, data for the parent model and child sub
`models is localized, and parameter values may be bi-direc
`tionally passed between the parent model and sub-models
`such that con?guration may be achieved at both levels. In
`another implementation, data for the parent model and sub
`models is globalized, and data for each level is available to the
`other level.
`A speci?c embodiment of the invention provides a method
`for performing sub-con?guration of components of an entity.
`In the method, the entity is con?gured via a parent model and
`each sub-con?gurable component is con?gured via one of a
`number of sub-models. Initially a selection to con?gure a
`particular sub-con?gurable component of the entity is
`received, and a sub-model for the selected component is
`identi?ed. One or more values for one or more features of the
`selected component are received (e. g., from the parent model
`or via the sub-model) and form a con?guration for the com
`ponent, which is then validated based on the associated sub
`model and the received values. Con?guration of the entity is
`also validated based on the parent model and the validated
`con?guration for the selected component.
`A number of sub-con?gurable components may be con?g
`ured and validated, one component at a time, and the parent
`model may be validated after each validated con?guration of
`a sub-con?gurable component. Feedbacks relating to the
`validity of the selections may be provided for each con?gu
`ration of the parent model and sub-models. The data for the
`parent model and sub-models may be localized or globalized.
`The parent model and one or more sub-models may be dis
`played on one common user interface screen.
`The invention further provides other methods, computer
`program products, and systems capable of implementing
`various aspects, embodiments, and features of the invention,
`as described in further detail below.
`The foregoing, together with other aspects of this inven
`tion, will become more apparent when referring to the fol
`lowing speci?cation, claims, and accompanying drawings.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 shows a computer system that may be modeled and
`con?gured using the techniques of the invention;
`FIG. 2A shows a number of feature tables used to list
`available choices for top-level options of the computer sys
`tem;
`FIG. 2B shows a con?guration table used to represent all
`possible valid con?gurations of the computer system;
`FIGS. 3A and 3B show a data modeling structure that
`supports sub-con?guration using mapped features;
`
`Page 13 of 24
`
`FORD 1105
`
`

`
`US 7,873,503 B2
`
`3
`FIG. 4 shows an implementation of the data modeling
`structure in FIGS. 3A and 3B for the computer system;
`FIG. 5 is a ?ow diagram of a process that supports sub
`con?guration using mapped features, in accordance with an
`embodiment of the invention;
`FIG. 6 is a ?ow diagram of a process that supports sub
`con?guration using globalized feature tables, in accordance
`with a embodiment of the invention;
`FIGS. 7A, 7B, and 7C show three screens of an example
`top-level pageset, a sub-level pageset, and a feedback pageset
`for a speci?c implementation that utilizes various aspects and
`embodiments of the invention;
`FIG. 8 is a simpli?ed diagram of an embodiment of a
`con?guration system that may be capable of implementing
`various aspects and embodiments of the invention; and
`FIG. 9 is a block diagram of a computer system.
`
`DESCRIPTION OF THE SPECIFIC
`EMBODIMENTS
`
`The techniques described herein may be used to model and
`represent any complicated entity having a number of compo
`nents. These techniques may further be used to support the
`con?guration of the components at the component level using
`sub-con?guration. For clarity, various aspects, embodiments,
`and features of the invention are described for a speci?c
`example entity, which is a computer system.
`FIG. 1 shows a computer system 100 that may be modeled
`and con?gured using the techniques of the invention. System
`100 includes a number of components (or top-level options),
`each of which may be a “selectable” option or a “sub-con?g
`urable” option. In the example shown, the options includes:
`AiChassis, BiProcessor, CiDrive Bay 1, DiDrive Bay
`2, EiDrive Bay 3, FiStorage Device (or Storage), and
`GiPower Supply (or Supply). Each selectable option may
`be associated with a respective set of choices that are speci?c
`for that option. For example, the Chassis option may be
`associated with three possible choicesiShort, Medium, and
`Tall. Each top-lever sub-con?gurable option may be associ
`ated with any number of sub -level options, each of which may
`be a selectable option or a sub-con?gurable option. Each
`top-level sub-con?gurable option may be con?gured based
`on its associated sets of sub-level options. For example, each
`of Drive Bays 1, 2, and 3 may be used to install a disk drive,
`a CD-drive, or a hard disk (i.e., three possible options), or
`nothing at all (which may be a default). The Disk Drive,
`CD-Drive, and Hard Disk options may each be further asso
`ciated with one or more sets of choices that are speci?c for
`that option.
`FIG. 2A shows a number of “feature” tables 21011 through
`210g that may be used to list the available choices for top
`level options A through G, respectively, of computer system
`100. For example, feature table 210a lists the available
`choices for the Chassis option as short, medium, and tall.
`Each remaining feature table 2101) through 210g similarly
`lists the available choices for an associated top-level option.
`The “parent” feature tables 21011 through 210g are shown
`above the dashed line, and the “child” feature tables 210k
`through 210j are shown below the dashed line.
`Each of top-level options C through E (i.e., Drive Bays 1, 2,
`and 3 of computer system 100) may be con?gured to hold one
`of three possible choices (Disk Drive, CD-Drive, and Hard
`Disk components) or nothing. Each of these three compo
`nents may further be associated with one or more sets of
`choices (only one set of choices is shown for each component
`for simplicity). Thus, FIG. 2A also shows feature tables 210k
`through 210j that list the available choices for the Disk Drive,
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`CD-Drive, and Hard Disk components, respectively. Simi
`larly, top-level choice F (i.e., Storage) may be con?gured to
`hold an “ABC” or “XYZ” storage component or nothing.
`FIG. 2A further shows features tables 210k and 210l that list
`the available choices for the ABC and XYZ storage compo
`nents, respectively.
`During the con?guration process for computer system 100,
`one of the available choices for each top-level option may be
`selected. A default value may also be assigned to each top
`level option and may be used as the initial choices or if no
`selection is received for the option. The combination of the
`default and selected choices for all top-level options com
`prises a speci?c con?guration for system 100. In a typical
`conventional implementation, once the choices for all options
`have been selected, the resultant con?guration may be vali
`dated.
`FIG. 2B shows a con?guration table 250 (which is some
`times referred to as a validation matrix) that may be used to
`represent all possible valid con?gurations for computer sys
`tem 100. Table 250 includes a number of columns, one col
`umn for each possible (top-level and sub-level) option of
`computer system 100. Each row of table 250 includes a spe
`ci?c set of values for the listed options. To validate a particu
`lar con?guration based on the con?guration table, the set of
`default/ selected choices for the con?guration may be com
`pared against the rows of table 250. If a row includes the same
`set of choices as the default/ selected choices, then that con
`?guration is deemed to be valid. As can be imagined, the
`number of entries (i.e., rows) in table 250 may be very large
`for a complicated entity with many options and choices.
`In the above example, some of the top-level options (e.g.,
`Drive Bays 1, 2, and 3) share the same common options (e. g.,
`Disk Drive, CD-Drive, and Hard Disk), each of which may be
`represented with a respective set of one or more feature tables.
`If these common options are extracted and separately mod
`eled, then the amount of data that needs to be maintained for
`valid con?gurations may be reduced.
`In many instances, constraints and rules may be applied to
`con?guration of a complicated entity (e.g., computer system
`100). As some examples, a vendor may only support a subset
`of the available processors for a short chassis, all three drive
`bays may be available only for medium and tall chasses, a
`power supply of a particular rating is required for each avail
`able model of storage device, and so on. If the relationship
`between different options can be effectively modeled, then
`the amount of data that needs to be maintained for valid
`con?gurations may also be reduced.
`The invention provides techniques to con?gure compli
`cated entities using sub-con?guration, which provides
`numerous bene?ts. Sub-con?guration effectively partitions
`the overall con?guration of a complicated top-level entity
`(e.g., computer system 100) into a set of con?gurations of
`smaller sub-level entities (e.g., Drive Bays 1, 2, and 3) in
`combination with a less complicated con?guration of a “sim
`pli?ed” top-level entity. The top-level entity may be repre
`sented by and con?gured via a parent model, and each sub
`con?gurable component (or sub-level entity) may be
`represented by and con?gured via a child sub-model.
`With sub-con?guration, a complicated entity may be more
`ef?ciently modeled, con?gured, and validated. Each sub-con
`?gurable option of the entity may be con?gured and validated
`via a respective child sub-model. Generally, suf?cient infor
`mation is made available to the child sub-model such that the
`associated option can be validly con?gured. The required
`information may be provided from the parent level, queried
`and entered at the sub-level via the child sub-model, and/or
`provided via some other mechanisms.
`
`Page 14 of 24
`
`FORD 1105
`
`

`
`US 7,873,503 B2
`
`5
`An interactive user interface (or screen) may be used to
`support sub-con?guration such that feedbacks can be pro
`vided at the sub-level. The feedbacks may be a warning of an
`invalid con?guration, a suggestion for new selections to
`obtain a valid con?guration, and so on. In this way, con?gu
`ration errors may be localized, ?agged as they occur, and
`remedied immediately. The feedback mechanism also
`reduces the likelihood of invalid choices propagating through
`the con?guration process.
`Once a sub-con?gurable option has been con?gured and
`validated, the parent model may be returned to, and any
`information from the sub-model that may be needed by the
`parent model is made available to the parent. Upon a return
`from the sub-level, or whenever directed, the parent model
`can be run (i.e., executed) in the context of all options that
`have been selected or con?gured. This allows the parent
`model to be validated with any new con?guration made at the
`sub-level.
`Sub-con?guration further simpli?es the data modeling for
`con?guring complicated entities. With sub-con?guration,
`shared options (e. g., Drive Bays 1, 2, and 3) may be extracted
`and modeled with a single sub-model or a set of sub-models.
`Each sub-model may be referenced and instantiated as
`needed by any of the common options. The sub-models
`reduce the amount of redundancy by localizing data and logic
`needed to represent the common options, and further simplify
`the data structure and logic for the top-level entity.
`In essence, sub-con?guration may be used to exploit com
`mon data patterns in a comprehensive con?guration table. In
`this way, valid con?gurations for a complicated entity may be
`represented using a set of smaller tables. In one implementa
`tion, these smaller tables may be “localized” and some of
`these smaller tables may reside at the parent model and the
`remaining smaller tables may be included in the sub-models.
`In another implementation, these smaller tables may be “glo
`balized” and shared between the parent model and sub -mod
`els. These implementations are described in further detail
`below.
`Multiple levels of sub-con?guration may be supported. In
`this case, each child sub-model may be a parent model that
`includes one or more child sub-models. In the following
`description, the parent model (or top-level) corresponds to the
`current level being con?gured, and the child sub-models (or
`sub-level) correspond to a lower level that may be con?gured
`using sub-con?guration. The current level may also be the
`sub-level of a higher level.
`Each child sub-model may also be viewed as an indepen
`dent model. In such a design, the child sub-model may rep
`resent a particular entity (i.e., a component may be viewed as
`an entity) and may be used independently of the parent model
`or other sub-models to con?gure that particular entity. Each
`sub-con?gurable option may thus be con?gured and vali
`dated individually and independently.
`Sub-con?guration may be implemented in various man
`ners and based on various data modeling structures. In one
`implementation, data for the parent model and child sub
`models is localized, and parameter values may be (bi-direc
`tionally) passed between the parent model and child sub
`models such that con?guration may be achieved at both
`levels. In an embodiment, each sub-model includes one or
`more features mapped from the parent model, and a value for
`each mapped feature that affects con?guration at the sub
`level may be passed from the parent model to the sub-model.
`Correspondingly, values needed by the parent model may be
`returned from the sub -model after con?guration of the child is
`completed.
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`In another implementation, data for the parent model and
`child sub-models is globalized. In this implementation, the
`tables used for con?guration at both the top-level and sub
`level are available to the parent model and sub-models. This
`globalized data modeling structure can provide certain advan
`tages as described below. These two sub-con?guration imple
`mentations and data modeling structures are described below.
`
`Sub-Con?guration Using Feature Mapping
`
`In one implementation for sub-con?guration, which uses
`mapped features, parameter values needed for con?guration
`and validation at the parent model and child sub-models are
`passed between these two levels. Each sub-model is provided
`with suf?cient information needed to con?gure and validate
`the option represented by that sub-model. Some of the
`required information may be obtained at the parent model and
`passed to the sub-model as mapped features. Other informa
`tion may be collected in the sub-model. Upon returning from
`the child sub-model to the parent model, values for the
`mapped features are returned from the child sub -model to the
`parent model.
`FIG. 3A shows a data modeling structure 300 that supports
`sub-con?guration using mapped features. Structure 300 sup
`ports mapping of features between the parent model and child
`sub-models to perform sub-con?guration, as described
`below. The mapped features are akin to parameters that may
`be bi-directionally passed between the parent model and child
`sub-models.
`As shown in FIG. 3A, structure 300 includes a sub-model
`mapping set 310 that includes a number of (N) elements, one
`element for each sub-con?gurable option a the top level. For
`example, sub-model mapping set 310 may include four ele
`ments for options C, D, E, and F (i.e., Drive Bays 1, 2, and 3
`and Storage) of computer system 100. Each element of map
`ping set 310 is associated with a respective sub-model map
`320. For example, option F (Storage) may be associated with
`a sub-model map that includes the two available types of
`storages devices (“ABC” and “XYZ”). Similarly, option C
`(Drive Bay 1) may be associated with a sub-model map that
`includes the three available drive types (Disk Drive, CD
`Drive, and Hard Disk). Each sub -model map 320 may further
`be associated with a set of (M) sub-models 330, where M may
`be one or greater. For example, the sub -model map for option
`F (Storage) may include a ?rst sub-model for theABC storage
`device and a second sub-model for the XYZ storage device.
`FIG. 3B shows an embodiment of a sub-model 330X,
`which may be one of several that may be used for a particular
`sub-model map 320. In general, sub-model 330X includes
`suf?cient information needed to con?gure the option repre
`sented by that sub-model. In the embodiment shown in FIG.
`3B, sub-model 330X includes a set of (L) features 340, where
`L can be one or greater. The ?rst feature 340a may include the
`available choices for the option represented by that sub
`model. Each additional feature may represent either a
`“mapped” feature from the parent model or a “local” feature
`of that sub -model. A mapped feature in the sub -model corre
`sponds to a feature in the parent model, and may be used for
`validation of the sub-model. A local feature in the sub-model
`may be used to further con?gure the option represented by the
`sub-model, and typically does not affect the con?guration at
`the parent model.
`Each feature 340 is associated with a feature mapping set
`342, which includes a set of (K) feature map values 344,
`where K can be one or greater. Feature mapping set 342
`represents the set of possible choices for that feature 340 in
`the sub-model 330X, and each feature map value 344 repre
`
`Page 15 of 24
`
`FORD 1105
`
`

`
`US 7,873,503 B2
`
`7
`sents a speci?c choice for the feature. Feature tables 340 of
`sub -model 330X may represent different types of information
`and may be used in a number of different ways, as described
`below.
`In general, if multiple levels of sub-con?guration are sup
`ported, each sub-model may be a parent model that includes
`selectable and/ or sub-con?gurable options. One local feature
`table may be provided for each selectable option in the sub
`model, and one sub-model mapping set and its associated
`sub-models may be provided for each sub-con?gurable
`option in the sub-model. Each sub-model may thus be a
`model that is independent of the parent model and other
`sub-models, and may be individually and separately con?g
`ured and validated. The dependency between the sub-model
`and parent model may be modeled and expressed via the
`mapped features and the passed parameter values, as
`described below.
`The use of sub-models for top-level sub-con?gurable

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket