Correlator modifier

The correlator modifier plug-in is provided with the governance enablement profile and is used to create WSRR business model objects (part of the WSRR Technical Model) called correlator objects; these group together various objects in WSRR.

Note: The correlator modifier is also known as the service model correlator.
The correlator objects are as follows:

When a WSDL document, XSD document, or SCA module is loaded into the WSRR, the correlator modifier plug-in parses the document and, for each of the logical objects derived from the WSDL document, XSD document, or SCA module, it creates a corresponding correlator object (if such an object does not already exist). In addition, a custom relationship is created from the correlator object to the WSRR logical object.

Certain properties of the WSDL, XSD or SCA logical objects are defined to be correlation properties. When the correlator object is created, these properties are also added to the correlator object, and the same values are assigned. If a logical object is derived from a newly loaded WSDL document, XSD document, or SCA module, and there is already an existing correlator object with the same values for the correlation properties, no new correlator object is created. The correlation properties vary according to the element type, as described in Tables 1, 2, and 3.

If a WSDL or XSD document is updated with the exact same content, then the Correlator Modifier does not run, and therefore does not re-correlate any objects, or recreate any objects that might have been deleted since the document was first loaded.

The following tables show the correlator objects that are created for each of the WSDL, XSD, and SCA element types, and their correlation properties:
Table 1. WSDL correlator objects
WSDL logical object Correlator object created Correlation properties
Service Service The Service name, namespace, and version.
Port type ServiceInterface The Port type name, namespace, and version.
Port ServicePort The Port name.

The name, namespace, and version of the Service from which the Port is derived.

Binding ServiceBinding The Binding name, namespace, and version.
Operation ServiceOperation The Operation name.

The name, namespace, and version of the Port type from which the Operation is derived.

Message ServiceMessage The Message name, namespace, and version.
SOAP address SOAPServiceEndpoint The name, namespace, and version of the Service from which the SOAP Address is derived.

The name of the Port from which the SOAP address is derived.

The type of the Service endpoint from which the SOAP address is derived.

ExtensionLogicalObject ExtensionServiceEndpoint The name, namespace, and version of the Service from which the ExtensionLogicalObject is derived.

The name of the Port from which the ExtensionLogicalObject is derived.

The type of the Service endpoint from which the ExtensionLogicalObject is derived.

Table 2. XSD correlator objects
XSD logical object Correlator object created Correlation properties
Simple type GlobalType The Simple type name, namespace, and version.
Complex type GlobalType The Complex type name, namespace, and version.
Element GlobalElement The Element name, namespace, and version.
Table 3. SCA correlator objects
SCA logical object Correlator object created Correlation properties
Module ServiceModule namespace, sm63_versionValue, sm63_versionProvider
Export SCAExport sm63_exportName, namespace, version
ExportBinding SCAServiceEndpoint sm63_serviceName, sm63_serviceNamespace, sm63_serviceVersion, sm63_endpointType
Note: Different types of Service endpoint are created and correlated for different types of SCA Export binding. These are shown in the following table:
Binding type Service Endpoint created
Web services for SOAP 1.1 SOAPServiceEndpoint
Web services for SOAP 1.2 ExtensionServiceEndpoint
Native SCA SCAServiceEndpoint
JMS SCAServiceEndpoint
Generic JMS SCAServiceEndpoint
MQSeries JMS SCAServiceEndpoint
MQSeries SCAServiceEndpoint
HTTP SCAServiceEndpoint

In addition, a Schema correlator object is created to reference, through custom relationships, all GlobalType and GlobalElement correlator objects that have the same namespace and version. The correlation properties are the namespace and version of the referenced GlobalType and GlobalElement objects.

Example
If a WSDL document is loaded that contains a Port type, the correlator checks whether a ServiceInterface correlator object exists for which the name, namespace, and version properties have the same values as those of the port type. If such an object exists, no new correlator object is created. If no such object exists, the correlator creates a new ServiceInterface correlator object with name, namespace, and version properties of the same value as the Port type, and adds a custom relationship from the correlator object to the WSDL Port type logical object.

The relationships between the correlator objects and the other WSRR objects are shown in the following diagram:

Correlator object relationships

If you are using the governance enablement profile, the correlator modifier is enabled by default, but does not run when you import objects into WSRR.