This chapter provides an overview of compound modeling with Visual Modeler and discusses:
Applications for compound models.
Compound model structure styles.
Architecture.
Relationships in a compound model.
Modeling strategy.
Compound modeling allows you to:
Create a component model for each configurable component of your product or service offering. Selection points in each component can receive values from connected components, and can use them in constraints, creating cross-constrained models.
Specify which configurable components to include in your offering, and how they connect to one another.
Using PeopleSoft Advanced Configurator APIs and JavaServer Pages, build an interface that lets your user dynamically create, configure, and connect instances of your configurable components.
PeopleSoft Advanced Configurator enables a variety of compound model styles as illustrated by the telecommunications scenario of the sample compound model. In the following examples, CC indicates a configurable component, and Cn indicates a connection.
Note. The sample application illustrates how to create an application that lets a user configure communication services rather than network hardware.
The following diagram illustrates possible compound model structures, showing configurable components and their relationships (connections).
Configurable component
Single configurable component and connection
Multiple configurable components and connections
You can template connections by defining them as Connection Types, as CnB is a connection type suitable for joining CC1 and CC2.
The Configurator allows you the flexibility to structure your compound model in several ways:
Tree
Network
Mesh
Arbitrary
Compound structure components extend the Configurator, which runs on the WebLogic application service. The compound structure extensions include Java classes and JavaServer Pages.
Compound model component hierarchy
Some Compound Structure Java classes work behind the scenes to let you:
Create multiple instances of models and configure them.
Constrain the selection point of one model against the selection point of another.
Other Compound Structure Java classes give you a public API that lets you create JavaServer Pages that let your user dynamically create, configure, and verify a configuration based on a compound model.
See Also
Building a Custom User Interface
Compound models extend the basic precepts of component model objects, and relationships help you define the interaction of the component models. Interactions are defined in the compound model’s Configurable Components.
In a component model, relationships define the behavior of objects at the class and domain-member level. In a compound model, relationships determine how the component models interact. Compound model relationships define connections between components—which components are connected, how many connections are allowed, and what configuration information is sent from one component to others. Using compound model relationships, you can:
Specify the structure of the compound model—which components must connect with which, and how many.
Set up conditions for generating valid compound configurations.
Specify what selection points in components are sources of information, and which are targets for that information.
Send data from one model to be acted upon by constraints within another model.
Note. The Visual Modeler lets you define relationships; it does not create them so that they are implemented in JSP pages. This must be done by the site developer. By defining compound relationships in Visual Modeler, you provide the validation logic so that an appropriate error message can be generated for the end-user when required relationships are not met.
Compound model relationships address the two central aspects of multiple-model configuration:
Connected components
Connection points
Connected components define the structure of the compound model–which and how many component models (components) connect to each other. Minimum and maximum attributes on the relationship specify how many of the specified component. In the Sample compound model, structural relationships establish that Node and Hub components can be connected to Circuit components; Circuit can be connected to Hubs and Nodes; and Hubs and Nodes can’t be connected directly to each other.
Connection points define which data is to be communicated, if any, along the connection. Each connection point defines a specific data element that is to be transferred, and what direction the data flows. This data element can be a user pick or a collection of numeric data across components, or the output of an expression. Important:
Important! The Visual Modeler lets you define relationships; it does not create them so that they are implemented in JSP pages. This must be done by the site developer. By defining compound relationships in Visual Modeler, you provide the validation logic so that an appropriate error message can be generated for the end-user when required relationships are not met.
PeopleSoft Advanced Configurator provides three approaches to structuring compound models:
Reference to template component
Master component type
Component type with reference
Reference to Template Component
Create a “template” configurable component and use the reference function to create all others. For example:
Template Configurable Component = ModelPhoneCC, Min1, Max2
Standard phone component = StdPhoneCC_refModelPhoneCC, Min1, Max2
Speaker phone component = SpkPhoneCC_refModelPhoneCC, Min1, Max2
. . .
Master Component Type
Create a component type and base all components on it. For example:
Component Type = ModelPhoneCT, Min1, Max2
Standard phone component = StdPhoneCC_ModelPhoneCT, Min1, Max2
Speaker phone component = SpkPhoneCC_ModelPhoneCT, Min1, Max2
. . .
Component Type with Reference
Create one component based on a component type, use the Reference function to base others on the original component. For example:
Component Type = ModelPhoneCT, Min1, Max2
CC1 = Standard phone component = StdPhoneCC_ModelPhoneCT, Min1, Max2
CC2 = Speaker phone component = SpkPhoneCC_refStdPhoneCC_ModelPhoneCT, Min1, Max2
. . .