Method and apparatus for configuring systems
DCFirst Claim
1. A method of configuring a system in a computer system comprising the steps of:
- defining a structural model hierarchy comprised of composite and container hierarchies and port relationships substructures;
instantiating in said computer system a configuration instance;
modifying said configuration instance in response to a request by creating in said configuration instance instances of one or more model elements based on said request;
storing said modifications in a list of modifications;
examining said instances to determine if a constraint exists;
satisfying in said computer said constraint when said constraint exists;
satisfying in said computer a component constraint of said component hierarchy when said instances are constrained by said component constraints;
satisfying in said computer container constraints of said container hierarchy when said instances are constrained by said container constraints;
satisfying in said computer connection constraints of said port relationship when said instances are constrained by said connection constraints;
committing said modifications to said configuration instance and removing said modifications from said modifications list when no constraint exists and when all constraints associated with said instances are satisfied; and
removing said modifications from said configuration instance and said modifications list when any constraint associated with said instances is not satisfied.
2 Assignments
Litigations
0 Petitions
Accused Products
Abstract
The present invention employs a generative approach for configuring systems such that a system may be configured based on component or resource requests, or input in the form of need. The present invention provides a constraint-based configuration system using a structural model hierarchy. The structural aspects of the model provide the ability to define a model element as being contained in, or by, another model element. In addition, the structural model provides the ability to identify logical datatype and physical interconnections between elements and establish connections between elements. To configure a system, the present invention accepts input in the form of requests (e.g., component or resource) or needs, such as an expression of a need for a desktop computer system to be used in a CAD (i.e., computer-aided design) environment. Using this information, the present invention configures a system by identifying the resource and component needs, constraints imposed on or by the resources or components identified, and the structural aspects of the system.
-
Citations
6 Claims
-
1. A method of configuring a system in a computer system comprising the steps of:
-
defining a structural model hierarchy comprised of composite and container hierarchies and port relationships substructures; instantiating in said computer system a configuration instance; modifying said configuration instance in response to a request by creating in said configuration instance instances of one or more model elements based on said request; storing said modifications in a list of modifications; examining said instances to determine if a constraint exists; satisfying in said computer said constraint when said constraint exists; satisfying in said computer a component constraint of said component hierarchy when said instances are constrained by said component constraints; satisfying in said computer container constraints of said container hierarchy when said instances are constrained by said container constraints; satisfying in said computer connection constraints of said port relationship when said instances are constrained by said connection constraints; committing said modifications to said configuration instance and removing said modifications from said modifications list when no constraint exists and when all constraints associated with said instances are satisfied; and removing said modifications from said configuration instance and said modifications list when any constraint associated with said instances is not satisfied.
-
-
2. A method of configuring a system in a computer system comprising the steps of:
-
defining a structural model hierarchy comprised of composite and container hierarchies and port relationships substructures; instantiating in said computer system a configuration instance; modifying said configuration instance in response to a request by creating in said configuration instance instances of one or more model elements based on said request; storing said modifications in a list of modifications; examining said instances to determine if a constraint exists; satisfying in said computer Said constraint when said constraint exists; committing said modifications to said configuration instance and removing said modifications from said modifications list when no constraint exists and when said constraint is satisfied; removing said modifications from said configuration instance and said modifications list when said constraint is not satisfied; and indicating that said request failed when said instances of one or more model elements fail to satisfy said request and when said instances of one or more model elements fail to satisfy said constraints and no alternative can be identified to satisfy said request.
-
-
3. A method of satisfying a container constraint in a computer system for configuring systems comprising the steps of:
-
providing a structural model hierarchy comprised of composite and container hierarchies and port relationships substructures; providing in said computer system a configuration instance; satisfying in said computer said container constraint when said container constraint exists by; (a) examining said configuration instance to determine whether a container instance is available to satisfy said container constraint; (b) modifying said configuration instance by creating a new container instance when said container constraint cannot be satisfied by a container instance in said configuration instance; (c) storing said modifications in a list of modifications when said container constraint cannot be satisfied by a container instance in said configuration instance; (e) examining said new container instance to determine if a constraint exists; (f) satisfying in said computer said constraint when said constraint exists on said new container instance; (g) committing said modifications to said configuration instance and removing said modifications from said modifications list when no constraint exists and when said constraint is satisfied; and (h) removing said modifications from said configuration instance and said modifications list when said constraint is not satisfied.
-
-
4. A method of satisfying a component constraint in a computer system for configuring systems comprising the steps of:
-
providing a structural model hierarchy comprised of composite and container hierarchies and port relationships substructures; providing in said computer system a configuration instance; satisfying in said computer said component constraint when said component constraint exists by; (a) examining said configuration instance to determine whether a component instance is available to satisfy said component constraint; (b) modifying said configuration instance by creating a new component instance when said component constraint cannot be satisfied by a component instance in said configuration instance; (c) storing said modifications in a list of modifications when said component constraint cannot be satisfied by a component instance in said configuration instance; (e) examining said new component instance to determine if a constraint exists; (f) satisfying in said computer said constraint on said new component instance when said constraint exists; (g) committing said modifications to said configuration instance and removing said modifications from said modifications list when no constraint exists on said new component instance and when said constraint is satisfied; and (h) removing said modifications from said configuration instance and said modifications list when said constraint on said new component instance is not satisfied.
-
-
5. A method of satisfying a connection constraint in a computer system for configuring systems comprising the steps of:
-
providing a structural model hierarchy comprised of composite and container hierarchies and port relationships substructures; providing in said computer system a configuration instance; generating a connection constraint such that a target element in said configuration instance requires a connection to a destination element of said configuration instance (a) generating a list of destination elements; (b) selecting one destination element from said list of destination elements; (c) identifying unconnected ports of said destination element that are accessible from said target element; (d) identifying available ports of said target element; (e) selecting a first port from one of said unconnected ports of said destination element; (f) selecting a second port from one of said available ports of said target element; (g) comparing the physical type and logical datatype of said first port with the physical type and logical datatype of said second port; (h) examining the transfer path between said first port and said second port; (i) connecting said first port to said second port when said physical type and logical datatype are compatible and when said transfer path exists between said first port and said second port; and (j) repeating steps (b) through (j) when said physical type and logical datatype are not compatible and when said transfer path does not exist between said first port and said second port.
-
-
6. A method of generating a system configuration using a computer system comprising the steps of:
-
defining in said computer system an element model consisting of elements used to configure said system and structural relationships between said elements in said model; (a) instantiating a first element of said element model in said configuration to satisfy one or more configuration requests; (b) determining whether a constraint is imposed on said first element; (c) satisfying said constraint using an existing element in said configuration when said constraint is imposed on said first element and said constraint can be satisfied by said existing element; (d) instantiating a second element of said element model when said constraint is imposed on said first element, said constraint cannot be satisfied by said existing element, and said constraint can be satisfied by said second element; (e) removing said first element and said second element when said constraint is imposed on said first element, said existing element cannot satisfy said constraint, and said second element cannot satisfy said constraint; (f) determining whether said model contains a new first element that can be used to satisfy said one or more configuration requests; and (g) repeating steps (a)-(g) when said new first element exists.
-
Specification