SCA/Components/SCA Meta Model
Next sections describe the SCA meta model used by the SCA Composite Designer. The meta model is based on the OSOA XSD files that were corrected, adapted and extended.
OSOA meta model corrections
Our SCA meta model is based on the OSOA scheme available in the OSOA web site (http://www.osoa.org/xmlns/sca/1.0/).
We modify these scheme to reflect properly the SCA Assembly Model Specification and to enable the validation of the XSD model. We corrected also some structural problems. See .
Meta model modifications
Some existing links between elements in the XSDs are not represented by EReference in the generated ecore meta model. For example, the SCA meta model element Service has a EAttribute promote that links it with a ComponentService. However, tools need to know explicitly that a reference exists between these two elements. Then, for each EAttribute representing a link between SCA elements we add, in the ecore meta model, an EReference as depicted in the following table. These new references are not serialized but calculated from the field representing the link.
|SCA Element||EAttribute representing a link||EReference added|
|Service||The promote attribute identifies the promoted Service||promote2 that references the promoted ComponentService|
|Reference||The promote attribute identifies the promoted Reference||promote2 that references the promoted ComponentReference|
|Wire||The source attribute names the source component reference||source2 that references the promoted ComponentReference|
|Wire||The target attribute names the target component service||target2 that references the promoted ComponentService|
New bindings, interfaces, and implementation
We add binding, interface and implementation types supported by Tuscany (nsUri: http://tuscany.apache.org/xmlns/sca/1.0):
- RMIBinding(host, port, serviceName, anyAttribute)
- NotificationBinding(any, modificationType, ntm)
- BPELPartnerLinkType(serviceRole, type, any, anyAttribute)
- ScriptImplementation(mixed, any, language, script)
- XQueryImplementation(any, location)
- NotificationImplementation(name, any)
- ResourceImplementation (any, location)
- OSGiImplementation(any anyAttribute)