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>