ECT Transferable Configurations
Chris Greenhalgh, 2005-01-31
Introduction
We need a way for users of ECT to share configurations and partial
configurations (e.g. composite components, partially configured
components). It needs to be maximally transferable and reusable between
different installations of ECT.
The chosen strategy is an XML-encoded description of the original
configuration (components, links, property values, etc.) containing as
much information as possible, and a user-guided re-instantiation
process to resolve any ambiguities/other choices in transfering that
configuration to the new (or the original!) installation.
Representative XML file
<?xml version="1.0"?>
<ectconfiguration>
<components>
<component id="COMPGUID" capabilityref="CAPGUID" componentrequestref="COMPREQGUID">
<name>NAME</name> <!-- may be bean class name -->
<rdfnames>
<rdfname rdfstatementref="RDFSTATGUID">NAME</rdfname>
</rdfnames>
<host>HOST</host> <!-- typically not filled in correctly -->
<container>CONTAINER</container>
<properties>
<property id="PROPGUID" readonly="true">
<name>NAME</name> <!-- may be bean class name -->
<rdfnames>
<rdfname rdfstatementref="RDFSTATGUID">NAME</rdfname>
</rdfnames>
<class>PROPCLASSNAME</class>
<value>PROPVALUE</value>
</property>
</properties>
</component>
</components>
<capabilities>
<capability id="CAPGUID">
<name>NAME</name>
<rdfnames>
<rdfname rdfstatementref="RDFSTATGUID">NAME</rdfname>
</rdfnames>
<class>CLASSNAME</class>
<host>HOST</host>
<container>CONTAINER</container>
</capability>
</capabilities>
</componentrequests>
<componentrequest id="COMPREQGUID" capabilityref="CAPGUID" persistent="true">
<host>HOST</host> <!-- this host ID is a GUID for some reason -->
<container>CONTAINER</container>
</componentrequest>
</componentrequests>
<links>
<link id="LINKREQGUID"
srcpropref="SRCPROPGUID" dstpropref="DSTPROPGUID"
srccompref="SRCCOMPGUID" dstcompref="DSTCOMPGUID"
srcpropname="SRCPROPNAME" dstpropname="DSTPROPNAME"
persistent="true">
</link>
</links>
<rdfstatements>
<rdfstatement id="STATEMENTID" persistent="true">
<subject>SUBJECT</subject>
<predicate>PREDICATE</predicate>
<object>OBJECT</object>
</rdfstatement>
</rdfstatements>
</ectconfiguration>