summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormsmit <msmit@remedy.nl>2010-06-18 11:43:13 +0000
committermsmit <msmit@remedy.nl>2010-06-18 11:43:13 +0000
commit1d21a473269bf7373af0e1b86c5070a17e0246ef (patch)
treebf44b5e49d1613caaac0bba67db9c5ee2559bdcc
parent0621064e1e4a1310c2050c9e48029288dc5e39a6 (diff)
downloadATCD-1d21a473269bf7373af0e1b86c5070a17e0246ef.tar.gz
Fri Jun 18 11:40:01 UTC 2010 Marcel Smit <msmit@remedy.nl>
* connectors/dds4ccm/tutorials/Shapes/Tutorial/06_compilation.html: * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment: * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/Plan.cdp: * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/artifacts.cdp: * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/connections.cdp: * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/implementation.cdp: * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/instance.cdp: Update.
-rw-r--r--CIAO/ChangeLog11
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/06_compilation.html185
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/Plan.cdp476
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/artifacts.cdp66
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/connections.cdp74
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/implementation.cdp51
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/instance.cdp62
7 files changed, 925 insertions, 0 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index 9ec9e0115b4..14bf4c5e790 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,3 +1,14 @@
+Fri Jun 18 11:40:01 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/tutorials/Shapes/Tutorial/06_compilation.html:
+ * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment:
+ * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/Plan.cdp:
+ * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/artifacts.cdp:
+ * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/connections.cdp:
+ * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/implementation.cdp:
+ * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/instance.cdp:
+ Update.
+
Fri Jun 18 11:41:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
* connectors/dds4ccm/impl/dds/DataReader_T.h:
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/06_compilation.html b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/06_compilation.html
index 29045da4b0d..8a79df3619d 100644
--- a/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/06_compilation.html
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/06_compilation.html
@@ -50,8 +50,193 @@
</p>
<h2>Deployment</h2>
<p>
+ Once all binaries are compiled, they're ready to be deployed. In this tutorial
+ we are using DAnCE to deploy our system.<br/>
+ DAnCE starts a system in two phases :
+ <ol>
+ <li>configuration_complete</li>
+ <li>ccm_activate</li>
+ </ol>
+ DAnCE shuts down a system again in two phases :
+ <ol>
+ <li>passivate</li>
+ <li>ccm_remove</li>
+ </ol>
+ Each component should have these four methods implemented. The business logic
+ implemented in each step depends on you implementation.<br/>
+
+ There're several processes taking care of the total deployment process.
+ See the DAnCE documentation for more information about which processes there
+ are and what their responsibilities are.<br/>
+ DAnCE will start and shutdown a system with the aid of a deployment plan. A
+ deployment plan describes which artifacts must run on which nodes and which
+ components are connected to eachother via which interface (more on this later).
+ All connections between components are made before 'configuration_complete' is
+ called.
+ <p>
+ The deployment plan will be generated by the modelling tools but we take a
+ brief look at the most important items of a deployment plan. A deployment plan
+ is a XML based file which is devided into the following (main) sections:<br/>
+ <ul>
+ <li>Implementations</li>
+ <li>Entry points</li>
+ <li>Instances</li>
+ <li>Connections</li>
+ <li>Artifacts</li>
+ </ul>
+ </p>
+
+ <b><i>All deployment code fragments mentioned in the rest of this tutorial are
+ *NO* exports of any modelling tool.</i></b>
+
+ <h3>Implementations and Entry Points</h3>
+ <p>
+ This defines which executor and servant artifacts (binaries) should be
+ used. Implementations also defines which entry points in the binaries
+ should be used. <a href="./Code/Deployment/implementation.cdp">This<a> file shows the
+ implementation section of the controller.<br/>
+ Beware that artifacts and entry points are exact otherwise deployment will
+ fail.<br>
</p>
+ <h3>Instances</h3>
+ <p>
+ Instances define which artifacts run on which node. Every fysical artifact in
+ the system results in one instance. The &lt;node&gt; section refers to the
+ fysical node on which this instance will be deployed.<br/>
+ An instance always refers to an implementation.
+ It's possible that more than one instance refers to the same implementation.<br/>
+ The instance section also provide the initial values of all attributes
+ defined on the component.<br/>
+ <a href="./Code/Deployment/instance.cdp">This</a> file shows the instance section of
+ the controller.<br/>
+ </p>
+
+ <h3>Connections</h3>
+ <p>
+ A connection section defines which components are connected together.
+ To define a connection one should know which type of DDS4CCM connector is used.
+ <br/><br/>
+ <b>Example</b><br/>
+ The sender component is connected to a DDS4CCM connector via the DDS_Write
+ extented port of the DDS_Event basic port. The DDS_Write port for the
+ DDS_Event connector is called 'supplier' and the Writer interface on this
+ extented port is called 'data' (see ccm_dds.idl). In Shapes_Sender_comp.idl,
+ the DDS_Write port is called 'info_write'. The DDS4CCM connector provide
+ the writer interface, the Sender component uses this.<br/>
+ The connection is 'local' since a connector and a component are always running
+ in the same process.<br/>
+ Now that we have got all the data we need to know to make a connection
+ between the Sender and DDS4CCM connector regarding the writer port.<br/><br/>
+
+ &lt;<b>connection</b>&gt;<br/>
+ &nbsp;&nbsp;&lt;<b>name</b>&gt;writer_connection&lt;<b>/name</b>&gt;
+ <font color="grey">//unique name of the connection</font><br/>
+ &nbsp;&nbsp;&lt;<b>deployRequirement</b>&gt;<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>name</b>&gt;edu.dre.vanderbilt.DAnCE.ConnectionType&lt;<b>/name</b>&gt;<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>resourceType</b>&gt;Local_Interface&lt;<b>/resourceType</b>&gt;
+ <font color="grey">//The connection between the Sender and the DDS4CCM connector is 'local'</font><br/>
+ &nbsp;&nbsp;&lt;<b>deployRequirement</b>&gt;<br/>
+ &nbsp;&nbsp;&lt;<b>internalEndpoint</b>&gt;
+ <font color="grey">//First endpoint (the Sender component).</font><br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;<font color="grey">//PortName is defined as follows</font><br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;<font color="grey">//&lt;name_of_port_in_sender_component_idl&gt;_&lt;
+ name_of_interface_in_extended_port&gt;(see ccm_dds.idl)</font><br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>portName</b>&gt;info_write_data&lt;<b>/portName</b>&gt;<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>provider</b>&gt;false&lt;<b>/provider</b>&gt;
+ <font color="grey">//The Sender component doens't provide the interface</font><br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>kind</b>&gt;SimplexReceptacle&lt;<b>/kind</b>&gt;<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>instance</b> xmi:idref="SenderComponentInstance" /&gt;
+ <font color="grey">//Reference to the artifact (the Sender component instance in this case)</font><br/>
+ &nbsp;&nbsp;&lt;<b>/internalEndpoint</b>&gt;<br/>
+ &nbsp;&nbsp;&lt;<b>internalEndpoint</b>&gt;
+ <font color="grey">//First endpoint (the Sender component).</font><br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;<font color="grey">//PortName is defined as follows</font><br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;<font color="grey">//&lt;name_of_port_in_dds4ccm_connector&gt;_&lt;
+ name_of_interface_in_extended_port&gt;(see ccm_dds.idl)</font><br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>portName</b>&gt;supplier_data&lt;<b>/portName</b>&gt;<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>provider</b>&gt;true&lt;<b>/provider</b>&gt;
+ <font color="grey">//The DDS4CCM connector provides this interface</font><br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>kind</b>&gt;Facet&lt;<b>/kind</b>&gt;<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>instance</b> xmi:idref="Shapes_SenderConnectorInstance" /&gt;
+ <font color="grey">//The reference to the connector instance.</font><br/>
+ &nbsp;&nbsp;&lt;<b>/internalEndpoint</b>&gt;<br/>
+ &lt;<b>/connection</b>&gt;<br/>
+ </p>
+ <p>
+ Take a look at <a href="./Code/Deployment/connections.cdp">this</a> file to see which
+ connection should be made by DAnCE in order to run the shapes system properly.
+ Also take a look at the connection between the Controller and the Sender. This
+ one is different because no DDS4CCM connector is used.
+ </p>
+ <p>
+ When the deployment tools (in this case DAnCE) deploys this system, it'll connect
+ all defined connectors before the system is started (i.e. before configuration_complete
+ is called on a component).<br/>
+ </p>
+ <h4>Coding connections</h4>
+ <p>
+ Every component has got a context. The context is set by DAnCE and is
+ the 'gateway' to all other component your component is connected to. The
+ context caches all these connections so that the user doesn't need to
+ cache those in his/her component.
+ </p>
+ <p>
+ <b><u>Sender</u></b><br/>
+ The Sender uses the writer connection of the DDS_Write extented port of the
+ DDS_Event basic port. The following code retrieves the connection to the
+ Writer interface from the context.
+ <br/>
+ <code>::Shapes::ShapesConnector::Writer_var writer =
+ this->context_->get_connection_info_write_data ();</code>
+ <br/>
+ </p>
+
+ <p>
+ <b><u>Controller</u></b><br/>
+ The Controller uses the 'Control_obj' interface of the Sender component.
+ Since this isn't a connection to a DDS4CCM connector, the code is rather
+ simple. Looking at the IDL of the sender and receiver, the following code can be
+ constructed in order to get the connection the Control_obj interface:
+ <br/>
+ <code>::Shapes::Control_obj_var control =
+ this->context_->get_connection_control ();</code>
+ <br/>
+ </p>
+
+ <p>
+ <b><u>Receiver</u></b><br/>
+ The Receiver 'listens' to DDS and thus should provide a callback for the
+ DDS4CCM connector. Please take a look at the generated code of the executor
+ <a href="./Code/Shapes_Receiver_comp/Shapes_Receiver_comp_exec.cpp">code</a>
+ of the receiver to see how this can be done.<br/>
+ By default, a DDS4CCM connector is not listening so one should instruct the
+ DDS4CCM connector to start listening to samples. Therefor
+ a DataListenerControl interface (data_control) is available. The following
+ code ensures that the DDS4CCM connector starts listening to the desired samples.
+ <br/>
+ <code>
+ ::CCM_DDS::DataListenerControl_var lc =
+ this->context_->get_connection_info_out_data_control ();<br/>
+ lc->mode (::CCM_DDS::ONE_BY_ONE);<br/>
+ </code><br/>
+ This ensures that 'on_one_data' is gets invoked by the DDS4CCM connector
+ for each sample.<br/>
+ It's also possible to use ::CCM_DDS::MANY_BY_MANY. This will make sure that
+ on_many_data on the listeners callback gets invoked by the DDS4CCM connector.<br/>
+ To turn off listening, just call <code>lc->mode (::CCM_DDS::NOT_ENABLED);
+ <br/>
+ </p>
+
+ <h3>Artifacts</h3>
+ Artifacts sections contains the names of the binaries. See
+ <a href="./Code/Deployment/artifacts.cdp">this</a>files for an overview of all
+ artifacts in the shapes system.
+
+ <h3>Complete plan</h3>
+ <a href="./Code/Deployment/Plan.cdp">This</a> file shows the complete deployment
+ plan.<br/>
+
<hr />
<table width="100%" border="0">
<tr>
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/Plan.cdp b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/Plan.cdp
new file mode 100644
index 00000000000..68ec6cc0e32
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/Plan.cdp
@@ -0,0 +1,476 @@
+<!-- $Id $ -->
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>Shapes_Depl_1</label>
+ <UUID>Shapes_Depl_1</UUID>
+
+ <implementation xmi:id="ReceiverComponentImplementation">
+ <name>ReceiverComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Receiver_ExecArtifact" />
+ <artifact xmi:idref="Receiver_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_Receiver_comp_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_Receiver_comp_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Shapes_Receiver_comp_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Shapes_Receiver_comp_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="ControlComponentImplementation">
+ <name>ControlComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Control_ExecArtifact" />
+ <artifact xmi:idref="Control_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_Control_comp_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_Control_comp_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Shapes_Control_comp_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Shapes_Control_comp_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="Shapes_ConnectorComponentImplementation">
+ <name>Shapes_ConnectorComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Shapes_Connector_ExecArtifact" />
+ <artifact xmi:idref="Shapes_Connector_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_ShapesConnector_DDS_Event_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_ShapesConnector_DDS_Event_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Shapes_conn_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Shapes_conn_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SenderComponentImplementation">
+ <name>SenderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Sender_ExecArtifact" />
+ <artifact xmi:idref="Sender_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_Sender_comp_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_Sender_comp_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Shapes_Sender_comp_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Shapes_Sender_comp_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="ReceiverComponentInstance">
+ <name>ReceiverComponent</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ReceiverComponentImplementation" />
+ </instance>
+
+ <instance xmi:id="ControlComponentInstance">
+ <name>ControlComponent</name>
+ <node>ControlNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ControlComponentImplementation" />
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_ulong</kind>
+ </type>
+ <value>
+ <ulong>100</ulong>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>max_x</name>
+ <value>
+ <type>
+ <kind>tk_ushort</kind>
+ </type>
+ <value>
+ <ushort>225</ushort>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>max_y</name>
+ <value>
+ <type>
+ <kind>tk_ushort</kind>
+ </type>
+ <value>
+ <ushort>250</ushort>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>max_size</name>
+ <value>
+ <type>
+ <kind>tk_ushort</kind>
+ </type>
+ <value>
+ <ushort>25</ushort>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>resize_shape</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>true</boolean>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Shapes_SenderConnectorInstance">
+ <name>Shapes_ConnectorComponent</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Square</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Shapes_ReceiverConnectorInstance">
+ <name>Shapes_ReceiverConnectorInstance</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Square</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SenderComponentInstance">
+ <name>SenderComponent</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SenderComponentImplementation" />
+ </instance>
+
+ <connection>
+ <name>_listenercontrol</name>
+ <deployRequirement>
+ <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
+ <resourceType>Local_Interface</resourceType>
+ </deployRequirement>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>push_consumer_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Shapes_ReceiverConnectorInstance" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_listener</name>
+ <deployRequirement>
+ <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
+ <resourceType>Local_Interface</resourceType>
+ </deployRequirement>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>push_consumer_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Shapes_ReceiverConnectorInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>writer_connection</name>
+ <deployRequirement>
+ <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
+ <resourceType>Local_Interface</resourceType>
+ </deployRequirement>
+ <internalEndpoint>
+ <portName>info_write_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SenderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supplier_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Shapes_SenderConnectorInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>control_connection</name>
+ <internalEndpoint>
+ <portName>control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="ControlComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SenderComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <artifact xmi:id="Sender_ExecArtifact">
+ <name>Shapes_Sender_comp_exec</name>
+ <source/>
+ <node/>
+ <location>Shapes_Sender_comp_exec</location>
+ </artifact>
+ <artifact xmi:id="Sender_SvntArtifact">
+ <name>Shapes_Sender_comp_svnt</name>
+ <source/>
+ <node/>
+ <location>Shapes_Sender_comp_svnt</location>
+ </artifact>
+ <artifact xmi:id="Sender_StubArtifact">
+ <name>Sender_stub</name>
+ <source/>
+ <node/>
+ <location>Sender_stub</location>
+ </artifact>
+ <artifact xmi:id="Shapes_Connector_ExecArtifact">
+ <name>Shapes_conn_exec</name>
+ <source/>
+ <node/>
+ <location>Shapes_conn_exec</location>
+ </artifact>
+ <artifact xmi:id="Shapes_Connector_SvntArtifact">
+ <name>Shapes_conn_svnt</name>
+ <source/>
+ <node/>
+ <location>Shapes_conn_svnt</location>
+ </artifact>
+ <artifact xmi:id="Receiver_ExecArtifact">
+ <name>Shapes_Receiver_comp_exec</name>
+ <source/>
+ <node/>
+ <location>Shapes_Receiver_comp_exec</location>
+ </artifact>
+ <artifact xmi:id="Receiver_SvntArtifact">
+ <name>Shapes_Receiver_comp_svnt</name>
+ <source/>
+ <node/>
+ <location>Shapes_Receiver_comp_svnt</location>
+ </artifact>
+ <artifact xmi:id="Receiver_StubArtifact">
+ <name>Receiver_stub</name>
+ <source/>
+ <node/>
+ <location>Receiver_stub</location>
+ </artifact>
+ <artifact xmi:id="Control_ExecArtifact">
+ <name>Shapes_Control_comp_exec</name>
+ <source/>
+ <node/>
+ <location>Shapes_Control_comp_exec</location>
+ </artifact>
+ <artifact xmi:id="Control_SvntArtifact">
+ <name>Shapes_Control_comp_svnt</name>
+ <source/>
+ <node/>
+ <location>Shapes_Control_comp_svnt</location>
+ </artifact>
+ <artifact xmi:id="Control_StubArtifact">
+ <name>Control_stub</name>
+ <source/>
+ <node/>
+ <location>Control_stub</location>
+ </artifact>
+</Deployment:DeploymentPlan>
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/artifacts.cdp b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/artifacts.cdp
new file mode 100644
index 00000000000..e565a127fbe
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/artifacts.cdp
@@ -0,0 +1,66 @@
+<artifact xmi:id="Sender_ExecArtifact">
+ <name>Shapes_Sender_comp_exec</name>
+ <source/>
+ <node/>
+ <location>Shapes_Sender_comp_exec</location>
+</artifact>
+<artifact xmi:id="Sender_SvntArtifact">
+ <name>Shapes_Sender_comp_svnt</name>
+ <source/>
+ <node/>
+ <location>Shapes_Sender_comp_svnt</location>
+</artifact>
+<artifact xmi:id="Sender_StubArtifact">
+ <name>Sender_stub</name>
+ <source/>
+ <node/>
+ <location>Sender_stub</location>
+</artifact>
+<artifact xmi:id="Shapes_Connector_ExecArtifact">
+ <name>Shapes_conn_exec</name>
+ <source/>
+ <node/>
+ <location>Shapes_conn_exec</location>
+</artifact>
+<artifact xmi:id="Shapes_Connector_SvntArtifact">
+ <name>Shapes_conn_svnt</name>
+ <source/>
+ <node/>
+ <location>Shapes_conn_svnt</location>
+</artifact>
+<artifact xmi:id="Receiver_ExecArtifact">
+ <name>Shapes_Receiver_comp_exec</name>
+ <source/>
+ <node/>
+ <location>Shapes_Receiver_comp_exec</location>
+</artifact>
+<artifact xmi:id="Receiver_SvntArtifact">
+ <name>Shapes_Receiver_comp_svnt</name>
+ <source/>
+ <node/>
+ <location>Shapes_Receiver_comp_svnt</location>
+</artifact>
+<artifact xmi:id="Receiver_StubArtifact">
+ <name>Receiver_stub</name>
+ <source/>
+ <node/>
+ <location>Receiver_stub</location>
+</artifact>
+<artifact xmi:id="Control_ExecArtifact">
+ <name>Shapes_Control_comp_exec</name>
+ <source/>
+ <node/>
+ <location>Shapes_Control_comp_exec</location>
+</artifact>
+<artifact xmi:id="Control_SvntArtifact">
+ <name>Shapes_Control_comp_svnt</name>
+ <source/>
+ <node/>
+ <location>Shapes_Control_comp_svnt</location>
+</artifact>
+<artifact xmi:id="Control_StubArtifact">
+ <name>Control_stub</name>
+ <source/>
+ <node/>
+ <location>Control_stub</location>
+</artifact>
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/connections.cdp b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/connections.cdp
new file mode 100644
index 00000000000..a550afaa590
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/connections.cdp
@@ -0,0 +1,74 @@
+<connection>
+ <name>_listenercontrol</name>
+ <deployRequirement>
+ <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
+ <resourceType>Local_Interface</resourceType>
+ </deployRequirement>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>push_consumer_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Shapes_ReceiverConnectorInstance" />
+ </internalEndpoint>
+</connection>
+<connection>
+ <name>_listener</name>
+ <deployRequirement>
+ <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
+ <resourceType>Local_Interface</resourceType>
+ </deployRequirement>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>push_consumer_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Shapes_ReceiverConnectorInstance" />
+ </internalEndpoint>
+</connection>
+
+<connection>
+ <name>writer_connection</name>
+ <deployRequirement>
+ <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
+ <resourceType>Local_Interface</resourceType>
+ </deployRequirement>
+ <internalEndpoint>
+ <portName>info_write_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SenderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supplier_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Shapes_SenderConnectorInstance" />
+ </internalEndpoint>
+</connection>
+
+<connection>
+ <name>control_connection</name>
+ <internalEndpoint>
+ <portName>control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="ControlComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SenderComponentInstance" />
+ </internalEndpoint>
+</connection>
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/implementation.cdp b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/implementation.cdp
new file mode 100644
index 00000000000..b33920234e6
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/implementation.cdp
@@ -0,0 +1,51 @@
+<implementation xmi:id="ControlComponentImplementation">
+ <name>ControlComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Control_ExecArtifact" />
+ <artifact xmi:idref="Control_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_Control_comp_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_Control_comp_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Shapes_Control_comp_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Shapes_Control_comp_exec</string>
+ </value>
+ </value>
+ </execParameter>
+</implementation>
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/instance.cdp b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/instance.cdp
new file mode 100644
index 00000000000..897b94c6a49
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/instance.cdp
@@ -0,0 +1,62 @@
+<instance xmi:id="ControlComponentInstance">
+ <name>ControlComponent</name>
+ <node>ControlNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ControlComponentImplementation" />
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_ulong</kind>
+ </type>
+ <value>
+ <ulong>100</ulong>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>max_x</name>
+ <value>
+ <type>
+ <kind>tk_ushort</kind>
+ </type>
+ <value>
+ <ushort>225</ushort>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>max_y</name>
+ <value>
+ <type>
+ <kind>tk_ushort</kind>
+ </type>
+ <value>
+ <ushort>250</ushort>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>max_size</name>
+ <value>
+ <type>
+ <kind>tk_ushort</kind>
+ </type>
+ <value>
+ <ushort>25</ushort>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>resize_shape</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>true</boolean>
+ </value>
+ </value>
+ </configProperty>
+</instance>