summaryrefslogtreecommitdiff
path: root/modules/CIAO/docs
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/docs')
-rw-r--r--modules/CIAO/docs/ConfigValues.html270
-rw-r--r--modules/CIAO/docs/EnvVars.html35
-rw-r--r--modules/CIAO/docs/Purify.html72
-rw-r--r--modules/CIAO/docs/RT-Extension.html132
-rw-r--r--modules/CIAO/docs/TODO.html259
-rw-r--r--modules/CIAO/docs/Trace.html32
-rw-r--r--modules/CIAO/docs/XML/ciao_rt_cad_ext.dtd93
-rw-r--r--modules/CIAO/docs/XML/componentassembly.dtd367
-rw-r--r--modules/CIAO/docs/XML/corbacomponent.dtd316
-rw-r--r--modules/CIAO/docs/XML/properties.dtd87
-rw-r--r--modules/CIAO/docs/XML/softpkg.dtd220
-rw-r--r--modules/CIAO/docs/cidlc.html296
-rw-r--r--modules/CIAO/docs/com-impl.html60
-rw-r--r--modules/CIAO/docs/generate_component_mpc.html105
-rw-r--r--modules/CIAO/docs/imgs/CCM-v5.vsdbin0 -> 486912 bytes
-rw-r--r--modules/CIAO/docs/imgs/CCM.vsdbin0 -> 643072 bytes
-rw-r--r--modules/CIAO/docs/imgs/DAnCE-Dynamic.pngbin0 -> 71061 bytes
-rw-r--r--modules/CIAO/docs/imgs/DAnCE-Dynamic.sxdbin0 -> 46579 bytes
-rw-r--r--modules/CIAO/docs/imgs/File-Gen-Existing.pngbin0 -> 40181 bytes
-rw-r--r--modules/CIAO/docs/imgs/File-Gen-Future.pngbin0 -> 41057 bytes
-rw-r--r--modules/CIAO/docs/imgs/File_Generation_Flow.vsdbin0 -> 107008 bytes
-rw-r--r--modules/CIAO/docs/imgs/IDL-CIDL-classes.vsdbin0 -> 201216 bytes
-rw-r--r--modules/CIAO/docs/imgs/basic-container.pngbin0 -> 8000 bytes
-rw-r--r--modules/CIAO/docs/imgs/ciao-dynamic1.jpgbin0 -> 56203 bytes
-rw-r--r--modules/CIAO/docs/imgs/ciao-dynamic2.jpgbin0 -> 46081 bytes
-rw-r--r--modules/CIAO/docs/imgs/ciao-static-vs-dynamic.jpgbin0 -> 44220 bytes
-rw-r--r--modules/CIAO/docs/imgs/ciao-static1.jpgbin0 -> 53013 bytes
-rw-r--r--modules/CIAO/docs/imgs/ciao-static2.jpgbin0 -> 64775 bytes
-rw-r--r--modules/CIAO/docs/imgs/component-basic.pngbin0 -> 151172 bytes
-rw-r--r--modules/CIAO/docs/imgs/dance_arch.jpgbin0 -> 70602 bytes
-rw-r--r--modules/CIAO/docs/imgs/dance_arch.vsdbin0 -> 100352 bytes
-rw-r--r--modules/CIAO/docs/imgs/deployment.pngbin0 -> 10392 bytes
-rw-r--r--modules/CIAO/docs/imgs/extended-container.pngbin0 -> 19243 bytes
-rw-r--r--modules/CIAO/docs/imgs/home-config.pngbin0 -> 9873 bytes
-rw-r--r--modules/CIAO/docs/imgs/static_dance_arch.jpgbin0 -> 58200 bytes
-rw-r--r--modules/CIAO/docs/imgs/static_dance_arch.vsdbin0 -> 86528 bytes
-rw-r--r--modules/CIAO/docs/imgs/static_dance_impl.jpgbin0 -> 56173 bytes
-rw-r--r--modules/CIAO/docs/imgs/static_dance_impl.vsdbin0 -> 101888 bytes
-rw-r--r--modules/CIAO/docs/index.html169
-rw-r--r--modules/CIAO/docs/new_components.html129
-rw-r--r--modules/CIAO/docs/releasenotes/dance.html229
-rw-r--r--modules/CIAO/docs/releasenotes/index.html170
-rw-r--r--modules/CIAO/docs/releasenotes/switch.html35
-rw-r--r--modules/CIAO/docs/schema/Basic_Deployment_Data.xsd349
-rw-r--r--modules/CIAO/docs/schema/CIAOEvents.xsd104
-rw-r--r--modules/CIAO/docs/schema/CIAOServerResources.xsd194
-rw-r--r--modules/CIAO/docs/schema/Deployment.xsd29
-rw-r--r--modules/CIAO/docs/schema/Modified_Deployment.xsd826
-rw-r--r--modules/CIAO/docs/schema/README.html64
-rw-r--r--modules/CIAO/docs/schema/SANet_Network.xsd98
-rw-r--r--modules/CIAO/docs/schema/ServerResourceUsage.txt79
-rw-r--r--modules/CIAO/docs/schema/Spec_Defined_Deployment.xsd897
-rw-r--r--modules/CIAO/docs/schema/Spec_Defined_XMI.xsd35
-rw-r--r--modules/CIAO/docs/schema/Task_Map.xsd90
-rw-r--r--modules/CIAO/docs/schema/ccd.xsd27
-rw-r--r--modules/CIAO/docs/schema/cdd.xsd60
-rw-r--r--modules/CIAO/docs/schema/cdp.xsd27
-rw-r--r--modules/CIAO/docs/schema/ciaopolicy.xsd607
-rw-r--r--modules/CIAO/docs/schema/cid.xsd80
-rw-r--r--modules/CIAO/docs/schema/cpd.xsd35
-rw-r--r--modules/CIAO/docs/schema/iad.xsd32
-rw-r--r--modules/CIAO/docs/schema/pcd.xsd32
-rw-r--r--modules/CIAO/docs/schema/toplevel.xsd15
-rw-r--r--modules/CIAO/docs/schema/unused_elements.xsd161
-rw-r--r--modules/CIAO/docs/schema/xsc-banner.cpp11
-rw-r--r--modules/CIAO/docs/schema/xsc-banner.h18
-rwxr-xr-xmodules/CIAO/docs/static_ciao_contents.html359
-rwxr-xr-xmodules/CIAO/docs/static_ciao_index.html23
-rwxr-xr-xmodules/CIAO/docs/static_ciao_toc.html26
-rw-r--r--modules/CIAO/docs/static_config_example.html1353
-rw-r--r--modules/CIAO/docs/static_config_rtexample.html1079
-rw-r--r--modules/CIAO/docs/static_dance.html214
-rw-r--r--modules/CIAO/docs/templates/CIAO_Glue_Session_Template.cpp1126
-rw-r--r--modules/CIAO/docs/templates/CIAO_Glue_Session_Template.h694
-rw-r--r--modules/CIAO/docs/templates/CIAO_Glue_Session_Template.inl471
-rw-r--r--modules/CIAO/docs/templates/Executor.idl246
-rw-r--r--modules/CIAO/docs/templates/cidl_template.cidl31
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/01.html185
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/02.html554
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/03.html79
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/04.html77
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/Icons/AddConnMode.gifbin0 -> 106 bytes
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/Icons/SetMode.gifbin0 -> 125 bytes
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/Images/fig1.jpgbin0 -> 13971 bytes
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/Images/fig10.jpgbin0 -> 46474 bytes
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/Images/fig11.jpgbin0 -> 35787 bytes
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/Images/fig12.jpgbin0 -> 37716 bytes
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/Images/fig2.jpgbin0 -> 91314 bytes
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/Images/fig3.jpgbin0 -> 23857 bytes
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/Images/fig4.jpgbin0 -> 30686 bytes
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/Images/fig5.jpgbin0 -> 38395 bytes
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/Images/fig6.jpgbin0 -> 92958 bytes
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/Images/fig7.jpgbin0 -> 43408 bytes
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/Images/fig8.jpgbin0 -> 36874 bytes
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/Images/fig9.jpgbin0 -> 28539 bytes
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/Model/Quoter.xme2003
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/index.html195
-rw-r--r--modules/CIAO/docs/tutorials/CoSMIC/style.css15
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/01.html838
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/02.html326
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/03.html1387
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/04.html413
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker.cidl22
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker.cpp110
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker.idl35
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker.mpc84
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_exec.cpp200
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_exec.h141
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_exec_export.h54
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_stub_export.h54
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_svnt_export.h54
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor.cidl21
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor.cpp115
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor.idl42
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor.mpc88
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_exec.cpp358
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_exec.h258
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_exec_export.h54
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_stub_export.h54
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_svnt_export.h54
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/README.html172
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.idl41
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc46
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_skel_export.h54
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_stub_export.h54
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker.ccd33
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker.cid35
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker.cpd14
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker_Exec.iad29
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker_Stub.iad14
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker_Svnt.iad29
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor.ccd41
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor.cid35
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor.cpd14
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor_Exec.iad29
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor_Stub.iad14
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor_Svnt.iad29
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Domain.cdd17
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Libraries.iad8
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.cdp16
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.cid41
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.cpd13
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.dat3
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.pcd10
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/XMI.xsd35
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/flattened_deploymentplan.cdp222
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/package.tpd8
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl40
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/Step1.JPGbin0 -> 17752 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/Step2.JPGbin0 -> 29764 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/Step3.JPGbin0 -> 32189 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/Step6.JPGbin0 -> 10762 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/Steps for Developing CCM Applications.jpgbin0 -> 82487 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig1.jpgbin0 -> 13971 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig10.jpgbin0 -> 46474 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig11.jpgbin0 -> 35787 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig12.jpgbin0 -> 37716 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig2.jpgbin0 -> 91314 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig3.jpgbin0 -> 23857 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig4.jpgbin0 -> 30686 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig5.jpgbin0 -> 38395 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig6.jpgbin0 -> 92958 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig7.jpgbin0 -> 43408 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig8.jpgbin0 -> 36874 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig9.jpgbin0 -> 28539 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/quoter.jpgbin0 -> 15027 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/index.html655
-rw-r--r--modules/CIAO/docs/value_factory_registration.html49
168 files changed, 22238 insertions, 0 deletions
diff --git a/modules/CIAO/docs/ConfigValues.html b/modules/CIAO/docs/ConfigValues.html
new file mode 100644
index 00000000000..70ade5ca68d
--- /dev/null
+++ b/modules/CIAO/docs/ConfigValues.html
@@ -0,0 +1,270 @@
+<!-- $Id$ -->
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html> <head>
+<title>ConfigValues Index</title>
+</head>
+
+<body>
+
+<h1>Index of ConfigValues</h1>
+
+<font size="+1" color="red">This page is currently a placeholder for
+all the configuration values we will support when creating various CCM
+deployment mechanisms, such as ComponentServers and Containers. The
+ConfigValues listed here are currently only partially supported in
+CIAO. <p>
+
+Note from self: There are discrepancy in this document. Most
+significantly, (RT)ComponentServer's don't get their ConfigValues
+directly from that passed in thru
+ServerActivator::create_component_server but rather, using some sort
+of pre-defined command line flags.
+</font>
+
+<h2>ComponentServer</h2>
+The <code>ConfigValues</code> for a <code>ComponentServer</code> are
+passed in via <code>ServerActivator::create_component_server</code>
+operation. CIAO accepts the following feature names:<p>
+
+<table border="3" spacing="2" cellpadding="3">
+ <tr>
+ <th>FeatureName</th>
+ <th>type</th>
+ <th>Requirement</th>
+ <th>Remarks</th>
+ </tr>
+ <tr>
+ <td>CIAO-svcconf-id</td>
+ <td>string</td>
+ <td>
+ Optional
+ </td>
+ <td>
+ Specify the canonical svc.conf id. This id should only serve
+ as a hint for the deployment framework in determining the
+ actual svc.conf file used to start up the component server.
+ Currently, CIAO's ServerActivator maintains a set of svc.conf
+ files and use this id value to map to the exact svc.conf file
+ name.
+ </td>
+ </tr>
+ <tr>
+ <td>CIAO-ORB[option]</td>
+ <td>string</td>
+ <td>
+ Optional
+ </td>
+ <td>
+ Specify an ORB option that you want to pass to the
+ ComponentServer ORB.
+ </td>
+ </tr>
+</table>
+
+<h2>RTComponentServer (Real-time ComponentServer)</h2>
+
+Like a regular <code>ComponentServer</code>, the
+<code>ConfigValues</code> for a <code>RTComponentServer</code> are
+passed in via <code>ServerActivator::create_component_server</code>
+operation. On top of the <code>ConfigValues</code> accepted by the
+regular <code>ComponentServer</code>, a real-time ComponentServer also
+accepts the following feature names:<p>
+
+<table border="3" spacing="2" cellpadding="3">
+ <tr>
+ <th>FeatureName</th>
+ <th>type</th>
+ <th>Requirement</th>
+ <th>Remarks</th>
+ </tr>
+ <tr>
+ <td>CIAO-rtcad-filename</td>
+ <td>string</td>
+ <td>
+ Optional
+ </td>
+ <td>
+ Specify the filename of RTCAD extension XML file.
+ The component server will invoke the XML parser and translate
+ the content of the file into the following two ConfigValues
+ (CIAO-RTresources and CIAO-RTPolicySets) to
+ RTComponentServer implementation.
+ </td>
+ </tr>
+ <tr>
+ <td>CIAO-RTresources</td>
+ <td><code>CIAO::RTConfiguration::RTORB_Resources_Info</code></td>
+ <td>
+ Optional
+ </td>
+ <td>
+ <code>CIAO::RTConfiguration::RTORB_Resources_Info</code> as
+ defined in
+ <code>$CIAO_ROOT/tools/XML_Helpers/RTConfiguration.idl</code>
+ defines the system wise resources an RT ORB should allocate.
+ These resources then can be used to define the RT policies in
+ the RTPolicySet described subsequently.
+ </td>
+ </tr>
+ <tr>
+ <td>CIAO-RTPolicySets</td>
+ <td><code>CIAO::RTConfiguration::Policy_Sets</code></td>
+ <td>
+ Optional
+ </td>
+ <td>
+ <code>CIAO::RTConfiguration::Policy_Sets</code>, also
+ defined in
+ <code>$CIAO_ROOT/tools/XML_Helpers/RTConfiguration.idl</code>,
+ defines a list of policy sets, which are named sequences of
+ policies. These policies often refer to the global resources
+ defined in the previous CIAO-RTresource via names. Likewise,
+ an <b>RT-container</b> also specifies the RTPolicySet its POA
+ uses via the name defined here.
+ </td>
+ </tr>
+</table>
+
+<h2>Container</h2>
+The <code>ConfigValues</code> for a <code>Container</code> are
+passed in via <code>ComponentServer::create_container</code>
+operation. CIAO accepts the following feature names:<p>
+
+<table border="3" spacing="2" cellpadding="3">
+ <tr>
+ <th>FeatureName</th>
+ <th>type</th>
+ <th>Requirement</th>
+ <th>Remarks</th>
+ </tr>
+ <tr>
+ <td>
+ CIAO-Container-Type
+ </td>
+ <td>
+ <code>string</code>
+ </td>
+ <td>
+ currently not supported.
+ </td>
+ <td>
+ Possible value: <code>session</code>, <code>rt-session</code>,
+ <code>unclassified</code>, <code>rt-unclassified</code>.
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ CIAO-POAPolicies
+ </td>
+ <td>
+ <code>CORBA::PolicyList</code>
+ </td>
+ <td>
+ Currently not supported.
+ </td>
+ <td>
+ Must not conflict with CIAO-Container-Type setting.
+ (Certain containers assume several POA policies.)
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ CIAO-RTPolicySet
+ </td>
+ <td>
+ <code>string</code>
+ </td>
+ <td>
+ Optional
+ </td>
+ <td>
+ Name, as defined in RTCompoenentServer's CIAO-RTPolicySets, of
+ the PolicySet this container uses.
+ </td>
+ </tr>
+</table>
+
+
+<h2>CCMHome</h2>
+The <code>ConfigValues</code> for a <code>CCMHome</code> are
+passed in via <code>Container::install_home</code>
+operation. CIAO accepts the following feature names:<p>
+
+<table border="3" spacing="2" cellpadding="3">
+ <tr>
+ <th>FeatureName</th>
+ <th>type</th>
+ <th>Requirement</th>
+ <th>Remarks</th>
+ </tr>
+ <tr>
+ <td>CIAO-executor-path</td>
+ <td><code>string</code></td>
+ <td>
+ REQUIRED
+ </td>
+ <td>
+ This string value specifies the location of the executor DLL.
+ In the future, we should use UUIDs to identify the component
+ executors and query the ComponentInstallation interface for
+ the actual location of the DLL.
+ </td>
+ </tr>
+ <tr>
+ <td>CIAO-executor-entrypt</td>
+ <td><code>string</code></td>
+ <td>
+ REQUIRED
+ </td>
+ <td>
+ This string value specifies the entry point of the executor
+ DLL. It points to a factory function for the component executor.
+ </td>
+ </tr>
+ <tr>
+ <td>CIAO-servant-path</td>
+ <td><code>string</code></td>
+ <td>
+ REQUIRED
+ </td>
+ <td>
+ This string value specifies the location of the servant DLL.
+ In the future, we should use UUIDs to identify the component
+ servants and query the ComponentInstallation interface for
+ the actual location of the DLL. <p>
+
+ Servant are part of the Container framework and we can use
+ type checking to ensure servant and container match with each
+ other.
+ </td>
+ </tr>
+ <tr>
+ <td>CIAO-executor-entrypt</td>
+ <td><code>string</code></td>
+ <td>
+ REQUIRED
+ </td>
+ <td>
+ This string value specifies the entry point of the servant
+ DLL. It points to a factory function for the compnent servant.
+ </td>
+ </tr>
+</table>
+
+<!--
+ <tr>
+ <td>
+ a
+ </td>
+ <td>
+ b
+ </td>
+ <td>
+ c
+ </td>
+ </tr>
+-->
+<!--#include virtual="/~nanbor/signature.html" -->
+</body> </html>
diff --git a/modules/CIAO/docs/EnvVars.html b/modules/CIAO/docs/EnvVars.html
new file mode 100644
index 00000000000..a088f793de0
--- /dev/null
+++ b/modules/CIAO/docs/EnvVars.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<!-- $Id$ -->
+ <title>Environment Variables used by CIAO</title>
+</head>
+<body>
+<h1>Environment Variables used by CIAO</h1>
+<ul>
+<!-- <li><b><code></code></b><p> --> <li><b><code>CIAO_DEBUG_LEVEL</code></b>:
+An interger value accessible using <code>CIAO::debug_level()</code>
+call. Currently, CIAO follow the following usage conventions:<br>
+ <br>
+ <ul>
+ <li> 20 &lt; debug_level &#8804; 20: Generate CIAO internal debug
+messages </li>
+ <li> 10 &lt; debug_level &#8804; 20: Generate CIAO tools debug messages
+ </li>
+ <li> 0 &lt; debug_level &#8804; 10: Generate component-level debug
+messages </li>
+ </ul>
+ <p> </p>
+ </li>
+ <li><b><code>CIAO_DUMP_SAMPLE_HISTORY</code></b>: This environment
+variable was added for lack of component configuration support. Set it
+to 1 to turn on the dumping of performance samples to stdout in some
+performance test components.</li>
+</ul>
+<hr>
+<address>Nanbor Wang</address>
+<!-- hhmts start -->
+Last modified: Sun Nov 30 20:29:14 Mountain Standard Time 2003
+<!-- hhmts end -->
+</body>
+</html>
diff --git a/modules/CIAO/docs/Purify.html b/modules/CIAO/docs/Purify.html
new file mode 100644
index 00000000000..fff258db120
--- /dev/null
+++ b/modules/CIAO/docs/Purify.html
@@ -0,0 +1,72 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+ <head>
+ <title>Using Rational Purify with CIAO</title>
+ <!-- $Id$ -->
+ </head>
+ <body>
+ <h1>Using Rational Purify with CIAO</h1>
+ <p>This document is about using Purify with Visual Studio 7.1 to track down
+ memory leaks and other bugs in CIAO applications. For the Linux/Unix
+ environment, Valgrind is a better-suited tool - see Will Otte's documentation
+ on using Valgrind with CIAO in this directory.</p>
+ <p>Purify can be run from within Visual Studio, or standalone. The executable is
+ c:\Program Files\Rational\PurifyPlus\purifyw.exe. Typing this will bring up the
+ same Purify window you see if you run it from within Visual Studio. You can
+ install Purify from the web by going to <A href="file://\\Atlantis\software\RationSuiteEnterprise-v2003-06-12">
+ \\Atlantis\software\RationSuiteEnterprise-v2003-06-12</A> &nbsp;and clicking
+ on <code>C57BPML.zip</code>. This will install a whole bunch of Rational stuff
+ by default, so you will probaby want to deselect everything but PurifyPlus,
+ although Quantify is a good bottleneck-finder when you're trying to improve
+ performance, so that might be worth installing and playing with as well. During
+ the installation process, you'll be prompted for a mode of licensing. Select
+ the use of a license server, and then you'll be prompted for its address. Use <code>
+ rational.vuse.vanderbilt.edu</code>.</p>
+ <p>The option to exclude all modules in Windows directories will probably be set
+ by default, but if you notice memory leaks reported for Windows stuff, you
+ might want to double check this and turn it off. From the PurifyPlus menu bar
+ item in Visual Studio, it's at <b>PurifyPlus-&gt;Purify-&gt;Settings-&gt;DefaultSettings-&gt;PowerCheck</b>.
+ When run for the first time, Purify will instrument all libraries linked to the
+ executable. Select <b>PurifyPlus-&gt;Purify-&gt;Run</b>, and a window will pop
+ up prompting you for the executable name, command line options, and working
+ directory.</p>
+ <p>Purify's output will appear in the Visual Studio text editing window. This
+ output can be saved to the given filename. The type of error reported is
+ indicated by a 3-letter code - the most common are UMR (Unitialized Memory
+ Read), FMM (Freeing Mismatched Memory), and MLK (Memory Leak). Each of these
+ can be expanded to show the call stack. The depth of the call stack can be
+ modified in Settings if it's not deep enough. FMM messages will show both
+ allocation and deallocation call stacks.</p>
+ Quite often in CIAO, we will want to Purify a process that is spawned by
+ another process, and therefore not directly runnable in Purify. This is fairly
+ easy to do, but it must be done from the command line. If the name of the child
+ process we want to instrument is <code>child.exe</code>, then it can be
+ instrumented by typing
+ <br>
+ <code>purifyw /Run=no /Replace=yes child.exe</code><br>
+ This will rename the original executable as <code>child.exe.Original</code>,
+ and the new instrumented executable will be <code>child.exe</code>. Now when
+ you run the parent process under Purify, you'll see one window opened up in
+ Visual Studio's text editor for this process, and when the child process is
+ spawned, a second window will open. A couple of caveats to make this work
+ smoothly:
+ <ul>
+ <li>
+ Instrumented executables run 2 to 5 times slower than uninstrumented ones, so
+ any timeouts in the code should be extended accordingly. For example, if an
+ instrumented NodeApplication is spawned by NodeManager, add <code>-d 15</code> or
+ <code>-d 20</code>
+ to NodeManager's command line.
+ <li>
+ If an instrumented process is simply killed, there will probably be many
+ spurious error messages, mostly related to ORB resources that were not cleaned
+ up by a graceful shutdown. All processes tested with Purify should have a
+ graceful shutdown built in to eliminate these bogus memory leak messages.
+ </li>
+ </ul>
+ <hr>
+ <address>Jeff Parsons</address>
+ <!-- hhmts start --> Last modified: Oct&nbsp;3 2005
+ <!-- hhmts end -->
+ </body>
+</html>
diff --git a/modules/CIAO/docs/RT-Extension.html b/modules/CIAO/docs/RT-Extension.html
new file mode 100644
index 00000000000..3414a30b78e
--- /dev/null
+++ b/modules/CIAO/docs/RT-Extension.html
@@ -0,0 +1,132 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<!-- $Id$ -->
+<html> <head>
+<title>Using the Real-time Extension in CIAO</title>
+</head>
+
+<body>
+<h1>Using the Real-time Extension in CIAO</h1>
+
+<!-- ============================================================ -->
+<h3>Abstract</H3>
+
+The real-time extension support in CIAO enables application developers
+to deploy real-time applications by specifying real-time
+configurations as XML descriptors without modifying the component
+implementation. In fact, embedding the real-time configuration
+policies in component implementations decrease the reusability of the
+software components.
+
+Different types of real-time policy can be applied at different
+stage of the component development lifecycle, e.g.,
+<ul>
+ <li>Component implementation
+ <li>Component packaging
+ <li>Application composition
+ <li>Target platform configuration
+ <li>Deployment configuration
+</ul>
+
+Real-time policies can also be applied to various scope in an
+applications, e.g., many real-time policies can be associate with some
+or all of the following ORB mechanisms:
+<ul>
+ <li>ORBs
+ <li>POAs
+ <li>Threads
+ <li>Object references
+</ul>
+
+<!-- ============================================================ -->
+<h3>CIAO's Real-time Extension</h3>
+
+CIAO extends CCM's assembly descriptor to support the specifications
+of real-time policies. This mechanism allows you to allocate
+resources that are global to a RTComponentServer and to define real-time
+policies required by a component installation. Currently, CIAO
+support configuration of certain real-time policies at the POA level,
+i.e., in CCM's terminology, the container level. These policies
+include:
+
+<ol>
+ <li>Priority Model Policy
+ <li>Threadpool Policy
+ <li>Banded Connection Policy
+</ol>
+
+The kind of resources that are global to a RT component server that CIAO
+real-time extension specifies include:
+
+<ol>
+ <li>Threadpool
+ <li>Threadpool with lanes
+ <li>Connection bands
+</ol>
+
+<!-- ============================================================ -->
+<h3>Using the CIAO Real-time Extension</h3>
+
+Application developers can define the aforementioned Real-Time
+extension Descriptor (.rtd file) that CIAO defines to allocate
+resources and specify real-time policies. The Document Type
+Definition (DTD) for the real-time extension description is defined in
+this <a href="XML/ciao_rt_cad_ext.dtd">file</a>. Each .RTD file
+specifies the required resources and the policy definitions within a
+RTComponentServer.
+
+A RTComponentServer can be associated to a .RTD file. This is done by
+using the "extension" element with "class" attributed set to
+"RT-CAD-EXT", within a processcollocation or hostcollocation element.
+Here is an example:
+<code><pre>
+
+ &lt;processcollocation&gt;
+ .
+ .
+ .
+ &lt;extension class="RT-CAD-EXT" origin="CIAO"&gt;somefile.rtd&lt;/extension&gt;
+ .
+ &lt;/processcollocation&gt;
+</pre></code>
+
+Each .RTD file contains the two major subelements:
+<ul>
+ <li>&lt;rtresources&gt;: defines all the RT resources the assciating
+ RTComponentServer should provide.
+ <li>&lt;rtpolicysets&gt;: defines named collections of policies
+ (&lt;rtpolicyset&gt;) that apply to component installations in
+ the RTComponentServer.
+</ul>
+
+The &lt;rtpolicyset&gt;'s defined in the .RTD file can be associated
+to a component installation, i.e., a component placement within the
+RTComponentServer to which the .RTD file is associated. For example,
+
+<code><pre>
+ &lt;homeplacement&gt;
+ .
+ .
+ ,
+ &lt;extension class="RT-POLICY-SET"
+ origin="CIAO"&gt;A_POLICY_NAME&lt;/extension&gt;
+ .
+ &lt;/homeplacement&gt;
+</pre></code>
+
+<h3>Future Addition</h3>
+
+As mentioned earlier, RT policies can be applied at various stages of
+component-based deployment lifecycle and at different scope. For
+example, applying RTpolicies at the ORB level, or at the object
+reference level of a component receptacle. These extensions involve
+at least, extending the "appropriate" XML descriptor definition and
+extending the CIAO runtime, including core and/or the CIDL generated
+code to configure the policies. How other RT-related policies can be
+added will be reviewed in my thesis available shortly.
+
+<hr>
+<address>Nanbor Wang</address>
+<!-- hhmts start -->
+Last modified: Sun Nov 30 19:23:25 Mountain Standard Time 2003
+<!-- hhmts end -->
+</body> </html>
diff --git a/modules/CIAO/docs/TODO.html b/modules/CIAO/docs/TODO.html
new file mode 100644
index 00000000000..0b7ff8fd774
--- /dev/null
+++ b/modules/CIAO/docs/TODO.html
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"><p>
+<!-- $Id$ -->
+<html> <head>
+<title>Component-Integrated ACE ORB - TODO list</title>
+</head>
+
+<body>
+<h1>Component-Integrated ACE ORB (CIAO) - TODO list</h1>
+
+The following is a prioritized list of things (with the highest
+priority items first) that the DOC group is working on. The expected
+date of accomplishments are also added as ETA (expected time of
+accomplishment) :
+
+<h3>Things to do:</h3>
+<ul>
+ <li> Integrate TAO's real-time event channel within the
+ container. Components can use this feature to communicate using
+ <CODE>eventtype</CODE>s a pub-sub mode. The code is available in a
+ branch and it needs to be integrated in to the main-trunk. (ETA -
+ 2004/08)
+ </li> <p>
+
+ <li> Allow components (i.e., assemblies) to be connected using the
+ NameService (ETA - 2004/08) </li> <p>
+
+ <li> Allow non-component enabled clients to access reference to a
+ component or an assembly using NameService (ETA - 2004/08) </li> <p>
+
+ <li>Allowing components to set attributes, atleast attributes of
+ basic types. As a first step we need to implement the
+ <CODE>StandardConfigurator</CODE> interface. The servant for the
+ <CODE> StandardConfigurator</CODE> interface should be implemented
+ and activated by the servant for the component. DAnCE can extract
+ the reference from the servant and use it to set attributes (ETA -
+ 2004/08)</li><p>
+
+<li>Now that we have supports for ccm_{activate,passivate,remove}, we
+ need to rethink how a container manages the lifecycle of all the
+ components/homes it hosts so all the servants related to a
+ component get destroyed "properly". The aforementioned
+ SessionComponent operations will also depend on the proper
+ lifecycle management. <p>
+
+ This includes making sure all components' appropriate
+ ccm_passivate and ccm_remove operations are called when the
+ ComponentServer is closing down.<p> (ETA - 2004/08) </li>
+
+ <li> Migrate RT features from RTComponentServer to DAnCE
+ (ETA - 2004/10) </li> <p>
+
+ <li> Static configuration of components using DAnCE (ETA - 2004/12)
+ </li> <p>
+
+ <li>We need a set of tests to make sure most (and later
+ all) of the data types are function correctly (in term of CIDL
+ generated code). More importantly, we need to make sure all the
+ component keywords are supported okay. (ETA - 2004/07)<p>
+
+ <li>The naming convention used in <a
+ href="new_component.html">creating new component
+ instructions</a> and that used in <a
+ href="templates/">templates</a> do not match. (Files containing
+ glue code are named *_svnt.* and *GS.* respectively.) We need
+ to address that.(ETA - 07/2004) <p> </li>
+
+ <li> Retire the old assembly and deployment framework (ETA -
+ 2004/10) </li>
+
+ <li>We need to review the implementation of servant glue code and
+ container implementations to make sure that they are
+ thread-safe, if the container calls for it. Currently, these
+ states are changed only by the deployment framework which always
+ runs in single thread, so it's not a serious problem. However,
+ it's perfectly legal to dynamically configure connnections, which
+ will be the case if we want to add new components or remove
+ components from the assembly.(ETA - 2004/09)<p>
+
+ <li> Add support for creating a thread pool within the the component
+ server. We don't have support for this, which has made our users
+ resort to spawning threads within the components, which breaks
+ portability of the executor code. (ETA - 2004/09) </li> <p>
+
+ <li> At present components in an assembly have no way of knowing
+ whether the assembly is complete or not. This becomes important when
+ there are hierarchical assemblies, and the assembly at a higher
+ level needs to pass on attrbute information to the assembly at a
+ lower level. The spec talks about <CODE> configuration_complete ()
+ </CODE> whose semantics are a bit unclear. We may have to use this
+ to inform the components that the configuration is infact
+ complete. (ETA - 2004/09)</li><p>
+
+ <li> We have now two proprietary methods in the <CODE>
+ SessionComponent </CODE> interface called <CODE> ciao_preactivate ()
+ </CODE> and <CODE> ciao_postactivate () </CODE> which has to be
+ overridden by the executor code irrespective of whether the executor
+ implements them or not. These were added to help components to know
+ activation status of other components in the assembly. This could
+ create problems for interoperability of the executor code. A better
+ to way is to have the CIDL generate C++ code instead of executor IDL.
+ The generated C++ code from the CIDL could provide default
+ implementations which could be overridden by the executor code if so
+ desired. This would make the executor code more portable. Obviously
+ we also should retain executor IDL generation using some command line
+ options. (ETA - 2004/09). </li> <p>
+
+<li> Need to develop tools that would allow components to be added
+ dynamically to an existing assembly and remove components
+ dynamically from an existing assembly (ETA - 2004/12) <li> <p>.
+
+<li>The CCM_Core libraries need to be refactored so regular CIAO
+ users no longer need to link to CIAO_Server but to
+ CIAO_Container library instead. Currently, the session
+ container implementation is throwing exceptions from the
+ deployment modules when it fails to install a home. But these
+ feature should really be implmented in the Deployment::Container
+ interface instead. (ETA - 2004/12)<p>
+
+<li>HomeRegistrar related files from the CCM_Core projects have
+ been removed. We need to move them into a new directory when we
+ get to a new HomeFinder/HomeRegistrar implementation. Notice
+ that the deployment framework will need to use the HomeRegistrar
+ interface to register components/homes. (ETA - 2004/12)<p>
+
+<li>We should add support for the unclassified container and use the
+ property file of some sort to configure the empty container.<p>
+
+ Process component (which have 1:1 servant to OID mapping) might
+ be useful too (no need to support PSS in this case?)<p>
+
+ Persistent object references/IDs can be useful for statically
+ configured DRE systems as they eliminate the initial handshakes
+ in a multi-process system and enable each process to start up
+ independently. (ETA - Not known) <p>
+
+ <li>The new <code>generate_component_mpc.pl</code> script should
+ invoke the <code>generate_export_file.pl</code> automatically
+ and created the necessary export files instead of only printing
+ out the hints on how to do that. (ETA - Not known)<p>
+
+ <li>We need a ConfigValues parser for extracting common name-value
+ info out of a ConfigValues sequence. This would be needed if
+ components have to set complex user defined types as attributes.
+ (ETA - not known). </li><p>
+
+ <li><b>Container Factory</b>: We need to provide a container factory
+ interface to decide what kind of container we need to use. Hmm,
+ isn't this the job of <code>ComponentServer</code> interface?
+ (ETA - not known)</li><p>
+
+ <li><b>ComponentInstallation</b>: This is a simple interface that
+ provides (UUID, Location) mappings. Both UUID and Location are
+ of string type. Since ACE supports UUID implementation, we can
+ probably use that to generate a UUID. Location should be URI, but
+ let's just map that to locations in filesystem (pathnames) for
+ now. So we will most likely need to provide more downloading
+ mechanisms in the future, e.g., http, ftp, etc. <p>
+
+ ComponentInstallation is the interface assembly mechanism used
+ to interact with the deployment mechanism. We are free to
+ implement the deployment mechanism (i.e., shipping of code to
+ various locations of application domains) the way we like but
+ the assembly mechanism depends on this interface to determine
+ where to fetch a specific implementation.<p>
+
+ One thing that we really need is an installation tool set which
+ can be used to manage remote installation, by parsing various
+ XML descriptors and either push or pull the right implmentation
+ for a certain host in the list of hosts the component need to be
+ installed. According to the CCM spec., ComponentInstallation
+ interface implementation can retrieve a implementation (DLL) on
+ an on-demand basis. Therefore, there is probably no need to
+ push the appropriate DLL over right away when we feed some
+ descriptors into the installation tool. The tool, however,
+ should accurately extract the correct OS/compiler information
+ and inform the ComponentInstallation impl which and where to
+ fetch the right implmentation for the host it is running on. (ETA - not
+ known)<p>
+ <li><b>CIDL Compiler</b>:
+ There are no immediate plans to support the part of CIDL
+ corresponding to the OMG Persistent State Definition Langauge
+ (PSDL). For an up-to-date status of the CIDL, please see
+ $CIAO_ROOT/CCF/Documentation/TODO.
+
+ <li> This is a set of the to-do associated with the DAnCE implementation.
+ <p>
+ <ul>
+ <li>We need to put the ComponentServer layer back in. In the current
+ implementation we use NodeApplication as both the Session Container
+ and the ComponentServer. We need to seperate the two
+ entities so we can hook any Container with the
+ ComponentServer. This change is essential to the RT
+ configuration and for the future of CIAO.<p>
+
+ <li>Bala added ciao_[pre|post]_activate to the Session Component to
+ force the order of actions upon start-up, but this will not
+ work with the new DnC framework. We need to change the DnC framework
+ a bit to make this feature available again.<p>
+
+ <li>We need to work on the Resource Management process in
+ DAnCE. Right now this part of the DnC spec is omitted in our
+ implementation.<p>
+
+ <li>We need to work on the packaging process more so we can ship
+ binaries around when the dll/so is not available in the
+ local node.<p>
+ </ul>
+
+</ul>
+
+<h3>Cool ideas</h3>
+<ul>
+ <li>Currently, developing a component will create 3 DLLs, one for
+ the client side stuff, one for the servant glue code, and one
+ for the executors. We need to figure out a way to automate
+ these stuff. MPC is a good starting point to generate scripts
+ to create project templates.<p>
+
+ <li>Management of <code>ComponentInstallation</code> can be done
+ using a CORBAscript of some sort as this involve mostly
+ registering and unregistering of locations of component
+ implementations.<p>
+</ul>
+
+<h3>Finished Work</h3>
+<ul>
+ <li>The exception returned from CIAO_Daemon when it fails to
+ locate a DLL is quite useless to say the least. It needs
+ fixing.<p>
+
+ CIAO now provides more meaningful error message now.<p>
+
+ <li>We should create a new workspace/target in TAO such as CIAO_ONLY
+ to simplify the process of using CIAO. Currently, you have to
+ checkout the README file in CIAO_ROOT to figure out what TAO
+ modules are required by CIAO.<p>
+
+ A new target "CIAO_Core" is now available in ACE's top level
+ Makefile.<p>
+
+ <li>We need better debug info and a way to control how different
+ level of debug info are generated in CIAO.<p> Some preliminary
+ support using the <a href="EnvVars.html">environment
+ variable</a> <code>CIAO_DEBUG_LEVEL</code> has been added.<P>
+
+ <li>Miminal implementation of CIDL compiler.<p>
+
+ <li>CCM core workspace now contains 3 different DLLs:
+ <UL>
+ <li>CCM_Client - Needed by CCM-awared client
+ <li>CCM_Container - Needed by executors and servers
+ <li>CCM_Server - Needed by servers and CIAO tools
+ </UL><p>
+
+ <li>A SessionContainer implementation.<p>
+
+</ul>
+
+</body> </html>
diff --git a/modules/CIAO/docs/Trace.html b/modules/CIAO/docs/Trace.html
new file mode 100644
index 00000000000..001cddd007e
--- /dev/null
+++ b/modules/CIAO/docs/Trace.html
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<!-- $Id$ -->
+ <title>CIAO Logging facility</title>
+</head>
+<body>
+<h1>CIAO Logging Facility
+</h1>
+Based on the various logging techniques provided by ACE mechanism, CIAO
+has introduced some new logging macros to assist CIAO developers in
+diagnosing CIAO codes.<br>
+<ul>
+ <li><span style="font-weight: bold;">CIAO_TRACE<br>
+ </span>&nbsp;&nbsp;&nbsp; By placing CIAO_TRACE at the beginning of
+a CIAO function or method, you can get the tracing message of when
+these functions are entered and when they are exited at runtime. To
+enable this feature, however, you need to set CIAO_NTRACE to 0 in
+$ACE_ROOT\ace\config.h. CIAO_TRACE works in a identical way as
+ACE_TRACE. The only distinction is that CIAO_TRACE will output the the
+tracing messages for CIAO projects only while dumping the excessive
+messages from ACE on top of which CIAO is built. <br>
+ </li>
+</ul>
+<hr>
+<address>Ming Xiong<br>
+Last modified: Thur Aug 12:50 am 2005
+</address>
+<!-- hhmts start -->
+<!-- hhmts end -->
+</body>
+</html>
diff --git a/modules/CIAO/docs/XML/ciao_rt_cad_ext.dtd b/modules/CIAO/docs/XML/ciao_rt_cad_ext.dtd
new file mode 100644
index 00000000000..7877afe2151
--- /dev/null
+++ b/modules/CIAO/docs/XML/ciao_rt_cad_ext.dtd
@@ -0,0 +1,93 @@
+<!--
+ $Id$
+
+ DTD for CIAO ComponentAssembly real-time extension.
+ The extension for this type of XML document should be .RTD
+
+ A component server can be associated to one conforming XML
+ descriptor file of this DTD via the <extension> tag under
+ <hostcollocation>, <processcollocation> as
+
+ <extension class="RT-CAD-EXT"
+ origin="CIAO">pathname_to_xml_file.xml</extension>
+
+ The root element is <rtcad-ext>.
+
+ The <extension> tag under <homeplacement> element can be used to
+ specify the <rtpolicyset> named in this file (using rtpolicyset's
+ id attribute.) For example,
+
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">IDREF_of_some_rtpolicyset</extension>
+
+-->
+
+<!ELEMENT rtcad_ext ( rtresources?, rtpolicyset+ ) >
+
+<!-- RT Resources grammar definitions -->
+
+<!ELEMENT rtresources (threadpool | threadpoolwithlanes | connectionbands)* >
+
+<!ELEMENT threadpool EMPTY>
+<!ATTLIST threadpool
+ id ID #REQUIRED
+ stacksize CDATA #REQUIRED
+ static_threads CDATA #REQUIRED
+ dynamic_threads CDATA #REQUIRED
+ priority CDATA #REQUIRED
+ buffering (yes | no) #REQUIRED
+ max_buffer CDATA #REQUIRED
+ buffer_size CDATA #REQUIRED >
+
+<!ELEMENT threadpoolwithlanes (lane+) >
+<!ATTLIST threadpoolwithlanes
+ id ID #REQUIRED
+ stacksize CDATA #REQUIRED
+ borrowing (yes | no) #REQUIRED
+ buffering (yes | no) #REQUIRED
+ max_buffer CDATA #REQUIRED
+ buffer_size CDATA #REQUIRED >
+
+<!ELEMENT lane EMPTY>
+<!ATTLIST lane
+ priority CDATA #REQUIRED
+ static_threads CDATA #REQUIRED
+ dynamic_threads CDATA #REQUIRED >
+
+<!ELEMENT connectionbands (band+) >
+<!ATTLIST connectionbands
+ id ID #REQUIRED >
+
+<!ELEMENT band EMPTY>
+<!ATTLIST band
+ low CDATA #REQUIRED
+ high CDATA #REQUIRED >
+
+<!-- RT Policy_Set grammar definitions -->
+<!-- Each type of policy in rtpoliyset can only appear once -->
+<!ELEMENT rtpolicyset (priority_model_policy,
+ threadpool_policy,
+ banded_connection_policy)+ >
+<!ATTLIST rtpolicyset
+ id ID #REQUIRED>
+
+<!ELEMENT priority_model_policy EMPTY>
+<!ATTLIST priority_model_policy
+ type (server_declared | client_propagated) #REQUIRED
+ priority CDATA #REQUIRED>
+
+<!ELEMENT threadpool_policy EMPTY>
+<!--
+ "idref" must be previously defined by the id attribute of
+ either <threadpool> or <threadpoollanes> element
+-->
+<!ATTLIST threadpool_policy
+ idref IDREF #REQUIRED>
+
+<!ELEMENT banded_connection_policy EMPTY>
+<!--
+ "idref" must be previously defined by the id attribute of
+ <connectionbands> element.
+-->
+<!ATTLIST banded_connection_policy
+ idref IDREF #REQUIRED> \ No newline at end of file
diff --git a/modules/CIAO/docs/XML/componentassembly.dtd b/modules/CIAO/docs/XML/componentassembly.dtd
new file mode 100644
index 00000000000..d61fb47505f
--- /dev/null
+++ b/modules/CIAO/docs/XML/componentassembly.dtd
@@ -0,0 +1,367 @@
+<!-- DTD for Component Assembly Descriptor. The root element
+ is <componentassembly>. Elements are listed
+ alphabetically.
+ -->
+
+<!-- Simple xml link attributes based on W3C WD-xlink-19980303.
+ May change slightly when XLL is finalized.
+ -->
+<!ENTITY % simple-link-attributes "
+ xml:link CDATA #FIXED 'SIMPLE'
+ href CDATA #REQUIRED
+" >
+
+<!ELEMENT componentassembly
+ ( description?
+ , componentfiles
+ , partitioning
+ , connections?
+ , extension*
+ ) >
+<!ATTLIST componentassembly
+ id ID #REQUIRED
+ derivedfrom CDATA #IMPLIED >
+
+<!-- If file not available locally, then download via codebase link -->
+<!ELEMENT codebase EMPTY >
+<!ATTLIST codebase
+ filename CDATA #IMPLIED
+ %simple-link-attributes; >
+
+<!ELEMENT componentfile
+ ( fileinarchive
+ | codebase
+ | link
+ ) >
+<!ATTLIST componentfile
+ id ID #REQUIRED
+ type CDATA #IMPLIED >
+
+<!ELEMENT componentfileref EMPTY >
+<!ATTLIST componentfileref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT componentfiles
+ ( componentfile+
+ ) >
+
+<!ELEMENT componentimplref EMPTY >
+<!ATTLIST componentimplref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT componentinstantiation
+ ( usagename?
+ , componentproperties?
+ , registercomponent*
+ , extension*
+ ) >
+<!ATTLIST componentinstantiation
+ id ID #REQUIRED >
+
+<!ELEMENT componentinstantiationref EMPTY >
+<!ATTLIST componentinstantiationref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT componentproperties
+ ( fileinarchive
+ | codebase
+ ) >
+
+<!ELEMENT componentsupportedinterface
+ ( componentinstantiationref
+ | findby
+ )>
+
+<!ELEMENT connectevent
+ ( ( consumesport
+ | existinginterface
+ )
+ , ( emitsport
+ | publishesport
+ )
+ ) >
+<!ATTLIST connectevent
+ id ID #IMPLIED >
+
+<!ELEMENT connecthomes
+ ( proxyhome
+ , destinationhome
+ ) >
+<!ATTLIST connecthomes
+ id ID #IMPLIED >
+
+<!ELEMENT connectinterface
+ ( usesport
+ , ( providesport
+ | componentsupportedinterface
+ | existinginterface
+ | homeinterface
+ )
+ ) >
+<!ATTLIST connectinterface
+ id ID #IMPLIED >
+
+<!ELEMENT connections
+ ( connectinterface
+ | connectevent
+ | connecthomes
+ | extension
+ )* >
+
+<!ELEMENT consumesidentifier ( #PCDATA ) >
+
+<!ELEMENT consumesport
+ ( consumesidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ )>
+
+<!ELEMENT description ( #PCDATA ) >
+
+<!ELEMENT destination ( #PCDATA ) >
+
+<!ELEMENT destinationhome
+ ( homeplacementref
+ | findby
+ ) >
+
+<!ELEMENT emitsidentifier ( #PCDATA ) >
+
+<!ELEMENT emitsport
+ ( emitsidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ )>
+
+<!ELEMENT executableplacement
+ ( usagename?
+ , componentfileref
+ , componentimplref?
+ , invocation?
+ , destination?
+ , extension*
+ ) >
+<!ATTLIST executableplacement
+ id ID #REQUIRED
+ cardinality CDATA "1" >
+
+<!ELEMENT existinginterface
+ ( findby )>
+
+<!-- The "extension" element is used for vendor-specific extensions -->
+<!ELEMENT extension (#PCDATA) >
+<!ATTLIST extension
+ class CDATA #REQUIRED
+ origin CDATA #REQUIRED
+ id ID #IMPLIED
+ extra CDATA #IMPLIED
+ html-form CDATA #IMPLIED >
+
+<!-- The "fileinarchive" element is used to specify a file in the archive.
+ If the file is independent of an archive then link is used to point to
+ the archive in which the file may be found.
+ -->
+<!ELEMENT fileinarchive
+ ( link? ) >
+<!ATTLIST fileinarchive
+ name CDATA #REQUIRED >
+
+<!ELEMENT findby
+ ( namingservice
+ | stringifiedobjectref
+ | traderquery
+ | homefinder
+ | extension
+ ) >
+
+<!ELEMENT homefinder EMPTY >
+<!ATTLIST homefinder
+ name CDATA #REQUIRED >
+
+<!ELEMENT homeinterface
+ ( homeplacementref
+ | findby
+ )>
+
+<!ELEMENT homeplacement
+ ( usagename?
+ , componentfileref
+ , componentimplref?
+ , homeproperties?
+ , componentproperties?
+ , registerwithhomefinder*
+ , registerwithnaming*
+ , registerwithtrader*
+ , componentinstantiation*
+ , destination?
+ , extension*
+ ) >
+<!ATTLIST homeplacement
+ id ID #REQUIRED
+ cardinality CDATA "1" >
+
+<!ELEMENT homeplacementref EMPTY >
+<!ATTLIST homeplacementref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT homeproperties
+ ( fileinarchive
+ | codebase
+ ) >
+
+<!ELEMENT hostcollocation
+ ( usagename?
+ , impltype?
+ , ( homeplacement
+ | executableplacement
+ | processcollocation
+ | extension
+ )+
+ , destination?
+ ) >
+<!ATTLIST hostcollocation
+ id ID #IMPLIED
+ cardinality CDATA "1" >
+
+<!ELEMENT impltype EMPTY >
+<!ATTLIST impltype
+ language CDATA #REQUIRED
+ version CDATA #IMPLIED >
+
+<!ELEMENT invocation EMPTY >
+<!ATTLIST invocation
+ args CDATA #REQUIRED >
+
+<!ELEMENT link ( #PCDATA ) >
+<!ATTLIST link
+ %simple-link-attributes; >
+
+<!ELEMENT namingservice EMPTY >
+<!ATTLIST namingservice
+ name CDATA #REQUIRED >
+
+<!ELEMENT partitioning
+ ( homeplacement
+ | executableplacement
+ | processcollocation
+ | hostcollocation
+ | extension
+ )* >
+
+<!ELEMENT processcollocation
+ ( usagename?
+ , impltype?
+ , ( homeplacement
+ | extension
+ )+
+ , destination?
+ ) >
+<!ATTLIST processcollocation
+ id ID #IMPLIED
+ cardinality CDATA "1" >
+
+<!ELEMENT providesidentifier ( #PCDATA ) >
+
+<!ELEMENT providesport
+ ( providesidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ ) >
+
+<!ELEMENT proxyhome
+ ( homeplacementref
+ | findby
+ ) >
+
+<!ELEMENT publishesidentifier ( #PCDATA ) >
+
+<!ELEMENT publishesport
+ ( publishesidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ ) >
+
+<!ELEMENT registercomponent
+ ( ( providesidentifier
+ | consumesidentifier
+ )?
+ , ( registerwithnaming
+ | registerwithtrader
+ )+
+ ) >
+
+<!ELEMENT registerwithhomefinder EMPTY >
+<!ATTLIST registerwithhomefinder
+ name CDATA #REQUIRED >
+
+<!ELEMENT registerwithnaming EMPTY >
+<!ATTLIST registerwithnaming
+ name CDATA #IMPLIED >
+
+<!ELEMENT registerwithtrader
+ ( traderexport ) >
+<!ATTLIST registerwithtrader
+ tradername CDATA #IMPLIED >
+
+<!-- DEVNOTE: is tradername necessary? -->
+<!-- DEVNOTE: Should trader properties be specified in component file?
+ And in assembly file? -->
+
+<!ELEMENT stringifiedobjectref ( #PCDATA ) >
+
+<!ELEMENT traderconstraint ( #PCDATA ) >
+
+<!ELEMENT traderexport
+ ( traderservicetypename
+ , traderproperties
+ ) >
+
+<!ELEMENT traderpolicy
+ ( traderpolicyname
+ , traderpolicyvalue
+ ) >
+
+<!ELEMENT traderpolicyname ( #PCDATA ) >
+
+<!ELEMENT traderpolicyvalue ( #PCDATA ) >
+
+<!ELEMENT traderpreference ( #PCDATA ) >
+
+<!ELEMENT traderproperties
+ ( traderproperty+ ) >
+
+<!ELEMENT traderproperty
+ ( traderpropertyname
+ , traderpropertyvalue
+ ) >
+
+<!ELEMENT traderpropertyname ( #PCDATA ) >
+
+<!ELEMENT traderpropertyvalue ( #PCDATA ) >
+
+<!ELEMENT traderquery
+ ( traderservicetypename
+ , traderconstraint
+ , traderpreference?
+ , traderpolicy*
+ , traderspecifiedprop*
+ ) >
+
+<!ELEMENT traderservicetypename ( #PCDATA ) >
+
+<!ELEMENT traderspecifiedprop ( #PCDATA ) >
+
+<!ELEMENT usagename ( #PCDATA ) >
+
+<!ELEMENT usesidentifier ( #PCDATA ) >
+
+<!ELEMENT usesport
+ ( usesidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ ) >
diff --git a/modules/CIAO/docs/XML/corbacomponent.dtd b/modules/CIAO/docs/XML/corbacomponent.dtd
new file mode 100644
index 00000000000..fd5ec98f377
--- /dev/null
+++ b/modules/CIAO/docs/XML/corbacomponent.dtd
@@ -0,0 +1,316 @@
+<!-- DTD for CORBA Component Descriptor. The root element is
+ <corbacomponent>. Elements are listed alphabetically.
+-->
+
+<!-- Simple xml link attributes based on W3C WD-xlink-19980303.
+ May change when XLL is finalized. -->
+
+<!ENTITY % simple-link-attributes "
+ xml:link CDATA #FIXED 'SIMPLE'
+ href CDATA #REQUIRED
+">
+
+<!ELEMENT accessmode EMPTY>
+<!ATTLIST accessmode
+ mode (READ_ONLY|READ_WRITE) #REQUIRED >
+
+<!ELEMENT componentfeatures
+ ( inheritscomponent?
+ , supportsinterface*
+ , ports
+ , operationpolicies?
+ , extension*
+ ) >
+<!ATTLIST componentfeatures
+ name CDATA #REQUIRED
+ repid CDATA #REQUIRED >
+
+<!ELEMENT componentkind
+ ( service
+ | session
+ | process
+ | entity
+ | unclassified
+ ) >
+
+<!ELEMENT componentproperties
+ ( fileinarchive
+ ) >
+
+<!ELEMENT componentrepid EMPTY >
+<!ATTLIST componentrepid
+ repid CDATA #IMPLIED >
+
+<!ELEMENT containermanagedpersistence
+ ( storagehome
+ , pssimplementation?
+ , accessmode
+ , psstransaction
+ , params?
+ ) >
+
+<!ELEMENT configurationcomplete EMPTY >
+<!ATTLIST configurationcomplete
+ set ( true | false ) #REQUIRED >
+
+<!ELEMENT consumes
+ ( eventpolicy
+ , extension* ) >
+<!ATTLIST consumes
+ consumesname CDATA #REQUIRED
+ eventtype CDATA #REQUIRED >
+
+<!ELEMENT corbacomponent
+ ( corbaversion
+ , cormponentrepid
+ , homerepid
+ , componentkind
+ , interop?
+ , transaction?
+ , security?
+ , threading
+ , configurationcomplete
+ , extendedpoapolicy*
+ , repository?
+ , segment*
+ , componentproperties?
+ , homeproperties?
+ , homefeatures+
+ , componentfeatures+
+ , interface*
+ , extension*
+ ) >
+
+<!ELEMENT corbaversion (#PCDATA) >
+
+<!ELEMENT description ( #PCDATA ) >
+
+<!ELEMENT emits
+ ( eventpolicy
+ , extension* ) >
+<!ATTLIST emits
+ emitsname CDATA #REQUIRED
+ eventtype CDATA #REQUIRED >
+
+<!ELEMENT entity
+ ( servant ) >
+
+<!ELEMENT eventpolicy EMPTY>
+<!ATTLIST eventpolicy
+ policy ( normal | default | transaction ) #IMPLIED>
+
+<!ELEMENT extendedpoapolicy EMPTY>
+<!ATTLIST extendedpoapolicy
+ name CDATA #REQUIRED
+ value CDATA #REQUIRED >
+
+<!-- The "extension" element is used for vendor-specific extensions -->
+<!ELEMENT extension (#PCDATA) >
+<!ATTLIST extension
+ class CDATA #REQUIRED
+ origin CDATA #REQUIRED
+ id ID #IMPLIED
+ extra CDATA #IMPLIED
+ html-form CDATA #IMPLIED >
+
+<!-- The "fileinarchive" element is used to specify a file in the
+ archive. If the file is in another archive then link is used to
+ point to the archive in which the file may be found.
+ -->
+<!ELEMENT fileinarchive
+ ( link? ) >
+<!ATTLIST fileinarchive
+ name CDATA #REQUIRED >
+
+<!ELEMENT homefeatures
+ ( inheritshome?
+ , operationpolicies?
+ , extension* ) >
+<!ATTLIST homefeatures
+ name CDATA #REQUIRED
+ repid CDATA #REQUIRED >
+
+<!ELEMENT homeproperties
+ ( fileinarchive
+ ) >
+
+<!ELEMENT homerepid EMPTY >
+<!ATTLIST homerepid
+ repid CDATA #IMPLIED >
+
+<!ELEMENT inheritscomponent EMPTY>
+<!ATTLIST inheritscomponent
+ repid CDATA #REQUIRED>
+
+<!ELEMENT inheritshome EMPTY>
+<!ATTLIST inheritshome
+ repid CDATA #REQUIRED>
+
+<!ELEMENT inheritsinterface EMPTY>
+<!ATTLIST inheritsinterface
+ repid CDATA #REQUIRED>
+
+<!ELEMENT ins EMPTY>
+<!ATTLIST ins
+ name CDATA #REQUIRED >
+
+<!ELEMENT interface
+ ( inheritsinterface*
+ , operationpolicies? ) >
+<!ATTLIST interface
+ name CDATA #REQUIRED
+ repid CDATA #REQUIRED >
+
+<!ELEMENT interop EMPTY>
+<!ATTLIST interop
+ type CDATA #REQUIRED
+ direction ( hasview | isview ) #REQUIRED
+ descriptor CDATA #REQUIRED >
+
+<!ELEMENT link ( #PCDATA ) >
+<!ATTLIST link
+ %simple-link-attributes; >
+
+<!ELEMENT objref EMPTY>
+<!ATTLIST objref
+ string CDATA #REQUIRED >
+
+<!ELEMENT operation
+ ( transaction?
+ , requiredrights? ) >
+<!ATTLIST operation
+ name CDATA #REQUIRED >
+
+<!-- an operation name of "*" specifies all operations in the current
+scope -->
+<!ELEMENT operationpolicies
+ ( operation+ ) >
+
+<!ELEMENT param EMPTY >
+<!ATTLIST param
+ name CDATA #REQUIRED
+ value CDATA #REQUIRED >
+
+<!ELEMENT params (param+) >
+
+<!ELEMENT poapolicies EMPTY>
+<!ATTLIST poapolicies
+ thread (ORB_CTRL_MODEL | SINGLE_THREAD_SAFE ) #REQUIRED
+ lifespan (TRANSIENT | PERSISTENT ) #REQUIRED
+ iduniqueness (UNIQUE_ID | MULTIPLE_ID) #REQUIRED
+ idassignment (USER_ID | SYSTEM_ID) #REQUIRED
+ servantretention (RETAIN | NON_RETAIN) #REQUIRED
+ requestprocessing (USE_ACTIVE_OBJECT_MAP_ONLY
+ |USE_DEFAULT_SERVANT
+ |USE_SERVANT_MANAGER) #REQUIRED
+ implicitactivation (IMPLICIT_ACTIVATION
+ |NON_IMPLICIT_ACTIVATION) #REQUIRED >
+
+<!ELEMENT ports
+ ( uses
+ | provides
+ | emits
+ | publishes
+ | consumes
+ )* >
+
+<!ELEMENT process
+ ( servant ) >
+
+<!ELEMENT provides
+ ( operationpolicies?
+ , extension* ) >
+<!ATTLIST provides
+ providesname CDATA #REQUIRED
+ repid CDATA #REQUIRED
+ facettag CDATA #REQUIRED >
+
+<!ELEMENT pssimplementation EMPTY>
+<!ATTLIST pssimplementation
+ id CDATA #REQUIRED >
+
+<!ELEMENT psstransaction (psstransactionisolationlevel?) >
+<!ATTLIST psstransaction
+ policy (TRANSACTIONAL|NON_TRANSACTIONAL) #REQUIRED >
+
+<!ELEMENT psstransactionisolationlevel EMPTY>
+<!ATTLIST psstransactionisolationlevel
+ level (READ_UNCOMMITTED|READ_COMMITTED|REPEATABLE_READ|SERIALIZABLE)
+ #REQUIRED >
+
+<!ELEMENT publishes
+ ( eventpolicy
+ , extension* ) >
+<!ATTLIST publishes
+ publishesname CDATA #REQUIRED
+ eventtype CDATA #REQUIRED >
+
+<!ELEMENT repository
+ ( ins
+ | objref
+ | link
+ ) >
+<!ATTLIST repository
+ type CDATA #IMPLIED >
+
+<!ELEMENT requiredrights
+ ( right* ) >
+
+<!ELEMENT right
+ ( description? ) >
+<!ATTLIST right
+ name CDATA #REQUIRED >
+
+<!ELEMENT security
+ ( requiredrights? ) >
+<!ATTLIST security
+ rightsfamily CDATA #REQUIRED
+ rightscombinator (secallrights | secanyrights) #REQUIRED >
+
+<!ELEMENT segment
+ ( segmentmember+
+ , containermanagedpersistence?
+ , extension*
+ ) >
+<!ATTLIST segment
+ name CDATA #REQUIRED
+ segmenttag CDATA #REQUIRED >
+
+<!ELEMENT segmentmember EMPTY>
+<!ATTLIST segmentmember
+ facettag CDATA #REQUIRED >
+
+<!ELEMENT servant EMPTY >
+<!ATTLIST servant
+ lifetime (component|method|transaction|container) #REQUIRED >
+
+<!ELEMENT service EMPTY >
+
+<!ELEMENT session
+ ( servant ) >
+
+<!ELEMENT storagehome EMPTY>
+<!ATTLIST storagehome
+ id CDATA #REQUIRED >
+
+<!ELEMENT supportsinterface
+ ( operationpolicies?
+ , extension* ) >
+<!ATTLIST supportsinterface
+ repid CDATA #REQUIRED >
+
+<!ELEMENT threading EMPTY>
+<!ATTLIST threading
+ policy ( serialize | multithread ) #REQUIRED >
+
+<!ELEMENT transaction EMPTY >
+<!ATTLIST transaction
+ use (self-managed|not-supported|required|supports|requiresnew|
+ mandatory|never) #REQUIRED >
+<!ELEMENT unclassified
+ ( poapolicies ) >
+
+<!ELEMENT uses ( extension* ) >
+<!ATTLIST uses
+ usesname CDATA #REQUIRED
+ repid CDATA #REQUIRED >
diff --git a/modules/CIAO/docs/XML/properties.dtd b/modules/CIAO/docs/XML/properties.dtd
new file mode 100644
index 00000000000..adfe8699fb7
--- /dev/null
+++ b/modules/CIAO/docs/XML/properties.dtd
@@ -0,0 +1,87 @@
+<!-- DTD for CORBA Component property file. The root element
+ is <properties>. Elements are listed alphabetically.
+-->
+
+<!ELEMENT choice ( #PCDATA ) >
+
+<!ELEMENT choices ( choice | range )+ ) >
+
+<!ELEMENT defaultvalue ( #PCDATA ) >
+
+<!ELEMENT description ( #PCDATA ) >
+
+<!ELEMENT value ( #PCDATA ) >
+
+<!ELEMENT properties
+ ( description?
+ , ( simple
+ | sequence
+ | struct
+ | valuetype
+ )*
+ ) >
+
+<!ELEMENT range (value, value) >
+
+<!ELEMENT simple
+ ( description?
+ , value
+ , choices?
+ , defaultvalue?
+ ) >
+<!ATTLIST simple
+ name CDATA #IMPLIED
+ type ( boolean
+ | char
+ | double
+ | float
+ | short
+ | long
+ | objref
+ | octet
+ | string
+ | ulong
+ | ushort
+ | longlong
+ | ulonglong
+ | wchar
+ | wstring
+ | fixed
+ ) #REQUIRED >
+
+<!ELEMENT sequence
+ ( description?
+ , ( simple*
+ | struct*
+ | sequence*
+ | valuetype*
+ )
+ ) >
+<!ATTLIST sequence
+ name CDATA #IMPLIED
+ type CDATA #REQUIRED >
+
+<!ELEMENT struct
+ ( description?
+ , ( simple
+ | sequence
+ | struct
+ | valuetype
+ )*
+ ) >
+<!ATTLIST struct
+ name CDATA #IMPLIED
+ type CDATA #REQUIRED >
+
+<!ELEMENT valuetype
+ ( description?
+ , ( simple
+ | sequence
+ | struct
+ | valuetype
+ )*
+ ) >
+<!ATTLIST valuetype
+ name CDATA #IMPLIED
+ type CDATA #REQUIRED
+ primarykey (true | false) "false" >
diff --git a/modules/CIAO/docs/XML/softpkg.dtd b/modules/CIAO/docs/XML/softpkg.dtd
new file mode 100644
index 00000000000..ee87b811cc6
--- /dev/null
+++ b/modules/CIAO/docs/XML/softpkg.dtd
@@ -0,0 +1,220 @@
+<!-- DTD for softpkg. Used to describe CORBA Component
+ implementations. The root element is <softpkg>.
+ Elements are listed alphabetically.
+ -->
+<!-- Revision $Id$ -->
+<!-- Simple xml link attributes based on W3C WD-xlink-19980303.
+ May change when XLL is finalized. -->
+
+<!ENTITY % simple-link-attributes "
+ xml:link CDATA #FIXED 'SIMPLE'
+ href CDATA #REQUIRED
+">
+
+<!ELEMENT author
+ ( name
+ | company
+ | webpage
+ )* >
+
+<!ELEMENT code
+ ( ( codebase
+ | fileinarchive
+ | link
+ )
+ , entrypoint?
+ , usage?
+ ) >
+<!ATTLIST code
+ type CDATA #IMPLIED >
+
+<!-- If file not available locally, then download via codebase link -->
+<!ELEMENT codebase EMPTY >
+<!ATTLIST codebase
+ filename CDATA #IMPLIED
+ %simple-link-attributes; >
+
+<!ELEMENT compiler EMPTY >
+<!ATTLIST compiler
+ name CDATA #REQUIRED
+ version CDATA #IMPLIED >
+
+<!ELEMENT company ( #PCDATA ) >
+
+<!ELEMENT dependency
+ ( softpkgref
+ | codebase
+ | fileinarchive
+ | localfile
+ | name
+ | valuetypefactory
+ ) >
+<!ATTLIST dependency
+ type CDATA #IMPLIED
+ action (assert | install) "assert">
+
+<!ELEMENT description ( #PCDATA ) >
+
+<!ELEMENT descriptor
+ ( link
+ | fileinarchive
+ ) >
+<!ATTLIST descriptor
+ type CDATA #IMPLIED>
+
+<!ELEMENT entrypoint ( #PCDATA) >
+
+<!-- The "extension" element is used for vendor-specific extensions -->
+<!ELEMENT extension (#PCDATA) >
+<!ATTLIST extension
+ class CDATA #REQUIRED
+ origin CDATA #REQUIRED
+ id ID #IMPLIED
+ extra CDATA #IMPLIED
+ html-form CDATA #IMPLIED >
+
+<!-- The "fileinarchive" element is used to specify a file in the archive.
+ If the file is in another archive then link is used to point to
+ the archive in which the file may be found.
+ -->
+<!ELEMENT fileinarchive
+ ( link? ) >
+<!ATTLIST fileinarchive
+ name CDATA #REQUIRED >
+
+<!ELEMENT idl
+ ( link
+ | fileinarchive
+ | repository
+ ) >
+<!ATTLIST idl
+ id CDATA #REQUIRED
+ homeid CDATA #REQUIRED >
+
+<!ELEMENT implementation
+ ( description
+ | code
+ | compiler
+ | dependency
+ | descriptor
+ | extension
+ | programminglanguage
+ | humanlanguage
+ | os
+ | propertyfile
+ | processor
+ | runtime
+ )* >
+<!ATTLIST implementation
+ id ID #IMPLIED
+ variation CDATA #IMPLIED >
+
+<!ELEMENT implref EMPTY >
+<!ATTLIST implref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT ins EMPTY >
+<!ATTLIST inc
+ name CDATA #REQUIRED >
+
+<!ELEMENT humanlanguage EMPTY >
+<!ATTLIST humanlanguage
+ name CDATA #REQUIRED >
+
+<!ELEMENT license ( #PCDATA ) >
+<!ATTLIST license
+ %simple-link-attributes; >
+
+<!ELEMENT link ( #PCDATA ) >
+<!ATTLIST link
+ %simple-link-attributes; >
+
+<!-- A file that should be available in the local environment -->
+<!ELEMENT localfile EMPTY >
+<!ATTLIST localfile
+ name CDATA #REQUIRED >
+
+<!ELEMENT name ( #PCDATA ) >
+
+<!ELEMENT objref EMPTY >
+<!ATTLIST objref
+ string CDATA #REQUIRED >
+
+<!ELEMENT os EMPTY >
+<!ATTLIST os
+ name CDATA #REQUIRED
+ version CDATA #IMPLIED>
+
+<!ELEMENT pkgtype ( #PCDATA ) >
+<!ATTLIST pkgtype
+ version CDATA #IMPLIED >
+
+<!ELEMENT processor EMPTY >
+<!ATTLIST processor
+ name CDATA #REQUIRED >
+
+<!ELEMENT programminglanguage EMPTY>
+<!ATTLIST programminglanguage
+ name CDATA #REQUIRED
+ version CDATA #IMPLIED >
+
+<!ELEMENT propertyfile
+ ( fileinarchive
+ | link) >
+<!ATTLIST propertyfile
+ type CDATA #IMPLIED >
+
+<!ELEMENT repository
+ ( ins
+ | objref
+ | link
+ ) >
+<!ATTLIST repository
+ type CDATA #IMPLIED >
+
+<!ELEMENT runtime EMPTY >
+<!ATTLIST runtime
+ name CDATA #REQUIRED
+ version CDATA #IMPLIED>
+
+<!ELEMENT softpkg
+ ( title
+ | pkgtype
+ | author
+ | description?
+ | license
+ | idl
+ | propertyfile
+ | dependency
+ | descriptor
+ | implementation
+ | extension
+ )* >
+<!ATTLIST softpkg
+ name ID #REQUIRED
+ version CDATA #IMPLIED >
+
+<!ELEMENT softpkgref
+ ( ( fileinarchive
+ | link
+ )
+ , implref?
+ ) >
+
+<!ELEMENT title ( #PCDATA ) >
+
+<!ELEMENT usage ( #PCDATA ) >
+
+<!ELEMENT valuetypefactory
+ ( codebase
+ | fileinarchive
+ | link
+ ) >
+<!ATTLIST valuetypefactory
+ repid CDATA #REQUIRED
+ valueentrypoint CDATA #IMPLIED
+ factoryentrypoint CDATA #IMPLIED >
+
+<!ELEMENT webpage ( #PCDATA ) >
+<!ATTLIST webpage
+ %simple-link-attributes; >
diff --git a/modules/CIAO/docs/cidlc.html b/modules/CIAO/docs/cidlc.html
new file mode 100644
index 00000000000..3fbc7f80191
--- /dev/null
+++ b/modules/CIAO/docs/cidlc.html
@@ -0,0 +1,296 @@
+<!-- $Id$ -->
+<html>
+
+<title>CIAO CIDL Compiler Options</title>
+
+<body>
+
+<h3>CIAO CIDL Compiler Options</h3>
+
+<div align="center">
+<table width="0" border="0" cellspacing="0" cellpadding="0">
+<tr>
+<td>
+<p>
+<code>
+./cidlc { OPTIONS } &lt;cidl file&gt;
+</code>
+</p>
+<dl>
+<dt>
+<code>
+[--version]
+</code>
+</dt>
+<dd>
+<p>
+Display version information and exit.
+</p>
+</dd>
+<dt>
+<code>
+[--help]
+</code>
+</dt>
+<dd>
+<p>
+Display usage information and exit.
+</p>
+</dd>
+<dt>
+<code>
+[--help-html]
+</code>
+</dt>
+<dd>
+<p>
+Dump usage information in html format and exit.
+</p>
+</dd>
+<dt>
+<code>
+[-I dir]
+</code>
+</dt>
+<dd>
+<p>
+Add the directory dir to the list of directories to be searched for header files.
+</p>
+</dd>
+<dt>
+<code>
+[-D name[=definition]]
+</code>
+</dt>
+<dd>
+<p>
+Predefine name as a macro with the value definition if present, 1 otherwise.
+</p>
+</dd>
+<dt>
+<code>
+[--gen-exec-impl]
+</code>
+</dt>
+<dd>
+<p>
+Generate the executor implementation classes.
+</p>
+</dd>
+<dt>
+<code>
+[--lem-force-all]
+</code>
+</dt>
+<dd>
+<p>
+Force generation of local executor mapping for all IDL types including those not used (directly or inderectly) by compositions. This option is useful for generating a common portion of local executor mapping used by more than one component or composition.
+</p>
+</dd>
+<dt>
+<code>
+[--lem-file-suffix suffix]
+</code>
+</dt>
+<dd>
+<p>
+Use provided suffix instead of default 'E' when constructing name of local executor mapping file.
+</p>
+</dd>
+<dt>
+<code>
+[--lem-file-regex regex]
+</code>
+</dt>
+<dd>
+<p>
+Use provided regular expression when constructing name of local executor mapping file.
+</p>
+</dd>
+<dt>
+<code>
+[--svnt-hdr-file-suffix suffix]
+</code>
+</dt>
+<dd>
+<p>
+Use provided suffix instead of default '_svnt.h' when constructing name of servant file.
+</p>
+</dd>
+<dt>
+<code>
+[--svnt-hdr-file-regex regex]
+</code>
+</dt>
+<dd>
+<p>
+Use provided regular expression when constructing name of servant file.
+</p>
+</dd>
+<dt>
+<code>
+[--svnt-src-file-suffix suffix]
+</code>
+</dt>
+<dd>
+<p>
+Use provided suffix instead of default '_svnt.cpp' when constructing name of servant file.
+</p>
+</dd>
+<dt>
+<code>
+[--svnt-src-file-regex regex]
+</code>
+</dt>
+<dd>
+<p>
+Use provided regular expression when constructing name of servant file.
+</p>
+</dd>
+<dt>
+<code>
+[--svnt-export-macro macro]
+</code>
+</dt>
+<dd>
+<p>
+Replace default servant DLL export macro with provided ,acro.
+</p>
+</dd>
+<dt>
+<code>
+[--svnt-export-include file]
+</code>
+</dt>
+<dd>
+<p>
+Replace default servant export include file with provided file.
+</p>
+</dd>
+<dt>
+<code>
+[--suppress-register-factory]
+</code>
+</dt>
+<dd>
+<p>
+Suppress generation of code to register eventtype factories for event sinks.
+</p>
+</dd>
+<dt>
+<code>
+[--custom-container type]
+</code>
+</dt>
+<dd>
+<p>
+Generate code for custom container of the provided type.
+</p>
+</dd>
+<dt>
+<code>
+[--desc-file-suffix suffix]
+</code>
+</dt>
+<dd>
+<p>
+Use provided suffix instead of default '.ccd' when constructing name of descriptor file.
+</p>
+</dd>
+<dt>
+<code>
+[--desc-file-regex regex]
+</code>
+</dt>
+<dd>
+<p>
+Use provided regular expression when constructing name of descriptor file.
+</p>
+</dd>
+<dt>
+<code>
+[--exec-hdr-file-suffix suffix]
+</code>
+</dt>
+<dd>
+<p>
+Use provided suffix instead of default '_exec.h' when constructing name of executor implementation file.
+</p>
+</dd>
+<dt>
+<code>
+[--exec-hdr-file-regex regex]
+</code>
+</dt>
+<dd>
+<p>
+Use provided regular expression when constructing name of executor implementation file.
+</p>
+</dd>
+<dt>
+<code>
+[--exec-src-file-suffix suffix]
+</code>
+</dt>
+<dd>
+<p>
+Use provided suffix instead of default '_exec.cpp' when constructing name of executor implementation file.
+</p>
+</dd>
+<dt>
+<code>
+[--exec-src-file-regex regex]
+</code>
+</dt>
+<dd>
+<p>
+Use provided regular expression when constructing name of executor implementation file.
+</p>
+</dd>
+<dt>
+<code>
+[--exec-export-macro macro]
+</code>
+</dt>
+<dd>
+<p>
+Replace default executor DLL export macro with provided macro.
+</p>
+</dd>
+<dt>
+<code>
+[--exec-export-include file]
+</code>
+</dt>
+<dd>
+<p>
+Replace default executor export include file with provided file.
+</p>
+</dd>
+<dt>
+<code>
+[--trace-semantic-actions]
+</code>
+</dt>
+<dd>
+<p>
+Turn on semantic actions tracing facility.
+</p>
+</dd>
+<dt>
+<code>
+[--preprocess-only]
+</code>
+</dt>
+<dd>
+<p>
+Run preprocessor only and output result to stdout.
+</p>
+</dd>
+</dl>
+</td>
+</tr>
+</table>
+</div>
+</body>
+</html>
diff --git a/modules/CIAO/docs/com-impl.html b/modules/CIAO/docs/com-impl.html
new file mode 100644
index 00000000000..ed5948ab9cf
--- /dev/null
+++ b/modules/CIAO/docs/com-impl.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<!-- $Id$ -->
+<html> <head>
+<title>Implementing a CCM Component</title>
+</head>
+
+<body>
+<h1>Implementing a CCM Component</h1>
+
+This document explains how to implement a single component. At this
+moment, CIAO lacks a CIDL compiler, and we depends on manually
+generating the servant glue code for containers and local executor
+interface. Check out this <a href="new_components.html">page</a> to
+find how all files are generate4d in CIAO.
+The following figure shows how this is done:<p>
+
+
+<img src="imgs/File-Gen-Existing.png"><p>
+
+And when we have a working CIDL (or, CCIDL "CIAO's Component
+Implementation Definition Language") compiler, the file will be
+generated using a CIDL file (which is rather simple.) This figure
+depicts the "Right Way" [TM] this should be done:<p>
+
+<img src="imgs/File-Gen-Future.png"><p>
+
+Checkout a <a href="../tools/CCIDL/README">list of things to do</a> for implementing CIDL compiler.<p>
+
+I think it is debatable whether we should merge the "Servant DLL" and
+"Component Implementation DLL" into one DLL. Me think not. My
+approach, however, creates some complication on requireing a mechanism
+to locate the servant code (and DLL) from component implementation.
+
+
+<h2>Libraries Dependencies</h2> Implementing a component creates 3
+DLL's as shown in the above figure. Both "Servant DLL" and "Component
+Implementation DLL" depend on the "Client DLL". "Servant DLL" and
+"Component Implementation DLL" are not mutually dependent, however.
+All the generated DLLs depends on other TAO and CIAO common
+libraries. Here's a break down of which libraries depends on which
+other libraries:
+
+<ul>
+ <li><b>Client DLL</b>: ace.lib tao.lib TAO_IFR_Client.lib
+ CIAO_Clientd.lib
+ <li><b>Servant DLL</b>: ace.lib tao.lib <b>Client DLL</b>
+ TAO_IFR_Client.lib TAO_PortableServer.lib TAO_Security.lib
+ CIAO_Container.lib CIAO_Client.lib
+ <li><b>Component Implementation DLL</b>: ace.lib tao.lib
+ <b>Client DLL</b> TAO_IFR_Client.lib TAO_Security.lib
+ CIAO_Container.lib
+</ul>
+
+ <!--#include virtual="/~nanbor/signature.html" -->
+<!-- <hr> -->
+<!-- <\!-- hhmts start -\-> -->
+<!-- Last modified: Tue Dec 10 22:41:50 Central Standard Time 2002 -->
+<!-- <\!-- hhmts end -\-> -->
+<!-- <address>Nanbor Wang &lt;nanbor@cs.wustl.edu&gt;</address> -->
+</body> </html>
diff --git a/modules/CIAO/docs/generate_component_mpc.html b/modules/CIAO/docs/generate_component_mpc.html
new file mode 100644
index 00000000000..3f109e57adc
--- /dev/null
+++ b/modules/CIAO/docs/generate_component_mpc.html
@@ -0,0 +1,105 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR" content="Mozilla/4.5 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
+ <title>TAO IDL compiler User's Guide</title>
+ <!-- $Id$ -->
+ </head>
+ <body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#CC0000">
+ <hr>
+ <h3>Using The generate_component_mpc.pl Script</h3>
+ This document describes the options and usage of the Perl script <tt>generate_component_mpc.pl</tt>
+ in the <tt>$(CIAO_ROOT)/bin</tt> directory.
+ <HR>
+ <P>
+ <h4>Assumptions</h4>
+ This script is useful for generating MPC files for relatively simple component
+ applications. The string name passed to the script should be the name of the <em>single</em>
+ IDL file for that build (without the extension) and also the name of the single
+ CIDL file, if it is a component build. The names of export files, preprocessor
+ macros, and library names in the generated MPC file will all be constructed
+ from this string. It is also assumed that the IDL file for a component build
+ will contain a single component declaration.
+ <P>
+ Judicious use of the script options in the table below will generate a build
+ that keeps to a minimum both the code generated from IDL and the number of
+ linked libraries from the middleware.
+ <P>
+ <HR>
+ <h4><A NAME="options">Script Options</A></h4>
+
+ <table BORDER="2" CELLSPACING="2" CELLPADDING="0">
+ <tr>
+ <th>
+ Option</th>
+ <th>
+ Description</th>
+ <th>
+ Remark</th>
+ </tr>
+ <tr>
+ <a NAME="h">
+ <td><tt>-h</tt></td>
+ <td>The compiler prints out the options that are given below and exits clean
+ </td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <a NAME="p">
+ <td><tt>-p</tt><i> string</i></td>
+ <td>Indicates another make/project that this one depends on</td>
+ <td>Used as a project name prefix unless overridden by <tt>-u</tt> option</td>
+ </tr>
+ <tr>
+ <a name="l">
+ <td><tt>-l</tt><i> string</i></td>
+ </td>
+ <td>Path to the dependent name value of <tt>-p</tt></td>
+ <td>Needed only if the dependent make/project isn't already in the search path</td>
+ </tr>
+ <tr>
+ <a name="n">
+ <td><tt>-n</tt></td>
+ <td>Non-component make/project</td>
+ <td>Generates a <tt>*_stub</tt> and <tt>*_skel</tt> pair of builds, instead
+ of the default <tt>*_stub</tt>, <tt>*_svnt</tt> and <tt>*_exec</tt>
+ builds. Also specializes the IDL compiler command line options and linked
+ lib list, depending on the <tt>-e</tt> option, if it exists</td>
+ </tr>
+ <tr>
+ <a name="e">
+ <td><tt>-e</tt></td>
+ <td><tt>eventtype</tt> declaration present in IDL</td>
+ <td>Has no effect unless the <tt>-n</tt> option is also present, in which
+ case the IDL compiler command line options and list of linked libs will
+ change to reflect the fact that IDL eventtypes require typecode support
+ and depend on libs in CIAO, which for a non-component build would
+ otherwise not be the case</td>
+ </tr>
+ <tr>
+ <a name="i">
+ <td><tt>-i</tt></td>
+ <td>Use an executor IDL file</td>
+ <td>Indicates the presence of an IDL file in the executor make/project,
+ from which the actual executor implementation will inherit. Assumes
+ the name of this IDL file is of the form <tt>[<i>component_name</i>]EI.idl</tt></td>
+ </tr>
+ <tr>
+ <a name="c">
+ <td><tt>-c</tt></td>
+ <td>Create a client make/project</td>
+ <td>Generates a build for a "driver" executable. Assumes there is a single
+ C++ source file named <tt>client.cpp</tt></td>
+ </tr>
+ <tr>
+ <a name="u">
+ <td><tt>-u</tt></tt><i> string</i></td>
+ <td>Unique project name prefix</td>
+ <td>Occasionally needed since MPC doesn't accept duplicate project names
+ anywhere in the tree over which it is proecessing. This option
+ overrides the value of the <tt>-p</tt> option, if present</td>
+ </tr>
+ </table>
+ </body>
+</html>
diff --git a/modules/CIAO/docs/imgs/CCM-v5.vsd b/modules/CIAO/docs/imgs/CCM-v5.vsd
new file mode 100644
index 00000000000..7f4d7539050
--- /dev/null
+++ b/modules/CIAO/docs/imgs/CCM-v5.vsd
Binary files differ
diff --git a/modules/CIAO/docs/imgs/CCM.vsd b/modules/CIAO/docs/imgs/CCM.vsd
new file mode 100644
index 00000000000..239a4e7943d
--- /dev/null
+++ b/modules/CIAO/docs/imgs/CCM.vsd
Binary files differ
diff --git a/modules/CIAO/docs/imgs/DAnCE-Dynamic.png b/modules/CIAO/docs/imgs/DAnCE-Dynamic.png
new file mode 100644
index 00000000000..2e9917e1520
--- /dev/null
+++ b/modules/CIAO/docs/imgs/DAnCE-Dynamic.png
Binary files differ
diff --git a/modules/CIAO/docs/imgs/DAnCE-Dynamic.sxd b/modules/CIAO/docs/imgs/DAnCE-Dynamic.sxd
new file mode 100644
index 00000000000..b795c5ae049
--- /dev/null
+++ b/modules/CIAO/docs/imgs/DAnCE-Dynamic.sxd
Binary files differ
diff --git a/modules/CIAO/docs/imgs/File-Gen-Existing.png b/modules/CIAO/docs/imgs/File-Gen-Existing.png
new file mode 100644
index 00000000000..8deb5d32fd3
--- /dev/null
+++ b/modules/CIAO/docs/imgs/File-Gen-Existing.png
Binary files differ
diff --git a/modules/CIAO/docs/imgs/File-Gen-Future.png b/modules/CIAO/docs/imgs/File-Gen-Future.png
new file mode 100644
index 00000000000..1daef691bdf
--- /dev/null
+++ b/modules/CIAO/docs/imgs/File-Gen-Future.png
Binary files differ
diff --git a/modules/CIAO/docs/imgs/File_Generation_Flow.vsd b/modules/CIAO/docs/imgs/File_Generation_Flow.vsd
new file mode 100644
index 00000000000..ef6332d49ac
--- /dev/null
+++ b/modules/CIAO/docs/imgs/File_Generation_Flow.vsd
Binary files differ
diff --git a/modules/CIAO/docs/imgs/IDL-CIDL-classes.vsd b/modules/CIAO/docs/imgs/IDL-CIDL-classes.vsd
new file mode 100644
index 00000000000..0986aa78d70
--- /dev/null
+++ b/modules/CIAO/docs/imgs/IDL-CIDL-classes.vsd
Binary files differ
diff --git a/modules/CIAO/docs/imgs/basic-container.png b/modules/CIAO/docs/imgs/basic-container.png
new file mode 100644
index 00000000000..9df767b45a2
--- /dev/null
+++ b/modules/CIAO/docs/imgs/basic-container.png
Binary files differ
diff --git a/modules/CIAO/docs/imgs/ciao-dynamic1.jpg b/modules/CIAO/docs/imgs/ciao-dynamic1.jpg
new file mode 100644
index 00000000000..a385ad30848
--- /dev/null
+++ b/modules/CIAO/docs/imgs/ciao-dynamic1.jpg
Binary files differ
diff --git a/modules/CIAO/docs/imgs/ciao-dynamic2.jpg b/modules/CIAO/docs/imgs/ciao-dynamic2.jpg
new file mode 100644
index 00000000000..e0a705b9d3a
--- /dev/null
+++ b/modules/CIAO/docs/imgs/ciao-dynamic2.jpg
Binary files differ
diff --git a/modules/CIAO/docs/imgs/ciao-static-vs-dynamic.jpg b/modules/CIAO/docs/imgs/ciao-static-vs-dynamic.jpg
new file mode 100644
index 00000000000..b876b7a82cb
--- /dev/null
+++ b/modules/CIAO/docs/imgs/ciao-static-vs-dynamic.jpg
Binary files differ
diff --git a/modules/CIAO/docs/imgs/ciao-static1.jpg b/modules/CIAO/docs/imgs/ciao-static1.jpg
new file mode 100644
index 00000000000..313084ff34d
--- /dev/null
+++ b/modules/CIAO/docs/imgs/ciao-static1.jpg
Binary files differ
diff --git a/modules/CIAO/docs/imgs/ciao-static2.jpg b/modules/CIAO/docs/imgs/ciao-static2.jpg
new file mode 100644
index 00000000000..86ded87f448
--- /dev/null
+++ b/modules/CIAO/docs/imgs/ciao-static2.jpg
Binary files differ
diff --git a/modules/CIAO/docs/imgs/component-basic.png b/modules/CIAO/docs/imgs/component-basic.png
new file mode 100644
index 00000000000..520dc9c4cca
--- /dev/null
+++ b/modules/CIAO/docs/imgs/component-basic.png
Binary files differ
diff --git a/modules/CIAO/docs/imgs/dance_arch.jpg b/modules/CIAO/docs/imgs/dance_arch.jpg
new file mode 100644
index 00000000000..3c91b912213
--- /dev/null
+++ b/modules/CIAO/docs/imgs/dance_arch.jpg
Binary files differ
diff --git a/modules/CIAO/docs/imgs/dance_arch.vsd b/modules/CIAO/docs/imgs/dance_arch.vsd
new file mode 100644
index 00000000000..cfe75fca9c6
--- /dev/null
+++ b/modules/CIAO/docs/imgs/dance_arch.vsd
Binary files differ
diff --git a/modules/CIAO/docs/imgs/deployment.png b/modules/CIAO/docs/imgs/deployment.png
new file mode 100644
index 00000000000..4cd8c6be646
--- /dev/null
+++ b/modules/CIAO/docs/imgs/deployment.png
Binary files differ
diff --git a/modules/CIAO/docs/imgs/extended-container.png b/modules/CIAO/docs/imgs/extended-container.png
new file mode 100644
index 00000000000..39977e6eb83
--- /dev/null
+++ b/modules/CIAO/docs/imgs/extended-container.png
Binary files differ
diff --git a/modules/CIAO/docs/imgs/home-config.png b/modules/CIAO/docs/imgs/home-config.png
new file mode 100644
index 00000000000..aebf5e62751
--- /dev/null
+++ b/modules/CIAO/docs/imgs/home-config.png
Binary files differ
diff --git a/modules/CIAO/docs/imgs/static_dance_arch.jpg b/modules/CIAO/docs/imgs/static_dance_arch.jpg
new file mode 100644
index 00000000000..b12694ce348
--- /dev/null
+++ b/modules/CIAO/docs/imgs/static_dance_arch.jpg
Binary files differ
diff --git a/modules/CIAO/docs/imgs/static_dance_arch.vsd b/modules/CIAO/docs/imgs/static_dance_arch.vsd
new file mode 100644
index 00000000000..1ca1f50f69d
--- /dev/null
+++ b/modules/CIAO/docs/imgs/static_dance_arch.vsd
Binary files differ
diff --git a/modules/CIAO/docs/imgs/static_dance_impl.jpg b/modules/CIAO/docs/imgs/static_dance_impl.jpg
new file mode 100644
index 00000000000..cd2f9f0dc81
--- /dev/null
+++ b/modules/CIAO/docs/imgs/static_dance_impl.jpg
Binary files differ
diff --git a/modules/CIAO/docs/imgs/static_dance_impl.vsd b/modules/CIAO/docs/imgs/static_dance_impl.vsd
new file mode 100644
index 00000000000..6c21e6139d4
--- /dev/null
+++ b/modules/CIAO/docs/imgs/static_dance_impl.vsd
Binary files differ
diff --git a/modules/CIAO/docs/index.html b/modules/CIAO/docs/index.html
new file mode 100644
index 00000000000..438bdf3416e
--- /dev/null
+++ b/modules/CIAO/docs/index.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<!-- $Id$ -->
+ <title>CIAO - Component-Integrated ACE ORB</title>
+</head>
+<body>
+<h1>CIAO - Component-Integrated ACE ORB</h1>
+<h2>Introduction</h2>
+CIAO is TAO's implementation of <a
+ href="http://www.omg.org/cgi-bin/doc?formal/02-06-65"> CORBA Component
+Model (CCM)</a> specially optimized for distributed real-time embedded
+(DRE) systems.
+This page contains links to other documents and resources for building
+and using CIAO.<br>
+<br>
+<hr>
+<h2>The CIAO Project</h2>
+<ul>
+ <li>The main <a href="http://www.cs.wustl.edu/%7Eschmidt/CIAO.html">
+CIAO project page</a>.</li>
+ <li><a href="../CIAO-INSTALL.html">Installation instructions</a> for
+CIAO<br>
+ </li>
+ <li>CIAO <a href="releasenotes/index.html">Status (aka. release
+notes.)</a></li>
+ <li>CIAO <a href="cidlc.html">CIDL Compiler Options</a><br>
+ <li>CIAO <a href="EnvVars.html">Environment Variables</a> <br>
+ </li>
+ <li>CIAO <a href="Trace.html">Logging Facility</a><br>
+ </li>
+ <li>CIAO <a href="../NEWS">NEWS</a></li>
+</ul>
+<hr>
+<ul>
+</ul>
+<ul>
+ <p><!--
+
+ <li>This <a href="new_components.html">page on implementing new
+
+ component</a> explains all the user-defined and tool-generated
+
+ files when implementing a component.<p>
+
+
+
+ <li>The <a href="ConfigValues.html">Configuration Name/Value
+
+ lists</a> lists all the configuration values that CIAO will pass
+
+ into vaious CCM mechanisms. The information shown in this page
+
+ is not visible to CIAO end-users, which include modeling tool
+
+ developers. The information that matters for most users is how
+
+ these configurations are represented in various XML
+
+ descriptors and CIDL specifications.<p>
+
+-->
+ </p>
+</ul>
+<h2>CCM-defined Interface Diagrams</h2>
+Here is a set of UML diagrams that we use to figure out the
+relationship among all the different interfaces in CCM. You can
+browse the related part from the following list:
+<ul>
+ <li><a href="imgs/component-basic.png"> Basic component interfaces </a></li>
+ <li><a href="imgs/home-config.png"> Home and configuration interfaces
+ </a></li>
+ <li><a href="imgs/basic-container.png"> Basic container interfaces </a></li>
+ <li><a href="imgs/extended-container.png"> Extended container
+interfaces </a></li>
+ <li><a href="imgs/DAnCE-Dynamic.png"> Deployment and configuration
+(DAnCE) interfaces </a></li>
+</ul>
+All these diagrams are generated from the <a href="imgs/CCM.vsd">CCM.vsd
+Visio file</a> (The same file in Visio V.5 format is <a
+ href="imgs/CCM-v5.vsd">here</a>.) and OpenOffice source file
+ <a href="imgs/DAnCE-Dynamic.sxd">DAnCE-Dynamic.sxd</a> <br>
+<br>
+<hr>
+<h2>CIAO's D&C Framework (<a href="http://www.dre.vanderbilt.edu/Doxygen/Current/html/tao/ciao/dance/index.html">DAnCE</a>) part-by-part</h2>
+DAnCE's implementation is based on the OMG's Deployment and Configuration
+Specification version [ptc/2003-07-08]. Here is a list of the major
+actors of CIAO runtime that a user should be aware of.
+<ul>
+ <li><strong>NodeManager:</strong>
+A daemon process responsible for managing NodeApplications that reside
+in the same physical node.</li>
+ <p> </p>
+ <li><strong>NodeApplicationManager:</strong>
+A infrastructure component responsible for deploying&nbsp;
+locality-constrained applications onto a node. A NodeApplicationManager
+is usually created by NodeManager.<br>
+ </li>
+ <p> </p>
+ <li><strong>NodeApplication:</strong>
+A component server instance spawned by NodeApplicationManager. <br>
+ </li>
+ <p> </p>
+ <li><strong>ExecutionManager:</strong>
+Infrastructure component responsible for executing an component-based
+DRE application based on the information from DeploymentPlan.</li>
+ <p> </p>
+ <li><strong>DomainApplicationManager</strong>:
+Domain-oriented auxiliary component created and used by
+ExecutionManager to deploy the component-based DRE application at the
+domain level. <br>
+ <br>
+ </li>
+ <li><strong>PlanLauncher</strong></strong>:
+Executor component responsible for parsing the XML-based
+deploymentplan and passing the plan to ExecutionManager for execution.<br>
+ <br>
+To understand the runtime inter-relationships of various CIAO actors,
+you may click <a href="imgs/DAnCE-Dynamic.png">here</a> to see a
+sequence diagram that gives you a clear representation of what's
+happening when you start a DAnCE-based DRE application. Special thanks
+to <a href="mailto:Friedhelm.wolf@gmx.de">Friedhelm Wolf</a> who
+initiated and contributed most part of this
+diagram.<br>
+ <br>
+ </li>
+</ul>
+<hr>
+<h2>CIAO CCM tutorials</h2>
+There are several tutorials to help you understand CIAO and CCM:
+<ul>
+ <li> <a
+ href="http://www.cs.wustl.edu/%7Eschmidt/OMG-CCM-Tutorial.ppt">Tutorial
+on the CORBA Component Model (CCM)</a>. This tutorial presents an
+overview of the CORBA Component Model (CCM),
+describing its key features and illustrating how to write CCM
+applications in C++.
+ <p> </p>
+ </li>
+ <li><a href="../examples/Hello"><code>$(CIAO_ROOT)/DAnCE/examples/Hello.</code></a>
+This example illustrates how to build and deploy a CIAO based
+application <a href="../examples/Hello/step-by-step.html">step-by-step</a>.
+There is
+also a detailed documentation explaining this example avalable in both <a
+ href="http://www.dre.vanderbilt.edu/%7Edengg/CCM/CCM_Hello_example.pdf">PDF</a>
+and <a
+ href="http://www.dre.vanderbilt.edu/%7Edengg/CCM/CCM_Hello_example.ppt">
+PowerPoint</a> format.<br>
+ <br>
+ </li>
+ <li><a href="./tutorials/Quoter/Simple">$(CIAO_ROOT)/docs/tutorials/Quoter/Simple</a>.
+This example illustrates the implementation of the "famous" Quoter
+example in the CIAO world. Please refer to <a
+ href="tutorials/Quoter/Simple/README.html">README</a> for more
+information.&nbsp; </li> <P>
+
+<li><a
+href="./tutorials/CoSMIC/">$(CIAO_ROOT)/docs/tutorials/COSMIC/</a>.
+This is a step-by-step tutorial on how to use CoSMIC to
+generate deployment descriptors requied by the above <a
+href="./tutorials/Quoter/Simple">Quoter</a> example </li>
+
+</ul>
+<!--#include virtual="/~nanbor/signature.html" --><!-- <hr> --><!-- <\!-- hhmts start -\-> --><!-- Last modified: Mon Nov 04 07:55:22 Central Standard Time 2002 --><!-- <\!-- hhmts end -\-> -->
+<!-- <address>Nanbor Wang &lt;nanbor@cs.wustl.edu&gt;</address> --><!-- LocalWords: CCM UML vsd Visio
+
+ -->
+</body>
+</html>
diff --git a/modules/CIAO/docs/new_components.html b/modules/CIAO/docs/new_components.html
new file mode 100644
index 00000000000..db10fca2103
--- /dev/null
+++ b/modules/CIAO/docs/new_components.html
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<!-- $Id$ -->
+<html> <head>
+<title>Procedures to prepare a new component implementation</title>
+</head>
+
+<body>
+<h1>Preparing a new component implementation</h1>
+
+I am documenting the steps required to prepare a component implementation.
+Personally, I prefer to set up a directory to contain only <b>one</b>
+component implementation. I believe the procedures outlined below
+will work if you have multiple component implementation in the same
+IDL files. The purpose of this document is to record the procedures
+and steps on how these files relate to each others and how they come
+about during the development process.<p>
+
+Assuming we need to create a new component called
+<code><b>Orc</b></code>. Below is the list of files you'll need to
+deal with. Our goal is to greatly reduce the number of files you need
+to deal with manually...
+
+<ol>
+ <li><font color="red"><code><b>Orc</b>.idl</code></font> - This is
+ the IDL file that contains the component and component home
+ definitions.<p>
+
+ As you will eventually create 3 DLLs (or shared objects), you
+ will also need 3 sets of different export macros files as
+ following.<p>
+
+ <li><code><b>Orc</b>_stub_export.h</code> - This file is generated
+ using the following command:<p>
+
+ <code>generate_export_file.pl <b>ORC</b>_STUB &gt; <b>Orc</b>_stub_export.h</code><p>
+
+ This file makes macros like <code><b>ORC</b>_STUB_Export</code>
+ and friends available. They are usually controlled by
+ <code><b>ORC</b>_STUB_BUILD_DLL</code><p>
+
+ <li><code><b>Orc</b>_svnt_export.h</code> - This file is generated
+ using the following command:<p>
+
+ <code>generate_export_file.pl <b>ORC</b>_SVNT &gt; <b>Orc</b>_svnt_export.h</code><p>
+
+ This file makes macros like <code><b>ORC</b>_SVNT_Export</code>
+ and friends available. They are usually controlled by
+ <code><b>ORC</b>_SVNT_BUILD_DLL</code><p>
+
+ <li><code><b>Orc</b>_exec_export.h</code> - This file is generated
+ using the following command:<p>
+
+ <code>generate_export_file.pl <b>ORC</b>_EXEC &gt; <b>Orc</b>_exec_export.h</code><p>
+
+ This file makes macros like <code><b>ORC</b>_EXEC_Export</code>
+ and friends available. They are usually controlled by
+ <code><b>ORC</b>_EXEC_BUILD_DLL</code><p>
+
+ <li><code><b>Orc</b>E.idl</code> - Component Executor equivalent
+ interface definitions. This file should be generated
+ automatically by the CIDL compiler as illustrated in this
+ <a href="com-impl.html">file</a> but we currently are still
+ working on the implementation of the CIDL compiler. Therefore,
+ you still need to create this file manually.<p>
+
+ <li><font color="red"><code><b>Orc</b>EI.idl</code></font> -
+ Optional Component Executor implementation interface
+ definitions. Often time, when you implement a non-trivial
+ monolithic component implementation, you are required to define
+ the monolithic local executor interface which often inherits
+ from the component monolithic executor interface and all the
+ provided interfaces. The actually executor implementation will
+ inherit from this user defined interface instead of the default
+ executor mapping defined in <code><b>Orc</b>E.idl</code>. You
+ will need to do the same when you wish to support non-vanilla
+ component interface, such as
+ <code>Components::SessionComponent</code>, and/or
+ <code>Components::SessionSynchronization</code>.<p>
+
+ Ideally, it would be perfect if we can auto-generate this
+ optional IDL file using CIDL compiler. However, I'm not sure
+ the plan CIDL language contains enough information that's
+ required to generate this file.<p>
+
+ <li><font color="red"><code><b>Orc</b>_exec.*</code></font> - These
+ are files containing the actually component implementation that
+ you have to write manually. It, however, depends on the
+ equivalent executor IDL definition (that will be) generated by
+ the CIDL files.<p>
+
+ <li><code><b>Orb</b>_svnt.*</code> - These are files containing the
+ servant glue code that bridge a container to the component
+ executor that you implement. Like the component executor
+ mapping IDL file, these files should be generated by the CIDL
+ compiler but are currently generated manually.<p>
+
+ <li><code><b>Orc</b>.csd</code> - Component Softpkg Descriptor. We
+ need some kind of tool to generate this file automatically. It
+ is currently being generated manually, however.<p>
+
+
+ <li><code><b>Orc</b>.ssd</code> - Servant Softpkg Descriptor. This
+ is a CIAO extension descriptor file which uses the same softpkg
+ DTD as described in CCM spec. CIAO requires this file because
+ CIAO separates the executors into a completely separate DLL.
+ Like <code><b>Orc</b>.csd</code>, this file should be generated
+ automatically through some tool, but it is currently manually
+ crafted.<p>
+
+ <li><code><b>Orc</b>.ccd</code> - CORBA Component Descriptor. This
+ file is currently being generated manually thou a template
+ should really be generated by CIAO's CIDL compiler.<p>
+
+ <li><font color="red"><code><b>Orc</b>.mpc</code></font> - Makefile
+ Project Creator definition file. There is a perl script to
+ generate a minimal MPC definition at
+ <code>$(CIAO_ROOT)/bin/generate_component_mpc.pl</code> so
+ people can use it to implement the simplest component
+ implementation outlined in this file.<p>
+
+</ol>
+
+
+<hr>
+<address></address>
+<!-- hhmts start -->
+Last modified: Fri Mar 21 16:06:48 Central Standard Time 2003
+<!-- hhmts end -->
+</body> </html>
diff --git a/modules/CIAO/docs/releasenotes/dance.html b/modules/CIAO/docs/releasenotes/dance.html
new file mode 100644
index 00000000000..6980860b3c8
--- /dev/null
+++ b/modules/CIAO/docs/releasenotes/dance.html
@@ -0,0 +1,229 @@
+<?xml version="1.0" encoding="iso-8859-1" ?>
+<!-- $Id$ -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>Deployment And Configuration Engine (DAnCE) Release Notes</title>
+ </head>
+
+ <body>
+ <h1>Deployment And Configuration Engine (DAnCE) Release Notes</h1>
+
+ <p><b>D</b>eployment <b>An</b>d <b>C</b>onfiguration <b>E</b>ngine
+ <b>(DAnCE)</b> is an implementation of the run-time infrastructure as
+ defined by the final adopted <a
+ href="http://www.omg.org/cgi-bin/doc?ptc/2003-07-08">OMG Deployment &amp;
+ Configuration (D&amp;C) specification (ptc/2003-07-08)</a>, which deals with the
+ configuration and deployment of component-based applications. Currently
+ DAnCE only supports the deployment &amp; configuration of CORBA
+ Component Model (CCM)-based applications, though we are interested in
+ generalizing it for other component models in future work. DAnCE uses
+ XML descriptors to drive the deployment it performs. One way to
+ generate these descriptors is using the <b>Co</b>mponent
+ <b>S</b>ynthesis using <b>M</b>odel-<b>I</b>ntegrated <b>C</b>omputing
+ (<a href="http://www.dre.vanderbilt.edu/cosmic">CoSMIC</a>) tool-suite.
+ DAnCE currently uses <b>C</b>omponent <b>I</b>ntegrated <b>A</b>CE
+ <b>O</b>RB (<a href="http://www.dre.vanderbilt.edu/CIAO">CIAO</a>) as
+ the underlying CCM implementation in the current release, though again
+ we are interested in generalizing it for other CCM implementations in
+ future work.
+ </p>
+
+ <h3>D&amp;C XML Schema Handling</h3>
+
+ <p> The XML handlers shipped with DAnCE are capable of handling almost
+ all elements that are defined in the D&amp;C schema. In this context,
+ handling refers to reading the XML tags and converting them to the
+ equivalent in-memory IDL-based data structures defined by the
+ specifications. DAnCE supports the following types of descriptors
+ specified in the D&amp;C specification:</p>
+ <ul>
+ <li>
+ <p>
+ <b>CORBA Component Descriptor(.ccd)</b> &ndash;
+ Contains information about component interfaces including
+ component ports.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Component Implementation Descriptor(.cid)</b>
+ &ndash; Contains information about component implementations
+ which might be either monolithic or assembly based. In the case
+ of assembly based implementations, this descriptor also captures
+ the dependencies and the connections among components
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Implementation Artifact Descriptor(.iad)</b>
+ &ndash; Contains information about implementation artifacts
+ in-cluding dependencies between such artifacts
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Component Package Descriptor(.cpd)</b> &ndash;
+ Contains information about grouping of multiple imple-mentations
+ of the same component interface into component packages
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Package Configuration Descriptor(.pcd)</b>
+ &ndash; Contains information about specific configurations of
+ such component packages
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Component Domain Descriptor(.cdd)</b> &ndash;
+ Contains information about the target environment in which the
+ component-based application will be deployed
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>TopLevel Package Descriptor(.tpd)</b> &ndash; Contains
+ information identifying the top-level element in a component
+ package descriptor which might include information about multiple
+ elements
+ </p>
+ </li>
+
+ <li>
+ <p>
+ <b>Component Deployment Plan(.cdp)</b> &ndash; Contains
+ information that actually drives the deployment including
+ information about individual components that represent the
+ leaf-nodes in case of a hierarchical assembly, connections
+ between components, and assignment of components to nodes etc.
+ </p>
+ </li>
+ </ul>
+ <p> For all the above elements, DAnCE supports proxying of the elements
+ as defined by XMI, i.e, DAnCE supports both parsing of the elements
+ inline and reference through <b><code>href</code></b> attribute. Some
+ D&amp;C schema elements are however not handled, including:</p>
+ <ul>
+ <li>
+ <p>
+ <b>Deployment:Any</b> &ndash; This is a complex
+ element that is composed of many sub-elements. Currently, DAnCE
+ only parses a subset of the sub-elements of
+ <b><code>Deployment:Any</code></b>. Specifically, DAnCE supports all the
+ basic data types defined as part of <b><code>Deployment:Any</code></b>,
+ and doesn't understand any complex types.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>xmi:Extension</b> &ndash; This element allows the
+ augmention of the standard D&amp;C schema with user-defined
+ elements. Currently DAnCE doesn't support user-defined extensions
+ to the schema.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Deployment:Requirement</b> &ndash; This element is
+ allows the description of requirements of component-based
+ applications. Since handling this description requires interaction
+ with the <b><code>TargetManager</code></b> interface (which is not yet
+ supported), support for <b><code>Deployment:Requirement</code></b> is not
+ present.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Deployment:ComponentPropertyDescriptioncode></b> &ndash;
+ This element is used to specify default values for attributes of
+ component. DAnCE doesn't support setting the values for attributes
+ of components using this tag.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Deployment:ComponentExternalPortEndpoint,
+ Deployment:ExternalReferenceEndpoint</b> &ndash; These
+ elements are used to specify connections between ports of
+ components in one assembly with ports of components in a different
+ assembly, or connections between component ports and external
+ connection endpoints. These features are needed to support
+ assemblies of components. DAnCE doesn't support yet hierarchical
+ assemblies, i.e., creation of assemblies which can themselves
+ contain sub-assemblies.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Deployment:PlanPropertyMapping</b> &ndash; This
+ element is used to delegate property mapping between a component's
+ external properties to properties of subcomponents that actually
+ implement the behavior of the larger component. Since DAnCE doesn't
+ support hierarchical assemblies, this tag is not yet supported.
+ </p>
+ </li>
+ </ul>
+ <p> We plan to support these features in future versions of DAnCE.
+ </p>
+ <hr />
+ <h3> D&amp;C Management Interfaces</h3>
+
+ <p> The D&amp;C specification defines a set of standard CORBA
+ interfaces that are used to perform the deployment of component-based
+ applications. These interfaces depend on the in-memory IDL data
+ structures that are built by DAnCE's XML handlers. Below we outline the
+ list of interfaces defined by the specification and the level of
+ support for each interface in DAnCE:</p>
+ <ul>
+ <li>
+ <p>
+ <b>RepositoryManager</b> &ndash; Only the
+ <b><code>installPackage()</code></b> and <b><code>findPackageByName()</code></b>
+ operations of this interface are implemented.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>TargetManager</b> &ndash; This interface has not
+ been implemented at all. Implementation of this interface is
+ planned for the future.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>ExecutionManager</b> &ndash; All operations defined
+ in this interface are implemented.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>DomainApplicationManager, DomainApplication</b>
+ &ndash; All operations except <b><code>getApplications()</code></b>
+ operation of DomainApplicationManager are implemented.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>NodeManager </b>&ndash; All operations except <strong><code>joinDomain()</code></strong> and <strong><code>leaveDomain()</code></strong> operations of NodeManager are implemented. </p>
+ </li>
+ <li>
+ <p><b> NodeApplicationManager, NodeApplication</b> &ndash; All operations defined in these interfaces are
+ implemented. </p>
+ </li>
+ </ul>
+ <p>
+ We plan to finish implementing the unsupported features in future versions of DAnCE.
+ </p>
+ <p>
+ <a href="http://validator.w3.org/check?uri=referer">
+ <img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!"
+ height="31" width="88" />
+ </a>
+ </p>
+ <address>
+ Last modified $Date$ by $Author$
+ </address>
+ </body>
+</html>
diff --git a/modules/CIAO/docs/releasenotes/index.html b/modules/CIAO/docs/releasenotes/index.html
new file mode 100644
index 00000000000..324f1d83c77
--- /dev/null
+++ b/modules/CIAO/docs/releasenotes/index.html
@@ -0,0 +1,170 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR" content="Mozilla/4.79 [en] (Windows NT 5.0; U) [Netscape]">
+ <title>CIAO Release Information and TODO List</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<!-- $Id$ -->
+<center>
+<hr></center>
+
+<center>
+<h3>
+Release Information for the Component Integrated ACE ORB (CIAO)</h3></center>
+This document contains information on the following topics related to the
+<a href="../../VERSION">current
+release</a> of <a href="http://www.dre.vanderbilt.edu/CIAO">CIAO</a>:
+
+<table BORDER=0 CELLSPACING=0 CELLPADDING=10 >
+<tr>
+<td VALIGN=TOP>
+<b></b>
+<br>
+<ul>
+<li>
+<a href="../index.html">Introduction</a></li>
+<li>
+<a href="#status">Current Status of CIAO</a></li>
+<li>
+<a href="dance.html">Status of DAnCE</a></li>
+<li>
+<a href="../TODO.html">TODO list</a></li>
+</ul>
+</td>
+</table>
+
+
+<hr>
+<h2>Current Status</h2><a name="status">
+<ol>
+<li>The first cut of the new <a
+ href="http://www.omg.org/cgi-bin/doc?ptc/2003-07-02"> DnC </a>
+ specification implementation, which we call DAnCE is available in
+ this distribution. DAnCE is housed under <CODE> $CIAO_ROOT
+ </CODE>. We plan to enhance DAnCE in the next few months. We believe
+ DAnCE will replace existing tool sets in <CODE>
+ $CIAO_ROOT/tools</CODE>. There are a few features in
+ <CODE>$CIAO_ROOT/tools</CODE> that are missing in the DAnCE
+ implementation. Please see <a href="../TODO.html"> TODO </a> file
+ for more details. We plan to implement them soon and use DAnCE
+ continuously.
+
+ <li> The first cut of DAnCE includes two parts:
+ <ul>
+ <li>
+ A modeling tool chain , <a href="http://www.dre.vanderbilt.edu/CoSMIC/">
+ CoSMIC</a>, which is capable of describing the Assembly/Component
+ using <a
+ href="http://www.isis.vanderbilt.edu/Projects/gme/default.html">
+ GME</a> as the development bed. The artifacts generated from the
+ CoSMIC are a set of XML descriptors.
+
+ <!-- Tao, I realy don't understand what this means - Bala -->
+ <li>This run-time infrastructure that performs the actual deployment
+ and configuration, with a superset of the capabilities described in
+ OMG DnC specification with CIAO extension. </a>.<p><p>
+
+ </ul>
+ <!-- Tao, can you please see whether this is needed -->
+ In the new DnC run-time framework we have migrated all the
+ functionalities present in the old CIAO runtime except the
+ Real-Time configuration and Static Configuration, which are
+ developed by Washington University in St. Louis. Currently,
+ the two CIAO runtime co-exist in our source and the component
+ implementation could be used with both framework without much
+ change. (For the change that one has to go through please
+ read <a href="./switch.html">this</a>.)<p>
+
+
+
+ <li> Two operations <CODE> ciao_preactivate ()</CODE> and
+ <CODE>ciao_postactivate ()</CODE> have been added to the
+ <CODE>SessionComponent</CODE> interface. This implies that component
+ developers have to implement those operations within the
+ executor. We plan to get around this, i.e., users having to
+ implement these two operations, in the next month or so. <p>
+
+ <li>
+
+ Here is a set of updates in the CIDL Compiler.<p>
+ <ul>
+ <li>Fixed bugs in generation of inherited: home operations,
+ attribute operations, port operations, home factory operations,
+ supported operations.<p>
+
+ <li>Added support for multiplex uses ports. This implies that users
+ could use "uses multiple" in their component definitions. <p>
+
+ <li>Added automatic registration of value factories for event
+ consumers. This has been long outstanding. This change alleviates
+ component developers need to register the valuetype factory of their
+ eventtypes with the ORB. <p>
+
+ <li>Added support for emits keyword and we now generate navigation
+ code for this.<p>
+
+ <li>Fixed bug with multiple facets in a build that provide the same
+ interface.<p>
+
+ <li>Added option <code>--gen-exec-impl</code> to generate executor
+ impl classes, with no-op versions of each IDL operation.<p>
+
+ <li>Implemented get_all_facets() and get_all_consumers() navigation
+ methods.<p>
+
+ <li>Added support for the IDL keywords <code>setraises</code> and
+ <code>getraises</code>, associated with attributes in IDL3.<p>
+
+ <li>Added support for both subscription and event push of event types
+ that are a base class of the IDL-specified port type. A check is
+ performed during the subscribe call to make sure the eventtype is
+ actually an ancestor of the declared port type.<p>
+
+ <li>Problems with generated code when the composition declaration is
+ nested inside one or more IDL modules has prompted a change. The
+ 'CIAO_GLUE_' prefix has been eliminated. The composition name is now
+ mapped to a C++ namespace, prefixed with 'CIDL_'. This new namespace
+ (as well as namespaces generated from IDL modules enclosing the
+ composition name, if any) encloses
+ <ul>
+ <li>the component servant class</li>
+ <li>the home servant class</li>
+ <li>all facet servant classes, if any</li>
+ <li>the *_Exec interface in the *E.idl file</li>
+ <li>all executor impl classes, if automatically generated</li>
+ </ul>
+ <p>
+ </ul>
+ <p>
+
+
+ <li> CIAO doesn't yet support features that help integrating CORBA
+ components with Enterprise Java Beans (EJB).<p>
+
+ <li> Test to demonstrate composition of applications with real-time
+ behavior using CIAO's real-time extension was added. Please see
+ ACE_wrappers/TAO/CIAO/tests/RTCCM/Priority_Test.<p>
+
+ <li> The CIAO static configurator tool has been enhanced to support
+ processing of RTCORBA policy related information. Please see
+ ACE_wrappers/TAO/CIAO/docs/static_ciao_index.html.<p>
+
+ <li> To further interoperability with non-component-aware clients, there
+ are files in the $CIAO_ROOT/tools/IDL3_to_IDL2 directory that can be
+ compiled into an executable called tao_idl3_to_idl2. This executable
+ takes an IDL file (on the command line) containing IDL3 declarations
+ and outputs an IDL file with the IDL3 declarations converted to
+ equivalent IDL2. IDL2 declarations in the input file are unchanged.
+ See the README file in that directory for more information.<p>
+
+</ol>
+
+
+
+<b>Email: </b><a href="mailto:"</a<ADDRESS>ciao-users@cse.wustl.edu</ADDRESS>
+</body> </html>
+
+<!-- LocalWords: TODOs CCM IDL CCIDL CIDL backend idl
+ -->
diff --git a/modules/CIAO/docs/releasenotes/switch.html b/modules/CIAO/docs/releasenotes/switch.html
new file mode 100644
index 00000000000..1120239b6ec
--- /dev/null
+++ b/modules/CIAO/docs/releasenotes/switch.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<!-- $Id$ -->
+<html> <head>
+<title>Migrating the component implementation</title>
+</head>
+
+<body>
+<h3>When switching from the old CIAO runtime to the new one</h1>
+
+<ul>
+ There are only one thing needs to be done to migrate the component
+ implementation from the old runtime to the new runtime.
+ <br><br>
+ Find all the component MPC files in your component implementation
+ source directories and make the following changes.
+
+ for every project in your MPC files which inherites from any of
+ the following MPC template (base project): <code> ciao_client, ciao_component,
+ ciao_servant, ciao_server,</code> replace them with <code> ciao_client_dnc,
+ ciao_component_dnc, ciao_servant_dnc, ciao_server_dnc</code>. Then
+ generate your makefile/solution/project files using either
+ <code>mwc.pl</code> or <code>mpc.pl</code> and build (rebuild) your
+ binaries.<br>
+
+ A couple examples of the component implementation are at:
+ <code>$CIAO_ROOT/DAnCE/tests</code>.
+</ul>
+
+<h3>When switching from the new CIAO runtime to the old one</h3>
+ <ul>
+ Reverse the above changes.
+ </ul>
+
+ <b>Email: </b><a href="mailto:"</a<ADDRESS>ciao-users@cse.wustl.edu</ADDRESS>
+</body> </html>
diff --git a/modules/CIAO/docs/schema/Basic_Deployment_Data.xsd b/modules/CIAO/docs/schema/Basic_Deployment_Data.xsd
new file mode 100644
index 00000000000..1d386841ea5
--- /dev/null
+++ b/modules/CIAO/docs/schema/Basic_Deployment_Data.xsd
@@ -0,0 +1,349 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+ <xsd:simpleType name="TCKind">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="tk_null"/>
+ <xsd:enumeration value="tk_void"/>
+ <xsd:enumeration value="tk_short"/>
+ <xsd:enumeration value="tk_long"/>
+ <xsd:enumeration value="tk_ushort"/>
+ <xsd:enumeration value="tk_ulong"/>
+ <xsd:enumeration value="tk_float"/>
+ <xsd:enumeration value="tk_double"/>
+ <xsd:enumeration value="tk_boolean"/>
+ <xsd:enumeration value="tk_char"/>
+ <xsd:enumeration value="tk_octet"/>
+ <xsd:enumeration value="tk_any"/>
+ <xsd:enumeration value="tk_TypeCode"/>
+ <xsd:enumeration value="tk_Principal"/>
+ <xsd:enumeration value="tk_objref"/>
+ <xsd:enumeration value="tk_struct"/>
+ <xsd:enumeration value="tk_union"/>
+ <xsd:enumeration value="tk_enum"/>
+ <xsd:enumeration value="tk_string"/>
+ <xsd:enumeration value="tk_sequence"/>
+ <xsd:enumeration value="tk_array"/>
+ <xsd:enumeration value="tk_alias"/>
+ <xsd:enumeration value="tk_except"/>
+ <xsd:enumeration value="tk_longlong"/>
+ <xsd:enumeration value="tk_ulonglong"/>
+ <xsd:enumeration value="tk_longdouble"/>
+ <xsd:enumeration value="tk_wchar"/>
+ <xsd:enumeration value="tk_wstring"/>
+ <xsd:enumeration value="tk_wfixed"/>
+ <xsd:enumeration value="tk_value"/>
+ <xsd:enumeration value="tk_value_box"/>
+ <xsd:enumeration value="tk_native"/>
+ <xsd:enumeration value="tk_abstract_interface"/>
+ <xsd:enumeration value="tk_local_interface"/>
+ <xsd:enumeration value="tk_component"/>
+ <xsd:enumeration value="tk_home"/>
+ <xsd:enumeration value="tk_event"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="DataType">
+ <xsd:sequence>
+ <xsd:element name="kind" type="Deployment:TCKind"/>
+ <xsd:element name="enum" type="Deployment:EnumType" minOccurs="0"/>
+<!--
+@@ not supported now..
+
+ <xsd:element name="objref" type="Deployment:ObjrefType"/>
+ <xsd:element name="boundedString" type="Deployment:BoundedStringType"/>
+ <xsd:element name="fixed" type="Deployment:FixedType"/>
+ <xsd:element name="array" type="Deployment:ArrayType"/>
+ <xsd:element name="sequence" type="Deployment:SequenceType"/>
+ <xsd:element name="alias" type="Deployment:AliasType"/>
+ <xsd:element name="struct" type="Deployment:StructType"/>
+ <xsd:element name="value" type="Deployment:ValueType"/>
+ <xsd:element name="union" type="Deployment:UnionType"/>
+-->
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="DataValue">
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="short" type="xsd:short"/>
+ <xsd:element name="long" type="xsd:int"/>
+ <xsd:element name="ushort" type="xsd:unsignedShort"/>
+ <xsd:element name="ulong" type="xsd:unsignedInt"/>
+ <xsd:element name="float" type="xsd:float"/>
+ <xsd:element name="double" type="xsd:double"/>
+ <xsd:element name="boolean" type="xsd:boolean"/>
+ <xsd:element name="octet" type="xsd:unsignedByte"/>
+ <!-- xsd:element name="opaque" type="xsd:base64Binary"/ -->
+ <!-- <xsd:element name="objref" type="xsd:string"/> -->
+ <xsd:element name="enum" type="xsd:string"/>
+ <xsd:element name="string" type="xsd:string"/>
+ <xsd:element name="longlong" type="xsd:long"/>
+ <xsd:element name="ulonglong" type="xsd:unsignedLong"/>
+ <xsd:element name="longdouble" type="xsd:double"/>
+ <!-- <xsd:element name="fixed" type="xsd:string"/> -->
+ <!-- <xsd:element name="any" type="Deployment:Any"/> -->
+ <!-- <xsd:element name="typecode" type="Deployment:DataType"/> -->
+ <!-- <xsd:element name="element" type="Deployment:DataValue"/> -->
+ <!-- <xsd:element name="discriminator" type="Deployment:DataValue"/> -->
+ <!-- <xsd:element name="value" type="Deployment:DataValue"/> -->
+ <!-- <xsd:element name="boxedValue" type="Deployment:DataValue"/> -->
+ <!-- <xsd:element name="member" type="Deployment:NamedValue"/> -->
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="EnumType">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="xsd:string" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="Any">
+ <xsd:sequence>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="Property">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:Any"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+<!-- End of base definitions. -->
+
+ <xsd:simpleType name="SatisfierPropertyKind">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="Quantity"/>
+ <xsd:enumeration value="Capacity"/>
+ <xsd:enumeration value="Minimum"/>
+ <xsd:enumeration value="Maximum"/>
+ <xsd:enumeration value="Attribute"/>
+ <xsd:enumeration value="Selection"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="SatisfierProperty">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:SatisfierPropertyKind"/>
+ <xsd:element name="dynamic" type="xsd:boolean" />
+ <xsd:element name="value" type="Deployment:Any"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="Resource">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string" maxOccurs="unbounded" />
+ <xsd:element name="property" type="Deployment:SatisfierProperty" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="Requirement">
+ <xsd:sequence>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+<!-- Deployment -->
+
+ <xsd:complexType name="ResourceDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ArtifactDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string" maxOccurs="unbounded"/>
+ <xsd:element name="node" type="xsd:string"/>
+ <xsd:element name="location" type="xsd:string" maxOccurs="unbounded"/>
+ <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="deployedResource" type="Deployment:ResourceDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="MonolithicDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string" maxOccurs="unbounded"/>
+ <xsd:element name="artifact" type="xsd:IDREF" maxOccurs="unbounded"/> <!-- ArtifactDeploymentDescription -->
+ <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:simpleType name="ResourceUsageKind">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="InstanceUsesResource"/>
+ <xsd:enumeration value="ResourceUsesInstance"/>
+ <xsd:enumeration value="PortUsesResource"/>
+ <xsd:enumeration value="ResourceUsesPort"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="InstanceResourceDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="InstanceDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="node" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="implementation" type="xsd:IDREF"/> <!-- MonolithicDeploymentDescription -->
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="deployedResource" type="Deployment:InstanceResourceDeploymentDescription" minOccurs="0"/>
+ <xsd:element name="deployedSharedResource" type="Deployment:InstanceResourceDeploymentDescription" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:simpleType name="CCMComponentPortKind">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="Facet"/>
+ <xsd:enumeration value="SimplexReceptacle"/>
+ <xsd:enumeration value="MultiplexReceptacle"/>
+ <xsd:enumeration value="EventEmitter"/>
+ <xsd:enumeration value="EventPublisher"/>
+ <xsd:enumeration value="EventConsumer"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="ComponentPortDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <!-- @@MAJO: Hack - specific/supported types should be required. -->
+ <xsd:element name="specificType" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="supportedType" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="provider" type="xsd:boolean"/>
+ <xsd:element name="exclusiveProvider" type="xsd:boolean"/>
+ <xsd:element name="exclusiveUser" type="xsd:boolean"/>
+ <xsd:element name="optional" type="xsd:boolean"/>
+ <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ComponentPropertyDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ComponentExternalPortEndpoint">
+ <xsd:sequence>
+ <xsd:element name="portName" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="PlanSubcomponentPortEndpoint">
+ <xsd:sequence>
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element name="provider" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
+ <xsd:element name="instance" type="xsd:IDREF"/> <!-- InstanceDeploymentDescription -->
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ExternalReferenceEndpoint">
+ <xsd:sequence>
+ <xsd:element name="location" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ConnectionResourceDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="targetName" type="xsd:string"/>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="PlanConnectionDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="internalEndpoint" type="Deployment:PlanSubcomponentPortEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="deployedResource" type="Deployment:ConnectionResourceDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ImplementationDependency">
+ <xsd:sequence>
+ <xsd:element name="requiredType" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+<!-- Implementation -->
+
+ <xsd:complexType name="Capability">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string" maxOccurs="unbounded" />
+ <xsd:element name="property" type="Deployment:SatisfierProperty" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ImplementationRequirement">
+ <xsd:sequence>
+ <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind" minOccurs="0"/>
+ <xsd:element name="resourcePort" type="xsd:string" minOccurs="0" />
+ <xsd:element name="componentPort" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ComponentPackageReference">
+ <xsd:sequence>
+ <xsd:element name="requiredUUID" type="xsd:string" minOccurs="0" />
+ <xsd:element name="requiredName" type="xsd:string" minOccurs="0" />
+ <xsd:element name="requiredType" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="SubcomponentPortEndpoint">
+ <xsd:sequence>
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element name="instance" type="xsd:IDREF"/> <!-- SubcomponentInstantiationDescription -->
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="AssemblyConnectionDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="internalEndpoint" type="Deployment:SubcomponentPortEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/modules/CIAO/docs/schema/CIAOEvents.xsd b/modules/CIAO/docs/schema/CIAOEvents.xsd
new file mode 100644
index 00000000000..645d7a6e530
--- /dev/null
+++ b/modules/CIAO/docs/schema/CIAOEvents.xsd
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsd:schema targetNamespace="http://www.dre.vanderbilt.edu/CIAOEvents"
+ xmlns:CIAO="http://www.dre.vanderbilt.edu/CIAOEvents"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ attributeFormDefault="unqualified">
+
+ <xsd:element name="CIAOEvents" type="CIAO:CIAOEventsDef">
+ <xsd:annotation>
+ <xsd:documentation>
+ Root element for defining all the pub/sub services configuration
+ used by a DeploymentPlan.
+ A CIAO:Events document should reside in a separate file.
+ A DeploymentPlan can refer to one or more CIAO:Events file names
+ using the "infoProperty" tag.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+<!-- =============================================================== -->
+<!-- CIAO Event Service Deployment Description -->
+<!-- =============================================================== -->
+
+ <xsd:simpleType name="EventServiceType">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="EC"/>
+ <xsd:enumeration value="RTEC"/>
+ <xsd:enumeration value="NOTIFY"/>
+ <xsd:enumeration value="RTNOTIFY"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="CIAOEventsDef">
+ <xsd:sequence>
+ <xsd:element name="eventServiceConfiguration" type="CIAO:EventServiceDescription" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="EventServiceDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="node" type="xsd:string"/>
+ <xsd:element name="type" type="CIAO:EventServiceType"/>
+ <xsd:element name="svc_cfg_file" type="xsd:string"/>
+ <xsd:element name="filter" type="CIAO:Filter" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="addr_serv" type="CIAO:AddressServerDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="udp_sender" type="CIAO:UDPSenderDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="udp_receiver" type="CIAO:UDPReceiverDescription" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+
+<!-- =============================================================== -->
+<!-- CIAO Event Filter Description -->
+<!-- =============================================================== -->
+
+ <xsd:simpleType name="FilterType">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="CONJUNCTION"/>
+ <xsd:enumeration value="DISJUNCTION"/>
+ <xsd:enumeration value="LOGICAL_AND"/>
+ <xsd:enumeration value="NEGATE"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="Filter">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="CIAO:FilterType"/>
+ <xsd:element name="source" type="xsd:string" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- =============================================================== -->
+<!-- CIAO Event Service Federation Description -->
+<!-- =============================================================== -->
+
+ <xsd:complexType name="AddressServerDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="port" type="xsd:unsignedShort"/>
+ <xsd:element name="address" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="UDPSenderDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="addr_serv_id" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="UDPReceiverDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="addr_serv_id" type="xsd:string" minOccurs="0" />
+ <xsd:element name="is_multicast" type="xsd:boolean"/>
+ <xsd:element name="listen_port" type="xsd:unsignedShort"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/modules/CIAO/docs/schema/CIAOServerResources.xsd b/modules/CIAO/docs/schema/CIAOServerResources.xsd
new file mode 100644
index 00000000000..d9fb63da88f
--- /dev/null
+++ b/modules/CIAO/docs/schema/CIAOServerResources.xsd
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsd:schema targetNamespace="http://www.dre.vanderbilt.edu/ServerResources"
+ xmlns:CIAO="http://www.dre.vanderbilt.edu/ServerResources"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ attributeFormDefault="unqualified">
+
+ <xsd:element name="ServerResources" type="CIAO:ServerResourcesDef">
+ <xsd:annotation>
+ <xsd:documentation>
+ Root element for defining all the resources used by a DeploymentPlan.
+ A CIAO:ServerResources document should reside in a separate file.
+ A DeploymentPlan can refer to one or more CIAO:ServerResources file names
+ using the "infoProperty" tag.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:complexType name="ServerResourcesDef">
+ <xsd:sequence>
+ <xsd:element name="cmdline" type="CIAO:ServerCmdlineOptions" minOccurs="0"/>
+ <xsd:element name="svcconf" type="CIAO:ACESvcConf" minOccurs="0"/>
+ <xsd:element name="orbConfigs" type="CIAO:ORBConfigs" />
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+
+<!-- =============================================================== -->
+
+ <xsd:complexType name="ServerCmdlineOptions">
+ <xsd:annotation>
+ <xsd:documentation>
+ Just a list of argv's that should be appended to the command
+ line used to start up the NodeApplication.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="arg" type="xsd:string" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+<!-- ================================================================ -->
+
+ <xsd:complexType name="ACESvcConf">
+ <xsd:annotation>
+ <xsd:documentation>
+ Contains either a pointer to a svc.conf file, or the actual
+ content of the svc.conf file required to configure the
+ NodeApplication.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:choice>
+ <!-- Specify the URI of a svc.conf file. -->
+ <xsd:element name="uri" type="xsd:string"/>
+
+ <!-- If we agree to use only XML based svc.conf "file", we will
+ support inlined svcconf entries here. If that will be the
+ case, we still need to convert ACE_Svc_Conf DTD to schema. -->
+ <!--
+ <xsd:element name="inline" type="ACE_Svc_Conf"/>
+ -->
+ </xsd:choice>
+ </xsd:complexType>
+
+<!-- ========================================================================= -->
+
+ <xsd:complexType name="ORBConfigs">
+ <xsd:annotation>
+ <xsd:documentation>
+ Contains the shared resources the component ORB must support
+ and all available policySets that components installed under
+ the ORB can request.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="resources" type="CIAO:ORBResources"
+ minOccurs="0"/>
+ <xsd:element name="policySet" type="CIAO:PolicySet"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+<!-- ========================================================================= -->
+
+ <xsd:complexType name="ORBResources">
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="threadpool" type="CIAO:ThreadpoolDef"/>
+ <xsd:element name="threadpoolWithLanes" type="CIAO:ThreadpoolWithLanesDef"/>
+ <xsd:element name="connectionBands" type="CIAO:ConnectionBandsDef"/>
+ <!-- Other ORB-wide resources that must be allocated by the ORB -->
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:simpleType name="Priority">
+ <xsd:restriction base="xsd:int">
+ <xsd:minInclusive value="0"/>
+ <xsd:maxInclusive value="32767"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="ThreadpoolDef">
+ <xsd:sequence>
+ <xsd:element name="stacksize" type="xsd:unsignedLong"/>
+ <xsd:element name="static_threads" type="xsd:unsignedLong"/>
+ <xsd:element name="dynamic_threads" type="xsd:unsignedLong"/>
+ <xsd:element name="default_priority" type="CIAO:Priority"/>
+ <xsd:element name="allow_request_buffering" type="xsd:boolean"/>
+ <xsd:element name="max_buffered_requests" type="xsd:unsignedLong"/>
+ <xsd:element name="max_request_buffered_size" type="xsd:unsignedLong"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="ThreadpoolWithLanesDef">
+ <xsd:sequence>
+ <xsd:element name="threadpoolLane" type="CIAO:ThreadpoolLaneDef"
+ maxOccurs="unbounded"/>
+ <xsd:element name="stacksize" type="xsd:unsignedLong" />
+ <xsd:element name="allow_borrowing" type="xsd:boolean"/>
+ <xsd:element name="allow_request_buffering" type="xsd:boolean"/>
+ <xsd:element name="max_buffered_requests" type="xsd:unsignedLong"/>
+ <xsd:element name="max_request_buffered_size" type="xsd:unsignedLong"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/> <!-- Threadpool ID should be
+ referenced by individual policies
+ in the policysets below -->
+ </xsd:complexType>
+
+ <xsd:complexType name="ThreadpoolLaneDef">
+ <xsd:sequence>
+ <xsd:element name="static_threads" type="xsd:unsignedLong"/>
+ <xsd:element name="dynamic_threads" type="xsd:unsignedLong"/>
+ <xsd:element name="priority" type="CIAO:Priority"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ConnectionBandsDef">
+ <xsd:annotation>
+ <xsd:documentation>
+ This is only used to provide a ORB-wide view of all connection bands.
+ The ORB doesn't really need to "create" this resource.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="band" type="CIAO:PriorityBandDef" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="PriorityBandDef">
+ <xsd:sequence>
+ <xsd:element name="low" type="xsd:int"/>
+ <xsd:element name="high" type="xsd:int"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+<!-- ========================================================================= -->
+
+ <xsd:complexType name="PolicySet">
+ <xsd:annotation>
+ <xsd:documentation>
+ Contains a set of CORBA Policies that can be applied to a
+ component instance at once. We should eventually expand this
+ list to incorporate all the policies defined in
+ ciaopolicy.xs. I'm focusing on the RT aspects for now.
+
+ The ID of a policy set should be referenced by the component
+ instances in a DeploymentPlan document under the
+ "deployedResource" tag.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="priorityModel" type="CIAO:PriorityModelPolicyDef"/>
+ <xsd:element name="threadpool" type="xsd:IDREF"/>
+ <xsd:element name="priorityBandedConnection" type="xsd:IDREF"/>
+ </xsd:choice>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:simpleType name="PriorityModel">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="SERVER_DECLARED"/>
+ <xsd:enumeration value="CLIENT_PROPAGATED"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="PriorityModelPolicyDef">
+ <xsd:sequence>
+ <xsd:element name="priority_model" type="CIAO:PriorityModel"/>
+ </xsd:sequence>
+ <xsd:attribute name="server_priority" type="CIAO:Priority"/>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/modules/CIAO/docs/schema/Deployment.xsd b/modules/CIAO/docs/schema/Deployment.xsd
new file mode 100644
index 00000000000..fd4ffe5bc7d
--- /dev/null
+++ b/modules/CIAO/docs/schema/Deployment.xsd
@@ -0,0 +1,29 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+ <xsd:include schemaLocation="Basic_Deployment_Data.xsd"/>
+ <xsd:include schemaLocation="cpd.xsd"/>
+ <xsd:include schemaLocation="ccd.xsd"/>
+ <xsd:include schemaLocation="cdd.xsd"/>
+ <xsd:include schemaLocation="cdp.xsd"/>
+ <xsd:include schemaLocation="cid.xsd"/>
+ <xsd:include schemaLocation="iad.xsd"/>
+ <xsd:include schemaLocation="pcd.xsd"/>
+ <xsd:include schemaLocation="toplevel.xsd"/>
+
+
+<!-- Top-level elements. -->
+
+ <xsd:element name="domain" type="Deployment:Domain"/>
+ <xsd:element name="deploymentPlan" type="Deployment:DeploymentPlan"/>
+ <xsd:element name="implementationArtifactDescription" type="Deployment:ImplementationArtifactDescription" />
+ <xsd:element name="componentInterfaceDescription" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element name="componentImplementationDescription" type="Deployment:ComponentImplementationDescription"/>
+ <xsd:element name="componentPackageDescription" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="packageConfiguration" type="Deployment:PackageConfiguration"/>
+ <xsd:element name="topLevelPackageDescription" type="Deployment:TopLevelPackageDescription"/>
+
+</xsd:schema>
diff --git a/modules/CIAO/docs/schema/Modified_Deployment.xsd b/modules/CIAO/docs/schema/Modified_Deployment.xsd
new file mode 100644
index 00000000000..65f5eb81d1e
--- /dev/null
+++ b/modules/CIAO/docs/schema/Modified_Deployment.xsd
@@ -0,0 +1,826 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+
+ <xsd:simpleType name="TCKind">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="tk_null"/>
+ <xsd:enumeration value="tk_void"/>
+ <xsd:enumeration value="tk_short"/>
+ <xsd:enumeration value="tk_long"/>
+ <xsd:enumeration value="tk_ushort"/>
+ <xsd:enumeration value="tk_ulong"/>
+ <xsd:enumeration value="tk_float"/>
+ <xsd:enumeration value="tk_double"/>
+ <xsd:enumeration value="tk_boolean"/>
+ <xsd:enumeration value="tk_char"/>
+ <xsd:enumeration value="tk_octet"/>
+ <xsd:enumeration value="tk_any"/>
+ <xsd:enumeration value="tk_TypeCode"/>
+ <xsd:enumeration value="tk_Principal"/>
+ <xsd:enumeration value="tk_objref"/>
+ <xsd:enumeration value="tk_struct"/>
+ <xsd:enumeration value="tk_union"/>
+ <xsd:enumeration value="tk_enum"/>
+ <xsd:enumeration value="tk_string"/>
+ <xsd:enumeration value="tk_sequence"/>
+ <xsd:enumeration value="tk_array"/>
+ <xsd:enumeration value="tk_alias"/>
+ <xsd:enumeration value="tk_except"/>
+ <xsd:enumeration value="tk_longlong"/>
+ <xsd:enumeration value="tk_ulonglong"/>
+ <xsd:enumeration value="tk_longdouble"/>
+ <xsd:enumeration value="tk_wchar"/>
+ <xsd:enumeration value="tk_wstring"/>
+ <xsd:enumeration value="tk_wfixed"/>
+ <xsd:enumeration value="tk_value"/>
+ <xsd:enumeration value="tk_value_box"/>
+ <xsd:enumeration value="tk_native"/>
+ <xsd:enumeration value="tk_abstract_interface"/>
+ <xsd:enumeration value="tk_local_interface"/>
+ <xsd:enumeration value="tk_component"/>
+ <xsd:enumeration value="tk_home"/>
+ <xsd:enumeration value="tk_event"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="DataType">
+ <xsd:choice>
+ <xsd:element name="kind" type="Deployment:TCKind"/>
+<!--
+@@ not used, what for?
+
+ <xsd:element name="enum" type="Deployment:EnumType"/>
+ <xsd:element name="objref" type="Deployment:ObjrefType"/>
+ <xsd:element name="boundedString" type="Deployment:BoundedStringType"/>
+ <xsd:element name="fixed" type="Deployment:FixedType"/>
+ <xsd:element name="array" type="Deployment:ArrayType"/>
+ <xsd:element name="sequence" type="Deployment:SequenceType"/>
+ <xsd:element name="alias" type="Deployment:AliasType"/>
+ <xsd:element name="struct" type="Deployment:StructType"/>
+ <xsd:element name="value" type="Deployment:ValueType"/>
+ <xsd:element name="union" type="Deployment:UnionType"/>
+-->
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="DataValue">
+ <xsd:choice>
+ <xsd:element name="short" type="xsd:short"/>
+ <xsd:element name="long" type="xsd:int"/>
+ <xsd:element name="ushort" type="xsd:unsignedShort"/>
+ <xsd:element name="ulong" type="xsd:unsignedInt"/>
+ <xsd:element name="float" type="xsd:float"/>
+ <xsd:element name="double" type="xsd:double"/>
+ <xsd:element name="boolean" type="xsd:boolean"/>
+ <xsd:element name="octet" type="xsd:unsignedByte"/>
+ <!-- xsd:element name="opaque" type="xsd:base64Binary"/ -->
+ <xsd:element name="objref" type="xsd:string"/>
+ <xsd:element name="enum" type="xsd:string"/>
+ <xsd:element name="string" type="xsd:string"/>
+ <xsd:element name="longlong" type="xsd:long"/>
+ <xsd:element name="ulonglong" type="xsd:unsignedLong"/>
+ <xsd:element name="longdouble" type="xsd:double"/>
+ <xsd:element name="fixed" type="xsd:string"/>
+
+<!--
+@@ recursive
+ <xsd:element name="any" type="Deployment:Any"/>
+-->
+
+ <xsd:element name="typecode" type="Deployment:DataType"/>
+
+<!--
+@@ recursive
+ <xsd:element name="element" type="Deployment:DataValue"/>
+ <xsd:element name="discriminator" type="Deployment:DataValue"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ <xsd:element name="boxedValue" type="Deployment:DataValue"/>
+ <xsd:element name="member" type="Deployment:NamedValue"/>
+-->
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="Any">
+ <xsd:sequence>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="Property">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:Any"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+<!-- End of base definitions. -->
+
+ <xsd:complexType name="Node">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+<!--
+@@ recursive, not used
+ <xsd:element name="connection" type="Deployment:Interconnect"/>
+ <xsd:element name="sharedResource" type="Deployment:SharedResource"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+-->
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:simpleType name="SatisfierPropertyKind">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="Quantity"/>
+ <xsd:enumeration value="Capacity"/>
+ <xsd:enumeration value="Minimum"/>
+ <xsd:enumeration value="Maximum"/>
+ <xsd:enumeration value="Attribute"/>
+ <xsd:enumeration value="Selection"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+
+ <xsd:complexType name="SatisfierProperty">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:SatisfierPropertyKind"/>
+ <xsd:element name="value" type="Deployment:Any"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="Resource">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="SharedResource">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="node" type="Deployment:Node"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="Domain">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="sharedResource" type="Deployment:SharedResource" minOccurs="0"/>
+ <xsd:element name="node" type="Deployment:Node" maxOccurs="unbounded"/>
+<!--
+@@ recursive, not used
+ <xsd:element name="interconnect" type="Deployment:Interconnect"/>
+ <xsd:element name="bridge" type="Deployment:Bridge"/>
+-->
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="Requirement">
+ <xsd:sequence>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+<!-- Deployment -->
+
+ <xsd:complexType name="ResourceDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="resourceValue" type="Deployment:Any"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ArtifactDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="node" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="location" type="xsd:string" maxOccurs="unbounded"/>
+ <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/>
+ <xsd:element name="deployedResource" type="Deployment:ResourceDeploymentDescription" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="MonolithicDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="artifact" type="xsd:IDREF" maxOccurs="unbounded"/> <!-- ArtifactDeploymentDescription -->
+ <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:simpleType name="ResourceUsageKind">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="InstanceUsesResource"/>
+ <xsd:enumeration value="ResourceUsesInstance"/>
+ <xsd:enumeration value="PortUsesResource"/>
+ <xsd:enumeration value="ResourceUsesPort"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+
+ <xsd:complexType name="InstanceResourceDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="resourceValue" type="Deployment:Any"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="InstanceDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="node" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="implementation" type="xsd:IDREF"/> <!-- MonolithicDeploymentDescription -->
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="deployedResource" type="Deployment:InstanceResourceDeploymentDescription" minOccurs="0"/>
+ <xsd:element name="deployedSharedResource" type="Deployment:InstanceResourceDeploymentDescription" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+
+ <xsd:simpleType name="CCMComponentPortKind">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="Facet"/>
+ <xsd:enumeration value="SimplexReceptacle"/>
+ <xsd:enumeration value="MultiplexReceptacle"/>
+ <xsd:enumeration value="EventEmitter"/>
+ <xsd:enumeration value="EventPublisher"/>
+ <xsd:enumeration value="EventConsumer"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+
+ <xsd:complexType name="ComponentPortDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="specificType" type="xsd:string"/>
+ <xsd:element name="supportedType" type="xsd:string"/>
+ <xsd:element name="provider" type="xsd:string"/>
+ <xsd:element name="exclusiveProvider" type="xsd:string"/>
+ <xsd:element name="exclusiveUser" type="xsd:string"/>
+ <xsd:element name="optional" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ComponentPropertyDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ComponentInterfaceDescription">
+ <!-- @@mxiong: added minOccurs="0" maxOccurs="unbounded"
+ when adding config_handler support
+ for repoMan
+ -->
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="specificType" type="xsd:string"/>
+ <xsd:element name="supportedType" type="xsd:string" maxOccurs="unbounded" />
+ <xsd:element name="idlFile" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/>
+ <xsd:element name="port" type="Deployment:ComponentPortDescription" maxOccurs="unbounded"/>
+ <xsd:element name="property" type="Deployment:ComponentPropertyDescription" minOccurs="0"/>
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string"/>
+ </xsd:choice>
+ <!-- @@mxiong: added a href attribute
+ when adding config_handler support
+ for repoMan
+ -->
+ <xsd:attribute name="href" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ComponentExternalPortEndpoint">
+ <xsd:sequence>
+ <xsd:element name="portName" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="PlanSubcomponentPortEndpoint">
+ <xsd:sequence>
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element name="provider" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
+ <xsd:element name="instance" type="xsd:IDREF"/> <!-- InstanceDeploymentDescription -->
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ExternalReferenceEndpoint">
+ <xsd:sequence>
+ <xsd:element name="location" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ConnectionResourceDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="targetName" type="xsd:string"/>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="resourceValue" type="Deployment:Any"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="PlanConnectionDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/>
+ <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="internalEndpoint" type="Deployment:PlanSubcomponentPortEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="deployedResource" type="Deployment:ConnectionResourceDeploymentDescription" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ImplementationDependency">
+ <xsd:sequence>
+ <xsd:element name="requiredType" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="DeploymentPlan">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription" maxOccurs="unbounded" />
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="connection" type="Deployment:PlanConnectionDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <!-- potentially recursive, not used
+ <xsd:element name="externalProperty" type="Deployment:PlanPropertyMapping"/>
+ -->
+ <xsd:element name="dependsOn" type="Deployment:ImplementationDependency" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+
+
+<!-- Implementation -->
+
+
+ <xsd:complexType name="Capability">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="NamedImplementationArtifact">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <!-- @@ recursive NIA->IAD->NIA -->
+ <xsd:element name="referencedArtifact" type="Deployment:ImplementationArtifactDescription"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ImplementationArtifactDescription">
+ <!-- @@mxiong: added minOccurs="0" maxOccurs="1"
+ when adding config_handler support
+ for repoMan
+ -->
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+
+ <!-- @@ There probably should be only one location? -->
+ <xsd:element name="location" type="xsd:string" maxOccurs="unbounded"/>
+ <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/>
+ <xsd:element name="dependsOn" type="Deployment:NamedImplementationArtifact" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string"/>
+ </xsd:choice>
+ <!-- @@mxiong: added a href attribute
+ when adding config_handler support
+ for repoMan
+ -->
+ <xsd:attribute name="href" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ImplementationRequirement">
+ <xsd:sequence>
+ <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/>
+ <xsd:element name="resourcePort" type="xsd:string"/>
+ <xsd:element name="componentPort" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="MonolithicImplementationDescription">
+ <xsd:sequence>
+ <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/>
+ <xsd:element name="primaryArtifact" type="Deployment:NamedImplementationArtifact" maxOccurs="unbounded"/>
+ <xsd:element name="deployRequirement" type="Deployment:ImplementationRequirement" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="PackagedComponentImplementation">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <!-- @@ recursive CPD->PCI->CID->CAD->SID->CPD -->
+ <xsd:element name="referencedImplementation" type="Deployment:ComponentImplementationDescription"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ComponentPackageDescription">
+ <!-- @@mxiong: added minOccurs="0" maxOccurs="1"
+ when adding config_handler support
+ for repoMan
+ -->
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription" minOccurs="0"/>
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/>
+ <xsd:element name="implementation" type="Deployment:PackagedComponentImplementation"/>
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string"/>
+ </xsd:choice>
+ <!-- @@mxiong: added href
+ when adding config_handler support
+ for repoMan
+ -->
+ <xsd:attribute name="href" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ComponentPackageReference">
+ <xsd:sequence>
+ <xsd:element name="requiredUUID" type="xsd:string"/>
+ <xsd:element name="requiredName" type="xsd:string"/>
+ <xsd:element name="requiredType" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="SubcomponentInstantiationDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="package" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/>
+ <xsd:element name="selectRequirement" type="Deployment:Requirement" minOccurs="0"/>
+ <xsd:element name="reference" type="Deployment:ComponentPackageReference" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="SubcomponentPortEndpoint">
+ <xsd:sequence>
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element name="instance" type="xsd:IDREF"/> <!-- SubcomponentInstantiationDescription -->
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="AssemblyConnectionDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/>
+ <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="internalEndpoint" type="Deployment:SubcomponentPortEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="SubcomponentPropertyReference">
+ <xsd:sequence>
+ <xsd:element name="propertyName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="AssemblyPropertyMapping">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="externalName" type="xsd:string"/>
+ <xsd:element name="delegatesTo" type="Deployment:SubcomponentPropertyReference"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ComponentAssemblyDescription">
+ <xsd:sequence>
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription" maxOccurs="unbounded"/>
+ <xsd:element name="connection" type="Deployment:AssemblyConnectionDescription" maxOccurs="unbounded"/>
+ <xsd:element name="externalProperty" type="Deployment:AssemblyPropertyMapping" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ComponentImplementationDescription">
+ <!-- @@mxiong: added minOccurs="0" maxOccurs="unbounded"
+ when adding config_handler support
+ for repoMan
+ -->
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="implements" type="Deployment:ComponentInterfaceDescription" minOccurs="0"/>
+ <xsd:choice>
+ <xsd:element name="assemblyImpl" type="Deployment:ComponentAssemblyDescription"/>
+ <xsd:element name="monolithicImpl" type="Deployment:MonolithicImplementationDescription"/>
+ </xsd:choice>
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/>
+ <xsd:element name="capability" type="Deployment:Capability" minOccurs="0"/>
+ <xsd:element name="dependsOn" type="Deployment:ImplementationDependency" minOccurs="0"/>
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string"/>
+ </xsd:choice>
+ <!-- @@mxiong: added href
+ when adding config_handler support
+ for repoMan
+ -->
+ <xsd:attribute name="href" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+
+
+<!-- Package -->
+
+
+ <xsd:complexType name="PackageConfiguration">
+ <xsd:choice>
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+<!--
+@@ recursive, not used
+ <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration"/>
+-->
+
+ <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="reference" type="Deployment:ComponentPackageReference" minOccurs="0"/>
+ <xsd:element name="selectRequirement" type="Deployment:Requirement" minOccurs="0"/>
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="TopLevelPackageDescription">
+ <xsd:sequence>
+ <xsd:element name="package" type="Deployment:PackageConfiguration" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+<!-- Top-level elements. -->
+
+
+ <xsd:element name="domain" type="Deployment:Domain"/>
+ <xsd:element name="deploymentPlan" type="Deployment:DeploymentPlan"/>
+ <xsd:element name="implementationArtifactDescription" type="Deployment:ImplementationArtifactDescription" />
+ <xsd:element name="componentInterfaceDescription" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element name="componentImplementationDescription" type="Deployment:ComponentImplementationDescription"/>
+ <xsd:element name="componentPackageDescription" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="packageConfiguration" type="Deployment:PackageConfiguration"/>
+ <xsd:element name="topLevelPackageDescription" type="Deployment:TopLevelPackageDescription"/>
+
+
+
+<!-- VAULT
+
+Place for strange things. Nobody knows what they are for...
+
+-->
+
+<!--
+
+ <xsd:complexType name="EnumType">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="xsd:string" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ObjrefType">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="BoundedStringType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bound" type="xsd:string"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="FixedType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="digits" type="xsd:string"/>
+ <xsd:element name="scale" type="xsd:string"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ArrayType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="length" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="SequenceType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bound" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="AliasType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="StructType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="Deployment:StructMemberType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="StructMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="ValueType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="modifier" type="xsd:string"/>
+ <xsd:element name="baseType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:ValueMemberType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="ValueMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="visibility" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="UnionType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="default" type="Deployment:UnionMemberType"/>
+ <xsd:element name="discriminatorType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:UnionMemberType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="UnionMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element name="label" type="Deployment:DataValue"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="NamedValue">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="Bridge">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="connect" type="Deployment:Interconnect"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="Interconnect">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="connection" type="Deployment:Bridge"/>
+ <xsd:element name="connect" type="Deployment:Node"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="PlanPropertyMapping">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="externalName" type="xsd:string"/>
+ <xsd:element name="delegatesTo" type="Deployment:PlanSubcomponentPropertyReference"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="PlanSubcomponentPropertyReference">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="propertyName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+-->
+
+<!--
+
+ This type is not referenced anywhere.
+
+ <xsd:complexType name="RequirementSatisfier">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+-->
+
+</xsd:schema>
diff --git a/modules/CIAO/docs/schema/README.html b/modules/CIAO/docs/schema/README.html
new file mode 100644
index 00000000000..d810c8a6065
--- /dev/null
+++ b/modules/CIAO/docs/schema/README.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<!-- $Id$ -->
+<html> <head>
+<title>Contents of $CIAO_ROOT/docs/schema</title>
+</head>
+
+<body>
+<h1>Contents of $CIAO_ROOT/docs/schema</h1>
+The schema in this directory are all based on the new Deployment and
+Configuration spec. As part of our work on DAnCE we have tried to
+subset and normalize the schema so that our developers, and tools
+would be able to parse and use the information effectively.
+
+The following table illustrates the meaning and use of the various
+schemata in this directory:
+<table width="100%" border=1>
+ <tr valign=top>
+ <td><b>Spec_Defined_Deployment.xsd</b></td>
+ <td>This is the schema file from the spec which is unaltered. This
+ is just for reference. CIAO and DAnCE will not be using this file
+ directly.
+ </td>
+ </tr>
+ <tr valign=top>
+ <td><b>Spec_Defined_XMI.xsd</b></td>
+ <td>The OMG spec defined schema file uses definitions from another
+ specification called the XMI spec which is part of the OMG
+ specification suite. This schema file is again for reference
+ without any edits.
+ </td>
+ </tr>
+ <tr valign=top>
+ <td><b>ccd.xsd, cdd.xsd, cdp.xsd, cid.xsd, cpd.xsd, iad.xsd,
+ pcd.xsd and toplevel.xcd</b></td>
+ <td> Descriptors that will be used by DAnCE. Section 5.5.3 of the
+ Deployment and Configuration spec talks about the various
+ descriptors that are part of the package. The schema files are
+ broken down in accordance with the suggested descriptor format in
+ the section mentioned above.
+ </td>
+ </tr>
+ <tr valign=top">
+ <td><b>Deployment.xsd</b></td>
+ <td> The schema file that will be used by the applications in
+ their descriptors. Applications need not use Deployment.xsd, but
+ using this is encouraged for portability of their intance
+ documents.</td>
+ </tr>
+ <tr valign=top">
+ <td><b>Modified_Deployment.xsd</b></td>
+ <td> This schema is modified from the original spec defined
+ schema. It is a bit simplified with different sections that makes
+ things easier for the developer to read and digest the
+ information. Not used within DAnCE.</td>
+ </tr>
+ <tr valign=top">
+ <td><b>unused_elements.xsd</b></td>
+ <td> Schema elements that are not used within the OMG's schema and
+ the ones that CIAo and DAnCedoesn't support.</td>
+ </tr>
+</table>
+</body>
+</html>
+
diff --git a/modules/CIAO/docs/schema/SANet_Network.xsd b/modules/CIAO/docs/schema/SANet_Network.xsd
new file mode 100644
index 00000000000..d614528b481
--- /dev/null
+++ b/modules/CIAO/docs/schema/SANet_Network.xsd
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.vanderbilt.edu/SANet SANet_Network.xsd" xmlns:SANet="http://www.vanderbilt.edu/SANet"
+ targetNamespace="http://www.vanderbilt.edu/SANet" elementFormDefault="qualified">
+ <!-- Simple types. -->
+ <xs:simpleType name="NodeID">
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="1" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PortID">
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="TaskCost">
+ <xs:restriction base="xs:double" />
+ </xs:simpleType>
+ <xs:simpleType name="CondUtil">
+ <xs:restriction base="xs:double" />
+ </xs:simpleType>
+ <xs:simpleType name="CondKind">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ENVIRON" />
+ <xs:enumeration value="SYSTEM" />
+ <xs:enumeration value="DATA" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Probability">
+ <xs:restriction base="xs:double">
+ <xs:minInclusive value="0" />
+ <xs:maxInclusive value="1" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="LinkWeight">
+ <xs:restriction base="xs:double">
+ <xs:minInclusive value="-1" />
+ <xs:maxInclusive value="1" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="MultFactor">
+ <xs:restriction base="xs:double">
+ <xs:minInclusive value="0" />
+ <xs:maxInclusive value="1" />
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- Complex types corresponding to IDL structures.
+ (nodes, links, and network). -->
+ <xs:complexType name="TaskNode">
+ <xs:sequence>
+ <xs:element name="nodeID" type="SANet:NodeID" />
+ <xs:element name="name" type="xs:string" default="" />
+ <xs:element name="priorProb" type="SANet:Probability" />
+ <xs:element name="attenFactor" type="SANet:MultFactor" default="1" />
+ <xs:element name="cost" type="SANet:TaskCost" default="0" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CondNode">
+ <xs:sequence>
+ <xs:element name="nodeID" type="SANet:NodeID" />
+ <xs:element name="name" type="xs:string" default="" />
+ <xs:element name="probTrue" type="SANet:Probability" default="0" />
+ <xs:element name="utility" type="SANet:CondUtil" default="0" />
+ <xs:element name="kind" type="SANet:CondKind" default="ENVIRON" />
+ <xs:element name="attenFactor" type="SANet:MultFactor" default="1" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PrecondLink">
+ <xs:sequence>
+ <xs:element name="condID" type="SANet:NodeID" />
+ <xs:element name="taskID" type="SANet:NodeID" />
+ <xs:element name="portID" type="SANet:PortID" />
+ <xs:element name="trueProb" type="SANet:Probability" />
+ <xs:element name="falseProb" type="SANet:Probability" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="EffectLink">
+ <xs:sequence>
+ <xs:element name="taskID" type="SANet:NodeID" />
+ <xs:element name="condID" type="SANet:NodeID" />
+ <xs:element name="portID" type="SANet:PortID" />
+ <xs:element name="weight" type="SANet:LinkWeight" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Network">
+ <xs:sequence>
+ <xs:element name="defaultAttenFactor" type="SANet:MultFactor" default="1" />
+ <xs:element name="defaultTaskCost" type="SANet:TaskCost" default="0" />
+ <xs:element name="defaultCondUtil" type="SANet:CondUtil" default="0" />
+ <xs:element name="defaultCondProbTrue" type="SANet:Probability" default="0" />
+ <xs:element name="linkThresh" type="SANet:LinkWeight" default="0" />
+ <xs:element name="taskNode" type="SANet:TaskNode" maxOccurs="unbounded" />
+ <xs:element name="condNode" type="SANet:CondNode" maxOccurs="unbounded" />
+ <xs:element name="precondLink" type="SANet:PrecondLink" maxOccurs="unbounded" />
+ <xs:element name="effectLink" type="SANet:EffectLink" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ <!-- Top-level network element. -->
+ <xs:element name="network" type="SANet:Network" />
+</xs:schema> \ No newline at end of file
diff --git a/modules/CIAO/docs/schema/ServerResourceUsage.txt b/modules/CIAO/docs/schema/ServerResourceUsage.txt
new file mode 100644
index 00000000000..061e2cc4422
--- /dev/null
+++ b/modules/CIAO/docs/schema/ServerResourceUsage.txt
@@ -0,0 +1,79 @@
+ How to use CIAOServerResources.xsd
+
+Assuming we store two CIAO:ServerResources documents in two XML files
+called "RTLinuxServerConfig.xml" and "RTwIN32ServerConfig.xml"
+respectively. Two things need to happen in order to use the
+PolicySet's defined in these files. First, we need to tell the DnC
+tools what are all the CIAOServerResources files a DeploymentPlan
+needs. This can easily be done by enumerating all these file in the
+<infoProperty> element under the <DeploymentPlan>. For example, the
+following XML document snippet shows a DeploymentPlan will reference
+to two aforementioned CIAO:ServerResources files. The property name
+"CIAOServerResourceRef" is a CIAO-specific extension that signifies
+this need. The values of these properties simply specify the
+filenames.
+
+
+ <infoProperty>
+ <name>CIAOServerResourceRef</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>RTLinuxServerConfig.xml</string>
+ </value>
+ </value>
+
+ <name>CIAOServerResourceRef</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>RTWin32ServerConfig.xml</string>
+ </value>
+ </value>
+ </infoProperty>
+
+Second, we can now use the policy sets defined in these files by
+associating a policy set with the entity the policy set will be
+applied. Currently, only associations with component instances are
+supported. A component instance in deployment plan can specify the
+policy set it wishes to be instantiated with. A PolicySet is
+referenced by its name and the CIAO:ServerResources name.
+
+ <deploymentplan>
+ ....
+ <instance ...>
+
+
+ <deployedResource>
+ <resourceUsage>InstanceUsesResource</resourceUsage>
+ <requirementName>CIAO:ServerResources</requirementName>
+ <resourceName>here_we_insert_the_name_defined_in_CIAO:ServerResources</resourcename>
+ <property>
+ <name>CIAO:PolicySetName</name>
+ <value>
+ <type>tk_string</type>
+ <value>
+ <string>here_we_insert_the_PolicySet_name_defined_in_the_ServerResources</string>
+ </value>
+ </value>
+ </property>
+ </deployedResource>
+
+ </instance>
+ </deploymentplan>
+
+If only the name of the CIAO:ServerResources is specified, we are
+using it as a collocation constraint. In this case, the
+<deployedResource> will contain no <property> sub-element. Component
+instances with different <resourceName> values will be deployed to the
+same target node with different ServerResources names. DAnCE should
+create two differnet NodeApplication on the same node.
+
+Likewise, specifying different CIAO:PolicySet IDs will force component
+instances to be deployed into different containers (if they have the
+same target node and ServerResource ID.)
+
diff --git a/modules/CIAO/docs/schema/Spec_Defined_Deployment.xsd b/modules/CIAO/docs/schema/Spec_Defined_Deployment.xsd
new file mode 100644
index 00000000000..a59a47f1360
--- /dev/null
+++ b/modules/CIAO/docs/schema/Spec_Defined_Deployment.xsd
@@ -0,0 +1,897 @@
+<xsd:schema
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment"
+ >
+ <xsd:import namespace="http://www.omg.org/XMI"/>
+ <xsd:complexType name="Any">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Any" type="Deployment:Any"/>
+ <xsd:complexType name="DataType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="kind" type="Deployment:TCKind"/>
+ <xsd:element name="enum" type="Deployment:EnumType"/>
+ <xsd:element name="objref" type="Deployment:ObjrefType"/>
+ <xsd:element name="boundedString" type="Deployment:BoundedStringType"/>
+ <xsd:element name="fixed" type="Deployment:FixedType"/>
+ <xsd:element name="array" type="Deployment:ArrayType"/>
+ <xsd:element name="sequence" type="Deployment:SequenceType"/>
+ <xsd:element name="alias" type="Deployment:AliasType"/>
+ <xsd:element name="struct" type="Deployment:StructType"/>
+ <xsd:element name="value" type="Deployment:ValueType"/>
+ <xsd:element name="union" type="Deployment:UnionType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="DataType" type="Deployment:DataType"/>
+ <xsd:complexType name="DataValue">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="short" type="xsd:short"/>
+ <xsd:element name="long" type="xsd:int"/>
+ <xsd:element name="ushort" type="xsd:unsignedShort"/>
+ <xsd:element name="ulong" type="xsd:unsignedInt"/>
+ <xsd:element name="float" type="xsd:float"/>
+ <xsd:element name="double" type="xsd:double"/>
+ <xsd:element name="boolean" type="xsd:boolean"/>
+ <xsd:element name="octet" type="xsd:unsignedByte"/>
+ <xsd:element name="opaque" type="xsd:base64Binary"/>
+ <xsd:element name="objref" type="xsd:string"/>
+ <xsd:element name="enum" type="xsd:string"/>
+ <xsd:element name="string" type="xsd:string"/>
+ <xsd:element name="longlong" type="xsd:long"/>
+ <xsd:element name="ulonglong" type="xsd:unsignedLong"/>
+ <xsd:element name="longdouble" type="xsd:double"/>
+ <xsd:element name="fixed" type="xsd:string"/>
+ <xsd:element name="any" type="Deployment:Any"/>
+ <xsd:element name="typecode" type="Deployment:DataType"/>
+ <xsd:element name="element" type="Deployment:DataValue"/>
+ <xsd:element name="discriminator" type="Deployment:DataValue"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ <xsd:element name="boxedValue" type="Deployment:DataValue"/>
+ <xsd:element name="member" type="Deployment:NamedValue"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="DataValue" type="Deployment:DataValue"/>
+ <xsd:complexType name="EnumType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="EnumType" type="Deployment:EnumType"/>
+ <xsd:complexType name="ObjrefType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ObjrefType" type="Deployment:ObjrefType"/>
+ <xsd:complexType name="BoundedStringType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bound" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="BoundedStringType" type="Deployment:BoundedStringType"/>
+ <xsd:complexType name="FixedType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="digits" type="xsd:string"/>
+ <xsd:element name="scale" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="FixedType" type="Deployment:FixedType"/>
+ <xsd:complexType name="ArrayType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="length" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ArrayType" type="Deployment:ArrayType"/>
+ <xsd:complexType name="SequenceType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bound" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SequenceType" type="Deployment:SequenceType"/>
+ <xsd:complexType name="AliasType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="AliasType" type="Deployment:AliasType"/>
+ <xsd:complexType name="StructType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="Deployment:StructMemberType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="StructType" type="Deployment:StructType"/>
+ <xsd:complexType name="StructMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="StructMemberType" type="Deployment:StructMemberType"/>
+ <xsd:complexType name="ValueType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="modifier" type="xsd:string"/>
+ <xsd:element name="baseType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:ValueMemberType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ValueType" type="Deployment:ValueType"/>
+ <xsd:complexType name="ValueMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="visibility" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ValueMemberType" type="Deployment:ValueMemberType"/>
+ <xsd:complexType name="UnionType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="default" type="Deployment:UnionMemberType"/>
+ <xsd:element name="discriminatorType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:UnionMemberType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="UnionType" type="Deployment:UnionType"/>
+ <xsd:complexType name="UnionMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element name="label" type="Deployment:DataValue"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="UnionMemberType" type="Deployment:UnionMemberType"/>
+ <xsd:complexType name="NamedValue">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="NamedValue" type="Deployment:NamedValue"/>
+ <xsd:complexType name="Bridge">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="connect" type="Deployment:Interconnect"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Bridge" type="Deployment:Bridge"/>
+ <xsd:complexType name="Interconnect">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="connection" type="Deployment:Bridge"/>
+ <xsd:element name="connect" type="Deployment:Node"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Interconnect" type="Deployment:Interconnect"/>
+ <xsd:complexType name="Node">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="connection" type="Deployment:Interconnect"/>
+ <xsd:element name="sharedResource" type="Deployment:SharedResource"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Node" type="Deployment:Node"/>
+ <xsd:complexType name="Resource">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Resource" type="Deployment:Resource"/>
+ <xsd:complexType name="SharedResource">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="node" type="Deployment:Node"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SharedResource" type="Deployment:SharedResource"/>
+ <xsd:complexType name="Domain">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="sharedResource" type="Deployment:SharedResource"/>
+ <xsd:element name="node" type="Deployment:Node"/>
+ <xsd:element name="interconnect" type="Deployment:Interconnect"/>
+ <xsd:element name="bridge" type="Deployment:Bridge"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Domain" type="Deployment:Domain"/>
+ <xsd:complexType name="PlanPropertyMapping">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="externalName" type="xsd:string"/>
+ <xsd:element name="delegatesTo" type="Deployment:PlanSubcomponentPropertyReference"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PlanPropertyMapping" type="Deployment:PlanPropertyMapping"/>
+ <xsd:complexType name="PlanSubcomponentPropertyReference">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="propertyName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PlanSubcomponentPropertyReference" type="Deployment:PlanSubcomponentPropertyReference"/>
+ <xsd:complexType name="PlanSubcomponentPortEndpoint">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element name="provider" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PlanSubcomponentPortEndpoint" type="Deployment:PlanSubcomponentPortEndpoint"/>
+ <xsd:complexType name="PlanConnectionDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint"/>
+ <xsd:element name="internalEndpoint" type="Deployment:PlanSubcomponentPortEndpoint"/>
+ <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint"/>
+ <xsd:element name="deployedResource" type="Deployment:ConnectionResourceDeploymentDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PlanConnectionDescription" type="Deployment:PlanConnectionDescription"/>
+ <xsd:complexType name="InstanceDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="node" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="deployedResource" type="Deployment:InstanceResourceDeploymentDescription"/>
+ <xsd:element name="deployedSharedResource" type="Deployment:InstanceResourceDeploymentDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="InstanceDeploymentDescription" type="Deployment:InstanceDeploymentDescription"/>
+ <xsd:complexType name="MonolithicDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription"/>
+ <xsd:element name="execParameter" type="Deployment:Property"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="MonolithicDeploymentDescription" type="Deployment:MonolithicDeploymentDescription"/>
+ <xsd:complexType name="ArtifactDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="location" type="xsd:string"/>
+ <xsd:element name="node" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="execParameter" type="Deployment:Property"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="deployedResource" type="Deployment:ResourceDeploymentDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ArtifactDeploymentDescription" type="Deployment:ArtifactDeploymentDescription"/>
+ <xsd:complexType name="DeploymentPlan">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription"/>
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
+ <xsd:element name="connection" type="Deployment:PlanConnectionDescription"/>
+ <xsd:element name="externalProperty" type="Deployment:PlanPropertyMapping"/>
+ <xsd:element name="dependsOn" type="Deployment:ImplementationDependency"/>
+ <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="DeploymentPlan" type="Deployment:DeploymentPlan"/>
+ <xsd:complexType name="ResourceDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="resourceValue" type="Deployment:Any"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ResourceDeploymentDescription" type="Deployment:ResourceDeploymentDescription"/>
+ <xsd:complexType name="InstanceResourceDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="resourceValue" type="Deployment:Any"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="InstanceResourceDeploymentDescription" type="Deployment:InstanceResourceDeploymentDescription"/>
+ <xsd:complexType name="ConnectionResourceDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="targetName" type="xsd:string"/>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="resourceValue" type="Deployment:Any"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ConnectionResourceDeploymentDescription" type="Deployment:ConnectionResourceDeploymentDescription"/>
+ <xsd:complexType name="Capability">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Capability" type="Deployment:Capability"/>
+ <xsd:complexType name="ComponentPropertyDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentPropertyDescription" type="Deployment:ComponentPropertyDescription"/>
+ <xsd:complexType name="ComponentPortDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="specificType" type="xsd:string"/>
+ <xsd:element name="supportedType" type="xsd:string"/>
+ <xsd:element name="provider" type="xsd:string"/>
+ <xsd:element name="exclusiveProvider" type="xsd:string"/>
+ <xsd:element name="exclusiveUser" type="xsd:string"/>
+ <xsd:element name="optional" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentPortDescription" type="Deployment:ComponentPortDescription"/>
+ <xsd:complexType name="ComponentInterfaceDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="specificType" type="xsd:string"/>
+ <xsd:element name="supportedType" type="xsd:string"/>
+ <xsd:element name="idlFile" type="xsd:string"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="port" type="Deployment:ComponentPortDescription"/>
+ <xsd:element name="property" type="Deployment:ComponentPropertyDescription"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentInterfaceDescription" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:complexType name="ImplementationArtifactDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="location" type="xsd:string"/>
+ <xsd:element name="execParameter" type="Deployment:Property"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="dependsOn" type="Deployment:NamedImplementationArtifact"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ImplementationArtifactDescription" type="Deployment:ImplementationArtifactDescription"/>
+ <xsd:complexType name="MonolithicImplementationDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="execParameter" type="Deployment:Property"/>
+ <xsd:element name="primaryArtifact" type="Deployment:NamedImplementationArtifact"/>
+ <xsd:element name="deployRequirement" type="Deployment:ImplementationRequirement"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="MonolithicImplementationDescription" type="Deployment:MonolithicImplementationDescription"/>
+ <xsd:complexType name="AssemblyPropertyMapping">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="externalName" type="xsd:string"/>
+ <xsd:element name="delegatesTo" type="Deployment:SubcomponentPropertyReference"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="AssemblyPropertyMapping" type="Deployment:AssemblyPropertyMapping"/>
+ <xsd:complexType name="SubcomponentPropertyReference">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="propertyName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SubcomponentPropertyReference" type="Deployment:SubcomponentPropertyReference"/>
+ <xsd:complexType name="SubcomponentPortEndpoint">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SubcomponentPortEndpoint" type="Deployment:SubcomponentPortEndpoint"/>
+ <xsd:complexType name="AssemblyConnectionDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint"/>
+ <xsd:element name="internalEndpoint" type="Deployment:SubcomponentPortEndpoint"/>
+ <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="AssemblyConnectionDescription" type="Deployment:AssemblyConnectionDescription"/>
+ <xsd:complexType name="SubcomponentInstantiationDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="package" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="selectRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="reference" type="Deployment:ComponentPackageReference"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SubcomponentInstantiationDescription" type="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:complexType name="ComponentAssemblyDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:element name="connection" type="Deployment:AssemblyConnectionDescription"/>
+ <xsd:element name="externalProperty" type="Deployment:AssemblyPropertyMapping"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentAssemblyDescription" type="Deployment:ComponentAssemblyDescription"/>
+ <xsd:complexType name="ComponentImplementationDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="implements" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element name="assemblyImpl" type="Deployment:ComponentAssemblyDescription"/>
+ <xsd:element name="monolithicImpl" type="Deployment:MonolithicImplementationDescription"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="capability" type="Deployment:Capability"/>
+ <xsd:element name="dependsOn" type="Deployment:ImplementationDependency"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentImplementationDescription" type="Deployment:ComponentImplementationDescription"/>
+ <xsd:complexType name="ComponentPackageReference">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="requiredUUID" type="xsd:string"/>
+ <xsd:element name="requiredName" type="xsd:string"/>
+ <xsd:element name="requiredType" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentPackageReference" type="Deployment:ComponentPackageReference"/>
+ <xsd:complexType name="ComponentPackageDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="implementation" type="Deployment:PackagedComponentImplementation"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentPackageDescription" type="Deployment:ComponentPackageDescription"/>
+ <xsd:complexType name="PackageConfiguration">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration"/>
+ <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="reference" type="Deployment:ComponentPackageReference"/>
+ <xsd:element name="selectRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PackageConfiguration" type="Deployment:PackageConfiguration"/>
+ <xsd:complexType name="PackagedComponentImplementation">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="referencedImplementation" type="Deployment:ComponentImplementationDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PackagedComponentImplementation" type="Deployment:PackagedComponentImplementation"/>
+ <xsd:complexType name="NamedImplementationArtifact">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="referencedArtifact" type="Deployment:ImplementationArtifactDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="NamedImplementationArtifact" type="Deployment:NamedImplementationArtifact"/>
+ <xsd:complexType name="ImplementationRequirement">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/>
+ <xsd:element name="resourcePort" type="xsd:string"/>
+ <xsd:element name="componentPort" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ImplementationRequirement" type="Deployment:ImplementationRequirement"/>
+ <xsd:complexType name="RequirementSatisfier">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="RequirementSatisfier" type="Deployment:RequirementSatisfier"/>
+ <xsd:complexType name="SatisfierProperty">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:SatisfierPropertyKind"/>
+ <xsd:element name="value" type="Deployment:Any"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SatisfierProperty" type="Deployment:SatisfierProperty"/>
+ <xsd:complexType name="Requirement">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Requirement" type="Deployment:Requirement"/>
+ <xsd:complexType name="Property">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:Any"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Property" type="Deployment:Property"/>
+ <xsd:complexType name="ExternalReferenceEndpoint">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="location" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ExternalReferenceEndpoint" type="Deployment:ExternalReferenceEndpoint"/>
+ <xsd:complexType name="ComponentExternalPortEndpoint">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentExternalPortEndpoint" type="Deployment:ComponentExternalPortEndpoint"/>
+ <xsd:complexType name="ImplementationDependency">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="requiredType" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ImplementationDependency" type="Deployment:ImplementationDependency"/>
+ <xsd:complexType name="TopLevelPackageDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="package" type="Deployment:PackageConfiguration"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="TopLevelPackageDescription" type="Deployment:TopLevelPackageDescription"/>
+ <xsd:simpleType name="TCKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="tk_null"/>
+ <xsd:enumeration value="tk_void"/>
+ <xsd:enumeration value="tk_short"/>
+ <xsd:enumeration value="tk_long"/>
+ <xsd:enumeration value="tk_ushort"/>
+ <xsd:enumeration value="tk_ulong"/>
+ <xsd:enumeration value="tk_float"/>
+ <xsd:enumeration value="tk_double"/>
+ <xsd:enumeration value="tk_boolean"/>
+ <xsd:enumeration value="tk_char"/>
+ <xsd:enumeration value="tk_octet"/>
+ <xsd:enumeration value="tk_any"/>
+ <xsd:enumeration value="tk_TypeCode"/>
+ <xsd:enumeration value="tk_Principal"/>
+ <xsd:enumeration value="tk_objref"/>
+ <xsd:enumeration value="tk_struct"/>
+ <xsd:enumeration value="tk_union"/>
+ <xsd:enumeration value="tk_enum"/>
+ <xsd:enumeration value="tk_string"/>
+ <xsd:enumeration value="tk_sequence"/>
+ <xsd:enumeration value="tk_array"/>
+ <xsd:enumeration value="tk_alias"/>
+ <xsd:enumeration value="tk_except"/>
+ <xsd:enumeration value="tk_longlong"/>
+ <xsd:enumeration value="tk_ulonglong"/>
+ <xsd:enumeration value="tk_longdouble"/>
+ <xsd:enumeration value="tk_wchar"/>
+ <xsd:enumeration value="tk_wstring"/>
+ <xsd:enumeration value="tk_wfixed"/>
+ <xsd:enumeration value="tk_value"/>
+ <xsd:enumeration value="tk_value_box"/>
+ <xsd:enumeration value="tk_native"/>
+ <xsd:enumeration value="tk_abstract_interface"/>
+ <xsd:enumeration value="tk_local_interface"/>
+ <xsd:enumeration value="tk_component"/>
+ <xsd:enumeration value="tk_home"/>
+ <xsd:enumeration value="tk_event"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="ResourceUsageKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="InstanceUsesResource"/>
+ <xsd:enumeration value="ResourceUsesInstance"/>
+ <xsd:enumeration value="PortUsesResource"/>
+ <xsd:enumeration value="ResourceUsesPort"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="CCMComponentPortKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Facet"/>
+ <xsd:enumeration value="SimplexReceptacle"/>
+ <xsd:enumeration value="MultiplexReceptacle"/>
+ <xsd:enumeration value="EventEmitter"/>
+ <xsd:enumeration value="EventPublisher"/>
+ <xsd:enumeration value="EventConsumer"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="SatisfierPropertyKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Quantity"/>
+ <xsd:enumeration value="Capacity"/>
+ <xsd:enumeration value="Minimum"/>
+ <xsd:enumeration value="Maximum"/>
+ <xsd:enumeration value="Attribute"/>
+ <xsd:enumeration value="Selection"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:element name="Deployment">
+ <xsd:complexType>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="Deployment:Any"/>
+ <xsd:element ref="Deployment:DataType"/>
+ <xsd:element ref="Deployment:DataValue"/>
+ <xsd:element ref="Deployment:EnumType"/>
+ <xsd:element ref="Deployment:ObjrefType"/>
+ <xsd:element ref="Deployment:BoundedStringType"/>
+ <xsd:element ref="Deployment:FixedType"/>
+ <xsd:element ref="Deployment:ArrayType"/>
+ <xsd:element ref="Deployment:SequenceType"/>
+ <xsd:element ref="Deployment:AliasType"/>
+ <xsd:element ref="Deployment:StructType"/>
+ <xsd:element ref="Deployment:StructMemberType"/>
+ <xsd:element ref="Deployment:ValueType"/>
+ <xsd:element ref="Deployment:ValueMemberType"/>
+ <xsd:element ref="Deployment:UnionType"/>
+ <xsd:element ref="Deployment:UnionMemberType"/>
+ <xsd:element ref="Deployment:NamedValue"/>
+ <xsd:element ref="Deployment:Bridge"/>
+ <xsd:element ref="Deployment:Interconnect"/>
+ <xsd:element ref="Deployment:Node"/>
+ <xsd:element ref="Deployment:Resource"/>
+ <xsd:element ref="Deployment:SharedResource"/>
+ <xsd:element ref="Deployment:Domain"/>
+ <xsd:element ref="Deployment:PlanPropertyMapping"/>
+ <xsd:element ref="Deployment:PlanSubcomponentPropertyReference"/>
+ <xsd:element ref="Deployment:PlanSubcomponentPortEndpoint"/>
+ <xsd:element ref="Deployment:PlanConnectionDescription"/>
+ <xsd:element ref="Deployment:InstanceDeploymentDescription"/>
+ <xsd:element ref="Deployment:MonolithicDeploymentDescription"/>
+ <xsd:element ref="Deployment:ArtifactDeploymentDescription"/>
+ <xsd:element ref="Deployment:DeploymentPlan"/>
+ <xsd:element ref="Deployment:ResourceDeploymentDescription"/>
+ <xsd:element ref="Deployment:InstanceResourceDeploymentDescription"/>
+ <xsd:element ref="Deployment:ConnectionResourceDeploymentDescription"/>
+ <xsd:element ref="Deployment:Capability"/>
+ <xsd:element ref="Deployment:ComponentPropertyDescription"/>
+ <xsd:element ref="Deployment:ComponentPortDescription"/>
+ <xsd:element ref="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element ref="Deployment:ImplementationArtifactDescription"/>
+ <xsd:element ref="Deployment:MonolithicImplementationDescription"/>
+ <xsd:element ref="Deployment:AssemblyPropertyMapping"/>
+ <xsd:element ref="Deployment:SubcomponentPropertyReference"/>
+ <xsd:element ref="Deployment:SubcomponentPortEndpoint"/>
+ <xsd:element ref="Deployment:AssemblyConnectionDescription"/>
+ <xsd:element ref="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:element ref="Deployment:ComponentAssemblyDescription"/>
+ <xsd:element ref="Deployment:ComponentImplementationDescription"/>
+ <xsd:element ref="Deployment:ComponentPackageReference"/>
+ <xsd:element ref="Deployment:ComponentPackageDescription"/>
+ <xsd:element ref="Deployment:PackageConfiguration"/>
+ <xsd:element ref="Deployment:PackagedComponentImplementation"/>
+ <xsd:element ref="Deployment:NamedImplementationArtifact"/>
+ <xsd:element ref="Deployment:ImplementationRequirement"/>
+ <xsd:element ref="Deployment:RequirementSatisfier"/>
+ <xsd:element ref="Deployment:SatisfierProperty"/>
+ <xsd:element ref="Deployment:Requirement"/>
+ <xsd:element ref="Deployment:Property"/>
+ <xsd:element ref="Deployment:ExternalReferenceEndpoint"/>
+ <xsd:element ref="Deployment:ComponentExternalPortEndpoint"/>
+ <xsd:element ref="Deployment:ImplementationDependency"/>
+ <xsd:element ref="Deployment:TopLevelPackageDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ </xsd:element>
+</xsd:schema>
diff --git a/modules/CIAO/docs/schema/Spec_Defined_XMI.xsd b/modules/CIAO/docs/schema/Spec_Defined_XMI.xsd
new file mode 100644
index 00000000000..f4adac91934
--- /dev/null
+++ b/modules/CIAO/docs/schema/Spec_Defined_XMI.xsd
@@ -0,0 +1,35 @@
+<?xml version="1.0" ?>
+<xsd:schema targetNamespace="http://www.omg.org/XMI" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation='http://www.w3.org/2001/XMLSchema XMLSchema.xsd'>
+ <xsd:attribute name="id" type="xsd:ID" />
+ <xsd:attributeGroup name="IdentityAttribs">
+ <xsd:attribute form="qualified" name="label" type="xsd:string" use="optional" />
+ <xsd:attribute form="qualified" name="uuid" type="xsd:string" use="optional" />
+ </xsd:attributeGroup>
+ <xsd:attributeGroup name="LinkAttribs">
+ <xsd:attribute name="href" type="xsd:string" use="optional" />
+ <xsd:attribute form="qualified" name="idref" type="xsd:IDREF" use="optional" />
+ </xsd:attributeGroup>
+ <xsd:attributeGroup name="ObjectAttribs">
+ <xsd:attributeGroup ref="xmi:IdentityAttribs" />
+ <xsd:attributeGroup ref="xmi:LinkAttribs" />
+ <xsd:attribute fixed="2.0" form="qualified" name="version" type="xsd:string" use="optional" />
+ <xsd:attribute form="qualified" name="type" type="xsd:QName" use="optional" />
+ </xsd:attributeGroup>
+ <xsd:complexType name="Extension">
+ <xsd:choice maxOccurs="unbounded" minOccurs="0">
+ <xsd:any processContents="lax" />
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" />
+ <xsd:attributeGroup ref="xmi:ObjectAttribs" />
+ <xsd:attribute name="extender" type="xsd:string" use="optional" />
+ <xsd:attribute name="extenderID" type="xsd:string" use="optional" />
+ </xsd:complexType>
+ <xsd:element name="Extension" type="xmi:Extension" />
+ <xsd:complexType name="Any">
+ <xsd:choice maxOccurs="unbounded" minOccurs="0">
+ <xsd:any processContents="skip" />
+ </xsd:choice>
+ <xsd:anyAttribute processContents="skip" />
+ </xsd:complexType>
+</xsd:schema>
diff --git a/modules/CIAO/docs/schema/Task_Map.xsd b/modules/CIAO/docs/schema/Task_Map.xsd
new file mode 100644
index 00000000000..2138f082d48
--- /dev/null
+++ b/modules/CIAO/docs/schema/Task_Map.xsd
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.vanderbilt.edu/SA-POP Task_Map.xsd" xmlns:SA-POP="http://www.vanderbilt.edu/SA-POP"
+ targetNamespace="http://www.vanderbilt.edu/SA-POP" elementFormDefault="qualified">
+ <!-- Simple types. -->
+ <xs:simpleType name="TaskID">
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="1" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="TaskImplID">
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="ResourceID">
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="ResourceKind">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="UNARY" />
+ <xs:enumeration value="DISCRETE" />
+ <xs:enumeration value="RESERVOIR" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ResourceValue">
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="0" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ImplParamID">
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="ImplParamKind">
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="ImplParamValue">
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="TimeValue">
+ <xs:restriction base="xs:int">
+ <!-- -1 indicates unknown/unconstrained time -->
+ <xs:minInclusive value="-1" />
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- Complex types corresponding to IDL structures.
+ (resources, parameters, implementations, associations, and task map) -->
+ <xs:complexType name="Resource">
+ <xs:sequence>
+ <xs:element name="resourceID" type="SA-POP:ResourceID" />
+ <xs:element name="kind" type="SA-POP:ResourceKind" default="DISCRETE" />
+ <xs:element name="capacity" type="SA-POP:ResourceValue" default="100" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ImplParam">
+ <xs:sequence>
+ <xs:element name="paramID" type="SA-POP:ImplParamID" />
+ <xs:element name="kind" type="SA-POP:ImplParamKind" />
+ <xs:element name="value" type="SA-POP:ImplParamValue" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaskImpl">
+ <xs:sequence>
+ <xs:element name="implID" type="SA-POP:TaskImplID" />
+ <xs:element name="param" type="SA-POP:ImplParam" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaskToImpl">
+ <xs:sequence>
+ <xs:element name="taskID" type="SA-POP:TaskID" />
+ <xs:element name="implID" type="SA-POP:TaskImplID" />
+ <xs:element name="duration" type="SA-POP:TimeValue" default="-1" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ImplToResource">
+ <xs:sequence>
+ <xs:element name="implID" type="SA-POP:TaskImplID" />
+ <xs:element name="resourceID" type="SA-POP:ResourceID" />
+ <xs:element name="utilization" type="SA-POP:ResourceValue" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaskMap">
+ <xs:sequence>
+ <xs:element name="taskImpl" type="SA-POP:TaskImpl" maxOccurs="unbounded" />
+ <xs:element name="resource" type="SA-POP:Resource" maxOccurs="unbounded" />
+ <xs:element name="taskToImpl" type="SA-POP:TaskToImpl" maxOccurs="unbounded" />
+ <xs:element name="implToResource" type="SA-POP:ImplToResource" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ <!-- Top-level task map element. -->
+ <xs:element name="taskMap" type="SA-POP:TaskMap"></xs:element>
+</xs:schema> \ No newline at end of file
diff --git a/modules/CIAO/docs/schema/ccd.xsd b/modules/CIAO/docs/schema/ccd.xsd
new file mode 100644
index 00000000000..fcdac711b5a
--- /dev/null
+++ b/modules/CIAO/docs/schema/ccd.xsd
@@ -0,0 +1,27 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+ <xsd:include schemaLocation="Basic_Deployment_Data.xsd" />
+
+ <xsd:complexType name="ComponentInterfaceDescription">
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0"/>
+ <!-- @@ MAJO : HACK - SpecificType and SupportedType should be required! -->
+ <xsd:element name="specificType" type="xsd:string" minOccurs="0" />
+ <xsd:element name="supportedType" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="idlFile" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="port" type="Deployment:ComponentPortDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="property" type="Deployment:ComponentPropertyDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string"/>
+ </xsd:choice>
+ <xsd:attribute name="href" type="xsd:string" />
+ </xsd:complexType>
+</xsd:schema>
diff --git a/modules/CIAO/docs/schema/cdd.xsd b/modules/CIAO/docs/schema/cdd.xsd
new file mode 100644
index 00000000000..3fe64120bfd
--- /dev/null
+++ b/modules/CIAO/docs/schema/cdd.xsd
@@ -0,0 +1,60 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+<xsd:include schemaLocation="Basic_Deployment_Data.xsd" />
+
+ <xsd:complexType name="Domain">
+ <xsd:sequence>
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0" />
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="node" type="Deployment:Node" maxOccurs="unbounded"/>
+ <xsd:element name="interconnect" type="Deployment:Interconnect" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="bridge" type="Deployment:Bridge" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="sharedResource" type="Deployment:SharedResource" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="Bridge">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="connect" type="Deployment:Interconnect" maxOccurs="unbounded" />
+ <xsd:element name="resource" type="Deployment:Resource" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="Interconnect">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="connection" type="Deployment:Bridge" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="connect" type="Deployment:Node" maxOccurs="unbounded" />
+ <xsd:element name="resource" type="Deployment:Resource" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="Node">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="connection" type="Deployment:Interconnect" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="sharedResource" type="Deployment:SharedResource" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="resource" type="Deployment:Resource" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="SharedResource">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="node" type="Deployment:Node"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema> \ No newline at end of file
diff --git a/modules/CIAO/docs/schema/cdp.xsd b/modules/CIAO/docs/schema/cdp.xsd
new file mode 100644
index 00000000000..4fa69acd3fe
--- /dev/null
+++ b/modules/CIAO/docs/schema/cdp.xsd
@@ -0,0 +1,27 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+<xsd:include schemaLocation="ccd.xsd" />
+
+ <xsd:complexType name="DeploymentPlan">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription" minOccurs="0" />
+ <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription" maxOccurs="unbounded" />
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="connection" type="Deployment:PlanConnectionDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <!-- potentially recursive, not used
+ <xsd:element name="externalProperty" type="Deployment:PlanPropertyMapping"/>
+ -->
+ <xsd:element name="dependsOn" type="Deployment:ImplementationDependency" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+</xsd:complexType>
+
+
+</xsd:schema>
diff --git a/modules/CIAO/docs/schema/ciaopolicy.xsd b/modules/CIAO/docs/schema/ciaopolicy.xsd
new file mode 100644
index 00000000000..93a7415c4b4
--- /dev/null
+++ b/modules/CIAO/docs/schema/ciaopolicy.xsd
@@ -0,0 +1,607 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema targetNamespace="www.dre.vanderbilt.edu"
+ xmlns:ciao="www.dre.vanderbilt.edu"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified">
+
+ <xs:element name="orbPolicies">
+ <xs:annotation>
+ <xs:documentation>
+ The root element of the schema. Contains zero or more policies.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="policy" type="ciao:policyType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:complexType name="policyType">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="rebindPolicy" type="ciao:rebindPolicyType" />
+ <xs:element name="syncScopePolicy" type="ciao:syncScopePolicyType" />
+ <xs:element name="requestPriorityPolicy" type="ciao:requestPriorityPolicyType" />
+ <xs:element name="replyPriorityPolicy" type="ciao:replyPriorityPolicyType" />
+ <xs:element name="requestStartTimePolicy" type="ciao:requestStartTimePolicyType" />
+ <xs:element name="requestEndTimePolicy" type="ciao:requestEndTimePolicyType" />
+ <xs:element name="replyStartTimePolicy" type="ciao:replyStartTimePolicyType" />
+ <xs:element name="replyEndTimePolicy" type="ciao:replyEndTimePolicyType" />
+ <xs:element name="relativeRequestTimeoutPolicy" type="ciao:relativeRequestTimeoutPolicyType" />
+ <xs:element name="relativeRoundtripPolicy" type="ciao:relativeRoundtripPolicyType" />
+ <xs:element name="routingPolicy" type="ciao:routingPolicyType" />
+ <xs:element name="maxHopsPolicy" type="ciao:maxHopsPolicyType" />
+ <xs:element name="queueOrderPolicy" type="ciao:queueOrderPolicyType" />
+ <xs:element name="priorityModelPolicy" type="ciao:priorityModelPolicyType" />
+ <xs:element name="threadPoolPolicy" type="ciao:threadPoolPolicyType" />
+ <xs:element name="serverProtocolPolicy" type="ciao:serverProtocolPolicyType" />
+ <xs:element name="clientProtocolPolicy" type="ciao:clientProtocolPolicyType" />
+ <xs:element name="privateConnectionPolicy" type="ciao:privateConnectionPolicyType" />
+ <xs:element name="priorityBandedPolicy" type="ciao:priorityBandedPolicyType" />
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="policyBase" abstract="true">
+ <xs:annotation>
+ <xs:documentation>
+ This is the base policy type. All policies
+ should be an extension of this type.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="override" type="ciao:overrideType" />
+ <xs:element name="scope" type="ciao:scopeType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="scopeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ORB" />
+ <xs:enumeration value="THREAD" />
+ <xs:enumeration value="OBJECT" />
+ <xs:enumeration value="POA" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="policyIDType">
+ <xs:annotation>
+ <xs:documentation>
+ This type represents the policy ID.
+ Need to add a restriction.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:integer">
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="overrideType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="SET_OVERRIDE" />
+ <xs:enumeration value="ADD_OVERRIDE" />
+ </xs:restriction>
+ </xs:simpleType>
+
+
+
+ <!-- The following are extensions of policyBase, one each for each policy
+ we may want to group these into seperate schema documents, for our
+ own sanity.
+ -->
+ <!-- Policies 23 - 35 are defined in Messaging_No_Impl.pidl,
+ with the exception of policy 32, defined in Messaging_RT_Policy.pidl
+ and policy 24, defined in Messaging_SyncScope_Policy.pidl -->
+
+ <xs:complexType name="rebindPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents the RebindPolicy type, ID 23
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="rebindMode" type="ciao:rebindModeType" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="23" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="rebindModeType">
+ <xs:annotation>
+ <xs:documentation>
+ Note: This is not strictly represented in the pidl as an enum,
+ but that appears to be the intent of the way it is declared.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="TRANSPARENT" />
+ <xs:enumeration value="NO_REBIND" />
+ <xs:enumeration value="NO_RECONNECT" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="syncScopePolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a SyncScopePolicyType, ID 24
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="synchronization" type="ciao:syncScopeType" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="25" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="syncScopeType">
+ <xs:annotation>
+ <xs:documentation>
+ Note: This was not declared an enum in Messaging_SyncScope_Policy.pidl,
+ but from the declaration, that appears to be the intent.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="SYNC_NONE" />
+ <xs:enumeration value="SYNC_WITH_TRANSPORT" />
+ <xs:enumeration value="SYNC_WITH_SERVER" />
+ <xs:enumeration value="SYNC_WITH_TARGET" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="requestPriorityPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a RequestPriorityPolicy, ID 25
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="priorityRange" type="ciao:priorityRangeType" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="25" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="replyPriorityPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a ReplyPriorityPolicy, ID 26
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="priorityRange" type="ciao:priorityRangeType" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="26" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="priorityRangeType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a PriorityRange struct defined in Messaging_No_Impl.pidl
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="min" type="xs:integer" />
+ <xs:element name="max" type="xs:integer" />
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="requestStartTimePolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a RequestStartTimePolicy, ID 27
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="startTime" type="ciao:utcTime" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="27" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <xs:complexType name="requestEndTimePolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a RequestEndTimePolicy, ID 28
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="endTime" type="ciao:utcTime" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="28" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <xs:complexType name="replyStartTimePolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a ReplyStartTimePolicy, ID 29
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="startTime" type="ciao:utcTime" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="29" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <xs:complexType name="replyEndTimePolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a ReplyEndTimePolicy, ID 30
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="endTime" type="ciao:utcTime" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="30" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="utcTime">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a TimeBase::UtcT struct, defined in tao/TimeBase.pidl
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="time" type="xs:integer" />
+ <xs:element name="inaccLo" type="xs:integer" />
+ <xs:element name="inaccHi" type="xs:integer" />
+ <xs:element name="tdf" type="xs:integer" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="relativeRequestTimeoutPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a RelativeRequestTimeoutPolicy, ID 31.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="relativeExpiry" type="xs:integer" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="31" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="relativeRoundtripPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a RelativeRoundtripPolicy, ID 32
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="relativeExpiry" type="xs:integer" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="32" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="routingPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a RoutingPolicy, ID 33
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="routingTypeRangeMin" type="ciao:routingType" />
+ <xs:element name="routingTypeRangeMax" type="ciao:routingType" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="33" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="routingType">
+ <xs:annotation>
+ <xs:documentation>
+ Note: This is not explicitly set up as an enum in Messaging_No_Impl.pidl,
+ but that appears to be the intent from the declaration.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ROUTE_NONE" />
+ <xs:enumeration value="ROUTE_FORWARD" />
+ <xs:enumeration value="ROUTE_STORE_AND_FORWARD" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="maxHopsPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a MaxHopsPolicy, ID 34
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="maxHops" type="xs:integer" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="34" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="queueOrderPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a QueueOrderPolicy, ID 35
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="allowedOrders" type="ciao:ordersType" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="35" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="ordersType">
+ <xs:annotation>
+ <xs:documentation>
+ Note: This is not explicitly declared to be an enum in Messaging_No_Impl.pidl,
+ but that appears to be the intent from the declaration.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ORDER_ANY" />
+ <xs:enumeration value="ORDER_TEMPORAL" />
+ <xs:enumeration value="ORDER_PRIORITY" />
+ <xs:enumeration value="ORDER_DEADLINE" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Policies 40 - 45 are defined in RTCORBA.pidl -->
+ <!-- priorityModelPolicy -->
+ <xs:complexType name="priorityModelPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents the Priority Model Policy, ID 40
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="priorityModel" type="ciao:priorityModelType" />
+ <xs:element name="serverPriority" type="xs:integer" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="40" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="priorityModelType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="CLIENT_PROPAGATED" />
+ <xs:enumeration value="SERVER_DECLARED" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- threadPoolPolicy -->
+
+ <xs:complexType name="threadPoolPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents the ThreadPool policy, ID 41
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="threadPoolID" type="xs:integer" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="41" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <!-- serverProtocolPolicy -->
+
+ <xs:complexType name="serverProtocolPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents the Server Protocol policy, ID 42
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="protocol" type="ciao:protocolType"
+ minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="42" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <!-- clientProtocolPolicy -->
+ <xs:complexType name="clientProtocolPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents the Client Protocol policy, ID 43
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="protocol" type="ciao:protocolType"
+ minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="43" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <!-- Protocol definitions for client and server Protocol properties types. -->
+ <xs:complexType name="protocolType">
+ <xs:sequence>
+ <xs:element name="protocolType" type="xs:integer" />
+ <xs:element name="orbProtocolProperties" type="ciao:protocolPropertyType" />
+ <xs:element name="transportProtocolProperties" type="ciao:protocolPropertyType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="protocolPropertyType">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="tcpProtocolProperties" type="ciao:tcpProtocolPropertiesType" />
+ <xs:element name="giopProtocolProperties" type="ciao:giopProtocolPropertiesType" />
+ <xs:element name="unixDomainProtocolProperties" type="ciao:unixDomainProtocolPropertiesType" />
+ <xs:element name="sharedMemoryProtocolProperties" type="ciao:sharedMemoryProtocolPropertiesType" />
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="protocolPropertyBase" abstract="true">
+ <xs:annotation>
+ <xs:documentation>
+ Base type for all protocol properties.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="type" type="xs:string" use="required" />
+ </xs:complexType>
+
+ <xs:complexType name="tcpProtocolPropertiesType">
+ <xs:complexContent>
+ <xs:extension base="ciao:protocolPropertyBase">
+ <xs:sequence>
+ <xs:element name="sendBufferSize" type="xs:integer" />
+ <xs:element name="recvBufferSize" type="xs:integer" />
+ <xs:element name="keepAlive" type="xs:boolean" />
+ <xs:element name="dontRoute" type="xs:boolean" />
+ <xs:element name="noDelay" type="xs:boolean" />
+ <xs:element name="enableNetworkPriority" type="xs:boolean" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="giopProtocolPropertiesType">
+ <xs:complexContent>
+ <xs:extension base="ciao:protocolPropertyBase" />
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="unixDomainProtocolPropertiesType">
+ <xs:complexContent>
+ <xs:extension base="ciao:protocolPropertyBase">
+ <xs:sequence>
+ <xs:element name="sendBufferSize" type="xs:integer" />
+ <xs:element name="recvBufferSize" type="xs:integer" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="sharedMemoryProtocolPropertiesType">
+ <xs:complexContent>
+ <xs:extension base="ciao:protocolPropertyBase">
+ <xs:sequence>
+ <xs:element name="preallocateBufferSize" type="xs:integer" />
+ <xs:element name="mmapFilename" type="xs:string" />
+ <xs:element name="mmapLockname" type="xs:string" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- TODO: Provide other protocolProperties types -->
+
+ <!-- privateConnectionPolicy -->
+ <xs:complexType name="privateConnectionPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ privateConnectionPolicy extension of policyBase, ID 44
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <!-- empty -->
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="44" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <!-- priorityBandedPolicy -->
+ <xs:complexType name="priorityBandedPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ priorityBandedPolicy extension of policyBase, ID 45
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="priorityBand" type="ciao:priorityBandType"
+ minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="45" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <xs:complexType name="priorityBandType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents the PriorityBand struct for the priorityBandedPolicy element.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="low" type="xs:integer" />
+ <xs:element name="high" type="xs:integer" />
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+</xs:schema> \ No newline at end of file
diff --git a/modules/CIAO/docs/schema/cid.xsd b/modules/CIAO/docs/schema/cid.xsd
new file mode 100644
index 00000000000..7e5233d770f
--- /dev/null
+++ b/modules/CIAO/docs/schema/cid.xsd
@@ -0,0 +1,80 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+ <xsd:include schemaLocation="Basic_Deployment_Data.xsd" />
+ <xsd:include schemaLocation="cpd.xsd" />
+ <xsd:include schemaLocation="iad.xsd" />
+ <xsd:include schemaLocation="pcd.xsd" />
+
+ <xsd:complexType name="SubcomponentInstantiationDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription" minOccurs="0" />
+ <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration" minOccurs="0" />
+ <xsd:element name="selectRequirement" type="Deployment:Requirement" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="referencedPackage" type="Deployment:ComponentPackageReference" minOccurs="0"/>
+ <xsd:element name="importedPackage" type="Deployment:ComponentPackageImport" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="SubcomponentPropertyReference">
+ <xsd:sequence>
+ <xsd:element name="propertyName" type="xsd:string"/>
+ <xsd:element name="instance" type="xsd:IDREF"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="AssemblyPropertyMapping">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="externalName" type="xsd:string"/>
+ <xsd:element name="delegatesTo" type="Deployment:SubcomponentPropertyReference" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ComponentAssemblyDescription">
+ <xsd:sequence>
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription" maxOccurs="unbounded"/>
+ <xsd:element name="connection" type="Deployment:AssemblyConnectionDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <!-- <xsd:element name="locality" type="Deployment:Locality" minOccurs="0" maxOccurs="unbounded" /> -->
+ <xsd:element name="externalProperty" type="Deployment:AssemblyPropertyMapping" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="MonolithicImplementationDescription">
+ <xsd:sequence>
+ <xsd:element name="nodeExecParameter" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="componentExecParameter" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="deployRequirement" type="Deployment:ImplementationRequirement" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="primaryArtifact" type="Deployment:NamedImplementationArtifact" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ComponentImplementationDescription">
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0" />
+ <!-- @@ MAJO : Hack: Implements should be required. -->
+ <xsd:element name="implements" type="Deployment:ComponentInterfaceDescription" minOccurs="0" />
+ <xsd:choice>
+ <xsd:element name="assemblyImpl" type="Deployment:ComponentAssemblyDescription"/>
+ <xsd:element name="monolithicImpl" type="Deployment:MonolithicImplementationDescription"/>
+ </xsd:choice>
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="capability" type="Deployment:Capability" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="dependsOn" type="Deployment:ImplementationDependency" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string"/>
+ </xsd:choice>
+ <xsd:attribute name="href" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+
+
+</xsd:schema>
diff --git a/modules/CIAO/docs/schema/cpd.xsd b/modules/CIAO/docs/schema/cpd.xsd
new file mode 100644
index 00000000000..6f049fa839b
--- /dev/null
+++ b/modules/CIAO/docs/schema/cpd.xsd
@@ -0,0 +1,35 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+ <xsd:include schemaLocation="ccd.xsd" />
+ <xsd:include schemaLocation="cid.xsd" />
+
+ <xsd:complexType name="PackagedComponentImplementation">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <!-- @@ recursive CPD->PCI->CID->CAD->SID->CPD -->
+ <xsd:element name="referencedImplementation" type="Deployment:ComponentImplementationDescription"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ComponentPackageDescription">
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0" />
+ <!-- @@MAJO - This is a hack, realizes is required. -->
+ <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription" minOccurs="0" />
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="implementation" type="Deployment:PackagedComponentImplementation" maxOccurs="unbounded" />
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string"/>
+ </xsd:choice>
+ <xsd:attribute name="href" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+
+</xsd:schema>
+
diff --git a/modules/CIAO/docs/schema/iad.xsd b/modules/CIAO/docs/schema/iad.xsd
new file mode 100644
index 00000000000..2f910b5d333
--- /dev/null
+++ b/modules/CIAO/docs/schema/iad.xsd
@@ -0,0 +1,32 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+<xsd:include schemaLocation="Basic_Deployment_Data.xsd" />
+
+ <xsd:complexType name="NamedImplementationArtifact">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <!-- @@ recursive NIA->IAD->NIA -->
+ <xsd:element name="referencedArtifact" type="Deployment:ImplementationArtifactDescription"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ImplementationArtifactDescription">
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0" />
+ <xsd:element name="location" type="xsd:string" maxOccurs="unbounded"/>
+ <xsd:element name="dependsOn" type="Deployment:NamedImplementationArtifact" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string"/>
+ </xsd:choice>
+ <xsd:attribute name="href" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+</xsd:schema> \ No newline at end of file
diff --git a/modules/CIAO/docs/schema/pcd.xsd b/modules/CIAO/docs/schema/pcd.xsd
new file mode 100644
index 00000000000..05b10e1bb79
--- /dev/null
+++ b/modules/CIAO/docs/schema/pcd.xsd
@@ -0,0 +1,32 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+ <xsd:include schemaLocation="Basic_Deployment_Data.xsd" />
+ <xsd:include schemaLocation="cpd.xsd" />
+
+ <xsd:complexType name="ComponentPackageImport">
+ <xsd:sequence>
+ <xsd:element name="location" type="xsd:string" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="PackageConfiguration">
+ <xsd:choice>
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0" />
+ <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription" minOccurs="0" />
+ <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration" minOccurs="0" />
+ <xsd:element name="importedPackage" type="Deployment:ComponentPackageImport" minOccurs="0" />
+ <xsd:element name="referencedPackage" type="Deployment:ComponentPackageReference" minOccurs="0"/>
+ <xsd:element name="selectRequirement" type="Deployment:Requirement" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+</xsd:schema> \ No newline at end of file
diff --git a/modules/CIAO/docs/schema/toplevel.xsd b/modules/CIAO/docs/schema/toplevel.xsd
new file mode 100644
index 00000000000..0c67f5fb7a9
--- /dev/null
+++ b/modules/CIAO/docs/schema/toplevel.xsd
@@ -0,0 +1,15 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+ <xsd:include schemaLocation="pcd.xsd" />
+
+ <xsd:complexType name="TopLevelPackageDescription">
+ <xsd:sequence>
+ <xsd:element name="basePackage" type="Deployment:PackageConfiguration" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/modules/CIAO/docs/schema/unused_elements.xsd b/modules/CIAO/docs/schema/unused_elements.xsd
new file mode 100644
index 00000000000..c1200b088e9
--- /dev/null
+++ b/modules/CIAO/docs/schema/unused_elements.xsd
@@ -0,0 +1,161 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+<!-- VAULT
+
+Place for strange things. Nobody knows what they are for...
+
+-->
+
+<!--
+
+ <xsd:complexType name="EnumType">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="xsd:string" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ObjrefType">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="BoundedStringType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bound" type="xsd:string"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="FixedType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="digits" type="xsd:string"/>
+ <xsd:element name="scale" type="xsd:string"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ArrayType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="length" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="SequenceType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bound" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="AliasType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="StructType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="Deployment:StructMemberType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="StructMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="ValueType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="modifier" type="xsd:string"/>
+ <xsd:element name="baseType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:ValueMemberType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="ValueMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="visibility" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="UnionType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="default" type="Deployment:UnionMemberType"/>
+ <xsd:element name="discriminatorType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:UnionMemberType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="UnionMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element name="label" type="Deployment:DataValue"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="NamedValue">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="PlanPropertyMapping">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="externalName" type="xsd:string"/>
+ <xsd:element name="delegatesTo" type="Deployment:PlanSubcomponentPropertyReference"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="PlanSubcomponentPropertyReference">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="propertyName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+-->
+
+<!--
+
+ This type is not referenced anywhere.
+
+ <xsd:complexType name="RequirementSatisfier">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+-->
+
+</xsd:schema>
diff --git a/modules/CIAO/docs/schema/xsc-banner.cpp b/modules/CIAO/docs/schema/xsc-banner.cpp
new file mode 100644
index 00000000000..ecd90a877a6
--- /dev/null
+++ b/modules/CIAO/docs/schema/xsc-banner.cpp
@@ -0,0 +1,11 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
diff --git a/modules/CIAO/docs/schema/xsc-banner.h b/modules/CIAO/docs/schema/xsc-banner.h
new file mode 100644
index 00000000000..9f433e2a68a
--- /dev/null
+++ b/modules/CIAO/docs/schema/xsc-banner.h
@@ -0,0 +1,18 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#include "XSC_XML_Handlers_Export.h"
diff --git a/modules/CIAO/docs/static_ciao_contents.html b/modules/CIAO/docs/static_ciao_contents.html
new file mode 100755
index 00000000000..d043e4c0aee
--- /dev/null
+++ b/modules/CIAO/docs/static_ciao_contents.html
@@ -0,0 +1,359 @@
+<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type"
+ content="text/html; charset=iso-8859-1">
+ <meta name="Author" content="Venkita Subramonian">
+ <meta name="GENERATOR"
+ content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
+ <title>CIAO Static Configuration</title>
+ <base target="main"><!-- $Id$ -->
+</head>
+<body>
+<center>
+<h2>CIAO Static Configuration Support for Real-Time Platforms</h2>
+</center>
+<h3>
+<a name="intro"></a>1. Introduction</h3>
+The dynamic packaging, assembly, and deployment mechanisms currently
+available
+in CIAO are useful for application domains where component metadata is
+less likely to be known a priori, where implementation upgrades may
+need
+to be performed on-line, and where platform features like loading and
+unloading
+dynamic libraries are both available and useful.&nbsp; Furthermore, the
+new CCM Deployment and Configuration specification describes a wider
+range
+of configuration capabilities, opening up the question of alternative
+component
+configuration strategies more generally and requiring that any solution
+we devise can be migrated to that new configuration approach.
+<p>Therefore, we have incorporated support for component configuration
+in CIAO on platforms like VxWorks, as a set of optional strategies and
+optimizations to the existing CIAO configuration capabilities.&nbsp; By
+supporting both dynamic and static styles of configuration in CIAO, we
+will both (1) be able to realize our short term goals in making CIAO
+available
+on VxWorks for use in the Boeing PCES/MoBIES OEP, and (2) set a
+precedent
+for availability of static configuration capabilities more generally,
+so
+that DRE systems are well-supported within the new Deployment and
+Configuration
+specification implementation for CIAO as well.
+</p>
+<p>The fundamental intuition in understanding our approach is that in
+DRE
+systems the stages of the overall system lifecycle are similar to those
+in more dynamic conventional component-oriented client-server
+applications.&nbsp;
+However, in DRE systems several phases of the system lifecycle are
+compressed
+into the compile-time and system-initialization phases, so that (1) for
+testing and verification purposes the set of components in an
+application
+can be identified and analyzed before run-time, and (2) overheads for
+run-time
+operation following initialization are reduced and made more
+predictable.
+Furthermore, due to the nuances of the platforms traditionally used for
+deploying DRE systems, not all features of conventional platforms are
+available.
+Our approach therefore avoids certain mechanisms that are either
+unavailable
+or too costly in terms of performance.
+</p>
+<p>We follow these intuitions in our approach, taking the existing
+configuration
+phases in CIAO and pushing several of them earlier in the configuration
+lifecycle.&nbsp; We ensure that our approach can be realized in the
+context
+of the platforms on which the Boeing PCES/MoBIES OEP will be deployed,
+notably VxWorks, by re-factoring the configuration mechanisms and
+retargeting
+them to use only the services available on the target real-time
+platforms.
+<br>
+&nbsp;
+</p>
+<h3><a name="currentarch"></a>2. Current CIAO Configuration Architecture</h3>
+<center>
+<p><br>
+<img src="imgs/ciao-dynamic1.jpg" height="462" width="774"></p>
+<p><b>Figure 1. Current configuration process in CIAO</b></p>
+</center>
+<p>The first stage of the CIAO system lifecycle occurs off-line, when
+component
+package (.csd) and assembly (.cad) files are generated by a modeling
+tool
+or other prior stage of the tool chain.&nbsp; These files contain an
+abstract
+specification of the configuration that is to be achieved by CIAO in
+each
+particular deployment environment .
+</p>
+<p>CIAO interprets these .csd and .cad files, and creates and
+configures
+the components, their run-time server environments, and QoS properties
+within the supporting ORB and other related infrastructure.&nbsp;
+Currently,
+CIAO runs several daemon processes for each deployment environment: one
+or more Component Installation / Server Activation (CISA) daemons on
+each
+machine where components can be deployed, an additional Assembly
+Manager
+daemon and an Assembly Deployer process used by the system developer.
+</p>
+<p>The Assembly Manager stores an internal table with the target
+platform
+availability information .&nbsp;&nbsp;&nbsp; The Assembly Deployer
+tells
+the Assembly Manager which assemblies of components (each assembly is
+defined
+in a separate .cad file) should be deployed on which target
+machines.&nbsp;
+The Assembly Manager parses the XML structures in the .cad file, and
+generates
+its own internal data structure (<b>Figure 2</b>) as an intermediate
+representation
+of that assembly.
+</p>
+<p>The Assembly Manager then traverses (<b>Figure 2</b>) this
+intermediate
+representation, instructing each CISA daemon to install and configure
+specific
+component servers and containers, to create specific homes, and to
+instantiate
+specific component instances.&nbsp;&nbsp;&nbsp; Each CISA daemon has
+additional
+information about the component implementations available on that
+endsystem
+&#8211; each component UUID is mapped to a disk path for the .dll or .so file
+within which a factory method for its home factory is defined.
+</p>
+<center>
+<p><img src="imgs/ciao-dynamic2.jpg" height="384" width="699"></p>
+<p><b>Figure 2. Intermediate representation of configuration information</b></p>
+</center>
+<p>The following steps are optional, and will only be performed if they
+are explicitly specified in the assembly definition itself.&nbsp; For
+the
+sake of discussion, we consider the case where all the steps are in
+fact
+specified.&nbsp; The Assembly Manager will tell the CISA daemon the
+UUIDs
+of the components to be installed in that component server, and the
+CISA
+daemon will look up and load the appropriate dynamic library, invoke
+the
+home factory method to create the home, and then invoke the home&#8217;s
+component
+creation method.&nbsp; After all the component instances and homes have
+been created and references to them have been obtained, the assembly
+manager
+will then make all the connections between ports and receptacles,
+facets,
+and event sources and sinks by invoking connect and subscribe methods
+on
+the receiving end component.
+</p>
+<p>QoS-specific metadata like priorities can be configured by a .cad
+file
+extension called a real-time descriptor (.rtcad) file.&nbsp; The
+Assembly
+Manager will read the .rtcad file and will parse and associate
+real-time
+policies with the appropriate component instances.&nbsp;&nbsp; One
+implication
+of this mechanism is that the Assembly Manager will maintain QoS
+meta-data
+within its intermediate representation, alongside the conventional CCM
+meta-data.
+</p>
+<p>Furthermore, when the Assembly Manager interacts with the CISA
+daemon(s)
+on each endsystem, commands to configure particular component and
+component
+server run-time infrastructure QoS properties are passed from the
+Assembly
+Manager to the CISA daemon.&nbsp; The ORB (and as a future extension
+the
+ORB Services) of the endsystem on which the components are installed is
+currently configured via the ACE Service Configurator.&nbsp; The CISA
+daemon
+maps different service configurations (as defined in particular
+svc.conf
+files) to logical names used in the component assembly descriptors.
+</p>
+<p>The logical configuration names are encoded within the .cad file as
+an extension of the conventional .cad file format using the &#8220;extension&#8221;
+element of the existing .cad file XML DTD.&nbsp; The Assembly Manager
+passes
+a component server creation command, containing a logical configuration
+name, which the CISA daemon maps to a particular svc.conf file when it
+creates a new component server.&nbsp; The CISA daemon adds a command
+line
+flag to the execution command line used to spawn the new component
+server,
+which causes that configuration file to be parsed and applied during
+startup
+of the component server itself.
+</p>
+<h3><a name="staticapproach"></a>3. Static Configuration Approach</h3>
+In the static configuration approach (<b>Figure 3</b>),
+configurations&nbsp;
+XML files are translated in a code generation step just before compile
+time (managed by the same project/Makefile processes that do the
+compilation)
+into C++ header and source files that are then compiled and linked with
+the main application.
+<center>
+<p><img src="imgs/ciao-static1.jpg" height="523" width="800"></p>
+<p><b>Figure 3. Static Configuration in CIAO</b></p>
+</center>
+<p>First, one of the generated files is a C++ header file, so that it
+can
+be included directly by C++ source files.&nbsp; There is no additional
+parsing required to import a number of static constants and identifiers
+it declares and defines, so that those constants end up being compiled
+directly into C++ code.&nbsp; Second, where enumeration of information
+is needed, the header file contains simple homogeneous C++ arrays so
+that
+C++ source code can iterate over those arrays with minimal
+overhead.&nbsp;
+Third, it declares information so that later information depends on
+earlier
+information (<b>Figure 4</b>), and the components are directly
+configured
+within that header file.
+</p>
+<center>
+<p><img src="imgs/ciao-static2.jpg" height="476" width="816"></p>
+<p><b>Figure 4. All XML files are parsed offline and stored as
+cross-referenced
+tables in Static_Assembly_Config.h</b></p>
+</center>
+<p>The major issues that we addressed in developing a re-factored
+version
+of the CIAO configuration mechanisms are as follows:
+</p>
+<p>1. XML parsing is too expensive to be performed during system
+initialization,
+so that all such parsing has been moved off-line to before
+compile-time,
+and the resulting information is linked statically into the application
+itself.
+</p>
+<p>2. Each endsystem boots and initializes in a single process address
+space, so that any remaining inter-process communication between
+daemons
+is replaced by direct interactions between objects, or at most between
+threads.
+</p>
+<p>3. Dynamic link libraries are unavailable on VxWorks, so an
+alternative
+mechanism for obtaining the home factory method entry point is needed.
+We gather this information from the XML files and statically generate a
+map containing&nbsp; the entry point function names and the entry point
+function pointers. This information will be used by the CIAO container
+implementation instead of trying to load a dll and then finding the
+entry
+point in the dll.
+</p>
+<h4>Moving XML Parsing Earlier</h4>
+We first focused on taking the XML parsing stage off-line.&nbsp; Since
+the time required to do this by CIAO is currently reasonable as an
+off-line
+activity, we simply created (<b>Figure 4</b>) a stripped-down version
+of
+the Assembly Manager (reusing the existing class libraries the Assembly
+Manager uses) that after it performs the XML parsing and generation of
+its intermediate representation, emits a C++ header file containing
+that
+intermediate representation.
+<h4>Combining Configuration Daemons at Run-Time</h4>
+The intermediate representation is included in a configuration engine
+(CIAO::Static_Configurator)
+that consists of a simple reader for the intermediate representation,
+again
+derived from the code currently used in the Assembly Manager, which
+will
+dispatch to the configuration code used by the CISA daemons in the
+dynamic
+case.&nbsp; The configuration engine will be invoked from the
+application&#8217;s
+main entry point prior to starting execution of the application itself.
+<h4>Eliminating Dynamic Library Loading</h4>
+All code will need to be known a priori, and linked statically into the
+application.&nbsp; If alternative configurations must be supported
+statically,
+then those separate configurations can be alternative selections chosen
+during the build process.&nbsp; If alternative configurations must be
+selected
+adaptively at run-time then all the code for each possible
+configuration
+must be linked in statically, and appropriate mechanisms used to
+re-target
+a logical name dynamically to each particular configuration (e.g.,
+different
+configurations for different system modes).
+<br>
+&nbsp;
+<br>
+&nbsp;
+<br>
+<br>
+<center>
+<p><img src="imgs/ciao-static-vs-dynamic.jpg" height="384" width="735"><br>
+<b>Figure 5. CIAO Dynamic vs Static Configuration</b></p>
+</center>
+<h3>
+<a name="status"></a><b>4. Status of CIAO Static Configuration</b></h3>
+The initial version of the CIAO static configurator is available under
+$CIAO_ROOT/tools/static_configurator.
+<p>To run the static configurator,
+</p>
+<p><b><tt>Static_Assembly_Parser -a &lt;.cad file&gt;</tt></b>
+</p>
+<p>This will generate three files -
+</p>
+<p><b><tt>Static_CCM_App.cpp</tt></b> - this file contains the main
+program
+which instantiates the component server and invokes the static
+configuration
+engine to create containers, homes, etc.
+</p>
+<p><b><tt>Static_CCM_App.mpc</tt></b> - this file contains the
+necessary
+files for building the static application. You have to manually change
+this file so as to include files that are not known to the static
+configurator.
+</p>
+<p><b><tt>Static_Assembly_Config.h</tt></b> - this file contains the
+C++
+intermediate representation of all the information in the .cad, .csd
+and
+.ssd XML files.
+</p>
+<p><a name="Example"></a><b>Example</b> - An <a
+ href="static_config_example.html">example</a>
+run is shown using the <a href="../examples/OEP/BasicSP">BasicSP</a>
+scenario.
+</p>
+<h3><a name="futurework"></a><b>5. Future work</b></h3>
+<p>The current implementation does not have support for multiple
+component
+servers running on multiple processors. Multiprocessor scenario
+involves
+coordination and synchronization among the component servers running on
+different processors. There has to be some kind of a mediator which
+determines
+that all components are instantiated before connections can be made
+among
+them.<br>
+<br>
+&nbsp;
+</p>
+</body>
+</html>
diff --git a/modules/CIAO/docs/static_ciao_index.html b/modules/CIAO/docs/static_ciao_index.html
new file mode 100755
index 00000000000..627e07c65ca
--- /dev/null
+++ b/modules/CIAO/docs/static_ciao_index.html
@@ -0,0 +1,23 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<title>New Page 1</title>
+<!-- $Id$ -->
+
+</head>
+
+<frameset cols="294,*">
+ <frame name="contents" target="main" src="static_ciao_toc.html">
+ <frame name="main" src="static_ciao_contents.html" target="main">
+ <noframes>
+ <body>
+
+ <p>This page uses frames, but your browser doesn't support them.</p>
+
+ </body>
+ </noframes>
+</frameset>
+
+</html>
diff --git a/modules/CIAO/docs/static_ciao_toc.html b/modules/CIAO/docs/static_ciao_toc.html
new file mode 100755
index 00000000000..35adb51ec1c
--- /dev/null
+++ b/modules/CIAO/docs/static_ciao_toc.html
@@ -0,0 +1,26 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="Author" content="Venkita Subramonian">
+ <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+ <title>CIAO Static Configuration</title>
+ <base target="contents">
+<!-- $Id$ -->
+</head>
+<body>
+<h3 align="center">CIAO Static Configuration Documentation </h3>
+
+<ol>
+
+<li><a target="main" href="static_ciao_contents.html#intro">Introduction</a></li>
+<li><a target="main" href="static_ciao_contents.html#currentarch">Current CIAO Configuration
+Architecture</a></li>
+<li><a target="main" href="static_ciao_contents.html#staticapproach">Static Configuration
+Approach</a></li>
+<li><a target="main" href="static_ciao_contents.html#status">Status of CIAO Static Configuration</a><br>
+<a target="main" href="static_ciao_contents.html#Example">Example</a></li>
+<li><a target="main" href="static_ciao_contents.html#futurework">Future work</a></li>
+</ol>
+</body>
+</html>
diff --git a/modules/CIAO/docs/static_config_example.html b/modules/CIAO/docs/static_config_example.html
new file mode 100644
index 00000000000..5e8c806e2cd
--- /dev/null
+++ b/modules/CIAO/docs/static_config_example.html
@@ -0,0 +1,1353 @@
+<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type"
+ content="text/html; charset=iso-8859-1">
+ <meta name="Author" content="Venkita Subramonian">
+ <meta name="GENERATOR"
+ content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
+ <title>BasicSP example using CIAO Static Configurator</title>
+<!-- $Id$ -->
+</head>
+<body>
+This example illustrates
+how to use the CIAO static configurator for building applications
+statically.
+For an example using RTCORBA policies, see <a
+ href="static_config_rtexample.html">BasicSP with RTCORBA extensions</a>.
+From the <a href="../examples/OEP/BasicSP">BasicSP</a> directory do
+the
+following.
+<p><b><tt>&gt; cd descriptors</tt></b>
+<br>
+<b><tt>&gt; $CIAO_ROOT/tools/static_configurator/Static_Assembly_Parser
+-a BasicSP.cad</tt></b>
+</p>
+<p>The following files are generated -
+</p>
+<p><a href="#Static_Assembly_Config.h">Static_Assembly_Config.h</a>
+<br>
+<a href="#Static_CCM_App.cpp">Static_CCM_App.cpp</a>
+<br>
+<a href="#Static_CCM_App.mpc">Static_CCM_App.mpc</a>
+</p>
+<p><a href="#Static_Assembly_Config.h">Static_Assembly_Config.h</a>
+contains
+the intermediate representation of all the parsed component and
+assembly
+information obtained from the XML files. <a href="#Static_CCM_App.cpp">Static_CCM_App.cpp</a>&nbsp;
+contains the main driver application. Here a runtime <a
+ href="#static%20config%20engine">static
+configuration engine</a> is used to create containers, homes,
+components,
+etc and then establish necessary connections between the components. In
+the BasicSP example, an external controller&nbsp; (see <tt><a
+ href="../examples/OEP/BasicSP/README">$CIAO_ROOT/examples/OEP/BasicSP/README</a></tt>)
+is used to start or stop a pulser. The generated main driver
+application
+(Static_CCM_App.cpp) is <a href="#Modified%20Static_CCM_App.cpp">modified</a>
+to add code to trigger the pulser object on. The generated .mpc file is
+<a href="#Modified%20Static_CCM_App.mpc">modified</a>
+to add all other necessary files so that the application can be built
+statically.
+Note that the static configurator only generates only certain file
+names
+in the .mpc file. These filenames are obtained from the XML descriptor
+files. All other necessary files have to be added manually as
+indicated.
+</p>
+<p>Now the static build files can be generated by running the mpc
+utility.
+</p>
+<p><b><tt>&gt; cd ..</tt></b>
+<br>
+<b><tt>&gt; $ACE_ROOT/bin/mpc -static Static_CCM_App.mpc</tt></b>
+</p>
+<p><a name="Static_Assembly_Config.h"></a><b><u>Static_Assembly_Config.h</u></b>
+<br>
+<tt><font color="#3333ff">#include "Static_Assembly.h"</font></tt>
+</p>
+<p><tt><font color="#3333ff">#include "CCM_ContainerC.h"</font></tt>
+<br>
+<tt><font color="#3333ff">#include "Container_Base.h"</font></tt>
+</p>
+<p><tt><font color="#3333ff">//Containers</font></tt>
+<br>
+<tt><font color="#3333ff">CIAO::Static_Config::ContainerAttributes
+containers_table_[]=</font></tt>
+<br>
+<tt><font color="#3333ff">{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"", 0}</font></tt>
+<br>
+<tt><font color="#3333ff">};</font></tt>
+<br>
+&nbsp;
+</p>
+<p><tt><font color="#3333ff">extern "C"
+::Components::HomeExecutorBase_ptr
+createECHome_Impl (void);</font></tt>
+<br>
+<tt><font color="#3333ff">extern "C" ::PortableServer::Servant
+createECHome_Servant</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; (::Components::HomeExecutorBase_ptr
+p,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ::CIAO::Session_Container *c</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ACE_ENV_ARG_DECL_WITH_DEFAULTS);</font></tt>
+<br>
+<tt><font color="#3333ff">extern "C" ::Components::HomeExecutorBase_ptr
+createBMDeviceHome_Impl (void);</font></tt>
+<br>
+<tt><font color="#3333ff">extern "C" ::PortableServer::Servant
+createBMDeviceHome_Servant</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; (::Components::HomeExecutorBase_ptr
+p,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ::CIAO::Session_Container *c</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ACE_ENV_ARG_DECL_WITH_DEFAULTS);</font></tt>
+<br>
+<tt><font color="#3333ff">extern "C" ::Components::HomeExecutorBase_ptr
+createBMClosedEDHome_Impl (void);</font></tt>
+<br>
+<tt><font color="#3333ff">extern "C" ::PortableServer::Servant
+createBMClosedEDHome_Servant</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; (::Components::HomeExecutorBase_ptr
+p,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ::CIAO::Session_Container *c</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ACE_ENV_ARG_DECL_WITH_DEFAULTS);</font></tt>
+<br>
+<tt><font color="#3333ff">extern "C" ::Components::HomeExecutorBase_ptr
+createBMDisplayHome_Impl (void);</font></tt>
+<br>
+<tt><font color="#3333ff">extern "C" ::PortableServer::Servant
+createBMDisplayHome_Servant</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; (::Components::HomeExecutorBase_ptr
+p,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ::CIAO::Session_Container *c</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ACE_ENV_ARG_DECL_WITH_DEFAULTS);</font></tt>
+<br>
+<tt><font color="#3333ff">//Homes</font></tt>
+<br>
+<tt><font color="#3333ff">CIAO::Static_Config::HomeAttributes
+homes_table_[]=</font></tt>
+<br>
+<tt><font color="#3333ff">{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"a_ECHome",
+"DCE:3148F760-F2ED-4204-A775-6B972C10E8CB",
+"createECHome_Impl", createECHome_Impl,
+"DCE:75309233-0E0A-4cfb-B186-3E99F69B1D40",
+"createECHome_Servant", createECHome_Servant, 0, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"a_BMDeviceHome",
+"DCE:82C2B032-37F0-4315-A59F-7020D3264E4D",
+"createBMDeviceHome_Impl", createBMDeviceHome_Impl,
+"DCE:93D254CF-9538-44e8-BB98-AABCD134ADD3",
+"createBMDeviceHome_Servant", createBMDeviceHome_Servant, 0, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"a_BMClosedEDHome",
+"DCE:8E6C468D-A39F-46b4-962B-265F1AA8D538",
+"createBMClosedEDHome_Impl", createBMClosedEDHome_Impl,
+"DCE:CDC06FCA-50FC-43ca-8ECC-BEFBD33FEE78",
+"createBMClosedEDHome_Servant", createBMClosedEDHome_Servant, 0, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"a_BMDisplayHome",
+"DCE:8E92655E-CA07-46C8-B127-0F0872A8CC29",
+"createBMDisplayHome_Impl", createBMDisplayHome_Impl,
+"DCE:D7984625-8561-431d-9927-4E498B317C02",
+"createBMDisplayHome_Servant", createBMDisplayHome_Servant, 0, 0 }</font></tt>
+<br>
+<tt><font color="#3333ff">};</font></tt>
+<br>
+&nbsp;
+</p>
+<p><tt><font color="#3333ff">//Components</font></tt>
+<br>
+<tt><font color="#3333ff">CIAO::Static_Config::ComponentAttributes
+components_table_[]=</font></tt>
+<br>
+<tt><font color="#3333ff">{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"a_EC", 0, 0, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"a_BMDevice", -1, -1, 1 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"a_BMClosedED", -1, -1, 2 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"a_BMDisplay", -1, -1, 3 }</font></tt>
+<br>
+<tt><font color="#3333ff">};</font></tt>
+<br>
+&nbsp;
+</p>
+<p><tt><font color="#3333ff">//Component Registrations</font></tt>
+<br>
+<tt><font color="#3333ff">CIAO::Assembly_Placement::componentinstantiation::Register_Info
+component_registrations_table_[]=</font></tt>
+<br>
+<tt><font color="#3333ff">{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Placement::componentinstantiation::COMPONENT,
+CIAO::Assembly_Placement::componentinstantiation::IORFILE, "", "ec.ior"
+}</font></tt>
+<br>
+<tt><font color="#3333ff">};</font></tt>
+<br>
+&nbsp;
+</p>
+<p><tt><font color="#3333ff">//Connections</font></tt>
+<br>
+<tt><font color="#3333ff">CIAO::Static_Config::ConnectionAttributes
+connections_table_[]=</font></tt>
+<br>
+<tt><font color="#3333ff">{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::PUBLISHER_CONSUMER,
+"", "timeout", 0, 1, 0, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::PUBLISHER_CONSUMER,
+"", "data_available", 3, 4, 0, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::PUBLISHER_CONSUMER,
+"", "out_avail", 6, 7, 0, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::INTERFACE,
+"", "datain", 9, 10, 0, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::INTERFACE,
+"", "comp_data", 12, 13, 0, 0 }</font></tt>
+<br>
+<tt><font color="#3333ff">};</font></tt>
+<br>
+&nbsp;
+</p>
+<p><tt><font color="#3333ff">//Resolver Infos</font></tt>
+<br>
+<tt><font color="#3333ff">CIAO::Static_Config::ResolveInfoAttributes
+resolvers_table_[]=</font></tt>
+<br>
+<tt><font color="#3333ff">{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_EC", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::CONSUMER,
+"timeout", 2, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMDevice", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMDevice", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::CONSUMER,
+"in_avail", 5, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMClosedED", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMClosedED", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::CONSUMER,
+"data_ready", 8, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMDisplay", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMClosedED", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::PROVIDER,
+"data_read", 11, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMDevice", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMDisplay", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::PROVIDER,
+"dataout", 14, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMClosedED", -1, 0 }</font></tt>
+<br>
+<tt><font color="#3333ff">};</font></tt>
+</p>
+<p><a name="Static_CCM_App.cpp"></a><b><u>Static_CCM_App.cpp</u></b>
+<br>
+<tt><font color="#3333ff">#include "ComponentServer_Impl.h"</font></tt>
+<br>
+<tt><font color="#3333ff">#include "CIAO_ServersC.h"</font></tt>
+<br>
+<tt><font color="#3333ff">#include "Server_init.h"</font></tt>
+<br>
+<tt><font color="#3333ff">#include "Static_Configurator.h"</font></tt>
+<br>
+<tt><font color="#3333ff">#include "ace/SString.h"</font></tt>
+<br>
+<tt><font color="#3333ff">#include "ace/Get_Opt.h"</font></tt>
+</p>
+<p><tt><font color="#3333ff">#include "Static_Assembly_Config.h"</font></tt>
+</p>
+<p><tt><font color="#3333ff">char *ior_file_name_ = "comp_serv.ior";</font></tt>
+</p>
+<p><tt><font color="#3333ff">int</font></tt>
+<br>
+<tt><font color="#3333ff">parse_args (int argc, char *argv[])</font></tt>
+<br>
+<tt><font color="#3333ff">{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ACE_Get_Opt get_opts (argc, argv,
+"k:o:");</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; int c;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp; while ((c = get_opts ()) != -1)</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp; switch (c)</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
+'o':&nbsp;
+// get the file name to write to</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ior_file_name_
+= get_opts.opt_arg ();</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
+'?':&nbsp;
+// display help for use of the server.</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ERROR_RETURN ((LM_ERROR,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"usage:&nbsp; %s\n"</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"-o &lt;ior_output_file&gt;\n"</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"\n",</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+argv [0]),</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+-1);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp; return 0;</font></tt>
+<br>
+<tt><font color="#3333ff">}</font></tt>
+<br>
+&nbsp;
+</p>
+<p><tt><font color="#3333ff">int</font></tt>
+<br>
+<tt><font color="#3333ff">main (int argc, char *argv[])</font></tt>
+<br>
+<tt><font color="#3333ff">{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ACE_TRY_NEW_ENV</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp; {</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Initialize
+orb</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CORBA::ORB_var
+orb = CORBA::ORB_init (argc,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+argv,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+0</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::Server_init
+(orb.in ());</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
+(parse_args
+(argc, argv) != 0)</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+return -1;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Get
+reference
+to Root POA.</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CORBA::Object_var
+obj</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= orb-&gt;resolve_initial_references ("RootPOA"</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::POA_var
+poa</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= PortableServer::POA::_narrow (obj.in ()</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Activate
+POA manager</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::POAManager_var
+mgr</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= poa-&gt;the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+mgr-&gt;activate
+(ACE_ENV_SINGLE_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::ComponentServer_Impl
+*comserv_servant;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::Static_Configurator
+configurator;</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
+containers_table_size
+=</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(containers_table_)/sizeof(CIAO::Static_Config::ContainerAttributes);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
+homes_table_size
+=</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof (homes_table_)/sizeof(CIAO::Static_Config::HomeAttributes);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
+components_table_size
+=</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(components_table_)/sizeof(CIAO::Static_Config::ComponentAttributes);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
+component_registrations_table_size
+=</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(component_registrations_table_)/sizeof(CIAO::Assembly_Placement::componentinstantiation::Register_Info);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
+connections_table_size
+=</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(connections_table_)/sizeof(CIAO::Static_Config::ConnectionAttributes);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
+resolvers_table_size
+=</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(resolvers_table_)/sizeof(CIAO::Static_Config::ResolveInfoAttributes);</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::HOMECREATOR_FUNCPTR_MAP
+home_creator_fptr_map;</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::HOMESERVANTCREATOR_FUNCPTR_MAP
+homesvnt_creator_fptr_map;</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::Static_Config_EntryPoints_Maps
+maps;</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+maps.home_creator_funcptr_map_
+= &amp;home_creator_fptr_map;</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+maps.home_servant_creator_funcptr_map_
+= &amp;homesvnt_creator_fptr_map;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i=0;</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=0;
+i&lt;homes_table_size; ++i)</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+home_creator_fptr_map.bind (homes_table_[i].executor_entrypt_,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_[i].executor_fptr_);</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homesvnt_creator_fptr_map.bind (homes_table_[i].servant_entrypt_,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_[i].servant_fptr_);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+}</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_NEW_RETURN
+(comserv_servant,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::ComponentServer_Impl (orb.in (),</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+poa.in (),</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+1,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+&amp;maps),</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+-1);</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::ServantBase_var
+safe_servant (comserv_servant);</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::ConfigValues
+configs;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_servant-&gt;init
+(configs</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //
+Configuring
+ComponentServer.</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::ObjectId_var
+cs_oid</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= poa-&gt;activate_object (comserv_servant</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; obj =
+poa-&gt;id_to_reference
+(cs_oid.in ()</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ComponentServer_var
+comserv_obj =</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ComponentServer::_narrow (obj.in ()</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
+(CORBA::is_nil
+(comserv_obj.in ()))</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ERROR_RETURN ((LM_ERROR, "Unable to activate ComponentServer
+object\n"),
+-1);</font></tt>
+<br>
+&nbsp;
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ServerActivator_var
+activator;</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::ConfigValues_var
+config = new Components::ConfigValues;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_servant-&gt;set_objref
+(activator.in (),</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+config,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_obj.in ()</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><a name="static config engine"></a><tt><font color="#ff0000">configurator.configure
+(orb.in (),</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_obj.in (),</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+containers_table_,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+containers_table_size,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_size,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+components_table_,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+components_table_size,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+component_registrations_table_,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+component_registrations_table_size,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+connections_table_,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+connections_table_size,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+resolvers_table_,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+resolvers_table_size);</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CORBA::String_var
+str = orb-&gt;object_to_string (comserv_obj.in ()</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::Utility::write_IOR
+(ior_file_name_, str.in ());</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_DEBUG
+((LM_INFO, "ComponentServer IOR: %s\n", str.in ()));</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_DEBUG
+((LM_DEBUG,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"Running ComponentServer...\n"));</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Run the
+main event loop for the ORB.</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; orb-&gt;run
+(ACE_ENV_SINGLE_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp; }</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ACE_CATCHANY</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp; {</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_PRINT_EXCEPTION
+(ACE_ANY_EXCEPTION,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"server::main \n");</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 1;</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp; }</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ACE_ENDTRY;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp; return 0;</font></tt>
+<br>
+<tt><font color="#3333ff">}</font></tt>
+</p>
+<p><a name="Static_CCM_App.mpc"></a><b><u>Static_CCM_App.mpc</u></b>
+<br>
+<tt><font color="#3333ff">project(Static_CCM_App) : ciao_server,
+ciao_client,
+rtcorba, rtportableserver, iortable, acexml {</font></tt>
+<br>
+<tt><font color="#3333ff">includes +=
+$(ACE_ROOT)/TAO/CIAO/tools/Assembly_Deployer</font></tt>
+<br>
+<tt><font color="#3333ff">includes +=
+$(ACE_ROOT)/TAO/CIAO/tools/static_configurator</font></tt>
+<br>
+<tt><font color="#3333ff">libs += CIAO_XML_Helpers Static_Configurator</font></tt>
+<br>
+<tt><font color="#3333ff">after += CIAO_XML_Helpers Static_Configurator</font></tt>
+<br>
+&nbsp;
+</p>
+<p><tt><font color="#3333ff">libs += EC_exec</font></tt>
+<br>
+<tt><font color="#3333ff">after += EC_exec</font></tt>
+<br>
+<tt><font color="#3333ff">libs += EC_svnt</font></tt>
+<br>
+<tt><font color="#3333ff">after += EC_svnt</font></tt>
+<br>
+<tt><font color="#3333ff">libs += BMDevice_exec</font></tt>
+<br>
+<tt><font color="#3333ff">after += BMDevice_exec</font></tt>
+<br>
+<tt><font color="#3333ff">libs += BMDevice_svnt</font></tt>
+<br>
+<tt><font color="#3333ff">after += BMDevice_svnt</font></tt>
+<br>
+<tt><font color="#3333ff">libs += BMClosedED_exec</font></tt>
+<br>
+<tt><font color="#3333ff">after += BMClosedED_exec</font></tt>
+<br>
+<tt><font color="#3333ff">libs += BMClosedED_svnt</font></tt>
+<br>
+<tt><font color="#3333ff">after += BMClosedED_svnt</font></tt>
+<br>
+<tt><font color="#3333ff">libs += BMDisplay_exec</font></tt>
+<br>
+<tt><font color="#3333ff">after += BMDisplay_exec</font></tt>
+<br>
+<tt><font color="#3333ff">libs += BMDisplay_svnt</font></tt>
+<br>
+<tt><font color="#3333ff">after += BMDisplay_svnt</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp; Source_Files {</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Static_CCM_App.cpp</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp; }</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp; IDL_Files {</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp; }</font></tt>
+<br>
+<tt><font color="#3333ff">}</font></tt>
+</p>
+<p><a name="Modified Static_CCM_App.cpp"></a><b><u>Modified
+Static_CCM_App.cpp</u></b> <br>
+</p>
+<p><small><span style="font-weight: bold;">(Highlighted text is
+manually added to the
+generated .cpp file)<br>
+<br>
+</span></small><tt>#include "ComponentServer_Impl.h"</tt>
+<br>
+<tt>#include "CIAO_ServersC.h"</tt>
+<br>
+<tt>#include "Server_init.h"</tt>
+<br>
+<tt>#include "Static_Configurator.h"</tt>
+<br>
+<tt>#include "ace/SString.h"</tt>
+<br>
+<tt>#include "ace/Get_Opt.h"</tt>
+</p>
+<p><tt>#include "Static_Assembly_Config.h"</tt>
+</p>
+<p><tt>char *ior_file_name_ = "comp_serv.ior";</tt>
+<br>
+<b><tt><font color="#990000">int rate = 2;</font></tt></b>
+</p>
+<p><tt>int</tt>
+<br>
+<tt>parse_args (int argc, char *argv[])</tt>
+<br>
+<tt>{</tt>
+<br>
+<tt>&nbsp; ACE_Get_Opt get_opts (argc, argv, "k:o:");</tt>
+<br>
+<tt>&nbsp; int c;</tt>
+</p>
+<p><tt>&nbsp; while ((c = get_opts ()) != -1)</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp; switch (c)</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 'o':&nbsp; // get the file
+name to write to</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ior_file_name_ =
+get_opts.opt_arg
+();</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case '?':&nbsp; // display help
+for
+use of the server.</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_ERROR_RETURN
+((LM_ERROR,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"usage:&nbsp; %s\n"</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"-o &lt;ior_output_file&gt;\n"</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"\n",</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+argv [0]),</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+-1);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</tt>
+</p>
+<p><tt>&nbsp; return 0;</tt>
+<br>
+<tt>}</tt>
+<br>
+&nbsp;
+</p>
+<p><tt>int</tt>
+<br>
+<tt>main (int argc, char *argv[])</tt>
+<br>
+<tt>{</tt>
+<br>
+<tt>&nbsp; ACE_TRY_NEW_ENV</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp; {</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Initialize orb</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CORBA::ORB_var orb = CORBA::ORB_init
+(argc,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+argv,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+0</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CIAO::Server_init (orb.in ());</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (parse_args (argc, argv) != 0)</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Get reference to Root POA.</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CORBA::Object_var obj</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
+orb-&gt;resolve_initial_references
+("RootPOA"</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PortableServer::POA_var poa</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
+PortableServer::POA::_narrow
+(obj.in ()</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Activate POA manager</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PortableServer::POAManager_var mgr</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = poa-&gt;the_POAManager
+(ACE_ENV_SINGLE_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mgr-&gt;activate
+(ACE_ENV_SINGLE_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CIAO::ComponentServer_Impl
+*comserv_servant;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CIAO::Static_Configurator
+configurator;</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int containers_table_size =</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof
+(containers_table_)/sizeof(CIAO::Static_Config::ContainerAttributes);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int homes_table_size =</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof
+(homes_table_)/sizeof(CIAO::Static_Config::HomeAttributes);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int components_table_size =</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof
+(components_table_)/sizeof(CIAO::Static_Config::ComponentAttributes);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
+component_registrations_table_size
+=</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof
+(component_registrations_table_)/sizeof(CIAO::Assembly_Placement::componentinstantiation::Register_Info);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int connections_table_size =</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof
+(connections_table_)/sizeof(CIAO::Static_Config::ConnectionAttributes);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int resolvers_table_size =</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof
+(resolvers_table_)/sizeof(CIAO::Static_Config::ResolveInfoAttributes);</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CIAO::HOMECREATOR_FUNCPTR_MAP
+home_creator_fptr_map;</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CIAO::HOMESERVANTCREATOR_FUNCPTR_MAP
+homesvnt_creator_fptr_map;</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CIAO::Static_Config_EntryPoints_Maps
+maps;</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maps.home_creator_funcptr_map_ =
+&amp;home_creator_fptr_map;</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+maps.home_servant_creator_funcptr_map_
+= &amp;homesvnt_creator_fptr_map;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i=0;</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=0; i&lt;homes_table_size;
+++i)</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+home_creator_fptr_map.bind
+(homes_table_[i].executor_entrypt_,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_[i].executor_fptr_);</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homesvnt_creator_fptr_map.bind
+(homes_table_[i].servant_entrypt_,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_[i].servant_fptr_);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_NEW_RETURN (comserv_servant,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::ComponentServer_Impl (orb.in (),</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+poa.in (),</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+1,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+&amp;maps),</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+-1);</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PortableServer::ServantBase_var
+safe_servant
+(comserv_servant);</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Components::ConfigValues configs;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comserv_servant-&gt;init (configs</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Configuring ComponentServer.</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PortableServer::ObjectId_var cs_oid</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
+poa-&gt;activate_object
+(comserv_servant</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; obj = poa-&gt;id_to_reference
+(cs_oid.in
+()</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ComponentServer_var
+comserv_obj =</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ComponentServer::_narrow
+(obj.in ()</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (CORBA::is_nil (comserv_obj.in
+()))</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_ERROR_RETURN
+((LM_ERROR,
+"Unable to activate ComponentServer object\n"), -1);</tt>
+<br>
+&nbsp;
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ServerActivator_var
+activator;</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Components::ConfigValues_var config
+= new Components::ConfigValues;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comserv_servant-&gt;set_objref
+(activator.in
+(),</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+config,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_obj.in ()</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; configurator.configure (orb.in (),</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_obj.in (),</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+containers_table_,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+containers_table_size,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_size,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+components_table_,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+components_table_size,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+component_registrations_table_,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+component_registrations_table_size,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+connections_table_,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+connections_table_size,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+resolvers_table_,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+resolvers_table_size);</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CORBA::String_var str =
+orb-&gt;object_to_string
+(comserv_obj.in ()</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CIAO::Utility::write_IOR
+(ior_file_name_,
+str.in ());</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_DEBUG ((LM_INFO,
+"ComponentServer
+IOR: %s\n", str.in ()));</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_DEBUG ((LM_DEBUG,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"Running ComponentServer...\n"));</tt>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CORBA::Object_var
+pulser_obj</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= orb-&gt;string_to_object ("file://ec.ior"</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+BasicSP::EC_var
+pulser</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= BasicSP::EC::_narrow (pulser_obj.in ()</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
+(CORBA::is_nil
+(pulser.in ()))</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ERROR_RETURN ((LM_ERROR, "Unable to acquire 'EC' objref\n"), -1);</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+pulser-&gt;hertz
+(rate</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_DEBUG
+((LM_DEBUG, "Start up the Event services\n"));</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+pulser-&gt;start
+(ACE_ENV_SINGLE_ARG_PARAMETER);</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</font></tt></b>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Run the main event loop for
+the
+ORB.</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; orb-&gt;run
+(ACE_ENV_SINGLE_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp; }</tt>
+<br>
+<tt>&nbsp; ACE_CATCHANY</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp; {</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_PRINT_EXCEPTION
+(ACE_ANY_EXCEPTION,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"server::main \n");</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 1;</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp; }</tt>
+<br>
+<tt>&nbsp; ACE_ENDTRY;</tt>
+</p>
+<p><tt>&nbsp; return 0;</tt>
+<br>
+<tt>}</tt>
+</p>
+<p><a name="Modified Static_CCM_App.mpc"></a><b><u>Modified
+Static_CCM_App.mpc</u></b> <br>
+</p>
+<p><small><span style="font-weight: bold;">(Highlighted text is
+manually added to the
+generated .cpp file)<br>
+<br>
+</span></small><tt>project(Static_CCM_App) : ciao_server, ciao_client,
+rtcorba,
+rtportableserver,
+iortable, acexml {</tt>
+<br>
+<tt>includes += $(ACE_ROOT)/TAO/CIAO/tools/Assembly_Deployer</tt>
+<br>
+<tt>includes += $(ACE_ROOT)/TAO/CIAO/tools/static_configurator</tt>
+<br>
+<tt>libs += CIAO_XML_Helpers Static_Configurator</tt>
+<br>
+<tt>after += CIAO_XML_Helpers Static_Configurator</tt>
+</p>
+<p><b><tt><font color="#990000">libs += BasicSP_stub BasicSP_svnt</font></tt></b>
+<br>
+<b><tt><font color="#990000">after += BasicSP_stub BasicSP_svnt</font></tt></b>
+<br>
+<tt>libs += EC_exec</tt>
+<br>
+<tt>after += EC_exec</tt>
+<br>
+<tt>libs += EC_svnt <b><font color="#990000">EC_stub</font></b></tt>
+<br>
+<tt>after += EC_svnt <b><font color="#990000">EC_stub</font></b></tt>
+<br>
+<tt>libs += BMDevice_exec</tt>
+<br>
+<tt>after += BMDevice_exec</tt>
+<br>
+<tt>libs += BMDevice_svnt <b><font color="#990000">BMDevice_stub</font></b></tt>
+<br>
+<tt>after += BMDevice_svnt <b><font color="#990000">BMDevice_stub</font></b></tt>
+<br>
+<tt>libs += BMClosedED_exec</tt>
+<br>
+<tt>after += BMClosedED_exec</tt>
+<br>
+<tt>libs += BMClosedED_svnt <b><font color="#990000">BMClosedED_stub</font></b></tt>
+<br>
+<tt>after += BMClosedED_svnt <b><font color="#990000">BMClosedED_stub</font></b></tt>
+<br>
+<tt>libs += BMDisplay_exec</tt>
+<br>
+<tt>after += BMDisplay_exec</tt>
+<br>
+<tt>libs += BMDisplay_svnt <b><font color="#990000">BMDisplay_stub</font></b></tt>
+<br>
+<tt>after += BMDisplay_svnt <b><font color="#990000">BMDisplay_stub</font></b></tt>
+</p>
+<p><tt>&nbsp;&nbsp; Source_Files {</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Static_CCM_App.cpp</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp; }</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp; IDL_Files {</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp; }</tt>
+<br>
+<tt>}</tt>
+<br>
+&nbsp;
+</p>
+</body>
+</html>
diff --git a/modules/CIAO/docs/static_config_rtexample.html b/modules/CIAO/docs/static_config_rtexample.html
new file mode 100644
index 00000000000..2e87e5aabe1
--- /dev/null
+++ b/modules/CIAO/docs/static_config_rtexample.html
@@ -0,0 +1,1079 @@
+<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type"
+ content="text/html; charset=iso-8859-1">
+ <meta name="Author" content="Venkita Subramonian">
+ <meta name="GENERATOR"
+ content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
+ <title>BasicSP example using CIAO Static Configurator</title>
+<!-- $Id$ -->
+</head>
+<body>
+This example illustrates
+how to use the CIAO static configurator to build applications using
+RTCORBA policies statically.
+From the <a href="../examples/OEP/BasicSP">BasicSP</a> directory do
+the
+following.
+<p><b><tt>&gt; cd descriptors</tt></b>
+<br>
+<b><tt>&gt; $CIAO_ROOT/tools/static_configurator/Static_Assembly_Parser
+-a BasicSP-rt.cad</tt></b>
+</p>
+<p>The following files are generated -
+</p>
+<p><a href="#Static_Assembly_Config.h">Static_Assembly_Config.h</a>
+<br>
+<a href="#Modified%20Static_CCM_App.cpp">Static_CCM_App.cpp</a>
+<br>
+<a href="#Modified%20Static_CCM_App.mpc">Static_CCM_App.mpc</a>
+</p>
+<p><a href="#Static_Assembly_Config.h">Static_Assembly_Config.h</a>
+contains
+the intermediate representation of all the parsed component and
+assembly
+information obtained from the XML files. <a href="#Static_CCM_App.cpp">Static_CCM_App.cpp</a>&nbsp;
+contains the main driver application. Here a runtime <a
+ href="#static_config_engine">static
+configuration engine</a> is used to create containers, homes,
+components,
+etc and then establish necessary connections between the components.
+The configuration engine is also used to <a href="#rtconfig">configure</a>
+the containers and RTORB with the appropriate RTCORBA policies
+specified declaratively in the .rtcad file. In
+the BasicSP example, an external controller&nbsp; (see <tt><a
+ href="../examples/OEP/BasicSP/README">$CIAO_ROOT/examples/OEP/BasicSP/README</a></tt>)
+is used to start or stop a pulser. The generated main driver
+application
+(Static_CCM_App.cpp) is <a href="#Modified%20Static_CCM_App.cpp">modified</a>
+to add code to trigger the pulser object on. The generated .mpc file is
+<a href="#Modified%20Static_CCM_App.mpc">modified</a>
+to add all other necessary files so that the application can be built
+statically.
+Note that the static configurator only generates only certain file
+names
+in the .mpc file. These filenames are obtained from the XML descriptor
+files. All other necessary files have to be added manually as
+indicated.
+</p>
+<p>Now the static build files can be generated by running the mpc
+utility.
+</p>
+<p><b><tt>&gt; cd ..</tt></b>
+<br>
+<b><tt>&gt; $ACE_ROOT/bin/mpc -static Static_CCM_App.mpc</tt></b>
+</p>
+<p><a name="Static_Assembly_Config.h"></a><b><u>Static_Assembly_Config.h</u></b>
+<br>
+<span style="font-family: monospace;">#include "Static_Assembly.h"</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">#include "CCM_ContainerC.h"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">#include "Container_Base.h"</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Containers</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::ContainerAttributes
+containers_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {"POLICY_1",
+0},</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {"", 0}</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">extern "C"
+::Components::HomeExecutorBase_ptr createECHome_Impl (void);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">extern "C"
+::PortableServer::Servant createECHome_Servant </span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; (::Components::HomeExecutorBase_ptr p,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ::CIAO::Session_Container *c</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ACE_ENV_ARG_DECL_WITH_DEFAULTS);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">extern "C"
+::Components::HomeExecutorBase_ptr createBMDeviceHome_Impl (void);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">extern "C"
+::PortableServer::Servant createBMDeviceHome_Servant </span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; (::Components::HomeExecutorBase_ptr p,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ::CIAO::Session_Container *c</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ACE_ENV_ARG_DECL_WITH_DEFAULTS);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">extern "C"
+::Components::HomeExecutorBase_ptr createBMClosedEDHome_Impl (void);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">extern "C"
+::PortableServer::Servant createBMClosedEDHome_Servant </span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; (::Components::HomeExecutorBase_ptr p,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ::CIAO::Session_Container *c</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ACE_ENV_ARG_DECL_WITH_DEFAULTS);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">extern "C"
+::Components::HomeExecutorBase_ptr createBMDisplayHome_Impl (void);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">extern "C"
+::PortableServer::Servant createBMDisplayHome_Servant </span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; (::Components::HomeExecutorBase_ptr p,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ::CIAO::Session_Container *c</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ACE_ENV_ARG_DECL_WITH_DEFAULTS);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">//Homes</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::HomeAttributes
+homes_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {"a_ECHome",
+"DCE:3148F760-F2ED-4204-A775-6B972C10E8CB", "createECHome_Impl",
+createECHome_Impl, "DCE:75309233-0E0A-4cfb-B186-3E99F69B1D40",
+"createECHome_Servant", createECHome_Servant, 0, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"a_BMDeviceHome", "DCE:82C2B032-37F0-4315-A59F-7020D3264E4D",
+"createBMDeviceHome_Impl", createBMDeviceHome_Impl,
+"DCE:93D254CF-9538-44e8-BB98-AABCD134ADD3",
+"createBMDeviceHome_Servant", createBMDeviceHome_Servant, 0, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"a_BMClosedEDHome", "DCE:8E6C468D-A39F-46b4-962B-265F1AA8D538",
+"createBMClosedEDHome_Impl", createBMClosedEDHome_Impl,
+"DCE:CDC06FCA-50FC-43ca-8ECC-BEFBD33FEE78",
+"createBMClosedEDHome_Servant", createBMClosedEDHome_Servant, 0, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"a_BMDisplayHome", "DCE:8E92655E-CA07-46C8-B127-0F0872A8CC29",
+"createBMDisplayHome_Impl", createBMDisplayHome_Impl,
+"DCE:D7984625-8561-431d-9927-4E498B317C02",
+"createBMDisplayHome_Servant", createBMDisplayHome_Servant, 1, 0 }</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Components</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::ComponentAttributes
+components_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {"a_EC", 0, 0,
+0 },</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {"a_BMDevice",
+-1, -1, 1 },</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"a_BMClosedED", -1, -1, 2 },</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"a_BMDisplay", -1, -1, 3 }</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Component Registrations</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Assembly_Placement::componentinstantiation::Register_Info
+component_registrations_table_[]= </span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Placement::componentinstantiation::COMPONENT,
+CIAO::Assembly_Placement::componentinstantiation::IORFILE, "", "ec.ior"
+}</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Connections</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::ConnectionAttributes
+connections_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::PUBLISHER_CONSUMER, "", "timeout", 0, 1, 0,
+0 },</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::PUBLISHER_CONSUMER, "", "data_available",
+3, 4, 0, 0 },</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::PUBLISHER_CONSUMER, "", "out_avail", 6, 7,
+0, 0 },</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::INTERFACE, "", "datain", 9, 10, 0, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::INTERFACE, "", "comp_data", 12, 13, 0, 0 }</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Resolver Infos</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::ResolveInfoAttributes
+resolvers_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_EC", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::CONSUMER, "timeout", 2, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMDevice", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMDevice", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::CONSUMER, "in_avail", 5, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMClosedED", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMClosedED", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::CONSUMER, "data_ready", 8, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMDisplay", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMClosedED", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::PROVIDER, "data_read", 11, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMDevice", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMDisplay", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::PROVIDER, "dataout", 14, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMClosedED", -1, 0 }</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Thread Pool</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::ThreadPoolAttributes
+thread_pool_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"common_pool", 0, 10, 20, 1, 0, 0, 0},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"high_prio_pool", 0, 2, 2, 3, 0, 0, 0}</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Lanes</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::LaneAttributes
+lane_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {1, 100, 300},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {2, 2, 2},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {3, 1, 2},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {1, 10, 30},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {2, 3, 3},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {3, 1, 2}</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//ThreadPoolLanes</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::ThreadPoolLanesAttributes
+thread_pool_lanes_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"shared_pool", 0, 0, 2, 0, 0, 0, 0},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {"laned_pool",
+0, 3, 5, 0, 0, 0, 0}</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Bands</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::BandAttributes
+band_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {1, 1},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {2, 2},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {3, 3000}</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//PriorityBands</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::PriorityBandsAttributes
+priority_band_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"common_conn", 0, 2}</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Policy Configs</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::PolicyConfigAttributes
+policy_config_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{RTCORBA::PRIORITY_MODEL_POLICY_TYPE, "", RTCORBA::SERVER_DECLARED, 2},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{RTCORBA::THREADPOOL_POLICY_TYPE, "shared_pool", /*dummy variable*/
+RTCORBA::CLIENT_PROPAGATED, 0},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{RTCORBA::PRIORITY_BANDED_CONNECTION_POLICY_TYPE, "common_conn",
+/*dummy variable*/ RTCORBA::CLIENT_PROPAGATED, 0},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{RTCORBA::THREADPOOL_POLICY_TYPE, "common_pool", /*dummy variable*/
+RTCORBA::CLIENT_PROPAGATED, 0},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{RTCORBA::PRIORITY_MODEL_POLICY_TYPE, "", RTCORBA::CLIENT_PROPAGATED, 2}</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Policy Set</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::PolicySetAttributes&nbsp;
+policy_set_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {"POLICY_1",
+0, 2},</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {"POLICY_2",
+3, 4}</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br>
+<br>
+<tt><font color="#3333ff"></font></tt></p>
+<tt><font color="#3333ff"></font></tt><a
+ name="Modified Static_CCM_App.cpp"></a><b><u>Modified
+Static_CCM_App.cpp</u></b> <br>
+<p><span style="font-family: monospace;"></span><small><span
+ style="font-weight: bold;">(Highlighted text is manually added to the
+generated .cpp file)</span></small></p>
+<p><span style="font-family: monospace;">#include "RTServer_Impl.h"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">#include "CIAO_ServersC.h"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">#include "Server_init.h"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">#include "Static_Configurator.h"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">#include "ace/SString.h"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">#include "ace/Get_Opt.h"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">#include
+"Static_Assembly_Config.h"</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">#include
+"tao/RTPortableServer/RTPortableServer.h"</span><br
+ style="font-family: monospace;">
+<span
+ style="font-family: monospace; color: rgb(153, 0, 0); font-weight: bold;">#include
+"EC/ECC.h"</span><br
+ style="font-family: monospace; color: rgb(153, 0, 0); font-weight: bold;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">char *ior_file_name_ =
+"comp_serv.ior"; </span><br style="font-family: monospace;">
+<span
+ style="font-family: monospace; color: rgb(153, 0, 0); font-weight: bold;">int
+rate = 2;</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">int</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">parse_args (int argc, char
+*argv[])</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp; ACE_Get_Opt get_opts
+(argc, argv, "k:o:");</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp; int c;</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp; while ((c = get_opts ())
+!= -1)</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; switch (c)</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; case
+'o':&nbsp; // get the file name to write to</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+ior_file_name_ = get_opts.opt_arg ();</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp; break;</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; case
+'?':&nbsp; // display help for use of the server.</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; default:</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ERROR_RETURN ((LM_ERROR,</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"usage:&nbsp; %s\n"</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"-o &lt;ior_output_file&gt;\n"</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"\n",</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+argv [0]),</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+-1);</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp; }</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp; return 0;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">}</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">int</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">main (int argc, char *argv[])</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;ACE_TRY_NEW_ENV</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp; //
+Initialize orb</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+CORBA::ORB_var orb = CORBA::ORB_init (argc,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+argv</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::Server_init (orb.in ());</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp; if
+(parse_args (argc, argv) != 0)</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+return -1;</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //
+Get reference to Root POA.</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CORBA::Object_var object =</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+orb-&gt;resolve_initial_references ("RootPOA"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::POA_var root_poa =</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::POA::_narrow (object.in ()</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; &nbsp;
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ACE_ENV_ARG_PARAMETER);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp; // Get
+reference to RTORB.</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+object =</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+orb-&gt;resolve_initial_references ("RTORB"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+RTCORBA::RTORB_var rt_orb =</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+RTCORBA::RTORB::_narrow (object.in ()</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //
+Activate POA manager</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::POAManager_var poa_manager =</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+root_poa-&gt;the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><small><span style="font-weight: bold;">(Highlighted
+files are manually added to the generated mpc file)</span></small><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+poa_manager-&gt;activate (ACE_ENV_SINGLE_ARG_PARAMETER);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::RTServer::RTComponentServer_Impl *comserv_servant;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::Static_Configurator configurator;</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int containers_table_size =</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(containers_table_)/sizeof(CIAO::Static_Config::ContainerAttributes);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int homes_table_size =</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof (homes_table_)/sizeof(CIAO::Static_Config::HomeAttributes);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int components_table_size =</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(components_table_)/sizeof(CIAO::Static_Config::ComponentAttributes);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int component_registrations_table_size =</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(component_registrations_table_)/sizeof(CIAO::Assembly_Placement::componentinstantiation::Register_Info);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int connections_table_size =</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(connections_table_)/sizeof(CIAO::Static_Config::ConnectionAttributes);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int resolvers_table_size =</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(resolvers_table_)/sizeof(CIAO::Static_Config::ResolveInfoAttributes);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int thread_pool_table_size=</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof(thread_pool_table_)/sizeof(CIAO::Static_Config::ThreadPoolAttributes);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int thread_pool_lanes_table_size=</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof(thread_pool_lanes_table_)/sizeof(CIAO::Static_Config::ThreadPoolLanesAttributes);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int priority_band_table_size=</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof(priority_band_table_)/sizeof(CIAO::Static_Config::PriorityBandsAttributes);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int policy_set_table_size=</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof(policy_set_table_)/sizeof(CIAO::Static_Config::PolicySetAttributes);</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::HOMECREATOR_FUNCPTR_MAP home_creator_fptr_map;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::HOMESERVANTCREATOR_FUNCPTR_MAP homesvnt_creator_fptr_map;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::Static_Config_EntryPoints_Maps maps;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+maps.home_creator_funcptr_map_ = &amp;home_creator_fptr_map;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+maps.home_servant_creator_funcptr_map_ = &amp;homesvnt_creator_fptr_map;</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int i=0;</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+for (i=0; i&lt;homes_table_size; ++i)</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+{</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+home_creator_fptr_map.bind (homes_table_[i].executor_entrypt_,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_[i].executor_fptr_);</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homesvnt_creator_fptr_map.bind (homes_table_[i].servant_entrypt_,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_[i].servant_fptr_);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+}</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_NEW_RETURN (comserv_servant,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::RTServer::RTComponentServer_Impl (orb.in (),</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+rt_orb.in (),</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+root_poa.in (),</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+1, </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+&amp;maps), </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+-1);</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::ServantBase_var safe_servant
+(comserv_servant);&nbsp;&nbsp; </span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::ConfigValues configs;</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<span style="color: rgb(255, 0, 0);"><a name="rtconfig"></a>configurator.config_rt_info(configs,
+</span></span><br style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+thread_pool_table_, </span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+thread_pool_table_size,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+lane_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+thread_pool_lanes_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+thread_pool_lanes_table_size,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+band_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+priority_band_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+priority_band_table_size,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+policy_config_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+policy_set_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+policy_set_table_size);</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_servant-&gt;init (configs</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp; //
+Configuring ComponentServer.</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::ObjectId_var cs_oid</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= root_poa-&gt;activate_object (comserv_servant</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK; </span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp; object =
+root_poa-&gt;id_to_reference (cs_oid.in ()</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ComponentServer_var comserv_obj =</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ComponentServer::_narrow (object.in ()</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp; if
+(CORBA::is_nil (comserv_obj.in ()))</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ERROR_RETURN ((LM_ERROR,</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"Unable to activate RTComponentServer object\n"),</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+-1);</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ServerActivator_var activator;</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //
+We are just storing the original configuration here.</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //
+Currently, we don't really use this ConfigValues direclty.</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::ConfigValues_var more_config = new Components::ConfigValues;</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_servant-&gt;set_objref (activator.in (),</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+more_config.in (),</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_obj.in ()</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<a name="static_config_engine"></a><span style="color: rgb(255, 0, 0);">configurator.configure
+(orb.in (),</span></span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_obj.in (),</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+containers_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+containers_table_size,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_size,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+components_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+components_table_size,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+component_registrations_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+component_registrations_table_size,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+connections_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+connections_table_size,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+resolvers_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+resolvers_table_size);</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CORBA::String_var str = orb-&gt;object_to_string (comserv_obj.in ()</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::Utility::write_IOR (ior_file_name_, str.in ());</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_DEBUG ((LM_INFO, "RTComponentServer IOR: %s\n", str.in ()));</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_DEBUG ((LM_DEBUG,</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"Running RTComponentServer...\n"));</span><br
+ style="font-family: monospace;">
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CORBA::Object_var
+pulser_obj</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= orb-&gt;string_to_object ("file://ec.ior"</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+BasicSP::EC_var
+pulser</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= BasicSP::EC::_narrow (pulser_obj.in ()</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
+(CORBA::is_nil
+(pulser.in ()))</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ERROR_RETURN ((LM_ERROR, "Unable to acquire 'EC' objref\n"), -1);</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+pulser-&gt;hertz
+(rate</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_DEBUG
+((LM_DEBUG, "Start up the Event services\n"));</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+pulser-&gt;start
+(ACE_ENV_SINGLE_ARG_PARAMETER);</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</font></tt></b>
+</p>
+<p><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //
+Run the main event loop for the ORB.</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+orb-&gt;run (ACE_ENV_SINGLE_ARG_PARAMETER);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; }</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp; ACE_CATCHANY</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp; {</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"server::main&nbsp;&nbsp;&nbsp; \n");</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+return 1;</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp; }</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp; ACE_ENDTRY;</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp; return 0;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">}</span><br>
+<tt></tt></p>
+<a name="Modified Static_CCM_App.mpc"></a><b><u>Modified
+Static_CCM_App.mpc</u></b>
+<br>
+<small><span style="font-weight: bold;"><br>
+(Highlighted files are manually added to the generated mpc file)</span></small><br>
+<tt></tt><span style="font-family: monospace;"><br>
+project(Static_CCM_App) :&nbsp; ciao_server, ciao_client, rtcorba,
+rtportableserver, iortable, acexml{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">includes +=
+$(ACE_ROOT)/TAO/CIAO/tools/Assembly_Deployer</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">includes +=
+$(ACE_ROOT)/TAO/CIAO/tools/static_configurator</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">includes +=
+$(ACE_ROOT)/TAO/CIAO/tools/RTComponentServer</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += RTComponent_Server
+CIAO_XML_Helpers&nbsp; Static_Configurator</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">after += RTComponent_Server
+CIAO_XML_Helpers&nbsp; Static_Configurator</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;</span><br
+ style="font-family: monospace;">
+<span
+ style="font-family: monospace; color: rgb(153, 0, 0); font-weight: bold;">libs
++= BasicSP_stub&nbsp; BasicSP_svnt</span><br
+ style="font-family: monospace; color: rgb(153, 0, 0); font-weight: bold;">
+<span
+ style="font-family: monospace; color: rgb(153, 0, 0); font-weight: bold;">after
++= BasicSP_stub&nbsp; BasicSP_svnt</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += EC_exec</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">after += EC_exec</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += EC_svnt <span
+ style="font-weight: bold; color: rgb(153, 0, 0);">EC_stub</span></span><br
+ style="font-family: monospace; font-weight: bold; color: rgb(153, 0, 0);">
+<span style="font-family: monospace;">after += EC_svnt<span
+ style="font-weight: bold; color: rgb(153, 0, 0);"> EC_stub</span></span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += BMDevice_exec</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">after += BMDevice_exec</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += BMDevice_svnt <span
+ style="font-weight: bold; color: rgb(153, 0, 0);">BMDevice_stub</span></span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">after += BMDevice_svnt&nbsp; <span
+ style="font-weight: bold; color: rgb(153, 0, 0);">BMDevice_stub</span></span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += BMClosedED_exec</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">after += BMClosedED_exec</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += BMClosedED_svnt <span
+ style="font-weight: bold; color: rgb(153, 0, 0);">BMClosedED_stub</span></span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">after += BMClosedED_svnt <span
+ style="font-weight: bold; color: rgb(153, 0, 0);">BMClosedED_stub</span></span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += BMDisplay_exec</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">after += BMDisplay_exec</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += BMDisplay_svnt <span
+ style="font-weight: bold; color: rgb(153, 0, 0);">BMDisplay_stub</span></span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">after += BMDisplay_svnt <span
+ style="font-weight: bold; color: rgb(153, 0, 0);">BMDisplay_stub</span></span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp; Source_Files {</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Static_CCM_App.cpp</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; }</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; IDL_Files {</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; }</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">}</span><br>
+<br>
+</body>
+</html>
diff --git a/modules/CIAO/docs/static_dance.html b/modules/CIAO/docs/static_dance.html
new file mode 100644
index 00000000000..3bd6433e133
--- /dev/null
+++ b/modules/CIAO/docs/static_dance.html
@@ -0,0 +1,214 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title></title>
+<!-- $Id$ -->
+ <meta name="GENERATOR" content="OpenOffice.org 1.1.2 (Linux)">
+ <meta name="CREATED" content="20041128;11452700">
+ <meta name="CHANGED" content="20041210;11524200">
+ <style>
+ <!--
+ @page { size: 8.5in 11in; margin-left: 1.25in; margin-right: 1.25in; margin-top: 1in; margin-bottom: 1in }
+ P { margin-bottom: 0.08in }
+ H2.western { font-family: "Times New Roman", serif }
+ H2.cjk { font-family: "Arial Unicode MS" }
+ H2.ctl { font-family: "Tahoma" }
+ H3.western { font-family: "Times New Roman", serif }
+ H3.cjk { font-family: "Arial Unicode MS" }
+ H3.ctl { font-family: "Tahoma" }
+ -->
+ </style>
+</head>
+<body dir="ltr" lang="en-US">
+<h2 class="western" align="center">CIAO Static Configuration Support
+with DanCE for Real-Time Platforms </h2>
+<h3 class="western">1. Introduction</h3>
+<p>The dynamic packaging, assembly, and deployment mechanisms
+currently available in CIAO are useful for application domains where
+component metadata is less likely to be known a priori, where
+implementation upgrades may need to be performed on-line, and where
+platform features like loading and unloading dynamic libraries are
+both available and useful. We have already incorporated <a
+ href="http://www.cs.wustl.edu/%7Eschmidt/ACE_wrappers/TAO/CIAO/docs/static_ciao_index.html">static
+configuration support</a> for component configuration in CIAO on
+platforms like VxWorks, as a set of optional strategies and
+optimizations to the existing CIAO configuration capabilities (). In
+this white paper, we discuss implementation details for extending the
+static configuration capabilities as part of the new DanCE (D&amp;C
+support available with CIAO) framework.</p>
+<p>The fundamental intuition in understanding our approach is that in
+DRE systems the stages of the overall system lifecycle are similar to
+those in more dynamic conventional component-oriented client-server
+applications.However, in DRE systems several phases of the system
+lifecycle are compressed into the compile-time and
+system-initialization phases, so that (1) for testing and
+verification purposes the set of components in an application can be
+identified and analyzed before run-time, and (2) overheads for
+run-time operation following initialization are reduced and made more
+predictable. Furthermore, due to the nuances of the platforms
+traditionally used for deploying DRE systems, not all features of
+conventional platforms are available. Our approach therefore avoids
+certain mechanisms that are either unavailable or too costly in terms
+of performance. We follow these intuitions in our approach, taking
+the existing configuration phases in CIAO and pushing several of them
+earlier in the configuration lifecycle.</p>
+<h3 class="western">2. Current D&amp;C in CIAO with DanCE</h3>
+<p><img src="imgs/dance_arch.jpg" name="Graphic2"
+ style="border: 0px solid ; width: 600px; height: 400px;" alt=""
+ align="left"><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br><b>Figure 1.</b> <b>Current D&amp;C process using DAnCE</b></p>
+One of the key concerns while supporting the static configuration
+within the DAnCE framework is to reuse the existing components in the
+DAnCE framework as much as possible. Figure 1 shows the current D&amp;C
+process using the DAnCE framework. This is the standard D&amp;C
+process as specified in the CCM D&amp;C specification.As seen from
+the figure, there are multiple processes (Executor, ExecutionManager,
+NodeManagers and NodeApplications) that are involved.
+<h3 class="western">3. Static Configuration with DanCE</h3>
+<p><img src="imgs/static_dance_arch.jpg" name="Graphic3"
+ style="border: 0px solid ; width: 800px; height: 800px;" alt=""
+ align="left"><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br><b>Figure 2.</b> <b>Static D&amp;C in DAnCE</b></p>
+<p>Figure 2 shows the static configuration approach in DAnCE. Here,
+the flattened deployment plan (.cdp) is parsed offline by an offline
+parser ($CIAO_ROOT/StaticConfigurator/StaticDAnCEParser) using the
+same XML parser classes that the dynamic configuration uses. The
+output of the parser is a C++ plan.h file, which contains the function
+entry points for home and home servant creation. The assumption here
+is that all the necessary (component implementations and other)
+libraries are statically linked to the driver application (see a
+template in
+$CIAO_ROOT/DAnCE/StaticConfigurator/StaticDAnCEApp.cpp.tmpl). </p>
+<p>The driver application is essentially a NodeManager which can be
+used to do deployment just the same as in DAnCE. To achieve maximum
+reusability of the existing classes in the DAnCE framework, we use
+the class hierarchy shown in Figure 3. </p>
+<br>
+<b></b>
+<p style="page-break-before: always;" align="left"><img
+ src="imgs/static_dance_impl.jpg" name="Graphic1"
+ style="border: 0px solid ; width: 700px; height: 700px;" alt=""
+ align="left"><br clear="left">
+<b>Figure 3. New class hierarchy to accommodate static configuration
+within DAnCE<br>
+</b></p>
+<h3 class="western">3.Example</h3>
+<p>To run the static version of Hello example, do the following,<br>
+</p>
+<ol>
+ <li>Build ACE+TAO+CIAO statically</li>
+ <li>Build $CIAO_ROOT/examples/Hello&nbsp;</li>
+ <li>Generate the static function entrypoints (plan.h)<br>
+ <span style="font-family: monospace;">&gt; cd
+$CIAO_ROOT/examples/Hello/descriptors</span><span
+ style="font-family: monospace;"><br>
+&gt; <span style="font-family: &quot;times new roman&quot;,serif;"><span
+ style="font-weight: bold;"></span></span>$CIAO_ROOT/DAnCE/StaticConfigurator/StaticDAnCEParser
+-p flattened_deploymentplan_without_ns.cdp</span><br>
+ <span style="font-family: monospace;">&gt; cp plan.h <span
+ style="font-weight: bold;"></span>$CIAO_ROOT/DAnCE/StaticConfigurator/</span><br>
+ </li>
+ <li>Build the static NodeManager for Hello example<span
+ style="font-family: monospace;"><br>
+&gt; cd $CIAO_ROOT/DAnCE/StaticConfigurator</span><br
+ style="font-family: monospace;">
+ <span style="font-family: monospace;"></span><span
+ style="font-family: monospace;">&gt; cp StaticDAnCEApp.cpp.tmpl
+StaticDAnCEApp.cpp</span><br style="font-family: monospace;">
+ <span style="font-family: monospace;">&gt; cp
+StaticDAnCEApp.mpc.tmpl StaticDAnCEApp.mpc<br>
+&gt; $ACE_ROOT/bin/mwc.pl<br>
+&gt; make<br>
+ </span></li>
+ <li>Run the static node managers. Note that the <span
+ style="font-family: monospace;">ORBEndpoint</span> values should
+correspond to the ones in&nbsp;<span style="font-family: monospace;">
+$CIAO_ROOT/examples/Hello/descriptors/TestNodeManagerMap.dat </span><br>
+&gt; <span style="font-family: monospace;">cd
+$CIAO_ROOT/DAnCE/StaticConfigurator<br>
+&gt; ./StaticDAnCEApp -ORBEndpoint iiop://localhost:60001 &amp;<br>
+ </span><span style="font-family: monospace;">&gt; ./StaticDAnCEApp
+-ORBEndpoint iiop://localhost:60002 &amp;</span><br>
+ </li>
+ <li>Do the deployment. This is just the same as the non-static
+version of DAnCE except that we have the NodeManagers already running
+and need not spawn node managers. To accomplish this, change&nbsp; <span
+ style="font-family: monospace;">$CIAO_ROOT/examples/Hello/descriptors/run_test_without_ns.pl
+to <span style="font-weight: bold;">*not*</span> run the node manager
+daemons.<br>
+ </span><span style="font-family: monospace;">&gt; cd
+$CIAO_ROOT/examples/Hello/descriptors<br>
+&gt; ./</span><span style="font-family: monospace;">run_test_without_ns.pl</span></li>
+</ol>
+<br>
+<p></p>
+</body>
+</html>
diff --git a/modules/CIAO/docs/templates/CIAO_Glue_Session_Template.cpp b/modules/CIAO/docs/templates/CIAO_Glue_Session_Template.cpp
new file mode 100644
index 00000000000..aedbcd3769b
--- /dev/null
+++ b/modules/CIAO/docs/templates/CIAO_Glue_Session_Template.cpp
@@ -0,0 +1,1126 @@
+// $Id$
+
+// The generated filename for files using this template shoule be
+// [idl-basename]GS.cpp GS --> GlueSession
+
+// @@ Notice: [ciao module name] can expand to either CIAO_GLUE or
+// CIAO_GLUE_[module name] as defined in the header file.
+
+/// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+/// @@@ Notice that all component and interface names need to be
+/// fully qualified as we are creating a new namespace for the CIAO's
+/// container glue code.
+/// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+
+#include "[idl-basename]_svnt.h"
+#include "Cookies.h"
+
+#if !defined (__ACE_INLINE__)
+# include "[idl-basename]_svnt.inl"
+#endif /* __ACE_INLINE__ */
+
+//////////////////////////////////////////////////////////////////
+// Facet Glue Code implementation
+// @@ We are assuming that these facets are declared under the same
+// module as the component (thus, we are placing this glue code
+// here under the same namespace. If they are not, we will
+// either be generating them in separate namespaces, or include
+// some other CIDL generated files to get the glue code
+// implementation.
+//////////////////////////////////////////////////////////////////
+
+##foreach [facet type] in (all facet interface types in the original IDL)
+
+// get_component implementation.
+CORBA::Object_ptr
+[ciao module name]::[facet type]_Servant::_get_component ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ::Components::SessionContext_var sc =
+ ::Components::SessionContext::_narrow (this->ctx_.in ());
+
+ if (! CORBA::is_nil(sc.in ()))
+ return sc->get_CCM_object ();
+
+ ::Components::EntityContext_var ec =
+ ::Components::EntityContext::_narrow (this->ctx_.in ());
+
+ if (! CORBA::is_nil(ec.in ()))
+ return ec->get_CCM_object ();
+
+ ACE_THROW_RETURN (CORBA::INTERNAL (), 0);
+}
+
+##end foreach [facet type]
+
+
+
+//////////////////////////////////////////////////////////////////
+// Component specific context implementation
+//////////////////////////////////////////////////////////////////
+
+##foreach [receptacle name] with [uses type] in (list of all 'uses' interfaces) generate:
+## if ([receptacle name] is a multiplex ('uses multiple') receptacle)
+ // [receptacle name]Connections typedef'ed as a sequence of
+ // struct [receptacle name]Connection.
+[receptacle name]Connections *
+[ciao module name]::[component name]_Context::get_connections_[receptacle name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // @@ Strategized locking here.
+
+ [receptacle name]Connections_var retv =
+ new [receptacle name]Connections (this->ciao_muses_[receptacle name]_.current_size ());
+
+ CORBA::ULong i = 0;
+ ACE_Active_Map_Manager<[uses type]_var>::iterator
+ end = this->ciso_muses_[receptacle name]_.end ();
+ for (ACE_Active_Map_Manager<[uses type]_var>::iterator
+ iter = this->ciso_muses_[receptacle name]_.begin ();
+ iter != end;
+ ++iter)
+ {
+ ACE_Active_Map_Manager<[uses type]_var>::ENTRY &entry = *iter;
+ retv[i]->objref = [uses type]::_narrow (entry.int_id_.in ());
+ retv[i]->ck = new CIAO::Map_Key_Cookie (entry.ext_id_);
+ ++i;
+ }
+
+ return retv._retn ();
+}
+## endif [receptacle name]
+##end foreach [receptacle name] with [uses type]
+
+##foreach [event name] with [eventtype] in (list of all event sources) generate:
+void
+[ciao module name]::[component name]_Context::push_[event name] ([eventtype] *ev)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+## if [event name] belongs to an 'emits' port
+ this->ciao_emits_[event name]_consumer_->push_[event name] (ev);
+
+## else [event name] belongs to a 'publishes' port
+ ACE_Active_Map_Manager<[eventtype]Consumer_var>::iterator
+ end = this->ciao_publishes_[event name]_map_.end ();
+ for (ACE_Active_Map_Manager<[eventtype]Consumer_var>::iterator
+ iter = this->ciao_publishes_[event name]_map_.begin ();
+ iter != end;
+ ++iter)
+ {
+ ACE_Active_Map_Manager<[eventtype]Consumer_var>::ENTRY &entry = *iter;
+ [eventtype]Consumer_var c
+ = [eventtype]Consumer::_narrow (entry.int_id_.in ());
+ c->push_[eventtype] (ev);
+ }
+## endif [event name]
+}
+
+##end foreach [event name] with [eventtype]
+
+
+// Operations for publishes interfaces.
+##foreach [publish name] with [eventtype] in (list of all publishers) generate:
+::Components::Cookie *
+[ciao module name]::[component name]_Context::subscribe_[publish name] ([eventtype]Consumer_ptr c)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::ExceededConnectionLimit))
+{
+ if (CORBA::is_nil (c))
+ ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0);
+
+ [eventtype]Consumer_var sub
+ = [eventtype]Consumer::_duplicate (c);
+
+ ACE_Active_Map_Manager_Key key;
+ this->ciao_publishes_[publish name]_map_.bind (sub.in (),
+ key);
+
+ sub._retn (); // Release ownership to map.
+
+ ::Components::Cookie_var retv = new CIAO::Map_Key_Cookie (key);
+ return retv._retn ();
+}
+
+[eventtype]Consumer_ptr
+[ciao module name]::[component name]_Context::unsubscribe_[publish name] (::Components::Cookie *ck)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::InvalidConnection))
+{
+ [eventtype]Consumer_var retv;
+
+ ACE_Active_Map_Manager_Key key;
+ if (ck == 0 ||
+ CIAO::Map_Key_Cookie::extract (ck, key) == -1)
+ ACE_THROW_RETURN (::Components::InvalidConnection (), 0);
+
+ if (this->ciao_publishes_[publish name]_map_.unbind (key,
+ retv) != 0)
+ ACE_THROW_RETURN (::Components::InvalidConnection (), 0);
+
+ return retv._retn ();
+}
+
+##end foreach [publish name] with [eventtype]
+
+##foreach [receptacle name] with [uses type] in (list of all 'uses' interfaces) generate:
+
+## if [receptacle name] is a simplex receptacle ('uses')
+
+[uses type]_ptr
+[ciao module name]::[component name]_Context::get_connection_[receptacle name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return [uses type]::_duplicate (this->ciao_uses_[receptacle name]_.in ());
+}
+
+// Simplex [receptacle name] connection management operations
+void
+[ciao module name]::[component name]_Context::connect_[receptacle name] ([uses type]_ptr c)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::AlreadyConnected,
+ ::Components::InvalidConnection))
+{
+ if (! CORBA::is_nil (this->ciao_uses_[receptacle name]_.in ()))
+ throw ::Components::AlreadyConnected ();
+
+ if (CORBA::is_nil (c))
+ throw ::Components::InvalidConnection ();
+
+ // When do we throw InvalidConnection exception?
+ this->ciao_uses_[receptacle name]_ = [uses type]::_duplicate (c);
+}
+
+[uses type]_ptr
+[ciao module name]::[component name]_Context::disconnect_[receptacle name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::NoConnection))
+{
+ if (CORBA::is_nil (this->ciao_uses_[receptacle name]_.in ()))
+ throw ::Components::NoConnection ();
+
+ return this->ciao_uses_[receptacle name]_._retn ();
+}
+
+## else ([receptacle name] is a multiplex ('uses multiple') receptacle)
+// Multiplex [receptacle name] connection management operations
+::Components::Cookie *
+[ciao module name]::[component name]_Context::connect_[receptacle name] ([uses type]_ptr c)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::ExceedConnectionLimit,
+ ::Components::InvalidConnection))
+{
+ if (CORBA::is_nil (c))
+ ACE_THROW_RETURN (::Components::InvalidConnection (), 0);
+
+ [uses type]_var conn
+ = [uses type]::_duplicate (c);
+
+ ACE_Active_Map_Manager_Key key;
+ this->ciao_muses_[receptacle name]_.bind (conn.in (),
+ key);
+
+ conn._retn (); // Releases ownership to the map.
+
+ ::Components::Cookie_var retv = new CIAO::Map_Key_Cookie (key);
+ return retv._retn ();
+}
+
+[uses type]_ptr
+[ciao module name]::[component name]_Context::disconnect_[receptacle name] (::Components::Cookie *ck)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::InvalidConnection))
+{
+ [uses type]_var retv;
+
+ ACE_Active_Map_Manager_Key key;
+ if (ck == 0 ||
+ CIAO::Map_Key_Cookie::extract (ck, key) == -1)
+ ACE_THROW_RETURN (::Components::InvalidConnection (), 0);
+
+ if (this->ciao_muses_[receptacle name]_.unbind (key,
+ retv) != 0)
+ ACE_THROW_RETURN (::Components::InvalidConnection (), 0);
+
+ return retv._retn ();
+}
+
+## endif [receptacle name]
+##end foreach [receptacle name] with [uses type]
+
+// Operations for ::Components::SessionContext interface
+CORBA::Object_ptr
+[ciao module name]::[component name]_Context::get_CCM_object ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::IllegalState))
+{
+ // @@ How do I check for IllegalState here? When it's not in a
+ // callback operation...
+ // ACE_THROW_RETURN (::Components::IllegalState (), 0);
+
+ if (CORBA::is_nil (this->component_.in ()))
+ {
+ CORBA::Object_var obj = this->container_->get_objref (this->servant_);
+
+ this->component_ = [component name]::_narrow (obj.in ());
+
+ if (CORBA::is_nil (this->component_.in ()))
+ ACE_THROW_RETURN (CORBA::INTERNAL (), 0); // This should not happen...
+ }
+ return [component name]::_duplicate (this->component_.in ());
+}
+
+//////////////////////////////////////////////////////////////////
+// Component Servant Glue code implementation
+//////////////////////////////////////////////////////////////////
+
+[ciao module name]::[component name]_Servant::[component name]_Servant (CCM_[component name]_ptr exe,
+ ::Components::CCMHome_ptr h,
+ ::CIAO::Session_Container *c)
+ : executor_ (CCM_[component name]::_duplicate (exe)),
+ container_ (c)
+{
+ this->context_ = new [ciao module name]::[component name]_Context (h, c, this);
+
+ try
+ {
+ Components::SessionComponent_var scom =
+ Components::SessionComponent::_narrow (exe);
+
+ if (! CORBA::is_nil (scom.in ()))
+ scom->set_session_context (this->context_);
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ // @@ Ignore any exceptions? What happens if
+ // set_session_context throws an CCMException?
+ }
+}
+
+[ciao module name]::[component name]_Servant::~[component name]_Servant (void)
+{
+ try
+ {
+ Components::SessionComponent_var scom =
+ Components::SessionComponent::_narrow (this->executor_.in ());
+
+ if (! CORBA::is_nil (scom.in ()))
+ scom->ccm_remove ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ // @@ Ignore any exceptions? What happens if
+ // set_session_context throws an CCMException?
+ }
+ this->context_->_remove_ref ();
+}
+
+// Operations for provides interfaces.
+##foreach [facet name] with [facet type] in (list of all provided interfaces) generate:
+
+[facet type]_ptr
+[ciao module name]::[component name]_Servant::provide_[facet name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ if (CORBA::is_nil (this->provide_[facet name]_.in ()))
+ {
+ CCM_[facet type]_var fexe = this->executor_->get_[facet name] ();
+
+ if (CORBA::is_nil (fexe.in ()))
+ ACE_THROW_RETURN (CORBA::INTERNAL (), 0);
+
+ [ciao module name]::[facet type]_Servant *svt =
+ new [ciao module name]::[facet type]_Servant (fexe.in (),
+ this->context_);
+ PortableServer::ServantBase_var safe_servant (svt);
+
+ CORBA::Object_var obj = this->container_->install_servant (svt);
+
+ [facet type]_var fo = [facet type]::_narrow (obj.in ());
+
+ this->provide_[facet name]_ = fo;
+ }
+
+ return [facet type]::_duplicate (this->provide_[facet name]_.in ());
+}
+##end foreach [facet name] with [facet type]
+
+// Operations for consumers interfaces.
+##foreach [consumer name] with [eventtype] in (list of all consumers) generate:
+
+// EventConsumer Glue Code implementation
+
+// Inherit from ::Compopnents::EventBConsumerBase
+void
+[ciao module name]::[component name]_Servant::[eventtype]Consumer_[consumer name]_Servant::push_event (EventBase *ev)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::BadEventType))
+{
+ [eventtype]_var ev_type = [eventtype]::_downcast (ev);
+ if (ev_type != 0)
+ {
+ this->push_[eventtype] (ev_type.in ());
+ return;
+ }
+
+ // @@ This include the case when we receive a parent eventtype of [eventtype]
+
+ throw ::Components::BadEventType ();
+}
+
+// get_component implementation.
+[eventtype]Consumer_ptr
+[ciao module name]::[component name]_Servant::get_consumer_[consumer name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ if (CORBA::is_nil (this->consumes_[consumer name]_.in ()))
+ {
+ [ciao module name]::[component name]_Servant::[eventtype]Consumer_[consumer name]_Servant *svt =
+ new [ciao module name]::[component name]_Servant::[eventtype]Consumer_[consumer name]_Servant (this->executor_.in (),
+ this->context_);
+ PortableServer::ServantBase_var safe_servant (svt);
+
+ CORBA::Object_var obj = this->container_->install_servant (svt);
+
+ [eventtype]Consumer_var eco = [eventtype]Consumer::_narrow (obj.in ());
+
+ this->consumes_[consumer name]_ = eco;
+ }
+
+ return [eventtype]Consumer::_duplicate (this->consumes_[consumer name]_.in ());
+}
+
+##end foreach [consumer name] with [eventtype]
+
+// Operations for Navigation interface
+CORBA::Object_ptr
+[ciao module name]::[component name]_Servant::provide_facet (const char * name)
+ ACE_THROW_SPEC ((CORBA::SystemException ,
+ Components::InvalidName))
+{
+ if (name == 0)
+ ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0);
+
+ // We simply iterate thru all the facets this component provides
+ // now. We can also use a hash map along with perfect hashing
+ // (i.e., gperf) if we need faster performance since all the provided
+ // interfaces are static to a component definition.
+
+##foreach [facet name] with [facet type] in (list of all provided interfaces) generate:
+ if (ACE_OS_String::strcmp (name, "[facet name]") == 0)
+ return this->provide_[facet name] ();
+##end foreach [facet name] with [facet type]
+
+ ACE_THROW_RETURN (::Components::InvalidName (), 0);
+}
+
+::Components::FacetDescriptions *
+[ciao module name]::[component name]_Servant::get_all_facets ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ::Components::FacetDescriptions_var collection
+ = new ::Components::FacetDescriptions (#99); // #99 = number of all provided
+ // facets including those inherited
+ // from parent component(s).
+ collection->length (#99);
+
+ ::Components::FacetDescription_var x;
+ CORBA::ULong i = 0;
+
+##foreach [facet name] with [facet type] in (list of all provided interfaces) generate:
+
+ x = new ::OBV_Components::FacetDescription;
+
+ x->Name ((const char *)"[facet name]");
+ x->type_id ((const char *) "[facet type's repo id]"); //
+ x->facet_ref (this->provide_[facet name] ());
+
+ collection[i] = x._retn ();
+ ++i;
+##end foreach [facet name] with [facet type]
+
+ return collection._retn ();
+
+}
+
+::Components::FacetDescriptions *
+[ciao module name]::[component name]_Servant::get_named_facets (const Components::NameList & names)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName))
+{
+ ::Components::FacetDescriptions_var collection
+ = new ::Components::FacetDescriptions (names.length ());
+ collection->length (names.length ());
+
+ ::Components::FacetDescription_var x;
+ CORBA::ULong i = 0;
+ for (; i < names.length (); ++i)
+ {
+ x = new ::OBV_Components::FacetDescription;
+
+ // We probably need a more efficient way, e.g., a hash map, to handle all these.
+##foreach [facet name] with [facet type] in (list of all provided interfaces) generate:
+ (else) if (ACE_OS_String::strcmp (names[i].in (), "[facet name]") == 0)
+ {
+ x->Name ((const char *)"[facet name]");
+ x->type_id ((const char *) "[facet type's repo id]"); //
+ x->facet_ref (this->provide_[facet name] ());
+ }
+##end foreach [facet name] with [facet type]
+ else
+ ACE_THROW_RETURN (::Components::InvalidName (), 0);
+
+ collection[i] = x._retn ();
+ }
+ return collection._retn ();
+}
+
+CORBA::Boolean
+[ciao module name]::[component name]_Servant::same_component (CORBA::Object_ptr object_ref)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ if (CORBA::is_nil (object_ref))
+ ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0);
+
+ CORBA::Object_var the_other = object_ref->_get_component ();
+
+ CORBA::Object_var me = this->context_->get_CCM_object ();
+
+ return me->_is_equivalent (object_ref);
+}
+
+// Operations for Receptacles interface
+::Components::Cookie *
+[ciao module name]::[component name]_Servant::connect (const char * name,
+ CORBA::Object_ptr connection)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName,
+ Components::InvalidConnection,
+ Components::AlreadyConnected,
+ Components::ExceededConnectionLimit))
+{
+ // @@ We can omit this if clause if there's no receptacle in this component.
+ if (name == 0)
+ ACE_THROW_RETURN (Components::InvalidName (), 0);
+
+##foreach [receptacle name] with [uses type] in (list of all 'uses' interfaces) generate:
+ if (ACE_OS_String::strcmp (name, "[receptacle name]") == 0)
+ {
+ [uses type]_var _ciao_conn =
+ [uses type]::_narrow (connection);
+
+ if (CORBA::is_nil (_ciao_conn.in ()))
+ ACE_THROW_RETURN (::Components::InvalidConnection (), 0);
+
+## if [receptacle name] is a simplex receptacle ('uses')
+ this->connect_[receptacle name] (_caio_conn.in ());
+ return 0;
+## else ([receptacle name] is a multiplex ('uses multiple') receptacle)
+ return this->connect_[receptacle name] (_ciao_conn.in ());
+## endif [receptacle name]
+ }
+##end foreach [receptacle name] with [uses type]
+
+ ACE_THROW_RETURN (Components::InvalidName (), 0);
+}
+
+/*
+##foreach [receptacle name] with [uses type] in (list of all 'uses' interfaces) generate:
+## if [receptacle name] is a simplex receptacle ('uses')
+## else ([receptacle name] is a multiplex ('uses multiple') receptacle)
+## endif [receptacle name]
+##end foreach [receptacle name] with [uses type]
+*/
+
+CORBA::Object_ptr
+[ciao module name]::[component name]_Servant::disconnect (const char * name,
+ Components::Cookie *ck)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName,
+ Components::InvalidConnection,
+ Components::CookieRequired,
+ Components::NoConnection))
+{
+ // @@ We can omit this if clause if there's no receptacle in this component.
+ if (name == 0)
+ ACE_THROW_RETURN (Components::InvalidName (), 0);
+
+##foreach [receptacle name] with [uses type] in (list of all 'uses' interfaces) generate:
+ if (ACE_OS_String::strcmp (name, "[receptacle name]") == 0)
+## if [receptacle name] is a simplex receptacle ('uses')
+ return this->disconnect_[receptacle name] ();
+## else ([receptacle name] is a multiplex ('uses multiple') receptacle)
+ return this->connect_[receptacle name] (ck);
+## endif [receptacle name]
+##end foreach [receptacle name] with [uses type]
+
+ ACE_THROW_RETURN (Components::InvalidName (), 0);
+}
+
+::Components::ConnectionDescriptions *
+[ciao module name]::[component name]_Servant::get_connections (const char * name)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName))
+{
+ // @@ We can omit this if clause if there's no receptacle in this component.
+ if (name == 0)
+ ACE_THROW_RETURN (Components::InvalidName (), 0);
+
+##foreach [receptacle name] with [uses type] in (list of all 'uses' interfaces) generate:
+ if (ACE_OS_String::strcmp (name, "[receptacle name]") == 0)
+ {
+## if [receptacle name] is a simplex receptacle ('uses')
+ ::Components::ConnectionDescriptions_var retv =
+ new ::Components::ConnectionDescriptions (1);
+ retv->length (1);
+
+ retv[0] = new OBV_Components::ConnectionDescription;
+ retv[0]->ck = 0;
+ retv[0]->objref = this->get_connection_[receptacle name] ();
+
+ return retv._retn ();
+## else ([receptacle name] is a multiplex ('uses multiple') receptacle)
+ // @@ Return type does not match here. We can not return directly.
+ return this->get_connections_[receptacle name] ();
+## endif [receptacle name]
+ }
+##end foreach [receptacle name] with [uses type]
+
+ ACE_THROW_RETURN (Components::InvalidName (), 0);
+}
+
+::Components::ReceptacleDescriptions *
+[ciao module name]::[component name]_Servant::get_all_receptacles ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ::Components::ReceptacleDescriptions_var retv =
+ new ::Components::ReceptacleDescriptions (#99); // #99 is number of receptacles
+ // this component has.
+ retv->length (#99);
+ CORBA::ULong i = 0;
+
+##foreach [receptacle name] with [uses type] in (list of all 'uses' interfaces) generate:
+ retv[i] = new OBV_Components::ReceptacleDescription;
+
+ retv[i]->Name ((const char *) "[receptacle name]");
+ retv[i]->type_id ((const char *) "[uses type repo id]");
+## if [receptacle name] is a simplex receptacle ('uses')
+ retv[i]->is_multiple (0);
+## else ([receptacle name] is a multiplex ('uses multiple') receptacle)
+ retv[i]->is_multiple (1);
+## endif [receptacle name]
+ retv[i]->connections (*this->get_connections ("[receptacle name]"));
+ ++i;
+##end foreach [receptacle name] with [uses type]
+
+ return retv._retn ();
+}
+
+::Components::ReceptacleDescriptions *
+[ciao module name]::[component name]_Servant::get_named_receptacles (const Components::NameList & names)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName))
+{
+ ::Components::ReceptacleDescriptions_var retv =
+ new ::Components::ReceptacleDescriptions (names.length ());
+ retv->length (names.length ());
+
+ CORBA::ULong i = 0;
+ for (; i < names.length (); ++i)
+ {
+ retv[i] = new ::OBV_Components::ReceptacleDescription;
+##foreach [receptacle name] with [uses type] in (list of all 'uses' interfaces) generate:
+ (else) if (ACE_OS_String::strcmp (names[i].in (), "[receptacle name]") == 0)
+ {
+ retv[i]->Name ((const char *) "[receptacle name]");
+ retv[i]->type_id ((const char *) "[uses type repo id]");
+## if [receptacle name] is a simplex receptacle ('uses')
+ retv[i]->is_multiple (0);
+## else ([receptacle name] is a multiplex ('uses multiple') receptacle)
+ retv[i]->is_multiple (1);
+## endif [receptacle name]
+ retv[i]->connections (*this->get_connections ("[receptacle name]"));
+ }
+##end foreach [receptacle name] with [uses type]
+ else
+ ACE_THROW_RETURN (::Components::InvalidName (), 0);
+ }
+ return retv._retn ();
+}
+
+// Operations for Events interface
+::Components::EventConsumerBase_ptr
+[ciao module name]::[component name]_Servant::get_consumer (const char * sink_name)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName))
+{
+ // @@ We can omit this if clause if there's no event sinks in this component.
+ if (sink_name == 0)
+ ACE_THROW_RETURN (Components::InvalidName (), 0);
+
+##foreach [consumer name] with [eventtype] in (list of all consumers) generate:
+ if (ACE_OS_String::strcmp (sink_name, "[consumer name]") == 0)
+ return this->get_consumer_[consumer name] ();
+##end foreach [consumer name] with [eventtype]
+ ACE_THROW_RETURN (Components::InvalidName (), 0);
+}
+
+::Components::Cookie *
+[ciao module name]::[component name]_Servant::subscribe (const char * publisher_name,
+ Components::EventConsumerBase_ptr subscriber)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName,
+ Components::InvalidConnection,
+ Components::ExceededConnectionLimit))
+{
+ // @@ We can omit this if clause if there's no publisher in this component.
+ if (publisher_name == 0)
+ ACE_THROW_RETURN (Components::InvalidName (), 0);
+
+##foreach [publish name] with [eventtype] in (list of all publishers) generate:
+ if (ACE_OS_String::strcmp (publisher_name, "[publish name]") == 0)
+ {
+ [eventtype]Consumer_var _ciao_consumer =
+ [eventtype]Consumer::_narrow (subscriber);
+
+ if (CORBA::is_nil (_ciao_consumer.in ()))
+ ACE_THROW_RETURN (Components::InvalidConnection (), 0);
+
+ return this->subscribe_[publish name] (_ciao_consumer.in ());
+ }
+##end foreach [publish name] with [eventtype]
+
+ ACE_THROW_RETURN (Components::InvalidName (), 0);
+}
+
+::Components::EventConsumerBase_ptr
+[ciao module name]::[component name]_Servant::unsubscribe (const char * publisher_name,
+ Components::Cookie *ck)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName,
+ Components::InvalidConnection))
+{
+ // @@ We can omit this if clause if there's no publisher in this component.
+ if (publisher_name == 0)
+ ACE_THROW_RETURN (Components::InvalidName (), 0);
+
+##foreach [publish name] with [eventtype] in (list of all publishers) generate:
+ if (ACE_OS_String::strcmp (publisher_name, "[publish name]") == 0)
+ {
+ return this->unsubscribe_[publish name] (ck);
+ }
+##end foreach [publish name] with [eventtype]
+
+ ACE_THROW_RETURN (Components::InvalidName (), 0);
+}
+
+void
+[ciao module name]::[component name]_Servant::connect_consumer (const char * emitter_name,
+ Components::EventConsumerBase_ptr consumer)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName,
+ Components::AlreadyConnected,
+ Components::InvalidConnection))
+{
+ // @@ We can omit this if clause if there's no emitter in this component.
+ if (emitter_name == 0)
+ throw Components::InvalidName ();
+
+##foreach [emit name] with [eventtype] in (list of all emitters) generate:
+ if (ACE_OS_String::strcmp (emitter_name, "[emit name]") == 0)
+ {
+ [eventtype]Consumer_var _ciao_consumer =
+ [eventtype]Consumer::_narrow (consumer);
+
+ if (CORBA::is_nil (_ciao_consumer.in ()))
+ throw Components::InvalidConnection;
+
+ this->connect_[emit name] (_ciao_consumer.in ());
+ return;
+ }
+##end foreach [emit name] with [eventtype]
+
+ throw Components::InvalidName ();
+}
+
+::Components::EventConsumerBase_ptr
+[ciao module name]::[component name]_Servant::disconnect_consumer (const char * source_name)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName,
+ Components::NoConnection))
+{
+ // @@ We can omit this if clause if there's no emitter in this component.
+ if (source_name == 0)
+ ACE_THROW_RETURN (Components::InvalidName (), 0);
+
+##foreach [emit name] with [eventtype] in (list of all emitters) generate:
+ if (ACE_OS_String::strcmp (source_name, "[emit name]") == 0)
+ {
+ return this->disconnect_[emit name] ();
+ }
+##end foreach [emit name] with [eventtype]
+
+ ACE_THROW_RETURN (Components::InvalidName (), 0);
+}
+
+::Components::ConsumerDescriptions *
+[ciao module name]::[component name]_Servant::get_all_consumers ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ::Components::ConsumerDescriptions_var retv =
+ new ::Components::ConsumerDescriptions (#99); // #99 is the number of consumers
+ // this component has.
+ retv->length (#99);
+
+ CORBA::ULong i = 0;
+##foreach [consumer name] with [eventtype] in (list of all consumers) generate:
+ retv[i] = new OBV_Components::ConsumerDescription;
+ retv[i]->Name ("[consumer name]");
+ retv[i]->type_id ("[eventtype]Consumer repo id");
+ [eventtype]Consumer_var c
+ = this->get_consumer_[consumer name] ();
+
+ retv[i]->consumer (c.in ());
+
+ i++;
+##end foreach [consumer name] with [eventtype]
+
+ return retv._retn ();
+}
+
+::Components::ConsumerDescriptions *
+[ciao module name]::[component name]_Servant::get_named_consumers (const Components::NameList & names)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName))
+{
+ ::Components::ConsumerDescriptions_var retv =
+ new ::Components::ConsumerDescriptions (names.length ());
+ retv->length (names.length ());
+
+ CORBA::ULong i = 0;
+ for (; i < names.length (); ++i)
+ {
+ retv[i] = new OBV_Components::ConsumerDescription;
+
+##foreach [consumer name] with [eventtype] in (list of all consumers) generate:
+ (else) if (ACE_OS_String::strcmp (names[i].in (), "[consumer name]") == 0)
+ {
+ retv[i]->Name ("[consumer name]");
+ retv[i]->type_id ("[eventtype]Consumer repo id");
+ [eventtype]Consumer_var c =
+ this->get_consumer_[consumer name] ();
+
+ retv[i]->consumer (c.in ());
+ }
+##end foreach [consumer name] with [eventtype]
+ else
+ ACE_THROW_RETURN (::Components::InvalidName (), 0);
+ }
+ return retv._retn ();
+}
+
+::Components::EmitterDescriptions *
+[ciao module name]::[component name]_Servant::get_all_emitters ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ::Components::EmitterDescriptions_var retv =
+ new ::Components::EmitterDescriptions (#99); // #99 is the number of emitters
+ // this component has.
+ retv->length (#99);
+
+ CORBA::ULong i = 0;
+##foreach [emit name] with [eventtype] in (list of all emitters) generate:
+ retv[i] = new OBV_Components::EmitterDescription;
+ retv[i]->Name ("[emit name]");
+ retv[i]->type_id ("[eventtype]Consumer repo id");
+ retv[i]->consumer ([eventtype]Consumer::_duplicate (this->context_->ciao_emits_[emit name]_consumer_));
+
+ i++;
+##end foreach [emitter name] with [eventtype]
+
+ return retv._retn ();
+}
+
+::Components::EmitterDescriptions *
+[ciao module name]::[component name]_Servant::get_named_emitters (const Components::NameList & names)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName))
+{
+ ::Components::EmitterDescriptions_var retv =
+ new ::Components::EmitterDescriptions (names.length ());
+ retv->length (names.length ());
+
+ CORBA::ULong i = 0;
+ for (; i < names.length (); ++i)
+ {
+ retv[i] = new OBV_Components::EmitterDescription;
+
+##foreach [emit name] with [eventtype] in (list of all emitters) generate:
+ (else) if (ACE_OS_String::strcmp (names[i].in (), "[emit name]") == 0)
+ {
+ retv[i]->Name ("[emit name]");
+ retv[i]->type_id ("[eventtype]Consumer repo id");
+ retv[i]->consumer ([eventtype]Consumer::_duplicate (this->context_->ciao_emits_[emit name]_consumer_.in ()));
+ }
+##end foreach [consumer name] with [eventtype]
+ else
+ ACE_THROW_RETURN (::Components::InvalidName (), 0);
+ }
+ return retv._retn ();
+}
+
+::Components::PublisherDescriptions *
+[ciao module name]::[component name]_Servant::get_all_publishers ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // @@ to-do
+
+ // Need to add interfaces in the Context class to gather the information.
+ // Or we can just relay it to the Context object.
+ ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
+}
+
+::Components::PublisherDescriptions *
+[ciao module name]::[component name]_Servant::get_named_publishers (const Components::NameList & names)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName))
+{
+ // @@ to-do
+
+ // Need to add interfaces in the Context class to gather the information.
+ // Or we can just relay it to the Context object.
+ ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
+}
+
+// Operations for CCMObject interface
+::CORBA::IRObject_ptr
+[ciao module name]::[component name]_Servant::get_component_def ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // @@ to-do: Connect to an IfR?
+ ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
+}
+
+::Components::CCMHome_ptr
+[ciao module name]::[component name]_Servant::get_ccm_home ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->context_->get_CCM_home ();
+}
+
+::Components::PrimaryKeyBase *
+[ciao module name]::[component name]_Servant::get_primary_key ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::NoKeyAvailable))
+{
+ // This is a keyless component.
+ ACE_THROW_RETURN (::Components::NoKeyAvailable (), 0);
+}
+
+void
+[ciao module name]::[component name]_Servant::configuration_complete ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidConfiguration))
+{
+ // @@ to-do
+ // No-op. Don't know how to pass this info to monolithic executor.
+}
+
+void
+[ciao module name]::[component name]_Servant::remove ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::RemoveFailure))
+{
+ // @@ to-do
+ // Need to figure out what to do here. E.g., tear down the all the connections
+ // this component has?
+}
+
+::Components::ComponentPortDescription *
+[ciao module name]::[component name]_Servant::get_all_ports ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ::Components::ComponentPortDescription_var retv =
+ new OBV_Components::ComponentPortDescription;
+
+ ::Components::FacetDescriptions_var facets_desc
+ = this->get_all_facets ();
+
+ ::Components::ReceptacleDescriptions_var receptacle_desc
+ = get_all_receptacles ();
+
+ ::Components::ConsumerDescriptions_var consumer_desc
+ = this->get_all_consumers ();
+
+ ::Components::EmitterDescriptions_var emitter_desc
+ = this->get_all_emitters ();
+
+ ::Components::PublisherDescriptions_var publisher_desc
+ = this->get_all_publishers ();
+
+ retv->facets (facets_desc.in());
+ retv->receptacles (receptacle_desc.in());
+ retv->consumers (consumer_desc.in());
+ retv->emitters (emitter_desc.in());
+ retv->publishers (publisher_desc.in());
+
+ return retv._retn();
+}
+
+// get_component implementation.
+CORBA::Object_ptr
+[ciao module name]::[component name]_Servant::_get_component ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ::Components::SessionContext_var sc =
+ ::Components::SessionContext::_narrow (this->context_);
+
+ if (! CORBA::is_nil(sc.in ()))
+ return sc->get_CCM_object ();
+
+ // @@ Do we need to try the following case here? We are afterall implementing
+ // a session component here.
+ ::Components::EntityContext_var ec =
+ ::Components::EntityContext::_narrow (this->context_);
+
+ if (! CORBA::is_nil(ec.in ()))
+ return ec->get_CCM_object ();
+
+ ACE_THROW_RETURN (CORBA::INTERNAL (), 0);
+}
+
+void
+[ciao module name]::[component name]_Servant::_ciao_activate ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ::Components::SessionComponent_var temp =
+ ::Components::SessionComponent::_narrow (this->executor_.in ());
+
+ if (! CORBA::is_nil (temp.in ()))
+ temp->ccm_activate ();
+}
+
+void
+[ciao module name]::[component name]_Servant::_ciao_passivate ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ::Components::SessionComponent_var temp =
+ ::Components::SessionComponent::_narrow (this->executor_.in ());
+
+ if (! CORBA::is_nil (temp.in ()))
+ temp->ccm_passivate ();
+}
+
+//////////////////////////////////////////////////////////////////
+// Component Home Glue code implementation
+//////////////////////////////////////////////////////////////////
+
+[component name]_ptr
+[ciao module name]::[home name]_Servant::_ciao_activate_component (CCM_[component name]_ptr exe)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ CORBA::Object_var hobj
+ = this->container_->get_objref (this);
+
+ ::Components::CCMHome_var home
+ = ::Components::CCMHome::_narrow (hobj.in ());
+
+ [ciao module name]::[component name]_Servant *svt =
+ new [ciao module name]::[component name]_Servant (exe,
+ home.in (),
+ this->container_);
+ PortableServer::ServantBase_var safe (svt);
+ PortableServer::ObjectId_var oid;
+
+ CORBA::Object_var objref
+ = this->container_->install_component (svt,
+ oid.out ());
+
+ svt->_ciao_activate ();
+
+ [component name]_var ho
+ = [component name]::_narrow (objref.in ());
+
+ if (this->component_map_.bind (oid.in (), svt) == 0)
+ {
+ // @@ what should happen if bind fail?
+ safe._retn ();
+ }
+ return ho._retn ();
+}
+
+void
+[ciao module name]::[home name]_Servant::_ciao_passivate_component ([component name]_ptr comp)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ PortableServer::ObjectId_var oid;
+
+ this->container_->uninstall_component (comp,
+ oid.out ());
+
+ [ciao module name]::[component name]_Servant *servant = 0;
+ if (this->component_map_.unbind (oid.in (), servant) == 0)
+ {
+ PortableServer::ServantBase_var safe (servant);
+ servant->_ciao_passivate ();
+ }
+ // What happen if unbind failed?
+
+}
+
+// Operations for Implicit Home interface
+[component name]_ptr
+[ciao module name]::[home name]_Servant::create ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CreateFailure))
+{
+ if (this->executor_.in () == 0)
+ ACE_THROW_RETURN (CORBA::INTERNAL (), 0);
+
+ Components::EnterpriseComponent_var _ciao_ec =
+ this->executor_->create ();
+
+ CCM_[component name]_var _ciao_comp
+ = CCM_[component name]::_narrow (_ciao_ec.in ());
+
+ return this->_ciao_activate_component (_ciao_comp.in ());
+}
+
+// Operations for CCMHome interface
+void
+[ciao module name]::[home name]_Servant::remove_component (Components::CCMObject_ptr comp)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::RemoveFailure))
+{
+ [component name]_var _ciao_comp
+ = [component name]::_narrow (comp);
+
+ if (CORBA::is_nil (_ciao_comp.in ()))
+ throw CORBA::INTERNAL (); // What is the right exception to throw here?
+
+ // @@ It seems to me that we need to make sure this is a component
+ // generated by this home before calling remove on this component.
+ _ciao_comp->remove ();
+
+
+ // Removing the object reference? get the servant from the POA with
+ // the objref, and call remove() on the component, deactivate the
+ // component, and then remove-ref the servant?
+ this->_ciao_passivate_component (_ciao_comp.in ());
+}
+
+extern "C" [SERVANT]_Export ::PortableServer::Servant
+create[home name]_Servant (::Components::HomeExecutorBase_ptr p,
+ CIAO::Session_Container *c);
+{
+ if (p == 0)
+ return 0;
+
+ CCM_[home name]_var x
+ = CCM_[home name]::_narrow (p);
+
+ if (CORBA::is_nil (x.in ()))
+ return 0;
+
+ return new [ciao module name]::[home name]_Servant (x.in (),
+ c);
+}
diff --git a/modules/CIAO/docs/templates/CIAO_Glue_Session_Template.h b/modules/CIAO/docs/templates/CIAO_Glue_Session_Template.h
new file mode 100644
index 00000000000..25c7813db53
--- /dev/null
+++ b/modules/CIAO/docs/templates/CIAO_Glue_Session_Template.h
@@ -0,0 +1,694 @@
+// $Id$
+
+// ===========================================================
+//
+// @file CIAO_Glue_Session_Template.h
+//
+// This is a pseudo-meta generic servant implementations template
+// for CIAO's CIDL compiler. It demonstrates how a servant
+// implementation for a session component should look like.
+//
+// The generated filename for files using this template shoule be
+// [idl-basename]_svnt.h
+//
+// @author Nanbor Wang <nanbor@cs.wustl.edu>
+//
+// ===========================================================
+
+#ifndef CIAO_GLUE_SESSION_[idl-basename]_SVNT_H
+#define CIAO_GLUE_SESSION_[idl-basename]_SVNT_H
+#include /**/ "ace/pre.h"
+
+#include "[idl-name]S.h" // Source in the skeletons for component
+ // client-view equivalent interfaces
+#include "[idl-name]EC.h" // Source in the executor mapping
+ // that component implementations use
+#include "ciao/Container_Base.h" //Source in the container interface definitions
+#include "tao/LocalObject.h"
+#include "tao/PortableServer/Key_Adapters.h"
+#include "ace/Active_Map_Manager_T.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+/// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+/// @@@ Notice that all component and interface names need to be
+/// fully qualified as we are creating a new namespace for the CIAO's
+/// container glue code.
+/// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+
+##if component is defined withing a [module name]
+namespace CIAO_GLUE_[module_name]
+##else
+namespace CIAO_GLUE
+##endif
+{
+
+ //////////////////////////////////////////////////////////////////
+ // Facet Glue Code implementation
+ // @@ We are assuming that these facets are declared under the same
+ // module as the component (thus, we are placing this glue code
+ // here under the same namespace. If they are not, we will
+ // either be generating them in separate namespaces, or include
+ // some other CIDL generated files to get the glue code
+ // implementation.
+
+##foreach [facet type] in (all facet interface types in the original IDL)
+ class [SERVANT]_Export [facet type]_Servant :
+ : public virtual POA_[facet type] // full skeleton name here
+ {
+ public:
+ // Constructor and destructor.
+ [facet type]_Servant (CCM_[facet type]_ptr executor,
+ ::Components::CCMContext_ptr ctx);
+ ~[facet tyep]_Servant ();
+
+## foreach [operation] in (all facet operations)
+ // Generate operation decls.
+## end foreach [operation]
+
+ // get_component implementation.
+ virtual CORBA::Object_ptr
+ _get_component ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ protected:
+ // Facet executor.
+ CCM_[facet type]_var executor_;
+
+ // Context object.
+ ::Components::CCMContext_var ctx_;
+ };
+##end foreach [facet type]
+
+
+ //////////////////////////////////////////////////////////////////
+ // Component specific context implementation
+ class [SERVANT]_Export [component name]_Context :
+ public virtual CCM_[component name]_Context,
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ // We will allow the the servant glue code we generate to access
+ // our states.
+ friend class [component name]_Servant;
+
+ // Ctor.
+ [component name]_Context (::Components::CCMHome_ptr home,
+ ::CIAO::Session_Container *c,
+ [component name]_Servant *sv);
+
+ // Dtor.
+ virtual ~[component name]_Context ();
+
+ // Operations for [component name] event source, and
+ // receptacles defined in CCM_[component name]_Context.
+
+##foreach [receptacle name] with [uses type] in (list of all 'uses' interfaces) generate:
+## if [receptacle name] is a simplex receptacle ('uses')
+ [uses type]_ptr
+ get_connection_[receptacle name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+## else ([receptacle name] is a multiplex ('uses multiple') receptacle)
+ // [receptacle name]Connections typedef'ed as a sequence of
+ // struct [receptacle name]Connection.
+ [receptacle name]Connections *
+ get_connections_[receptacle name] ();
+ ACE_THROW_SPEC ((CORBA::SystemException));
+## endif [receptacle name]
+##end foreach [receptacle name] with [uses type]
+
+##foreach [event name] with [eventtype] in (list of all event sources) generate:
+ void push_[event name] ([eventtype] *ev)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+##end foreach [event name] with [eventtype]
+
+ // Operations for ::Components::CCMContext
+ virtual ::Components::Principal_ptr
+ get_caller_principal ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual ::Components::CCMHome_ptr
+ get_CCM_home ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual CORBA::Boolean
+ get_rollback_only ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::IllegalState));
+
+ virtual ::Components::Transaction::UserTransaction_ptr
+ get_user_transaction ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::IllegalState));
+
+ virtual CORBA::Boolean
+ is_caller_in_role (const char * role)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual void
+ set_rollback_only ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::IllegalState));
+
+ // Operations for ::Components::SessionContext interface
+ virtual CORBA::Object_ptr
+ get_CCM_object ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::IllegalState));
+ protected:
+ // We need to generate, in protected section, stuff that manage
+ // connections and consumers of this component.
+
+##foreach [receptacle name] with [uses type] in (list of all 'uses' interfaces) generate:
+## if [receptacle name] is a simplex receptacle ('uses')
+ // Simplex [receptacle name] connection management operations
+ void
+ connect_[receptacle name] ([uses type]_ptr c)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::AlreadyConnected,
+ ::Components::InvalidConnection));
+
+ [uses type]_ptr
+ disconnect_[receptacle name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::NoConnection));
+
+ // Simplex [receptacle name] connection
+ [uses type]_var ciao_uses_[receptacle name]_;
+
+## else ([receptacle name] is a multiplex ('uses multiple') receptacle)
+ // Multiplex [receptacle name] connection management operations
+ ::Components::Cookie *
+ connect_[receptacle name] ([uses type]_ptr c)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::ExceedConnectionLimit,
+ ::Components::InvalidConnection));
+
+ [uses type]_ptr
+ disconnect_[receptacle name] (::Components::Cookie *ck)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::InvalidConnection));
+
+ // Multiplex [receptacle name] connections
+
+ ACE_Active_Map_Manager<[uses type]_var> ciao_muses_[receptacle name]_;
+## endif [receptacle name]
+##end foreach [receptacle name] with [uses type]
+
+ // Operations for emits interfaces.
+##foreach [emit name] with [eventtype] in (list of all emitters) generate:
+ void
+ connect_[emit name] ([eventtype]Consumer_ptr c)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::AlreadyConnected));
+
+ [eventtype]Consumer_ptr
+ disconnect_[emit name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::NoConnection));
+
+ [eventtype]Consumer_var ciao_emits_[emit name]_consumer_;
+##end foreach [emit name] with [eventtype]
+
+ // Operations for publishes interfaces.
+##foreach [publish name] with [eventtype] in (list of all publishers) generate:
+ ::Components::Cookie *
+ subscribe_[publish name] ([eventtype]Consumer_ptr c)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::ExceededConnectionLimit));
+
+ [eventtype]Consumer_ptr
+ unsubscribe_[publish name] (::Components::Cookie *ck)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::InvalidConnection));
+
+ ACE_Active_Map_Manager<[eventtype]Consumer_var> ciao_publishes_[publish name]_map_;
+##end foreach [publish name] with [eventtype]
+
+ protected:
+ /// Cached component home reference.
+ ::Components::CCMHome_var home_;
+
+ /// session container
+ ::CIAO::Session_Container *container_;
+
+ /// Reference back to owner.
+ [component name]_Servant *servant_;
+
+ /// @@ Cached component reference.
+ [component name]_var component_;
+
+ };
+
+ //////////////////////////////////////////////////////////////////
+ // Component Servant Glue code implementation
+ class [SERVANT]_Export [component name]_Servant
+ : public virtual POA_[component name] // full skeleton name here
+ {
+ public:
+ // Ctor.
+ [component name]_Servant (CCM_[component name]_ptr executor,
+ ::Components::CCMHome_ptr home,
+ ::CIAO::Session_Container *c);
+
+ // Dtor.
+ ~[component name]_Servant (void);
+
+##foreach [operation] in all supported interfaces of own component and all inherited components and attribute accessors/mutators
+
+ // Generate the [operation] here.
+
+##end
+
+ // Operations for provides interfaces.
+##foreach [facet name] with [facet type] in (list of all provided interfaces) generate:
+ virtual [facet type]_ptr
+ provide_[facet name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+##end foreach [facet name] with [facet type]
+
+ // Operations for receptacles interfaces.
+
+##foreach [receptacle name] with [uses type] in (list of all 'uses' interfaces) generate:
+## if [receptacle name] is a simplex receptacle ('uses')
+ // Simplex [receptacle name] connection management operations
+ virtual void
+ connect_[receptacle name] ([uses type]_ptr c)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::AlreadyConnected,
+ ::Components::InvalidConnection));
+
+ virtual [uses type]_ptr
+ disconnect_[receptacle name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::NoConnection));
+
+ virtual [uses type]_ptr
+ get_connection_[receptacle name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+## else ([receptacle name] is a multiplex ('uses multiple') receptacle)
+ // Multiplex [receptacle name] connection management operations
+ virtual ::Components::Cookie *
+ connect_[receptacle name] ([uses type]_ptr c)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::ExceedConnectionLimit,
+ ::Components::InvalidConnection));
+
+ virtual [uses type]_ptr
+ disconnect_[receptacle name] (::Components::Cookie *ck)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::InvalidConnection));
+
+ virtual [receptacle name]Connections *
+ get_connections_[receptacle name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+## endif [receptacle name]
+##end foreach [receptacle name] with [uses type]
+
+ // Operations for consumers interfaces.
+##foreach [consumer name] with [eventtype] in (list of all consumers) generate:
+
+ // First we need to generate the event sink specific servant
+ class [SERVANT]_Export [eventtype]Consumer_[consumer name]_Servant
+ : public virtual POA_[eventtype]Consumer // full skeleton name here
+ {
+ public:
+ // Constructor and destructor.
+ [event type]Consumer_[consumer name]_Servant (CCM_[component name]_ptr executor,
+ CCM_[component name]_Context_ptr c);
+
+ ~[event type]Consumer_[consumer name]_Servant ();
+
+## foreach [type] in ([eventtype] and all its parent eventtype, if any)
+ virtual void push_[type] ([type] *evt)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+## end [type]
+
+ // Inherit from ::Compopnents::EventConsumerBase
+ virtual void push_event (::Components::EventBase *ev)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::BadEventType));
+
+ // get_component implementation.
+ virtual CORBA::Object_ptr
+ _get_component ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ protected:
+ // Executor
+ CCM_[component name]_var executor_;
+
+ // Context object.
+ CCM_[component name]_Context_var ctx_;
+ };
+
+ virtual [eventtype]Consumer_ptr
+ get_consumer_[consumer name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+##end foreach [consumer name] with [eventtype]
+
+ // Operations for emits interfaces.
+##foreach [emit name] with [eventtype] in (list of all emitters) generate:
+ virtual void
+ connect_[emit name] ([eventtype]Consumer_ptr c)
+ ACE_THROW_SPEC ((CORBA::SystemException
+ ::Components::AlreadyConnected));
+
+ virtual [eventtype]Consumer_ptr
+ disconnect_[emit name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::NoConnection));
+##end foreach [emit name] with [eventtype]
+
+ // Operations for publishes interfaces.
+##foreach [publish name] with [eventtype] in (list of all publishers) generate:
+ virtual ::Components::Cookie *
+ subscribe_[publish name] ([eventtype]Consumer_ptr c)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::ExceededConnectionLimit));
+
+ virtual [eventtype]Consumer_ptr
+ unsubscribe_[publish name] (::Components::Cookie *ck)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::InvalidConnection));
+##end foreach [publish name] with [eventtype]
+
+ // Operations for Navigation interface
+ virtual CORBA::Object_ptr
+ provide_facet (const char * name)
+ ACE_THROW_SPEC ((CORBA::SystemException ,
+ Components::InvalidName)) ;
+
+ virtual ::Components::FacetDescriptions *
+ get_all_facets ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual ::Components::FacetDescriptions *
+ get_named_facets (const Components::NameList & names)
+ ACE_THROW_SPEC ((CORBA::SystemException ,
+ Components::InvalidName));
+
+ virtual CORBA::Boolean
+ same_component (CORBA::Object_ptr object_ref)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ // Operations for Receptacles interface
+ virtual ::Components::Cookie *
+ connect (const char * name,
+ CORBA::Object_ptr connection)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName,
+ Components::InvalidConnection,
+ Components::AlreadyConnected,
+ Components::ExceededConnectionLimit));
+
+ virtual CORBA::Object_ptr
+ disconnect (const char * name,
+ Components::Cookie *ck)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName,
+ Components::InvalidConnection,
+ Components::CookieRequired,
+ Components::NoConnection));
+
+ virtual ::Components::ConnectionDescriptions *
+ get_connections (const char * name)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName));
+
+ virtual ::Components::ReceptacleDescriptions *
+ get_all_receptacles ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual ::Components::ReceptacleDescriptions *
+ get_named_receptacles (const Components::NameList & names)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName));
+
+ // Operations for Events interface
+ virtual ::Components::EventConsumerBase_ptr
+ get_consumer (const char * sink_name)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName));
+
+ virtual ::Components::Cookie *
+ subscribe (const char * publisher_name,
+ Components::EventConsumerBase_ptr subscriber)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName,
+ Components::InvalidConnection,
+ Components::ExceededConnectionLimit));
+
+ virtual ::Components::EventConsumerBase_ptr
+ unsubscribe (const char * publisher_name,
+ Components::Cookie *ck)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName,
+ Components::InvalidConnection));
+
+ virtual void
+ connect_consumer (const char * emitter_name,
+ Components::EventConsumerBase_ptr consumer)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName,
+ Components::AlreadyConnected,
+ Components::InvalidConnection));
+
+ virtual ::Components::EventConsumerBase_ptr
+ disconnect_consumer (const char * source_name)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName,
+ Components::NoConnection));
+
+ virtual ::Components::ConsumerDescriptions *
+ get_all_consumers ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual ::Components::ConsumerDescriptions *
+ get_named_consumers (const Components::NameList & names)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName));
+
+ virtual ::Components::EmitterDescriptions *
+ get_all_emitters ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual ::Components::EmitterDescriptions *
+ get_named_emitters (const Components::NameList & names)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName));
+
+ virtual ::Components::PublisherDescriptions *
+ get_all_publishers ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual ::Components::PublisherDescriptions *
+ get_named_publishers (const Components::NameList & names)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidName));
+
+ // Operations for CCMObject interface
+ virtual ::CORBA::IRObject_ptr
+ get_component_def ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual ::Components::CCMHome_ptr
+ get_ccm_home ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual ::Components::PrimaryKeyBase *
+ get_primary_key ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::NoKeyAvailable));
+
+ virtual void
+ configuration_complete ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::InvalidConfiguration));
+
+ virtual void
+ remove ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::RemoveFailure));
+
+ virtual ::Components::ComponentPortDescription *
+ get_all_ports ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ // get_component implementation.
+ virtual CORBA::Object_ptr
+ _get_component ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ // CIAO specific operations.
+
+ // Activate the object in the container_
+ void
+ _ciao_activate ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ void
+ _ciao_passivate ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ protected:
+ // My Executor.
+ CCM_[component name]_var executor_;
+
+ // My Run-time Context.
+ [component name]_Context *context_;
+
+ // Managing container.
+ ::CIAO::Session_Container *container_;
+
+ // Cached provided interfaces.
+##foreach [facet name] with [facet type] in (list of all provided interfaces) generate:
+ [facet type]_var provide_[facet name]_;
+##end foreach [facet name] with [facet type]
+
+##foreach [consumer name] with [eventtype] in (list of all consumers) generate:
+ [eventtype]Consumer_var consumes_[consumer name]_;
+##end foreach [consumer name] with [eventtype]
+
+ };
+
+
+ //////////////////////////////////////////////////////////////////
+ // Component Home Glue code implementation
+
+ // Foreach component home
+ class [SERVANT]_Export [home name]_Servant :
+ public virtual POA_[home name] // full skeleton name here
+ {
+ public:
+ // Ctor.
+ [home name]_Servant (CCM_[home name]_ptr exe,
+ CIAO::Session_Container *c);
+
+ // Dtor.
+ ~[home name]_Servant (void);
+
+ // User defined and inherited operations
+##foreach [operation] in (all explicit operations in [home basename] including its parents)
+
+ // The operation decl here.
+
+## end foreach opeartion
+
+ // Factory operations
+##foreach [factory name] in (all factory operations in [home basename] including its parents)
+ // for factory operations inherit from parent home(s), they should return
+ // the corresponding component types their homes manage
+ virtual [component name]_ptr
+ [factory name] (....)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::CreateFailure,
+ ....));
+##end foreach [factory name]
+
+ // Finder operations
+##foreach [finder name] in (all finder operations in [home basename] including its parents)
+ // for finder operations inherit from parent home(s), they should return
+ // the corresponding component types their homes manage
+ virtual [component name]_ptr
+ [finder name] (....)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::FinderFailure,
+ ....));
+##end foreach [finder name]
+
+## if [home name] is a keyless home
+
+ // Operations for KeylessHome interface
+ virtual ::Components::CCMObject_ptr
+ create_component ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CreateFailure));
+
+## else [home basename] is keyed home with [key type]
+
+ // We do not support key'ed home at the moment but we might
+ // as well generate the mapping.
+ virtual [component name]_ptr create ([key type] *key)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::CreationFailure,
+ ::Components::DuplicateKeyValue,
+ ::Components::InvalidKey));
+
+ virtual [component name]_ptr
+ find_by_primary_key ([key type] *key)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::FinderFailure,
+ ::Components::UnknownKeyValue,
+ ::Components::InvalidKey));
+
+ virtual void remove ([key type] *key)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::RemoveFailure,
+ ::Components::UnknownKeyValue,
+ ::Components::InvalidKey));
+
+ virtual [key type] *
+ get_primary_key ([component name]_ptr comp)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+## endif (keyed or keyless home)
+
+ // Operations for Implicit Home interface
+ virtual [component name]_ptr
+ create ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CreateFailure));
+
+ // Operations for CCMHome interface
+ virtual ::CORBA::IRObject_ptr
+ get_component_def ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual ::CORBA::IRObject_ptr
+ get_home_def ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual void remove_component (Components::CCMObject_ptr comp)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::RemoveFailure));
+
+ protected:
+ // Helper method for factory operations.
+ [component name]_ptr
+ _ciao_activate_component (CCM_[component name]_ptr exe)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ void
+ _ciao_passivate_component ([component name]_ptr comp)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ // My Executor.
+ CCM_[home name]_var executor_;
+
+ // My Container
+ CIAO::Session_Container *container_;
+
+ // Components this home manages.
+ ACE_Hash_Map_Manager_Ex <PortableServer::ObjectId,
+ [component name]_Servant*,
+ TAO_ObjectId_Hash,
+ ACE_Equal_To<PortableServer::ObjectId>,
+ ACE_SYNCH_MUTEX> component_map_;
+ };
+
+}
+
+extern "C" [SERVANT]_Export ::PortableServer::Servant
+create[home name]_Servant (::Components::HomeExecutorBase_ptr p,
+ CIAO::Session_Container *c);
+
+#if defined (__ACE_INLINE__)
+# include "[idl-name]_svnt.inl"
+#endif /* __ACE_INLINE__ */
+
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_GLUE_SESSION_[idl-basename]_SVNT_H */
diff --git a/modules/CIAO/docs/templates/CIAO_Glue_Session_Template.inl b/modules/CIAO/docs/templates/CIAO_Glue_Session_Template.inl
new file mode 100644
index 00000000000..1cb07a064ae
--- /dev/null
+++ b/modules/CIAO/docs/templates/CIAO_Glue_Session_Template.inl
@@ -0,0 +1,471 @@
+// $Id$ -*- C++ -*-
+
+// The generated filename for files using this template shoule be
+// [idl-basename]GS.i GS --> GlueSession
+
+// @@ Notice: [ciao module name] can expand to either CIAO_GLUE or
+// CIAO_GLUE_[module name] as defined in the header file.
+
+/// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+/// @@@ Notice that all component and interface names need to be
+/// fully qualified as we are creating a new namespace for the CIAO's
+/// container glue code.
+/// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+
+//////////////////////////////////////////////////////////////////
+// Facet Glue Code implementation
+// @@ We are assuming that these facets are declared under the same
+// module as the component (thus, we are placing this glue code
+// here under the same namespace. If they are not, we will
+// either be generating them in separate namespaces, or include
+// some other CIDL generated files to get the glue code
+// implementation.
+//////////////////////////////////////////////////////////////////
+
+##foreach [facet type] in (all facet interface types in the original IDL)
+// Constructor and destructor.
+ACE_INLINE
+[ciao module name]::[facet type]_Servant::[facet type]_Servant (CCM_[facet type]_ptr executor,
+ ::Components::CCMContext_ptr c)
+ : executor_ (CCM_[facet type]::_duplicate (executor)),
+ ctx_ (Components::CCMContext::_duplicate (c))
+{
+}
+
+ACE_INLINE
+[ciao module name]::[facet type]_Servant::~[facet tyep]_Servant ()
+{
+}
+
+
+## foreach [operation] in (all facet operations)
+
+// This is only a guideline... we always relay the operation to underlying
+// executor.
+
+ACE_INLINE [operation return_type]
+[ciao module name]::[facet type]_Servant::[operation] ([operation args])
+{
+ // Simply relay to executor. May not need to return the result...
+ return this->executor_->operation ([operation args]);
+}
+## end foreach [operation]
+
+##end foreach [facet type]
+
+
+//////////////////////////////////////////////////////////////////
+// Component specific context implementation
+//////////////////////////////////////////////////////////////////
+
+ACE_INLINE
+[ciao module name]::[component name]_Context::[component name]_Context (::Components::CCMHome_ptr home,
+ ::CIAO::Session_Container *c,
+ [ciao module name]::[component name]_Servant *sv)
+ : home_ (::Components::CCMHome::_duplicate (home)),
+ container_ (c),
+ servant_ (sv)
+{
+
+}
+
+ACE_INLINE
+[ciao module name]::[component name]_Context::~[component name]_Context ()
+{
+}
+
+// Operations for emits interfaces.
+##foreach [emit name] with [eventtype] in (list of all emitters) generate:
+
+ACE_INLINE void
+[ciao module name]::[component name]_Context::connect_[emit name] ([eventtype]Consumer_ptr c)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::AlreadyConnected))
+{
+ if (CORBA::is_nil (c))
+ throw CORBA::BAD_PARAM ();
+
+ if (! CORBA::is_nil (this->ciao_emits_[emit name]_consumer_.in ()))
+ throw ::Components::AlreadyConnected ();
+
+ this->ciao_emits_[emit name]_consumer_ = c;
+}
+
+ACE_INLINE [eventtype]Consumer_ptr
+[ciao module name]::[component name]_Context::disconnect_[emit name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::NoConnection))
+{
+ if (CORBA::is_nil (this->ciao_emits_[emit name]_consumer_.in ()))
+ throw ::Components::NoConnection ();
+
+ return this->ciao_emits_[emit name]_consumer_._retn ();
+}
+
+##end foreach [emit name] with [eventtype]
+
+// Operations for ::Components::CCMContext
+ACE_INLINE ::Components::Principal_ptr
+[ciao module name]::[component name]_Context::get_caller_principal ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // @@ We don't support Security in CIAO yet.
+ ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
+}
+
+ACE_INLINE ::Components::CCMHome_ptr
+[ciao module name]::[component name]_Context::get_CCM_home ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return ::Components::CCMHome::_duplicate (this->home_.in ());
+}
+
+ACE_INLINE CORBA::Boolean
+[ciao module name]::[component name]_Context::get_rollback_only ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::IllegalState))
+{
+ // @@ We don't support Transaction in CIAO yet.
+ ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
+}
+
+ACE_INLINE ::Components::Transaction::UserTransaction_ptr
+[ciao module name]::[component name]_Context::get_user_transaction ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::IllegalState))
+{
+ // @@ We don't support Transaction in CIAO yet.
+ ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
+}
+
+ACE_INLINE CORBA::Boolean
+[ciao module name]::[component name]_Context::is_caller_in_role (const char * role)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ACE_UNUSED_ARG (role);
+
+ // @@ We don't support Transaction in CIAO yet.
+ ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
+}
+
+ACE_INLINE void
+[ciao module name]::[component name]_Context::set_rollback_only ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::IllegalState))
+{
+ // @@ We don't support Transaction in CIAO yet.
+ throw CORBA::NO_IMPLEMENT ();
+}
+
+//////////////////////////////////////////////////////////////////
+// Component Servant Glue code implementation
+//////////////////////////////////////////////////////////////////
+
+##foreach [operation] in all supported interfaces of own component and all inherited components and attribute accessors/mutators
+
+// This is only a guideline... we always relay the operation to underlying
+// executor.
+
+ACE_INLINE [operation return_type]
+[ciao module name]::[component name]_Servant::[operation] ([operation args])
+{
+ // Simply relay to executor. May not need to return the result...
+ return this->executor_->operation ([operation args]);
+}
+
+##end
+
+##foreach [receptacle name] with [uses type] in (list of all 'uses' interfaces) generate:
+## if [receptacle name] is a simplex receptacle ('uses')
+// Simplex [receptacle name] connection management operations
+ACE_INLINE void
+[ciao module name]::[component name]_Servant::connect_[receptacle name] ([uses type]_ptr c)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::AlreadyConnected,
+ ::Components::InvalidConnection))
+{
+ this->context_->connect_[receptacle name] (c);
+}
+
+ACE_INLINE [uses type]_ptr
+[ciao module name]::[component name]_Servant::disconnect_[receptacle name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::NoConnection))
+{
+ return this->context_->disconnect_[receptacle name] ();
+}
+
+ACE_INLINE [uses type]_ptr
+[ciao module name]::[component name]_Servant::get_connection_[receptacle name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->context_->get_connection_[receptacle name] ();
+}
+## else ([receptacle name] is a multiplex ('uses multiple') receptacle)
+
+// Multiplex [receptacle name] connection management operations
+ACE_INLINE ::Components::Cookie *
+[ciao module name]::[component name]_Servant::connect_[receptacle name] ([uses type]_ptr c)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::ExceedConnectionLimit,
+ ::Components::InvalidConnection))
+{
+ return this->context_->connect_[receptacle name] (c);
+}
+
+ACE_INLINE [uses type]_ptr
+[ciao module name]::[component name]_Servant::disconnect_[receptacle name] (::Components::Cookie *ck)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::InvalidConnection))
+{
+ return this->context_->disconnect_[receptacle name] (ck);
+}
+
+ACE_INLINE [receptacle name]Connections *
+[ciao module name]::[component name]_Servant::get_connections_[receptacle name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->context_->get_connections_[receptacle name] ();
+}
+
+## endif [receptacle name]
+##end foreach [receptacle name] with [uses type]
+
+//////////////////////////////////////////////////////////////////
+// EventConsumer Glue Code implementation
+// @@ We are assuming that these consumers are declared under the same
+// module as the component (thus, we are placing this glue code
+// here under the same namespace. If they are not, we will
+// either be generating them in separate namespaces, or include
+// some other CIDL generated files to get the glue code
+// implementation.
+//////////////////////////////////////////////////////////////////
+
+##foreach [consumer name] with [eventtype] in (list of all consumers) generate:
+
+// Constructor and destructor.
+ACE_INLINE
+[ciao module name]::[component name]_Servant::[eventtype]Consumer_[consumer name]_Servant::[eventtype]Consumer_[consumer name]_Servant
+ (CCM_[component name]_ptr executor,
+ CCM_[component name]_Context_ptr c)
+ : executor_ (CCM_[component name]::_duplicate (executor)),
+ ctx_ (CCM_[component name]_Context::_duplicate (c))
+{
+}
+
+ACE_INLINE
+[ciao module name]::[component name]_Servant::[eventtype]Consumer_[consumer name]_Servant::~[eventtype]Consumer_[consumer name]_Servant ()
+{
+}
+
+ACE_INLINE CORBA::Object_ptr
+[ciao module name]::[component name]_Servant::[eventtype]Consumer_[consumer name]_Servant::_get_component ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->ctx_->get_CCM_object ();
+}
+
+ACE_INLINE void
+[ciao module name]::[component name]_Servant::[eventtype]Consumer_[consumer name]_Servant::push_[eventtype]
+ ([eventtype] *evt)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->executor_->push_[consumer name] (evt);
+}
+
+## foreach [type] in (all parents of eventtype, if any, not including EventConsumerBase)
+ACE_INLINE void
+[ciao module name]::[component name]_Servant::[eventtype]Consumer_[consumer name]_Servant::push_[type]
+ ([type] *evt)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // @@ Problem, there's no way to handle this case.
+
+ // this->executor_->push_[consumer name] (evt ACE_ENV_ARG);
+ throw ::CORBA::BAD_PARAM ();
+}
+## end [type]
+
+##end foreach [consumer name]
+
+// Operations for emits interfaces.
+##foreach [emit name] with [eventtype] in (list of all emitters) generate:
+ACE_INLINE void
+[ciao module name]::[component name]_Servant::connect_[emit name] ([eventtype]Consumer_ptr c)
+ ACE_THROW_SPEC ((CORBA::SystemException
+ ::Components::AlreadyConnected))
+{
+ this->context_->connect_[emit name] (c);
+}
+
+ACE_INLINE [eventtype]Consumer_ptr
+[ciao module name]::[component name]_Servant::disconnect_[emit name] ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::NoConnection))
+{
+ return this->context_->disconnect_[emit name] ();
+}
+##end foreach [emit name] with [eventtype]
+
+// Operations for publishes interfaces.
+##foreach [publish name] with [eventtype] in (list of all publishers) generate:
+ACE_INLINE ::Components::Cookie *
+[ciao module name]::[component name]_Servant::subscribe_[publish name] ([eventtype]Consumer_ptr c)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::ExceededConnectionLimit))
+{
+ return this->context_->subscribe_[publish name] (c);
+}
+
+ACE_INLINE [eventtype]Consumer_ptr
+[ciao module name]::[component name]_Servant::unsubscribe_[publish name] (::Components::Cookie *ck)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::InvalidConnection))
+{
+ return this->context_->unsubscribe_[publish name] (ck);
+}
+##end foreach [publish name] with [eventtype]
+
+//////////////////////////////////////////////////////////////////
+// Component Home Glue code implementation
+//////////////////////////////////////////////////////////////////
+
+ACE_INLINE
+[ciao module name]::[home name]_Servant::[home name]_Servant (CCM_[home name]_ptr exe,
+ CIAO::Session_Container *c)
+ : executor_ (CCM_[home name]::_duplicate (exe)),
+ container_ (c)
+{
+}
+
+ACE_INLINE
+[ciao module name]::[home name]_Servant::~[home name]_Servant (void)
+{
+}
+
+##foreach [operation] in (all explicit operations in [home basename] including its parents)
+
+// The operation impl here. This can simply be relayed to the underlying executor...
+
+## end foreach opeartion
+
+##foreach [factory name] in (all factory operations in [home basename] including its parents)
+// for factory operations inherit from parent home(s), they should return
+// the corresponding component types their homes manage
+ACE_INLINE [component name]_ptr
+[ciao module name]::[home name]_Servant::[factory name] (....)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::CreateFailure,
+ ....))
+{
+ Components::EnterpriseComponent_var _ciao_ec =
+ this->executor_->[factory name] (....);
+
+ CCM_[component name]_var _ciao_comp
+ = CCM_[component name]::_narrow (_ciao_ec.in ());
+
+ return this->_ciao_activate_component (_ciao_comp.in ());
+}
+##end foreach [factory name]
+
+##foreach [finder name] in (all finder operations in [home basename] including its parents)
+// for finder operations inherit from parent home(s), they should return
+// the corresponding component types their homes manage
+ACE_INLINE [component name]_ptr
+[ciao module name]::[home name]_Servant::[finder name] (....)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::FinderFailure,
+ ....))
+{
+ Components::EnterpriseComponent_var com =
+ this->executor_->[finder name] (....);
+
+ // Do we create a new object reference referring to the same object,
+ // or do we try to create a different objref referring to the same object?
+ return this->_ciao_create_helper (com);
+}
+##end foreach [finder name]
+
+## if [home name] is a keyless home
+
+// Operations for KeylessHome interface
+ACE_INLINE ::Components::CCMObject_ptr
+[ciao module name]::[home name]_Servant::create_component ()
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CreateFailure))
+{
+ // Simply forward to the create method.
+ return this->create ();
+}
+
+## else [home basename] is keyed home with [key type]
+
+// We do not support key'ed home at the moment but we might
+// as well generate the mapping.
+ACE_INLINE [component name]_ptr
+[ciao module name]::[home name]_Servant::create ([key type] *key)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::CreationFailure,
+ ::Components::DuplicateKeyValue,
+ ::Components::InvalidKey))
+{
+ // @@ TO-DO when we suppor keyed home.
+
+ ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
+}
+
+ACE_INLINE [component name]_ptr
+[ciao module name]::[home name]_Servant::find_by_primary_key ([key type] *key)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::FinderFailure,
+ ::Components::UnknownKeyValue,
+ ::Components::InvalidKey))
+{
+ // @@ TO-DO when we suppor keyed home.
+
+ ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
+}
+
+
+ACE_INLINE void
+[ciao module name]::[home name]_Servant::remove ([key type] *key)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ ::Components::RemoveFailure,
+ ::Components::UnknownKeyValue,
+ ::Components::InvalidKey))
+{
+ // @@ TO-DO when we suppor keyed home.
+
+ throw CORBA::NO_IMPLEMENT ();
+}
+
+ACE_INLINE [key type] *
+[ciao module name]::[home name]_Servant::get_primary_key ([component name]_ptr comp)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // @@ TO-DO when we suppor keyed home.
+
+ ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
+}
+
+## endif (keyed or keyless home)
+
+
+// Operations for CCMHome interface
+ACE_INLINE ::CORBA::IRObject_ptr
+[ciao module name]::[home name]_Servant::get_component_def ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // @@ TO-DO. Contact IfR?
+
+ ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
+}
+
+ACE_INLINE CORBA::IRObject_ptr
+[ciao module name]::[home name]_Servant::get_home_def ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // @@ TO-DO. Contact IfR?
+
+ ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
+}
diff --git a/modules/CIAO/docs/templates/Executor.idl b/modules/CIAO/docs/templates/Executor.idl
new file mode 100644
index 00000000000..259bffac0df
--- /dev/null
+++ b/modules/CIAO/docs/templates/Executor.idl
@@ -0,0 +1,246 @@
+// $Id$
+
+// ===========================================================
+//
+// @file Executor.idl
+//
+// The purpose of this IDL file is to serve as a template for the CIDL
+// generated equivalent executor file. The CIDL will generate this
+// file directly which, in turn, gets compiled by the TAO IDL compiler
+// to generate the C++ mappings for the stuff defined in this file
+// into a set of [idl-name]EC.{h,inl,cpp} files.
+//
+// This intermediate step is necessary because component implemenetors
+// will need to extend these executor definitions (thru inheritance)
+// to implemenet more complex executor implementations, such as those
+// that support session component interface. (This is necessary to
+// properly support C++ mapping for features such as interface
+// narrowing.)
+//
+// What are missing in the template for executor mappings are the
+// exception specifications for most operations.
+//
+// @author Nanbor Wang <nanbor@cs.wustl.edu>
+//
+// ===========================================================
+
+#ifndef [component_idl]E_IDL
+#define [component_idl]E_IDL
+
+#include "CCM_Container.idl" // Found in $(CIAO_ROOT)/ciao
+ // For various definitions of container
+ // internal/callback interfaces
+#include "[component_idl].idl" // Original component IDL definition
+// @@ We may need to include other *E.idl here.... Can't figure out
+// if we can do this automagically or not.
+
+##if there are module definitions, preserve them all
+module [module_name] {
+##endif
+
+////////////////////////////////////////////////////////////////////
+//// * Iterate thru all supported interface types
+//// It's possible that we need to put some of the common supported
+//// interface definitions into a separate compilation unit. How do we
+//// specify that in CCIDL? I haven't figured that out. Perhaps
+//// allowing CCIDL to compile files that contain no component
+//// definition?
+##foreach [interface_type] in (types of all supported interface) generate:
+
+ local interface CCM_[interface_type] : [interface_type]
+ {
+ };
+
+##end foreach [interface_type]
+
+////////////////////////////////////////////////////////////////////
+//// * Iterate thru all facet ('provides' interface) interface types
+//// It's possible that we need to put some of the common facet
+//// definitions into a separate compilation unit. How do we
+//// specify that in CCIDL? I haven't figured that out. Perhaps
+//// allowing CCIDL to compile files that contain no component
+//// definition?
+##foreach [facet_interface_type] in (types of all facets) generate:
+
+ local interface CCM_[facet_interface_type] : [facet_interface_type]
+ {
+ };
+
+##end foreach [facet_interface_type]
+
+////////////////////////////////////////////////////////////////////
+//// * Iterate thru all event ('emits', "publishes', or 'consumes') types
+//// It's possible that we need to put some of the EventConsumer
+//// definitions into a separate compilation unit. Like in the case
+//// of facets interface mappings, how do we
+//// specify that in CCIDL? I haven't figured that out. Perhaps
+//// allowing CCIDL to compile files that contain no component
+//// definition?
+
+##foreach [eventtype] in (all eventtypes) generate:
+
+ local interface CCM_[eventtype]Consumer
+ {
+ void push (in [eventtype] ev);
+ };
+
+##end foreach [eventtype]
+
+
+////////////////////////////////////////////////////////////////////
+//// * Iterate thru all component definitions in the IDL files.
+//// Notice that there's no distinction between entity and session
+//// components in executor mappings.
+
+##foreach [component basename] in (all component definitions) generate:
+
+ // Component Main Executor Interface. We currently do not
+ // support Executor-based implementation.
+
+ local interface CCM_[component basename]_Executor
+ :
+## if [component basename] inherits from [parent component name]
+ CCM_[parent component name]_Executor
+## else
+ ::Components::EnterpriseComponent
+## endif
+## foreach [interface name] in (all component supported interfaces) generate:
+ , [interface name]
+## end foreach [interface name]
+
+ {
+## foreach [attribute definition] in (attributes defined in [component basename]) generate:
+ [attribute definition];
+## end foreach [attribute definition]
+
+ };
+
+ // Monolithic component executor.
+ // For implementing monolithic component call back interface.
+
+ local interface CCM_[component basename]
+ :
+## if [component basename] inherits from [parent component name]
+ CCM_[parent component name]
+## else
+ ::Components::EnterpriseComponent
+## endif
+## foreach [interface name] in (all component supported interfaces) generate:
+ , [interface name]
+## end foreach [interface name]
+
+ {
+## foreach [attribute definition] in (attributes defined in [component basename]) generate:
+ [attribute definition];
+## end foreach [attribute definition]
+
+## foreach [facet name] with [facet type] in (list of all provided interfaces) generate:
+ CCM_[facet type] get_[facet name] ();
+## end foreach [facet name] with [facet type]
+
+## foreach [event name] with [eventtype] in (list of all event sinks) generate:
+ void push_[event name] (in [eventtype] ev);
+## end foreach [event name] with [eventtype]
+
+ };
+
+ /**
+ * Component Context Interface
+ *
+ * Notice that we are taking a shortcut here to inherit the
+ * component-specific context from SessionContext directly instead
+ * of CCMContext.
+ */
+ local interface CCM_[component basename]_Context
+ :
+## if [component basename] inherits from [parent component name]
+ CCM_[parent component name]_Context
+## else
+ ::Components::SessionContext
+## endif
+ {
+
+## foreach [receptacle name] with [uses type] in (list of all 'uses' interfaces) generate:
+## if [receptacle name] is a simplex receptacle ('uses')
+ [uses type] get_connection_[receptacle name] ();
+## else ([receptacle name] is a multiplex ('uses multiple') receptacle)
+ // [receptacle name]Connections typedef'ed as a sequence of
+ // struct [receptacle name]Connection.
+ [receptacle name]Connections get_connections_[receptacle name] ();
+## endif [receptacle name]
+## end foreach [receptacle name] with [uses type]
+
+## foreach [event name] with [eventtype] in (list of all event sources) generate:
+ void push_[event name] (in [eventtype] ev);
+## end foreach [event name] with [eventtype]
+
+ };
+
+##end foreach [component basename]
+
+
+////////////////////////////////////////////////////////////////////
+//// * Iterate thru all home definitions in the IDL files.
+
+##foreach [home basename] in (all home definitions) generate:
+
+ local interface CCM_[home basename]Explicit
+ :
+## if [home basename] inherits from [parent home name]
+ CCM_[parent home name]Explicit
+## else
+ ::Components::HomeExecutorBase
+## endif
+## foreach [interface name] in (all home supported interfaces) generate:
+ , [interface name]
+## end foreach [interface name]
+ {
+##foreach [operation] in (all explicit operations defined in [home basename])
+
+ // The operation decl here.
+
+## end foreach opeartion
+
+##foreach [factory name] in (all factory operations defined in [home basename])
+ ::Components::EnterpriseComponent [factory name] (....)
+ raise (Components::CreateFailure, ....);
+##end foreach [factory name]
+
+##foreach [finder name] in (all finder operations defined in [home basename])
+ ::Components::EnterpriseComponent [finder name] (....)
+ raise (Components::FinderFailure, ....);
+##end foreach [finder name]
+ };
+
+ local interface CCM_[home basename]Implicit
+ {
+## if [home basename] is a keyless home
+ ::Components::EnterpriseComponent create ()
+ raises (::Components::CCMException);
+## else [home basename] is key'ed home with [key type]
+ // We do not support key'ed home at the moment but we might
+ // as well generate the mapping.
+ ::Components::EnterpriseComponent create (in [key type] key)
+ raises (::Components::CCMException);
+
+ ::Components::EnterpriseComponent find_by_primary_key (in [key type] key)
+ raises (::Components::CCMException);
+
+ void remove (in [key type] key)
+ raises (::Components::CCMException);
+## endif (key'ed or keyless home)
+ };
+
+ local interface CCM_[home basename]
+ : CCM_[home basename]Explicit,
+ CCM_[home basename]Implicit
+ {
+ };
+
+##end foreach [home basename]
+
+##if there are module definitions, preserve them all
+};
+##endif
+
+#endif /* [component_idl]E_IDL */
diff --git a/modules/CIAO/docs/templates/cidl_template.cidl b/modules/CIAO/docs/templates/cidl_template.cidl
new file mode 100644
index 00000000000..3d359708f32
--- /dev/null
+++ b/modules/CIAO/docs/templates/cidl_template.cidl
@@ -0,0 +1,31 @@
+// $Id$ -*- C++ -*-
+
+/**
+ * @file cidl_template.cidl
+ *
+ * This file show an example cidl file.
+ */
+
+// @@ We do not support import (yet).
+//import [component module];
+
+// [idl-basename] contains the IDL3 definitions for component(s) and
+// home(s) and the interfaces that they need.
+
+#include "[idl-basename].idl"
+
+// We only support a simple session implementation definition, for
+// now. @@ What is the relation of various names here and the
+// generated names we used in the glue code?
+composition session [composition name]
+{
+ home executor [home executor name]
+ {
+ implement [home name];
+ manages [component executor name];
+ };
+};
+
+
+// @@ We should also generate somet sort of implementaion template for
+// users. E.g., a set of [idl-basename]_impl.* and the MPC files(?).
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/01.html b/modules/CIAO/docs/tutorials/CoSMIC/01.html
new file mode 100644
index 00000000000..73db63f7236
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/01.html
@@ -0,0 +1,185 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+
+
+ <meta name="generator" content="HTML Tidy for Mac OS X (vers 1st December 2004), see www.w3.org" />
+<!-- $Id$ -->
+
+
+
+ <title>Getting Started</title>
+</head>
+
+
+
+<body style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" link="#000fff" vlink="#ff0f0f">
+
+
+<h3>Getting Started<br />
+</h3>
+<b>Writing IDL files</b><br />
+
+ <br />
+
+ We will start from writing the idl file for each component.<br />
+
+
+
+<ol>
+
+ <li>Create a directory named <code><span style="font-style: italic;">MyQuoter</span></code><span style="font-style: italic;">.</span></li>
+
+
+ <li>In <code style="font-style: italic;">MyQuoter</code>
+ directory, create one directory <span style="font-style: italic;">Stock_Base</span> for the base idl and
+ two more directories <span style="font-style: italic;">Broker</span>, <span style="font-style: italic;">Distributor</span> for each component. In
+ <code style="font-style: italic;">MyQuoter/Stock_Base</code>,
+ place an idl file <code style="font-style: italic;">Stock_Base.idl</code> that you could copy
+ from <a href="../Quoter/Simple/Stock_Base/Stock_Base.idl">here</a>. This
+ file defines the interfaces and events that will be used by
+ both Stock Distributor and Stock Broker.</li>
+
+
+ <li style="list-style-type: none; list-style-image: none; list-style-position: outside;">We put together the common
+ interface definitions so the base library can be shared by both
+ components, reducing the size of "real" components.<br />
+ </li>
+
+
+ <li>In <code style="font-style: italic;">MyQuoter/Distributor</code>, place an idl
+ file <code style="font-style: italic;">Distributor.idl</code>
+ that looks like <a href="../Quoter/Simple/Distributor/Distributor.idl">this</a>. This
+ file defines the StockDistributor component
+ interfaces.<br />
+ </li>
+
+
+ <li>In <code style="font-style: italic;">MyQuoter/Broker</code>
+ place an idl file <code><span style="font-style: italic;">Broker.id</span>l</code> that looks like
+ <a href="../Quoter/Simple/Broker/Broker.idl">this</a>. This
+ file defines the StockBroker component interface.<br />
+ </li>
+
+
+</ol>
+<br />
+
+ <b>Importing IDL to PICML</b><br />
+
+ <br />
+
+ &nbsp;&nbsp; To quick start our Stock Quoter modeling process in
+ GME, CoSMIC introduces <em>idl_to_picml</em> , which is an
+ executable program that imports the IDL files you just created
+ into PICML.<br />
+
+
+
+<ol>
+
+ <li>Make sure <code>%COSMIC_ROOT%\bin</code> is included in the
+ PATH variable, e.g., c:\Program
+ Files\ISIS\CoSMIC\bin.<br />
+ </li>
+
+
+ <li>Open a command prompt, run VCVARS32.BAT from the MSVC .NET
+ folder if you haven't done so. It will set the environment for
+ using Microsoft Visual Studio .NET tools so that <span style="font-style: italic;">idl_to_picml</span> works properly.<br />
+
+ in my machine, VCVARS32.bat is in C:\Program Files\Microsoft
+ Visual Studio .NET 2003\Vc7\bin<br />
+ </li>
+
+
+ <li>In the same command prompt, change directory to
+ <code>MyQuoter\</code>, and type the following command:<br />
+
+ &nbsp;&nbsp; &gt; <kbd>idl_to_picml -x MyQuoter -r . -I
+ .\Stock_Base</kbd><br />
+
+ &nbsp;&nbsp; (if the above command does not work, you may also
+ try this<br />
+
+ &nbsp;&nbsp; &gt;<kbd>idl_to_picml -x MyQuoter -r .&nbsp;-I .\Stock_Base -I
+ %TAO_ROOT% -I %TAO_ROOT%\orbsvcs -I
+ %CIAO_ROOT%\ciao)</kbd><br />
+
+ &nbsp; <em>idl_to_picml</em> will parse your IDL files and
+ generated a <code>MyQuoter.xme</code> file in the
+ <code>MyQuoter</code> directory. Note that if -x option is not
+ used, the default xme file name will be
+ <code>PICML_default_xme_file.xme.</code><br />
+
+ 4. Start GME, select <strong>File-&gt;Import xml..</strong>,
+ and choose the xme file just generated. You should be able to
+ see an imported PICML model similar to the one shown in Figure
+ 2.<br />
+ </li>
+
+
+</ol>
+<br />
+
+
+
+<div style="text-align: center;">
+ <img alt="" src="Images/fig2.jpg" style="width: 781px; height: 635px;" /><br />
+
+ <br />
+
+ Figure 2<br />
+
+ </div>
+
+
+
+<p>&nbsp; In the Browser of the generated model, the
+ <em>PredefinedTypes</em> folder contains a bunch of atomic
+ datatype elements that will be referenced by other modeling parts
+ later. You don't have to worry about them for now. The models in
+ <em>InterfaceDefinitions</em> folder are the PICML
+ representations ofthe IDL files you just imported. Double-click
+ to open <em>Broker</em>, it will show you a white, document-like
+ entity which represents a &lt;&lt;FileRef&gt;&gt; instance and a
+ yellow box-shaped entity representing a &lt;&lt;Package&gt;&gt;
+ instance. Their equivalent representations in IDL files are
+ "#include" and "module" respectively. Figure 3 gives you a clear
+ view of GME representation of all the 3 idl files created. We
+ will cover the other folders in the next section.</p>
+
+
+
+<div style="text-align: center;">
+ <img alt="" src="Images/fig3.jpg" style="width: 223px; height: 336px;" /><br />
+
+ <br />
+
+ Figure 3<br />
+
+ <br />
+
+ </div>
+Now we are ready to model the rest of the Stock Quoter
+ systems.<br />
+
+ <br />
+
+ <br />
+
+ <br />
+
+
+<hr />
+
+
+<address>
+ <a href="mailto:ming.xiong@vanderbilt.edu">Ming Xiong<br />
+</a>
+ </address>
+<!-- Created: Sat Nov 27 15:25:06 CST 1999 -->
+ <!-- hhmts start -->
+ Last modified:<!-- hhmts end -->
+</body>
+</html>
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/02.html b/modules/CIAO/docs/tutorials/CoSMIC/02.html
new file mode 100644
index 00000000000..8f4e7decc11
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/02.html
@@ -0,0 +1,554 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+
+ <meta name="generator" content="HTML Tidy for Mac OS X (vers 1st December 2004), see www.w3.org" />
+ <title>Building a Stock Quoter with TAO - A Tutorial</title>
+
+
+<!-- $Id$ -->
+ <link rel="stylesheet" type="text/css" href="style.css" />
+
+</head>
+
+
+
+<body style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" link="#000fff" vlink="#ff0f0f">
+
+<h3>Building Stock Quoter system in PICML</h3>
+
+<br />
+
+<p>This section describes modeling the Quoter application using
+PICML. If you have trouble producing a functioning model from this
+tutorial, please see the, <a href="Model/Quoter.xme">pre-built
+Quoter model</a> which is provided for your reference. This model
+contains all elements created as part of this tutorial.</p>
+
+<div class="important"> <strong>Note:</strong>
+To import an XML file in GME, select <em>File-&gt;Import
+XML..</em> from GME and choose your XML model<br />
+
+</div>
+
+<p>The PICML paradigm is designed for the <a href="http://www.omg.org/cgi-bin/doc?ptc/2003-07-08">OMG
+Deployment &amp; Configuration (D&amp;C) specification
+(ptc/2003-07-08)</a>, so the modeling process is straightforward
+if you are familiar with the specification. Please see the <a href="../../releasenotes/dance.html">DAnCE
+project</a> for more information.&nbsp;For those who hate specification (including me, :-)), an <a href="http://www.cs.wustl.edu/%7Eschmidt/PDF/DAnCE.pdf">overview of D&amp;C</a> and as well as a <a href="http://www.cs.wustl.edu/%7Eschmidt/OMG-CCM-Tutorial.ppt">tutorial of D&amp;C and CCM</a> can help to reduce the learning curve.
+(Thanks to Sowayan, Abdulah for pointing this out).
+In addition, it is also helpful to read through Chapter 32 of TAO's
+Developer's Guide 1.4a (CIAO and CCM) which thoroughly describes the
+various descriptors required for a component (*.iad, *.ccd, *.cid,
+etc). </p>
+<h3>Table of Contents</h3>
+
+<ul>
+
+ <li><a href="#1">ImplementationArtifacts</a></li>
+
+ <li><a href="#2">ComponentImplementations</a></li>
+
+ <li><a href="#3">ComponentPackages</a></li>
+
+ <li><a href="#4">PackageConfiguration</a></li>
+
+ <li><a href="#5">TopLevelPackage</a></li>
+
+ <li><a href="#6">Targets</a></li>
+
+ <li><a href="#7">DeploymentPlan</a></li>
+
+</ul>
+
+<hr />
+<p>The complete PICML Quoter model consists of modeling elements
+distributed across various folders. If you used <em>idl_to_picml</em>
+to generate the initial model, you will see that it has created all
+these folders and some of the tedious boilerplate modeling for us. The
+rest of the section will explain the purpose of each folder as well as
+the modeling entities contained in these folders. We will also show how
+to model some of the folders that have to be done by hand.</p>
+
+<div class="important"> <strong>Important:</strong>
+The interpreters that generate deployment artifacts expect very strict
+constraints in the model. When you finish your model, and any time you
+wish to generate anything, it is a good idea to check constraints by
+clicking on <em>File-&gt;Check-&gt;Check All</em>
+in GME. This will help you find many logic errors in your model. </div>
+
+<h3><a name="1">ImplementationArtifacts</a></h3>
+
+<p>This folder contains implementation artifacts associated with
+components. <em>idl_to_picml</em> has created these
+artifacts for us, with their dependency relationships correctly
+captured. Figure 4 shows the Implementation Artifacts for <em>Broker</em>.</p>
+
+<div style="text-align: center;"> <img alt="" src="Images/fig4.jpg" style="border: 1px solid ; width: 891px; height: 552px;" /><a name="1"><br />
+
+Figure 4.<br />
+
+</a><br />
+
+</div>
+
+<a name="1"></a>
+<hr />
+<h3><a name="2">ComponentImplementation</a></h3>
+
+<p>This folder contains models that describe the implementations
+of component interfaces. In the Quoter example, we will have two
+monolithic component implementations - named <em>StockDistributorImplementation</em>
+and <em>StockBrokerImplementation</em> - and an assembly
+component implementation named <em>StockQuoter</em>, which
+is an assembly of <em>StockDistributorImplementation</em>
+and <em>StockBrokerImplementaion</em>. <em>idl_to_picml</em>
+has created the monolithic component implementations for us, as shown
+in figure 5 for example, but we have to specify the connections between
+them in order to construct a Quoter system.</p>
+
+<div style="text-align: center;"> <img alt="" src="Images/fig5.jpg" style="border: 1px solid ; width: 922px; height: 639px;" /><br />
+
+Figure 5<br />
+
+</div>
+
+<p>Assembly components provide a boundary for the composition of
+monolithic components and even other assemblies. Assembly components do
+not provide actual implementations for their interface, it is a virtual
+component that delegates its ports and attributes to one or more of the
+entities it contains. There are slight differences between modeling an
+assembly and modeling a monolithic component. Since the assembly is a
+virtual component, it is not necessary to model a <code>MonolithicImplementation</code>.
+Instead, <em>instances</em> of other components are placed
+within the assembly and connected. Let's try to assemble the <em>StockQuoter</em>.</p>
+
+<ol>
+
+ <li>Right click the <em>ComponentImplementations</em>
+folder, choose <strong>Insert
+Model-&gt;ComponentImplementationContainer</strong>, rename
+it as "StockQuoterImplementation" in the Attribute Panel. Double click
+to open it.</li>
+
+ <li>From the Part Browser, drag a
+&lt;&lt;ComponentAssembly&gt;&gt; to the modeling
+window, name it "StockQuoter". Double click to open it.</li>
+
+ <li>Now we will create two instances for interfaces <em>StockBroker</em>
+and <em>StockDistributor</em>. To do that, expand the
+folder <code><em>InterfaceDefinitions</em></code>,
+then expand the <code><em>InterfaceDefinitions/</em></code>
+ <em>Broker</em>, then <code><em>InterfaceDefinitions/</em></code>
+ <em>Broker/ Stock</em> until the interface definition
+of <em>StockBroker</em> shows. While expanding the tree,
+always keep the "StockQuoter"
+&lt;&lt;ComponentAssembly&gt;&gt; window open. Then
+drag <code>MyQuoter/InterfaceDefinitions/Broker/Stock/StockBroker</code>
+in the browser to the "StockQuoter"
+&lt;&lt;ComponentAssembly&gt;&gt; window while pressing
+ALT key. Repeat the same steps for <code>MyQuoter/InterfaceDefinitions/Distributor/Stock/StockDistributor</code>,
+and you will see two instances of component interfaces have been
+created as shown in Figure 6 (the black line in the figure only
+indicates .mapping)<br />
+
+ </li>
+
+</ol>
+
+<br />
+
+<div style="text-align: center;"> <img alt="" src="Images/fig6.jpg" style="width: 972px; height: 714px;" /><br />
+
+<br />
+
+Figure 6<br />
+
+</div>
+
+<ol>
+
+ <li value="4">Create an
+&lt;&lt;PublishConnector&gt;&gt;.<br />
+
+ </li>
+
+ <li>Now assemble the components together according to <a href="Images/fig1.jpg">Figure 1</a>(make sure you
+change to connect mode <img alt="" src="Icons/AddConnMode.gif" style="width: 20px; height: 17px;" />
+) and the resulting assembly model should look like Figure 7. Note that
+to create connections between StockDistributor.notify_out and
+StockBroker.notify_in, you will need the intermediate connector
+&lt;&lt;PublishConnector&gt;&gt;.<br />
+
+ </li>
+
+</ol>
+
+<img alt="" src="Images/fig7.jpg" style="width: 724px; height: 402px;" /><br />
+
+<br />
+
+Figure 7<br />
+
+<hr /> <a name="3"></a>
+<h3>ComponentPackage<br />
+
+</h3>
+
+This folder contains deployable component packages. Every instance in
+an assembly should have a corresponding monolithic implementation and
+packaged in a ComponentPackagebe To create a package for <em>StockBroker</em>.instance<br />
+
+<ol>
+
+ <li>Right click folder <em>ComponentPackage</em>s
+, insert a &lt;&lt;PackageContainer&gt;&gt;, name it
+"Broker"; Double click to open it.<br />
+
+ </li>
+
+ <li>From the PartBrowser, add the following:<br />
+
+ <ul>
+
+ <li>a &lt;&lt;ComponentPackage&gt;&gt;
+named "Broker";</li>
+
+ <li>a
+&lt;&lt;ComponentImplementationReference&gt;&gt; named
+"Broker";</li>
+
+ <li>a &lt;&lt;ComponentRef&gt;&gt; named
+"Broker";</li>
+
+ </ul>
+
+ </li>
+
+ <li>Refer the
+&lt;&lt;ComponentImplementationReference&gt;&gt; <em>Broker</em>
+to <code>MyQuoter/ComponentImplementations/StockBroker</code>Implementation/StockBrokerMonolithicImpl.
+Refer the &lt;&lt;ComponentRef&gt;&gt; <em>Broker</em>
+to <code>MyQuoter/InterfaceDefinitions/Broker/Stock/StockBroker</code>.
+To create a reference in GME, simply drag the tree node in the Browser
+"into" the reference model. For example, you should drag the tree node <code>MyQuoter/ComponentImplementations/StockBroker</code>Implementation/StockBrokerMonolithicImpl
+into &lt;&lt;ComponentImplementationReference&gt;&gt; <em>Broker.</em>
+Check GME manual(tutorials) for more information.</li>
+
+ <li>Switch to Connect Mode and create two connections according
+to the following relationship.<br />
+
+ <ul>
+
+ <li>&lt;&lt;ComponentImplementationReference&gt;&gt;
+ <em>Broker</em> implements
+&lt;&lt;ComponentPackage&gt;&gt; <em>Broker</em>;</li>
+
+ <li>&lt;&lt;ComponentPackage&gt;&gt; <em>Broker</em>
+realizes &lt;&lt;ComponentRef&gt;&gt; <em>Broker</em>.</li>
+
+ </ul>
+
+ <br />
+
+ <br />
+
+&nbsp;&nbsp;&nbsp;&nbsp; The model you built should
+resemble Figure 8.<br />
+
+ <br />
+
+ <div style="text-align: center;"> <img alt="" src="Images/fig8.jpg" style="width: 675px; height: 497px;" /><br />
+
+ <br />
+
+Figure 8<br />
+
+ <br />
+
+ </div>
+
+Now create a ComponentPackage/StockDistributor following the same
+steps. </li>
+
+ <li style="list-style-type: none; list-style-image: none; list-style-position: outside;">
+ <br />
+
+We will also need to create a package for the assembly component
+StockQuoter. Remember assembly component is a virtual component, it
+does not "realize" a certain interface, so different from the Broker
+and Distributor packages, the StockQuoter does not need a
+&lt;&lt;ComponentRef&gt;&gt;. To create this model:
+ <ol>
+
+ <li>Insert a
+&lt;&lt;ComponentPackage&gt;&gt; named "StockQuoter"<br />
+
+ </li>
+
+ <li>Add a
+&lt;&lt;ComponentImplementationReference&gt;&gt; named
+"StockQuoter", refer it to MyQuoter<code>/ComponentImplementations/StockQuoter/StockQuoter</code></li>
+
+ <li>Switch to connect mode and connect
+&lt;&lt;ComponentImplementationReference&gt;&gt;
+StockQuoter with &lt;&lt;ComponentPackage&gt;&gt;
+StockQuoter, as in Figure 9.<br />
+
+ </li>
+
+ </ol>
+
+ </li>
+
+</ol>
+
+<div style="text-align: center;"> <img alt="" src="Images/fig9.jpg" style="width: 549px; height: 354px;" /><br />
+
+<br />
+
+Figure 9<br />
+
+<br />
+
+</div>
+
+<hr /> <a name="4"></a>
+<h3>PackageConfiguration<br />
+
+</h3>
+
+This folder contains just one model capturing specific configuration of
+Component packages.<br />
+
+<ol>
+
+ <li>In the folder <em>PackageConfiguratio</em>n,
+and create a
+&lt;&lt;PackageConfigurationContainer&gt;&gt;, name it
+"Default", click to open it.<br />
+
+ </li>
+
+ <li>Add a &lt;&lt;PackageConfiguration&gt;&gt;
+named "default" and a
+&lt;&lt;ComponentPackageReference&gt;&gt;, name it
+"StockQuoter", connect "Default" to "StockQuoter"<br />
+
+ </li>
+
+ <li>Refer
+&lt;&lt;ComponentPackageReference&gt;&gt; StockQuoter
+to &lt;&lt;ComponentPackage&gt;&gt; <code>MyQuoter/ComponentPackage/StockQuoter/StockQuoter<br />
+
+(Not &lt;&lt;ComponentImplementationReference&gt;&gt;</code>
+ <code>MyQuoter/ComponentPackage/StockQuoter/StockQuoter!)&nbsp;</code></li>
+
+</ol>
+
+<br />
+
+<hr /> <a name="5"></a>
+<h3>ToplevelPackage<br />
+
+</h3>
+
+This folder contains one model capturing information about the
+top-level element that will be fed to the application.<br />
+
+<ol>
+
+ <li>In the folder <em>ToplevelPackage</em>, and
+create a &lt;&lt;ToplevelPackageContainer&gt;&gt;, name
+it "Default", double click to open it.<br />
+
+ </li>
+
+ <li>Add a &lt;&lt;ToplevelPackage&gt;&gt; named
+"ToplevelPackage" and a
+&lt;&lt;PackageConfigurationReference&gt;&gt;, name it
+"Default", connect "ToplevelPackage" to "Default"<br />
+
+ </li>
+
+ <li>Refer "Default" to My<code>Quoter/PackageConfiguration/Default/Default</code><br />
+
+ </li>
+
+</ol>
+
+<br />
+
+<hr /> <a name="6"></a>
+<h3>Targets<br />
+
+</h3>
+
+This folder contains domain-specific models capturing information about
+the target environment in which component-based application will be
+deployed. In this Quoter example, we can either deploy the two
+components into ONE host, or into TWO different host. We will deploy
+the Quoter into two different host.<br />
+
+<ol>
+
+ <li>In the folder <span style="font-style: italic;">Targets</span>,
+insert a new &lt;&lt;Domain&gt;&gt; named "Domain";
+double click to open it.<br />
+
+ </li>
+
+ <li>From the Part Browser, add two
+&lt;&lt;Node&gt;&gt; named "Broker" and "Distributor"
+respectively.<br />
+
+ </li>
+
+</ol>
+
+<br />
+
+Now we are ready to deploy our Components to the actual physical
+environment.<br />
+
+<hr /> <a name="7"></a>
+<h3>DeploymentPlan<br />
+
+</h3>
+
+This folder contains a plan model that captures information about the
+assignment of component to nodes.<br />
+
+<ol>
+
+ <li>In the folder <em>DeploymentPlan</em>, insert
+a model &lt;&lt;DeploymentPlan&gt;&gt;; name it "Plan",
+click to open it<br />
+
+ </li>
+
+ <li>From the PartBrowser, add the following:<br />
+
+ <ul>
+
+ <li>Two &lt;&lt;CollocationGroup&gt;&gt;</li>
+
+ <li>Two &lt;&lt;NodeReference&gt;&gt; named
+"Node_Broker" and "Node_Distributor" respectively, refering to <code>MyQuoter/Targets/Domain/Broker</code>
+and <code>MyQuoter/Targets/Domain/Distributor</code>
+respectively</li>
+
+ <li>Two &lt;&lt;ComponentRef&gt;&gt; named
+"StockBroker" and "StockDistributor" respectively, refering to <code>MyQuoter/ComponentImplementations/StockQuoterImplementation/StockQuoter/StockBroker</code>
+and <code>MyQuoter/ComponentImplementations/StockQuoterImplementation/StockQuoter/StockDistributor</code>
+respectively. Note that the
+&lt;&lt;ComponentRef&gt;&gt; in DeploymentPlan is not
+referring to the interface, but rather the actual instance of the
+implementation.</li>
+
+ </ul>
+
+ </li>
+
+ <li>Switch to Connect Mode, connect one
+&lt;&lt;CollocationGroup&gt;&gt; to
+&lt;&lt;NodeReference&gt;&gt; <em>Node_Broker</em>,
+connect another &lt;&lt;CollocationGroup&gt;&gt; to
+&lt;&lt;NodeReference&gt;&gt; <em>Node_</em><em>Distributor</em>.
+Now the model looks like the following.<br />
+
+ <br />
+
+ <div style="text-align: center;"> <img alt="" src="Images/fig10.jpg" style="width: 752px; height: 530px;" /><br />
+
+ <br />
+
+Figure 10.<br />
+
+ <br />
+
+ </div>
+
+ </li>
+
+ <li>Now we need to associate
+&lt;&lt;ComponentRef&gt;&gt; StockBroker to the
+&lt;&lt;CollocationGroup&gt;&gt; running on the
+&lt;&lt;NodeReference&gt;&gt; Broker, and
+&lt;&lt;ComponentRef&gt;&gt; StockDistributor to the
+&lt;&lt;CollocationGroup&gt;&gt; running on the
+&lt;&lt;NodeReference&gt;&gt; Distributor. To do that,
+switch the Edit Mode Bar to Set Mode (<img alt="" src="Icons/SetMode.gif" style="width: 20px; height: 17px;" />),
+and move the cursor to the
+&lt;&lt;CollocationGroup&gt;&gt; running on
+&lt;&lt;NodeReference&gt;&gt; Distributor, right-click
+on it. You will find the cursor is changed to set mode cursor, and only
+the &lt;&lt;CollocationGroup&gt;&gt; you clicked in is
+highlighted, as shown in Figure 11.<br />
+
+ <br />
+
+ </li>
+
+</ol>
+
+<div style="text-align: center;"> <img alt="" src="Images/fig11.jpg" style="width: 672px; height: 505px;" /><br />
+
+<br />
+
+Figure 11<br />
+
+<br />
+
+</div>
+
+<p>Now move your cursor to
+&lt;&lt;ComponentRef&gt;&gt;&nbsp;
+StockDistributor, and left-click it, so that it looks like Figure 12.<br />
+
+</p>
+
+<div style="text-align: center;"> <img alt="" src="Images/fig12.jpg" style="width: 672px; height: 505px;" /><br />
+
+<br />
+
+Figure 12<br />
+
+<br />
+
+</div>
+
+<p>This operation associates <em>StockDistributor</em>
+component to the &lt;&lt;CollocationGroup&gt;&gt;
+running on <em>Distributor</em> node. To do the same with
+Broker, just right-click on another
+&lt;&lt;CollocationGroup&gt;&gt;, and left-click on
+StockBroker &lt;&lt;CollocationGroup&gt;&gt; which is
+highlighted.<br />
+
+<br />
+
+</p>
+
+<hr /> <a name="8"></a>
+<p>Up to this point, we are basically done with the modeling
+part. Before we generate anything from this model though, please <span style="font-weight: bold;">DO</span> remember to check
+the constraints of the model as we mentioned earlier.</p>
+
+<p>After we are done with the modeling, the
+flattened_deploymentplan interpreter that comes along with PICML will
+help us to generate a flattened_deploymentplan.cdp file. Please make
+sure you generate this file to MyQuoter/descriptors. Note that to get the example working<span style="font-family: monospace;">,</span>a Node Map file should be created to map logical<span style="font-family: monospace;"> </span>nodes to NodeManager object references,e.g:<br />
+</p>
+<pre wrap="">DistributorNode corbaloc:iiop:localhost:30000/NodeManager<br />BrokerNode corbaloc:iiop:localhost:40000/NodeManager</pre>
+
+<address> <br />
+
+<a href="mailto:ming.xiong@vanderbilt.edu">Ming Xiong<br />
+
+</a> </address>
+
+<!-- Created: Sat Nov 27 15:25:06 CST 1999 --><!-- hhmts start -->
+Last modified:<!-- hhmts end -->
+</body>
+</html>
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/03.html b/modules/CIAO/docs/tutorials/CoSMIC/03.html
new file mode 100644
index 00000000000..c2da3726762
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/03.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+
+ <title>Building a Stock Quoter with TAO - A Tutorial</title>
+ <!-- $Id$ -->
+</head>
+
+<body style=
+"color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" link=
+"#000FFF" vlink="#FF0F0F">
+ <h3>Implementing Quoter Components with DAnCE<br /></h3>We
+ discuss this section after the PICML modeling only because we
+ would like to focus our attention more on the modeling stage. It
+ does not indicate that the implementation of components has to be
+ subsequent to the work we've done under GME. They are totally
+ orthogonal to each other. In fact, they are so orthogonal&nbsp;
+ that we won't go into details as to how DAnCE programming should
+ be done. We'll briefly go through the functionality of each
+ component and provides the links to their implementations
+ respectively. For a hands on experience on DAnCE programming,
+ please refer to $CIAO_ROOT/examples/Hello.<br />
+ <br />
+ <big><big><small>Broker Component<br />
+ &nbsp;&nbsp;&nbsp;</small></big></big> The Broker component
+ waits to be notified by the Distributor component about stock
+ changes. When a stock change event arrives,&nbsp; it will go back
+ to Distributor component and retrieve the information it interest
+ in and output them to the console. The users are allowed to
+ subscribe to the interested stock value through the interface
+ supported by Broker component. Here's the complete version of
+ <a href="../Quoter/Simple/Broker/Broker_exec.h">Broker_exec.h</a>
+ and <a href=
+ "../Quoter/Simple/Broker/Broker_exec.cpp">Broker_exec.cpp</a>.<br />
+
+ <br />
+ <big><big><small>Distributor Component<br />
+ &nbsp;&nbsp;</small></big></big> The Distributor component
+ monitors the real time stock database and publishes events
+ whenever it detects stock change. In our program, we use a
+ ACE_Task&nbsp; to simulate this real-life activity. The task
+ will run in a separate thread and periodically increment the
+ stock value by 1. In the same time the stock value is
+ incremented, an <span style=
+ "font-style: italic;">StockName</span> event along with the name
+ of the changed stock will be sent. Here's the complete version of
+ <a href=
+ "../Quoter/Simple/Distributor/Distributor_exec.h">Distributor_exec.h</a>
+ and <a href=
+ "../Quoter/Simple/Distributor/Distributor_exec.cpp">Distributor_exec.cpp</a><br />
+
+ <big><big><small><br />
+ Broker client<br />
+ &nbsp;&nbsp;&nbsp;</small></big></big> The Broker client program
+ is the driver program for client to control Broker component,
+ subscribe and unsubscribe to a specific stock. Here's the
+ complete version of <a href=
+ "../Quoter/Simple/Broker/Broker.cpp">Broker.cpp</a><br />
+ <br /><big><big><small>
+ Distributor client</small></big></big><br />
+ &nbsp;&nbsp;&nbsp;&nbsp; The Distributor
+ client program is the driver program for client to control
+ Distributor component, turn on and off the distribution service,
+ set up the frequency, etc. Here's the complete version of
+ <a href="../Quoter/Simple/Distributor/Distributor.cpp">Distributor.cpp</a>
+ <a name="2" /><br />
+ <br /><br />
+
+
+ <address>
+ <a href="mailto:ming.xiong@vanderbilt.edu">Ming Xiong<br /></a>
+ </address><!-- Created: Sat Nov 27 15:25:06 CST 1999 -->
+ <!-- hhmts start -->
+ <a href="mailto:ming.xiong@vanderbilt.edu">Last modified:
+ <!-- hhmts end --></a>
+</body>
+</html>
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/04.html b/modules/CIAO/docs/tutorials/CoSMIC/04.html
new file mode 100644
index 00000000000..dce2fb1364c
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/04.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Mac OS X (vers 1st December 2004), see www.w3.org" />
+
+ <title>Building a Stock Quoter with TAO - A Tutorial</title>
+ <!-- $Id$ -->
+</head>
+
+<body style=
+"color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" link=
+"#000FFF" vlink="#FF0F0F">
+ <h3>Running the application<br /></h3>Now that we have all the
+ components and driver programs successfully built, along with the
+ flattened_deploymentplan generated by PICML, we will be able to
+ run our application<br />
+ <br />
+ From different command prompts in
+ <code>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/descriptors/</code>
+ directory:
+
+ <ul>
+ <li>Start NodeManagers (NodeDameon) by running
+ <code>runNodeDaemon.pl</code></li>
+
+ <li>Start the execution manager
+ <code>%CIAO_ROOT%/DAnCE/ExecutionManager/Execution_Manager -o
+ ior -i Stock.dat</code>&nbsp;</li>
+ </ul>
+
+ <p>The <code>Stock.dat</code> file describes the deployment
+ daemons CIAO's Execution_Manager will contact to instantiate
+ ComponentServer's, home's, and component instances. Each line
+ specify the name of a installation "destination" and the
+ corresponding IOR for the CIAO_Daemon.</p>
+
+ <ul type="square">
+ <li><em>NOTE</em>: As one can see, we use the "Stock.dat" file
+ to instruct the Execution_Manager how to find the endpoint of
+ each individual NodeManager (i.e., Node Daemon) where
+ component(s) will be deployed, so this is non-standard. We plan
+ to use Naming Service to do this in the future.</li>
+ </ul>
+
+ <ul>
+ <li>Start the plan_launcher by running
+ <code>%CIAO_ROOT%/DAnCE/Plan_Launcher/Plan_Launcher -p
+ flattened_deploymentplan.cdp -k file://ior</code></li>
+
+ <li>By now the components should be successfully deployed. You
+ may run the driver program to start the application. e.g. you
+ can try the following<br /></li>
+ </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <code>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/Distributor/Distributor.exe
+ -o</code><br />
+ <br />
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <code>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/Broker/Broker.exe
+ -s MSFT</code><br />
+ <br />
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <code>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/Broker/Broker.exe
+ -s IBM</code><br />
+ <br />
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <code>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/Broker/Broker.exe
+ -u MSFT</code><br />
+ <br />
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <code>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/Distributor/Distributor.exe
+ -f</code><br />
+ <br />
+</body>
+</html>
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/Icons/AddConnMode.gif b/modules/CIAO/docs/tutorials/CoSMIC/Icons/AddConnMode.gif
new file mode 100644
index 00000000000..3604d32946d
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/Icons/AddConnMode.gif
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/Icons/SetMode.gif b/modules/CIAO/docs/tutorials/CoSMIC/Icons/SetMode.gif
new file mode 100644
index 00000000000..6dcad861f07
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/Icons/SetMode.gif
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/Images/fig1.jpg b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig1.jpg
new file mode 100644
index 00000000000..a8550fe1176
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig1.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/Images/fig10.jpg b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig10.jpg
new file mode 100644
index 00000000000..3db5ac174e0
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig10.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/Images/fig11.jpg b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig11.jpg
new file mode 100644
index 00000000000..c5eaf705384
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig11.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/Images/fig12.jpg b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig12.jpg
new file mode 100644
index 00000000000..ea2a885af6b
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig12.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/Images/fig2.jpg b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig2.jpg
new file mode 100644
index 00000000000..49d6f90c3b0
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig2.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/Images/fig3.jpg b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig3.jpg
new file mode 100644
index 00000000000..0559dc7382b
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig3.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/Images/fig4.jpg b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig4.jpg
new file mode 100644
index 00000000000..8fb89eccb57
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig4.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/Images/fig5.jpg b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig5.jpg
new file mode 100644
index 00000000000..e847b9290d6
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig5.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/Images/fig6.jpg b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig6.jpg
new file mode 100644
index 00000000000..0a214c84ea8
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig6.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/Images/fig7.jpg b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig7.jpg
new file mode 100644
index 00000000000..67d90b775b0
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig7.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/Images/fig8.jpg b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig8.jpg
new file mode 100644
index 00000000000..a565c2ab989
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig8.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/Images/fig9.jpg b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig9.jpg
new file mode 100644
index 00000000000..996d90d800b
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/Images/fig9.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/Model/Quoter.xme b/modules/CIAO/docs/tutorials/CoSMIC/Model/Quoter.xme
new file mode 100644
index 00000000000..10f968f69ca
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/Model/Quoter.xme
@@ -0,0 +1,2003 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE project SYSTEM "mga.dtd">
+
+<project guid="{693BB5A4-CC13-45F0-8470-8F189DE22CF8}" cdate="Thu Feb 02 21:46:10 2006" mdate="Thu Feb 02 21:46:10 2006" version="" metaguid="{3F14D74F-DE80-4071-8F14-550B6023233F}" metaversion="" metaname="PICML">
+ <name>MyQuoter</name>
+ <comment></comment>
+ <author></author>
+ <folder id="id-006a-00000001" relid="0x1" childrelidcntr="0x2" kind="RootFolder">
+ <name>MyQuoter</name>
+ <folder id="id-006a-00000002" relid="0x2" childrelidcntr="0x3" kind="InterfaceDefinitions">
+ <name>InterfaceDefinitions</name>
+ <model id="id-0065-00000001" kind="File" relid="0x1" childrelidcntr="0x1">
+ <name>Stock_Base</name>
+ <attribute kind="PrefixTag" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000002" kind="Package" role="Package" relid="0x1" childrelidcntr="0x5">
+ <name>Stock</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>293,153</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="PrefixTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000003" kind="Exception" role="Exception" relid="0x1" childrelidcntr="0x0">
+ <name>Invalid_Stock</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>151,84</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ </model>
+ <model id="id-0065-00000004" kind="Aggregate" role="Aggregate" relid="0x3" childrelidcntr="0x4">
+ <name>StockInfo</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>517,316</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-00000018" kind="Member" role="Member" relid="0x1" referred="id-0066-00000003">
+ <name>name</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>188,108</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000019" kind="Member" role="Member" relid="0x2" referred="id-0066-00000007">
+ <name>high</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>408,248</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-0000001a" kind="Member" role="Member" relid="0x3" referred="id-0066-00000007">
+ <name>low</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>628,388</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-0000001b" kind="Member" role="Member" relid="0x4" referred="id-0066-00000007">
+ <name>last</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>848,528</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <model id="id-0065-00000005" kind="Object" role="Object" relid="0x4" childrelidcntr="0x1">
+ <name>StockQuoter</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>700,432</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="PrefixTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="abstract" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="local" status="meta">
+ <value>false</value>
+ </attribute>
+ <model id="id-0065-00000006" kind="TwowayOperation" role="TwowayOperation" relid="0x1" childrelidcntr="0x3">
+ <name>get_stock_info</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-00000001" kind="ReturnType" role="ReturnType" relid="0x1" referred="id-0065-00000004">
+ <name>ReturnType</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>243,143</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000002" kind="ExceptionRef" role="ExceptionRef" relid="0x4" referred="id-0065-00000003">
+ <name>ExceptionRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>1068,668</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-0000001c" kind="InParameter" role="InParameter" relid="0x3" referred="id-0066-00000003">
+ <name>stock_name</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>793,493</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ </model>
+ <model id="id-0065-00000007" kind="Event" role="Event" relid="0x5" childrelidcntr="0x1">
+ <name>StockName</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>883,548</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="PrefixTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="abstract" status="meta">
+ <value>false</value>
+ </attribute>
+ <reference id="id-0067-0000001d" kind="Member" role="Member" relid="0x1" referred="id-0066-00000003">
+ <name>name</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <reference id="id-0067-00000017" kind="Collection" role="Collection" relid="0x2" referred="id-0066-0000000b">
+ <name>ImageBlob</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>334,200</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ </reference>
+ </model>
+ </model>
+ <model id="id-0065-00000008" kind="File" relid="0x2" childrelidcntr="0x2">
+ <name>Broker</name>
+ <attribute kind="PrefixTag" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000009" kind="Package" role="Package" relid="0x2" childrelidcntr="0x4">
+ <name>Stock</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>314,216</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="PrefixTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-0000000a" kind="Object" role="Object" relid="0x1" childrelidcntr="0x2">
+ <name>StockSubscriber</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>243,143</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="PrefixTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="abstract" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="local" status="meta">
+ <value>false</value>
+ </attribute>
+ <model id="id-0065-0000000b" kind="TwowayOperation" role="TwowayOperation" relid="0x1" childrelidcntr="0x2">
+ <name>stock_subscribe</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>334,201</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-00000004" kind="ExceptionRef" role="ExceptionRef" relid="0x2" referred="id-0065-00000003">
+ <name>ExceptionRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>700,434</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-0000001e" kind="InParameter" role="InParameter" relid="0x1" referred="id-0066-00000003">
+ <name>stock_name</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>334,201</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <model id="id-0065-0000000c" kind="TwowayOperation" role="TwowayOperation" relid="0x2" childrelidcntr="0x2">
+ <name>stock_unsubscribe</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>700,434</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-00000005" kind="ExceptionRef" role="ExceptionRef" relid="0x2" referred="id-0065-00000003">
+ <name>ExceptionRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>700,434</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-0000001f" kind="InParameter" role="InParameter" relid="0x1" referred="id-0066-00000003">
+ <name>stock_name</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>334,201</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ </model>
+ <model id="id-0065-0000000d" kind="Component" role="Component" relid="0x2" childrelidcntr="0x3">
+ <name>StockBroker</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>426,242</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="UUID">
+ <value>58E736A4-F9F5-44CF-AA0F-83A280F907A6</value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-00000006" kind="Supports" role="Supports" relid="0x1" referred="id-0065-0000000a">
+ <name>Supports</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>55,160</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000007" kind="RequiredRequestPort" role="RequiredRequestPort" relid="0x2" referred="id-0065-00000005">
+ <name>read_quoter</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>69,307</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="multiple_connections">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ </reference>
+ <reference id="id-0067-00000008" kind="InEventPort" role="InEventPort" relid="0x3" referred="id-0065-00000007">
+ <name>notify_in</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>83,433</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ </reference>
+ </model>
+ <model id="id-0065-0000000e" kind="ComponentFactory" role="ComponentFactory" relid="0x3" childrelidcntr="0x0">
+ <name>StockBrokerHome</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>793,493</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ </model>
+ <connection id="id-0068-00000001" kind="ManagesComponent" role="ManagesComponent" relid="0x4">
+ <name>ManagesComponent</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>Ws</value>
+ </regnode>
+ <connpoint role="dst" target="id-0065-0000000d"/>
+ <connpoint role="src" target="id-0065-0000000e"/>
+ </connection>
+ </model>
+ <reference id="id-0067-00000003" kind="FileRef" role="FileRef" relid="0x1" referred="id-0065-00000001">
+ <name>FileRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>174,181</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <model id="id-0065-0000000f" kind="File" relid="0x3" childrelidcntr="0x2">
+ <name>Distributor</name>
+ <attribute kind="PrefixTag" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000010" kind="Package" role="Package" relid="0x2" childrelidcntr="0x4">
+ <name>Stock</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>700,434</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="PrefixTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000011" kind="Object" role="Object" relid="0x1" childrelidcntr="0x2">
+ <name>Trigger</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>243,143</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="PrefixTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="abstract" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="local" status="meta">
+ <value>false</value>
+ </attribute>
+ <model id="id-0065-00000012" kind="TwowayOperation" role="TwowayOperation" relid="0x1" childrelidcntr="0x0">
+ <name>start</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>334,201</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ </model>
+ <model id="id-0065-00000013" kind="TwowayOperation" role="TwowayOperation" relid="0x2" childrelidcntr="0x0">
+ <name>stop</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>700,434</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ </model>
+ </model>
+ <model id="id-0065-00000014" kind="Component" role="Component" relid="0x2" childrelidcntr="0x4">
+ <name>StockDistributor</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="UUID">
+ <value>B124B4A8-F51C-4F63-9A08-35256C9A9259</value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000015" kind="Attribute" role="Attribute" relid="0x4" childrelidcntr="0x1">
+ <name>rate</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>848,528</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-00000020" kind="AttributeMember" role="AttributeMember" relid="0x1" referred="id-0066-00000007">
+ <name>AttributeMember</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <reference id="id-0067-0000000a" kind="Supports" role="Supports" relid="0x1" referred="id-0065-00000011">
+ <name>Supports</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>188,108</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-0000000b" kind="ProvidedRequestPort" role="ProvidedRequestPort" relid="0x2" referred="id-0065-00000005">
+ <name>push_quoter</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>608,216</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ </reference>
+ <reference id="id-0067-0000000c" kind="OutEventPort" role="OutEventPort" relid="0x3" referred="id-0065-00000007">
+ <name>notify_out</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>628,388</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="out_event_port_type" status="meta">
+ <value>DirectConnect</value>
+ </attribute>
+ <attribute kind="single_destination">
+ <value>false</value>
+ </attribute>
+ </reference>
+ </model>
+ <model id="id-0065-00000016" kind="ComponentFactory" role="ComponentFactory" relid="0x3" childrelidcntr="0x0">
+ <name>StockDistributorHome</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>793,493</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ </model>
+ <connection id="id-0068-00000002" kind="ManagesComponent" role="ManagesComponent" relid="0x4">
+ <name>ManagesComponent</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>Ws</value>
+ </regnode>
+ <connpoint role="dst" target="id-0065-00000014"/>
+ <connpoint role="src" target="id-0065-00000016"/>
+ </connection>
+ </model>
+ <reference id="id-0067-00000009" kind="FileRef" role="FileRef" relid="0x1" referred="id-0065-00000001">
+ <name>FileRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>334,201</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ </folder>
+ <folder id="id-006a-00000003" relid="0x1" childrelidcntr="0xb" kind="PredefinedTypes">
+ <name>PredefinedTypes</name>
+ <atom id="id-0066-00000001" kind="TypeKind" relid="0xb">
+ <name>TypeKind</name>
+ </atom>
+ <atom id="id-0066-00000002" kind="TypeEncoding" relid="0xa">
+ <name>TypeEncoding</name>
+ </atom>
+ <atom id="id-0066-00000003" kind="String" relid="0x9">
+ <name>String</name>
+ </atom>
+ <atom id="id-0066-00000004" kind="Boolean" relid="0x8">
+ <name>Boolean</name>
+ </atom>
+ <atom id="id-0066-00000005" kind="ShortInteger" relid="0x7">
+ <name>ShortInteger</name>
+ </atom>
+ <atom id="id-0066-00000006" kind="RealNumber" relid="0x6">
+ <name>RealNumber</name>
+ </atom>
+ <atom id="id-0066-00000007" kind="LongInteger" relid="0x5">
+ <name>LongInteger</name>
+ </atom>
+ <atom id="id-0066-00000008" kind="GenericValueObject" relid="0x4">
+ <name>GenericValueObject</name>
+ </atom>
+ <atom id="id-0066-00000009" kind="GenericValue" relid="0x3">
+ <name>GenericValue</name>
+ </atom>
+ <atom id="id-0066-0000000a" kind="GenericObject" relid="0x2">
+ <name>GenericObject</name>
+ </atom>
+ <atom id="id-0066-0000000b" kind="Byte" relid="0x1">
+ <name>Byte</name>
+ </atom>
+ </folder>
+ <folder id="id-006a-00000004" relid="0x3" childrelidcntr="0x1" kind="ComponentImplementations">
+ <name>ComponentImplementations</name>
+ <model id="id-0065-00000017" kind="ComponentImplementationContainer" relid="0x1" childrelidcntr="0xb">
+ <name>StockBrokerImplementation</name>
+ <model id="id-0065-00000018" kind="Property" role="Property" relid="0x2" childrelidcntr="0x2">
+ <name>ComponentIOR</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>282,168</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="DataValue">
+ <value>StockBroker.ior</value>
+ </attribute>
+ <reference id="id-0067-0000000d" kind="DataType" role="DataType" relid="0x2" referred="id-0066-00000003">
+ <name>String</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <atom id="id-0066-0000000c" kind="MonolithicImplementation" role="MonolithicImplementation" relid="0x1">
+ <name>StockBrokerMonolithicImpl</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>125,68</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <reference id="id-0067-0000000e" kind="ComponentRef" role="ComponentRef" relid="0x9" referred="id-0065-0000000d">
+ <name>StockBrokerRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>783,557</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000021" kind="ImplementationArtifactReference" role="ImplementationArtifactReference" relid="0x3" referred="id-0066-0000000e">
+ <name>StockBroker_stubRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>461,265</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000022" kind="ImplementationArtifactReference" role="ImplementationArtifactReference" relid="0x4" referred="id-0066-0000000f">
+ <name>StockBroker_svntRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>566,363</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000023" kind="ImplementationArtifactReference" role="ImplementationArtifactReference" relid="0x5" referred="id-0066-00000010">
+ <name>StockBroker_execRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>741,468</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <connection id="id-0068-00000003" kind="ConfigProperty" role="ConfigProperty" relid="0xa">
+ <name>ConfigProperty</name>
+ <connpoint role="dst" target="id-0065-00000018"/>
+ <connpoint role="src" target="id-0066-0000000c"/>
+ </connection>
+ <connection id="id-0068-00000004" kind="MonolithprimaryArtifact" role="MonolithprimaryArtifact" relid="0x6">
+ <name>MonolithprimaryArtifact</name>
+ <connpoint role="src" target="id-0066-0000000c"/>
+ <connpoint role="dst" target="id-0067-00000021"/>
+ </connection>
+ <connection id="id-0068-00000005" kind="MonolithprimaryArtifact" role="MonolithprimaryArtifact" relid="0x7">
+ <name>MonolithprimaryArtifact</name>
+ <connpoint role="src" target="id-0066-0000000c"/>
+ <connpoint role="dst" target="id-0067-00000022"/>
+ </connection>
+ <connection id="id-0068-00000006" kind="MonolithprimaryArtifact" role="MonolithprimaryArtifact" relid="0x8">
+ <name>MonolithprimaryArtifact</name>
+ <connpoint role="src" target="id-0066-0000000c"/>
+ <connpoint role="dst" target="id-0067-00000023"/>
+ </connection>
+ <connection id="id-0068-00000007" kind="Implements" role="Implements" relid="0xb">
+ <name>Implements</name>
+ <connpoint role="src" target="id-0066-0000000c"/>
+ <connpoint role="dst" target="id-0067-0000000e"/>
+ </connection>
+ </model>
+ <model id="id-0065-00000019" kind="ComponentImplementationContainer" relid="0x2" childrelidcntr="0xb">
+ <name>StockDistributorImplementation</name>
+ <model id="id-0065-0000001a" kind="Property" role="Property" relid="0x2" childrelidcntr="0x2">
+ <name>ComponentIOR</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>282,168</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="DataValue">
+ <value>StockDistributor.ior</value>
+ </attribute>
+ <reference id="id-0067-0000000f" kind="DataType" role="DataType" relid="0x2" referred="id-0066-00000003">
+ <name>String</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <atom id="id-0066-0000000d" kind="MonolithicImplementation" role="MonolithicImplementation" relid="0x1">
+ <name>StockDistributorMonolithicImpl</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>125,68</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <reference id="id-0067-00000010" kind="ComponentRef" role="ComponentRef" relid="0x9" referred="id-0065-00000014">
+ <name>StockDistributorRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>910,568</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000024" kind="ImplementationArtifactReference" role="ImplementationArtifactReference" relid="0x3" referred="id-0066-00000011">
+ <name>StockDistributor_stubRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>439,268</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000025" kind="ImplementationArtifactReference" role="ImplementationArtifactReference" relid="0x4" referred="id-0066-00000012">
+ <name>StockDistributor_svntRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>596,368</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000026" kind="ImplementationArtifactReference" role="ImplementationArtifactReference" relid="0x5" referred="id-0066-00000013">
+ <name>StockDistributor_execRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>753,468</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <connection id="id-0068-00000008" kind="ConfigProperty" role="ConfigProperty" relid="0xa">
+ <name>ConfigProperty</name>
+ <connpoint role="dst" target="id-0065-0000001a"/>
+ <connpoint role="src" target="id-0066-0000000d"/>
+ </connection>
+ <connection id="id-0068-00000009" kind="MonolithprimaryArtifact" role="MonolithprimaryArtifact" relid="0x6">
+ <name>MonolithprimaryArtifact</name>
+ <connpoint role="src" target="id-0066-0000000d"/>
+ <connpoint role="dst" target="id-0067-00000024"/>
+ </connection>
+ <connection id="id-0068-0000000a" kind="MonolithprimaryArtifact" role="MonolithprimaryArtifact" relid="0x7">
+ <name>MonolithprimaryArtifact</name>
+ <connpoint role="src" target="id-0066-0000000d"/>
+ <connpoint role="dst" target="id-0067-00000025"/>
+ </connection>
+ <connection id="id-0068-0000000b" kind="MonolithprimaryArtifact" role="MonolithprimaryArtifact" relid="0x8">
+ <name>MonolithprimaryArtifact</name>
+ <connpoint role="src" target="id-0066-0000000d"/>
+ <connpoint role="dst" target="id-0067-00000026"/>
+ </connection>
+ <connection id="id-0068-0000000c" kind="Implements" role="Implements" relid="0xb">
+ <name>Implements</name>
+ <connpoint role="src" target="id-0066-0000000d"/>
+ <connpoint role="dst" target="id-0067-00000010"/>
+ </connection>
+ </model>
+ <model id="id-0065-00000023" kind="ComponentImplementationContainer" relid="0x1" childrelidcntr="0x1">
+ <name>StockQuoterImplementation</name>
+ <model id="id-0065-00000024" kind="ComponentAssembly" role="ComponentAssembly" relid="0x1" childrelidcntr="0x6">
+ <name>StockQuoter</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>307,221</value>
+ </regnode>
+ </regnode>
+ <regnode name="QoSModelAspect" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>331,198</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>EBE916A6-E4E5-469C-A8EE-EDDFCA4B9CE3</value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000025" kind="Component" role="Component" derivedfrom="id-0065-0000000d" isinstance="yes" isprimary="yes" relid="0x1" childrelidcntr="0x0">
+ <name>StockBroker</name>
+ <regnode name="PartRegs">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>447,116</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="UUID">
+ <value>94A1586C-2E9A-4FFD-8D75-7FC5A54F6B71</value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-00000027" kind="InEventPort" role="InEventPort" derivedfrom="id-0067-00000008" isinstance="yes" isprimary="no" referred="id-0065-00000007" isbound="yes">
+ <name>notify_in</name>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ </reference>
+ <reference id="id-0067-00000028" kind="RequiredRequestPort" role="RequiredRequestPort" derivedfrom="id-0067-00000007" isinstance="yes" isprimary="no" referred="id-0065-00000005" isbound="yes">
+ <name>read_quoter</name>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="multiple_connections" status="inherited">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ </reference>
+ <reference id="id-0067-00000029" kind="Supports" role="Supports" derivedfrom="id-0067-00000006" isinstance="yes" isprimary="no" referred="id-0065-0000000a" isbound="yes">
+ <name>Supports</name>
+ </reference>
+ </model>
+ <model id="id-0065-00000026" kind="Component" role="Component" derivedfrom="id-0065-00000014" isinstance="yes" isprimary="yes" relid="0x2" childrelidcntr="0x0">
+ <name>StockDistributor</name>
+ <regnode name="PartRegs">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>83,123</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="UUID">
+ <value>2DBE2452-FDE3-4399-9210-509CAC49139A</value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000027" kind="Attribute" role="Attribute" derivedfrom="id-0065-00000015" isinstance="yes" isprimary="no" childrelidcntr="0x0">
+ <name>rate</name>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-0000002a" kind="AttributeMember" role="AttributeMember" derivedfrom="id-0067-00000020" isinstance="yes" isprimary="no" referred="id-0066-00000007" isbound="yes">
+ <name>AttributeMember</name>
+ </reference>
+ </model>
+ <reference id="id-0067-0000002b" kind="OutEventPort" role="OutEventPort" derivedfrom="id-0067-0000000c" isinstance="yes" isprimary="no" referred="id-0065-00000007" isbound="yes">
+ <name>notify_out</name>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="out_event_port_type" status="meta">
+ <value>DirectConnect</value>
+ </attribute>
+ <attribute kind="single_destination" status="inherited">
+ <value>false</value>
+ </attribute>
+ </reference>
+ <reference id="id-0067-0000002c" kind="ProvidedRequestPort" role="ProvidedRequestPort" derivedfrom="id-0067-0000000b" isinstance="yes" isprimary="no" referred="id-0065-00000005" isbound="yes">
+ <name>push_quoter</name>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ </reference>
+ <reference id="id-0067-0000002d" kind="Supports" role="Supports" derivedfrom="id-0067-0000000a" isinstance="yes" isprimary="no" referred="id-0065-00000011" isbound="yes">
+ <name>Supports</name>
+ </reference>
+ </model>
+ <atom id="id-0066-00000014" kind="PublishConnector" role="PublishConnector" relid="0x3">
+ <name>PublishConnector</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>329,154</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </atom>
+ <connection id="id-0068-00000017" kind="invoke" role="invoke" relid="0x4">
+ <name>invoke</name>
+ <connpoint role="src" target="id-0067-00000028"/>
+ <connpoint role="dst" target="id-0067-0000002c"/>
+ </connection>
+ <connection id="id-0068-00000018" kind="publish" role="publish" relid="0x5">
+ <name>publish</name>
+ <connpoint role="dst" target="id-0066-00000014"/>
+ <connpoint role="src" target="id-0067-0000002b"/>
+ </connection>
+ <connection id="id-0068-00000019" kind="deliverTo" role="deliverTo" relid="0x6">
+ <name>deliverTo</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>E</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-00000014"/>
+ <connpoint role="dst" target="id-0067-00000027"/>
+ </connection>
+ </model>
+ </model>
+ </folder>
+ <folder id="id-006a-00000005" relid="0x4" childrelidcntr="0x0" kind="ImplementationArtifacts">
+ <name>ImplementationArtifacts</name>
+ <model id="id-0065-0000001b" kind="ArtifactContainer" relid="0x1" childrelidcntr="0xa">
+ <name>StockBrokerArtifacts</name>
+ <model id="id-0065-0000001c" kind="Property" role="Property" relid="0x2" childrelidcntr="0x2">
+ <name>entryPoint</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>334,200</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="DataValue">
+ <value>createStockBrokerHome_Servant</value>
+ </attribute>
+ <reference id="id-0067-00000011" kind="DataType" role="DataType" relid="0x2" referred="id-0066-00000003">
+ <name>String</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>298,193</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <model id="id-0065-0000001d" kind="Property" role="Property" relid="0x4" childrelidcntr="0x2">
+ <name>entryPoint</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>700,432</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="DataValue">
+ <value>createStockBrokerHome_Impl</value>
+ </attribute>
+ <reference id="id-0067-00000012" kind="DataType" role="DataType" relid="0x2" referred="id-0066-00000003">
+ <name>String</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>340,172</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <atom id="id-0066-0000000e" kind="ImplementationArtifact" role="ImplementationArtifact" relid="0x1">
+ <name>StockBroker_stub</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>151,84</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="configuration" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label">
+ <value></value>
+ </attribute>
+ <attribute kind="location">
+ <value>StockBroker_stub</value>
+ </attribute>
+ </atom>
+ <atom id="id-0066-0000000f" kind="ImplementationArtifact" role="ImplementationArtifact" relid="0x3">
+ <name>StockBroker_svnt</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>517,316</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="configuration" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label">
+ <value></value>
+ </attribute>
+ <attribute kind="location">
+ <value>StockBroker_svnt</value>
+ </attribute>
+ </atom>
+ <atom id="id-0066-00000010" kind="ImplementationArtifact" role="ImplementationArtifact" relid="0x5">
+ <name>StockBroker_exec</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>883,548</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="configuration" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label">
+ <value></value>
+ </attribute>
+ <attribute kind="location">
+ <value>StockBroker_exec</value>
+ </attribute>
+ </atom>
+ <connection id="id-0068-0000000d" kind="ArtifactExecParameter" role="ArtifactExecParameter" relid="0x7">
+ <name>ArtifactExecParameter</name>
+ <connpoint role="dst" target="id-0065-0000001c"/>
+ <connpoint role="src" target="id-0066-0000000f"/>
+ </connection>
+ <connection id="id-0068-0000000e" kind="ArtifactDependency" role="ArtifactDependency" relid="0x8">
+ <name>ArtifactDependency</name>
+ <connpoint role="dst" target="id-0066-0000000e"/>
+ <connpoint role="src" target="id-0066-0000000f"/>
+ </connection>
+ <connection id="id-0068-0000000f" kind="ArtifactExecParameter" role="ArtifactExecParameter" relid="0x8">
+ <name>ArtifactExecParameter</name>
+ <connpoint role="dst" target="id-0065-0000001d"/>
+ <connpoint role="src" target="id-0066-00000010"/>
+ </connection>
+ <connection id="id-0068-00000010" kind="ArtifactDependency" role="ArtifactDependency" relid="0x9">
+ <name>ArtifactDependency</name>
+ <connpoint role="dst" target="id-0066-0000000f"/>
+ <connpoint role="src" target="id-0066-00000010"/>
+ </connection>
+ <connection id="id-0068-00000011" kind="ArtifactDependency" role="ArtifactDependency" relid="0xa">
+ <name>ArtifactDependency</name>
+ <connpoint role="dst" target="id-0066-0000000e"/>
+ <connpoint role="src" target="id-0066-00000010"/>
+ </connection>
+ </model>
+ <model id="id-0065-0000001e" kind="ArtifactContainer" relid="0x2" childrelidcntr="0xa">
+ <name>StockDistributorArtifacts</name>
+ <model id="id-0065-0000001f" kind="Property" role="Property" relid="0x2" childrelidcntr="0x2">
+ <name>entryPoint</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>334,200</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="DataValue">
+ <value>createStockDistributorHome_Servant</value>
+ </attribute>
+ <reference id="id-0067-00000013" kind="DataType" role="DataType" relid="0x2" referred="id-0066-00000003">
+ <name>String</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <model id="id-0065-00000020" kind="Property" role="Property" relid="0x4" childrelidcntr="0x2">
+ <name>entryPoint</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>700,432</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="DataValue">
+ <value>createStockDistributorHome_Impl</value>
+ </attribute>
+ <reference id="id-0067-00000014" kind="DataType" role="DataType" relid="0x2" referred="id-0066-00000003">
+ <name>String</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <atom id="id-0066-00000011" kind="ImplementationArtifact" role="ImplementationArtifact" relid="0x1">
+ <name>StockDistributor_stub</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>151,84</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="configuration" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label">
+ <value></value>
+ </attribute>
+ <attribute kind="location">
+ <value>StockDistributor_stub</value>
+ </attribute>
+ </atom>
+ <atom id="id-0066-00000012" kind="ImplementationArtifact" role="ImplementationArtifact" relid="0x3">
+ <name>StockDistributor_svnt</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>517,316</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="configuration" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label">
+ <value></value>
+ </attribute>
+ <attribute kind="location">
+ <value>StockDistributor_svnt</value>
+ </attribute>
+ </atom>
+ <atom id="id-0066-00000013" kind="ImplementationArtifact" role="ImplementationArtifact" relid="0x5">
+ <name>StockDistributor_exec</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>883,548</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="configuration" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label">
+ <value></value>
+ </attribute>
+ <attribute kind="location">
+ <value>StockDistributor_exec</value>
+ </attribute>
+ </atom>
+ <connection id="id-0068-00000012" kind="ArtifactExecParameter" role="ArtifactExecParameter" relid="0x7">
+ <name>ArtifactExecParameter</name>
+ <connpoint role="dst" target="id-0065-0000001f"/>
+ <connpoint role="src" target="id-0066-00000012"/>
+ </connection>
+ <connection id="id-0068-00000013" kind="ArtifactDependency" role="ArtifactDependency" relid="0x8">
+ <name>ArtifactDependency</name>
+ <connpoint role="dst" target="id-0066-00000011"/>
+ <connpoint role="src" target="id-0066-00000012"/>
+ </connection>
+ <connection id="id-0068-00000014" kind="ArtifactExecParameter" role="ArtifactExecParameter" relid="0x8">
+ <name>ArtifactExecParameter</name>
+ <connpoint role="dst" target="id-0065-00000020"/>
+ <connpoint role="src" target="id-0066-00000013"/>
+ </connection>
+ <connection id="id-0068-00000015" kind="ArtifactDependency" role="ArtifactDependency" relid="0x9">
+ <name>ArtifactDependency</name>
+ <connpoint role="dst" target="id-0066-00000012"/>
+ <connpoint role="src" target="id-0066-00000013"/>
+ </connection>
+ <connection id="id-0068-00000016" kind="ArtifactDependency" role="ArtifactDependency" relid="0xa">
+ <name>ArtifactDependency</name>
+ <connpoint role="dst" target="id-0066-00000011"/>
+ <connpoint role="src" target="id-0066-00000013"/>
+ </connection>
+ </model>
+ </folder>
+ <folder id="id-006a-00000006" relid="0x5" childrelidcntr="0x0" kind="ComponentTypes">
+ <name>ComponentTypes</name>
+ <model id="id-0065-00000021" kind="ComponentContainer" relid="0x1" childrelidcntr="0x1">
+ <name>StockBrokerContainer</name>
+ <reference id="id-0067-00000015" kind="ComponentRef" role="ComponentRef" relid="0x1" referred="id-0065-0000000d">
+ <name>StockBrokerRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>244,214</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <model id="id-0065-00000022" kind="ComponentContainer" relid="0x2" childrelidcntr="0x1">
+ <name>StockDistributorContainer</name>
+ <reference id="id-0067-00000016" kind="ComponentRef" role="ComponentRef" relid="0x1" referred="id-0065-00000014">
+ <name>StockDistributorRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>202,249</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ </folder>
+ <folder id="id-006a-00000007" relid="0x6" childrelidcntr="0x1" kind="PackageConfigurations">
+ <name>PackageConfigurations</name>
+ <model id="id-0065-0000002b" kind="PackageConfigurationContainer" relid="0x1" childrelidcntr="0x2">
+ <name>Default</name>
+ <atom id="id-0066-00000018" kind="PackageConfiguration" role="PackageConfiguration" relid="0x1">
+ <name>Default</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>163,226</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <reference id="id-0067-00000033" kind="ComponentPackageReference" role="ComponentPackageReference" relid="0x2" referred="id-0066-00000017">
+ <name>StockQuoter</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>391,230</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="requiredName" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="requiredType" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="requiredUUID" status="meta">
+ <value></value>
+ </attribute>
+ </reference>
+ </model>
+ </folder>
+ <folder id="id-006a-00000008" relid="0x7" childrelidcntr="0x3" kind="ComponentPackages">
+ <name>ComponentPackages</name>
+ <model id="id-0065-00000028" kind="PackageContainer" relid="0x1" childrelidcntr="0x5">
+ <name>Broker</name>
+ <atom id="id-0066-00000015" kind="ComponentPackage" role="ComponentPackage" relid="0x1">
+ <name>Broker</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>272,195</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <reference id="id-0067-0000002e" kind="ComponentImplementationReference" role="ComponentImplementationReference" relid="0x2" referred="id-0066-0000000c">
+ <name>Broker</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>96,194</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-0000002f" kind="ComponentRef" role="ComponentRef" relid="0x3" referred="id-0065-0000000d">
+ <name>Broker</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>440,172</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <connection id="id-0068-0000001b" kind="Implementation" role="Implementation" relid="0x4">
+ <name>Implementation</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>We</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-00000015"/>
+ <connpoint role="dst" target="id-0067-0000002e"/>
+ </connection>
+ <connection id="id-0068-0000001c" kind="PackageInterface" role="PackageInterface" relid="0x5">
+ <name>PackageInterface</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>Ew</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-00000015"/>
+ <connpoint role="dst" target="id-0067-0000002f"/>
+ </connection>
+ </model>
+ <model id="id-0065-00000029" kind="PackageContainer" relid="0x2" childrelidcntr="0x5">
+ <name>Distributor</name>
+ <atom id="id-0066-00000016" kind="ComponentPackage" role="ComponentPackage" relid="0x2">
+ <name>Distributor</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>272,195</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <reference id="id-0067-00000030" kind="ComponentImplementationReference" role="ComponentImplementationReference" relid="0x1" referred="id-0066-0000000d">
+ <name>Distributor</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>96,194</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000031" kind="ComponentRef" role="ComponentRef" relid="0x3" referred="id-0065-00000014">
+ <name>Distributor</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>440,172</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <connection id="id-0068-0000001d" kind="Implementation" role="Implementation" relid="0x4">
+ <name>Implementation</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>We</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-00000016"/>
+ <connpoint role="dst" target="id-0067-00000030"/>
+ </connection>
+ <connection id="id-0068-0000001e" kind="PackageInterface" role="PackageInterface" relid="0x5">
+ <name>PackageInterface</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>Ew</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-00000016"/>
+ <connpoint role="dst" target="id-0067-00000031"/>
+ </connection>
+ </model>
+ <model id="id-0065-0000002a" kind="PackageContainer" relid="0x3" childrelidcntr="0x3">
+ <name>StockQuoter</name>
+ <atom id="id-0066-00000017" kind="ComponentPackage" role="ComponentPackage" relid="0x2">
+ <name>StockQuoter</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>391,125</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <reference id="id-0067-00000032" kind="ComponentImplementationReference" role="ComponentImplementationReference" relid="0x1" referred="id-0065-00000024">
+ <name>StockQuoter</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>96,103</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <connection id="id-0068-0000001f" kind="Implementation" role="Implementation" relid="0x3">
+ <name>Implementation</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>We</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-00000017"/>
+ <connpoint role="dst" target="id-0067-00000032"/>
+ </connection>
+ </model>
+ </folder>
+ <folder id="id-006a-00000009" relid="0x8" childrelidcntr="0x1" kind="DeploymentPlans">
+ <name>DeploymentPlans</name>
+ <model id="id-0065-00000030" kind="DeploymentPlan" relid="0x1" childrelidcntr="0x8">
+ <name>Plan</name>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-00000035" kind="NodeReference" role="NodeReference" relid="0x3" referred="id-0065-0000002e">
+ <name>Node_Broker</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="NodeMapping" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>284,137</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000036" kind="NodeReference" role="NodeReference" relid="0x4" referred="id-0065-0000002f">
+ <name>Node_Distributor</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="NodeMapping" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>284,298</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000037" kind="ComponentRef" role="ComponentRef" relid="0x5" referred="id-0065-00000025">
+ <name>StockBroker</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="NodeMapping" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>412,95</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000038" kind="ComponentRef" role="ComponentRef" relid="0x6" referred="id-0065-00000026">
+ <name>StockDistributor</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="NodeMapping" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>412,270</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <connection id="id-0068-00000021" kind="InstanceMapping" role="InstanceMapping" relid="0x7">
+ <name>InstanceMapping</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>Ew</value>
+ </regnode>
+ <connpoint role="dst" target="id-0067-00000035"/>
+ <connpoint role="src" target="id-0069-00000001"/>
+ </connection>
+ <connection id="id-0068-00000022" kind="InstanceMapping" role="InstanceMapping" relid="0x8">
+ <name>InstanceMapping</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>Ew</value>
+ </regnode>
+ <connpoint role="dst" target="id-0067-00000036"/>
+ <connpoint role="src" target="id-0069-00000002"/>
+ </connection>
+ <set id="id-0069-00000001" kind="CollocationGroup" role="CollocationGroup" relid="0x1" members="id-0067-00000037">
+ <name>CollocationGroup</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="NodeMapping" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>118,125</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </set>
+ <set id="id-0069-00000002" kind="CollocationGroup" role="CollocationGroup" relid="0x2" members="id-0067-00000038">
+ <name>CollocationGroup</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="NodeMapping" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>97,279</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </set>
+ </model>
+ </folder>
+ <folder id="id-006a-0000000a" relid="0x9" childrelidcntr="0x1" kind="Targets">
+ <name>Targets</name>
+ <model id="id-0065-0000002d" kind="Domain" relid="0x1" childrelidcntr="0x2">
+ <name>Domain</name>
+ <attribute kind="UUID" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-0000002e" kind="Node" role="Node" relid="0x1" childrelidcntr="0x0">
+ <name>Broker</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Target" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>198,261</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </model>
+ <model id="id-0065-0000002f" kind="Node" role="Node" relid="0x2" childrelidcntr="0x0">
+ <name>Distributor</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Target" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>394,310</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </model>
+ </model>
+ </folder>
+ <folder id="id-006a-0000000b" relid="0xa" childrelidcntr="0x1" kind="TopLevelPackages">
+ <name>TopLevelPackages</name>
+ <model id="id-0065-0000002c" kind="TopLevelPackageContainer" relid="0x1" childrelidcntr="0x3">
+ <name>Default</name>
+ <atom id="id-0066-00000019" kind="TopLevelPackage" role="TopLevelPackage" relid="0x1">
+ <name>TopLevelPackage</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>132,275</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </atom>
+ <reference id="id-0067-00000034" kind="PackageConfigurationReference" role="PackageConfigurationReference" relid="0x2" referred="id-0066-00000018">
+ <name>Default</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>370,265</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <connection id="id-0068-00000020" kind="package" role="package" relid="0x3">
+ <name>package</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>Ew</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-00000019"/>
+ <connpoint role="dst" target="id-0067-00000034"/>
+ </connection>
+ </model>
+ </folder>
+ <folder id="id-006a-0000000c" relid="0xb" childrelidcntr="0x0" kind="ComponentBuild">
+ <name>ComponentBuild</name>
+ </folder>
+ </folder>
+</project>
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/index.html b/modules/CIAO/docs/tutorials/CoSMIC/index.html
new file mode 100644
index 00000000000..74547224422
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/index.html
@@ -0,0 +1,195 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+
+
+ <meta name="generator" content="HTML Tidy for Mac OS X (vers 1st December 2004), see www.w3.org" />
+
+
+
+ <title>Building a Stock Quoter with TAO - A Tutorial</title>
+<!-- $Id$ -->
+</head>
+
+
+
+<body style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" link="#000fff" vlink="#ff0f0f">
+
+
+<h3>Building a Stock Quoter with CoSMIC and DAnCE - A
+ Tutorial<br />
+</h3>
+
+
+
+<p>This tutorial provides a step-by-step lesson on developing
+ component-based distributed applications using <a href="http://www.dre.vanderbilt.edu/cosmic/">CoSMIC</a> modeling
+ toolkit and <a href="http://www.cs.wustl.edu/%7Eschmidt/CIAO.html">CIAO/DAnCE</a>
+ framework. The example application used in this tutorial is a
+ Stock Quoter that consists of two components; the
+ <em>StockDistributor</em> and the <em>StockBroker</em>. The
+ <em>StockDistributor</em> notifies one or more stock brokers
+ whenever a stock price changes. Upon receiving the notification,
+ the <em>StockBroker</em> fetches information about a particular
+ stock from the <em>StockDistributor</em>. The figure bellow shows
+ the application diagram. This Stock Quoter application is based
+ on a series of <a href="http://www.cs.wustl.edu/%7Eschmidt/report-doc.html">CORBA
+ component model</a> columns written by <a href="http://www.cs.wustl.edu/%7Eschmidt/">Doug Schmidt</a> and
+ <a href="http://www.iona.com/hyplan/vinoski/">Steve Vinoski</a>
+ for <a href="http://www.cuj.com">C/C++ Users Journal</a> and has
+ consistently been used as an example for <a href="http://www.cs.wustl.edu/%7Eschmidt/TAO.html">TAO</a>.<br />
+</p>
+
+
+
+<div style="text-align: center;">
+ <img alt="" src="Images/fig1.jpg" style="width: 362px; height: 193px;" /><br />
+
+ <br />
+
+ Stock Quoter application Diagram<br />
+
+ </div>
+
+
+
+<p>This tutorial will show you how to use generic modeling
+ techniques <a href="http://www.dre.vanderbilt.edu/cosmic/">CoSMIC</a> to assist the
+ development process of CIAO applications. All the necessary steps
+ to build a component-based application model via <a href="http://www.dre.vanderbilt.edu/cosmic/">CoSMIC</a> toolkit are
+ documented here.</p>
+
+
+
+<blockquote>
+
+ <hr />
+ <strong>Note:</strong><br />
+
+ 1. Although the descriptor files generated by CoSMIC toolkits
+ are portable, the modeling environment required by CoSMIC (GME)
+ only supports Microsoft Windows platforms.<br />
+
+ 2. The CIAO/DAnCE codes used for this tutorial can be found in
+ <code>%CIAO_ROOT%/docs/tutorials/Quoter/Simple</code>.<br />
+
+ 3. The current tutorial is tested under GME 5.9.21, and&nbsp;
+ CosMIC 0.5.2. It will be subject to change as version of GME
+ and CoSMIC evolves.<br />
+
+
+ <hr />
+ </blockquote>
+<strong><big>Prerequisites</big></strong><br />
+
+ <br />
+
+ &nbsp;&nbsp;&nbsp;Before you start, you will need the following:
+
+
+<ol>
+
+ <li><strong>ACE+TAO+CIAO (Component Integraated ACE
+ ORB).</strong> ACE + TAO + CIAO provide the CCM infrastructure
+ necessary to enable the CCM-based distributed component
+ interaction. You can click <a href="http://download.dre.vanderbilt.edu">here</a> to download
+ the latest ACE + TAO + CIAO and click <a href="../../../../../ACE-Install.html">
+ here</a> for information on how to build ACE+TAO+CIAO.</li>
+
+
+ <li><strong>Generic Modeling Environment (GME).</strong> GME is
+ a configurable toolkit for creating domain-specific modeling
+ and program synthesis environments. It provides the execution
+ environment for CoSMIC toolkits. Click <a href="http://www.isis.vanderbilt.edu/Projects/gme/download.html">here</a>
+ to download GME.</li>
+
+
+ <li><strong>CoSMIC toolkit.</strong> Click <a href="http://www.dre.vanderbilt.edu/cosmic/">here</a> to download
+ the latest CoSMIC release.</li>
+
+
+</ol>
+
+
+
+<blockquote>
+
+ <hr />
+ <strong>Note:</strong><br />
+
+
+
+ <ol>
+
+ <li>Please use only the version of GME that the CoSMIC
+ package you have downloaded requires. Attempts to use earlier
+ or later versions may result in undefined behavior.</li>
+
+
+ <li>Make sure you install GME before you install CoSMIC.</li>
+
+
+ </ol>
+
+
+ <hr />
+ </blockquote>
+<strong><a href="01.html">Getting
+ Started</a></strong><br />
+
+ <br />
+
+ &nbsp;&nbsp; This section describes the IDL files used by the
+ example and shows you how to import IDL into <a href="http://www.cs.wustl.edu/%7Eschmidt/PDF/RTAS05-PICML.pdf">PICML
+ (Platform-Independent Component Modeling Language)</a>; a
+ domain-specific modeling language which is defined using GME.
+ PICML is designed to help to bridge the gap between design-time
+ verification and model-checking tools and the deployment of
+ component implementations.<br />
+
+ <br />
+
+ <strong><a href="02.html">Modeling StockQuoter system with
+ PICML</a></strong><br />
+
+ <br />
+
+ &nbsp;&nbsp;&nbsp; This section describes how to model the Stock
+ Quoter components in PICML.<br />
+
+ &nbsp;&nbsp;&nbsp;&nbsp;<br />
+
+ <a href="03.html"><strong>Implementing Quoter components with
+ DAnCE</strong></a><br />
+
+ <br />
+
+ &nbsp;&nbsp;&nbsp; This section provides codes for the Quoter
+ example.<br />
+
+ <br />
+
+ <strong><a href="04.html">Running the
+ application</a></strong><br />
+
+ <br />
+
+ &nbsp;&nbsp; After all the components and descriptors generated
+ by PICML are in place. You are ready to compile and run the
+ application.<br />
+
+ <br />
+
+
+<hr />
+
+
+<address>
+ <a href="mailto:ming.xiong@vanderbilt.edu">Ming Xiong<br />
+</a>
+ </address>
+<!-- Created: Sat Nov 27 15:25:06 CST 1999 -->
+ <!-- hhmts start -->
+ Last modified: Fri May 5 21:29:07 CDT 2006 <!-- hhmts end -->
+</body>
+</html>
diff --git a/modules/CIAO/docs/tutorials/CoSMIC/style.css b/modules/CIAO/docs/tutorials/CoSMIC/style.css
new file mode 100644
index 00000000000..b86b9ceb671
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/CoSMIC/style.css
@@ -0,0 +1,15 @@
+
+/* Important Node */
+div.important {
+ position: center;
+ width: 75%;
+ text-align: left;
+ border: 1;
+ background: #FAEBD7;
+}
+
+div.important strong {
+ font-weight: bold;
+ color: red;
+ font-variant: small-caps;
+}
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/01.html b/modules/CIAO/docs/tutorials/Quoter/Simple/01.html
new file mode 100644
index 00000000000..fb33ed38008
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/01.html
@@ -0,0 +1,838 @@
+<!-- $Id$ -->
+<html xmlns:v="urn:schemas-microsoft-com:vml"
+xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns:p="urn:schemas-microsoft-com:office:powerpoint"
+xmlns:oa="urn:schemas-microsoft-com:office:activation"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 11">
+<meta name=Originator content="Microsoft Word 11">
+<link rel=File-List href="01_files/filelist.xml">
+<link rel=Edit-Time-Data href="01_files/editdata.mso">
+<!--[if !mso]>
+<style>
+v\:* {behavior:url(#default#VML);}
+o\:* {behavior:url(#default#VML);}
+w\:* {behavior:url(#default#VML);}
+.shape {behavior:url(#default#VML);}
+</style>
+<![endif]-->
+<title>Getting Started</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>Abdullah Sowayan</o:Author>
+ <o:LastAuthor>Abdullah Sowayan</o:LastAuthor>
+ <o:Revision>22</o:Revision>
+ <o:TotalTime>244</o:TotalTime>
+ <o:Created>2006-10-09T18:21:00Z</o:Created>
+ <o:LastSaved>2006-12-01T17:30:00Z</o:LastSaved>
+ <o:Pages>1</o:Pages>
+ <o:Words>859</o:Words>
+ <o:Characters>4900</o:Characters>
+ <o:Company>Maritime Systems &amp; Sensors</o:Company>
+ <o:Lines>40</o:Lines>
+ <o:Paragraphs>11</o:Paragraphs>
+ <o:CharactersWithSpaces>5748</o:CharactersWithSpaces>
+ <o:Version>11.8107</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:SpellingState>Clean</w:SpellingState>
+ <w:GrammarState>Clean</w:GrammarState>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ </w:WordDocument>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
+ </w:LatentStyles>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+ {font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;
+ mso-font-charset:0;
+ mso-generic-font-family:swiss;
+ mso-font-pitch:variable;
+ mso-font-signature:1627421319 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+h3
+ {mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ mso-outline-level:3;
+ font-size:13.5pt;
+ font-family:"Times New Roman";
+ font-weight:bold;}
+a:link, span.MsoHyperlink
+ {color:#000FFF;
+ text-decoration:underline;
+ text-underline:single;}
+a:visited, span.MsoHyperlinkFollowed
+ {color:#FF0F0F;
+ text-decoration:underline;
+ text-underline:single;}
+p
+ {mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+address
+ {margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ font-style:italic;}
+code
+ {font-family:"Courier New";
+ mso-ascii-font-family:"Courier New";
+ mso-fareast-font-family:"Times New Roman";
+ mso-hansi-font-family:"Courier New";
+ mso-bidi-font-family:"Courier New";}
+p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
+ {mso-style-noshow:yes;
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:8.0pt;
+ font-family:Tahoma;
+ mso-fareast-font-family:"Times New Roman";}
+span.SpellE
+ {mso-style-name:"";
+ mso-spl-e:yes;}
+span.GramE
+ {mso-style-name:"";
+ mso-gram-e:yes;}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.25in 1.0in 1.25in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+ /* List Definitions */
+ @list l0
+ {mso-list-id:137387275;
+ mso-list-type:hybrid;
+ mso-list-template-ids:268987612 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l0:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0B7;
+ mso-level-tab-stop:.75in;
+ mso-level-number-position:left;
+ margin-left:.75in;
+ text-indent:-.25in;
+ font-family:Symbol;}
+@list l0:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1
+ {mso-list-id:425031842;
+ mso-list-type:hybrid;
+ mso-list-template-ids:158504358 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l1:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0B7;
+ mso-level-tab-stop:1.75in;
+ mso-level-number-position:left;
+ margin-left:1.75in;
+ text-indent:-.25in;
+ font-family:Symbol;}
+@list l1:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2
+ {mso-list-id:632565866;
+ mso-list-type:hybrid;
+ mso-list-template-ids:542421050 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l2:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0B7;
+ mso-level-tab-stop:1.25in;
+ mso-level-number-position:left;
+ margin-left:1.25in;
+ text-indent:-.25in;
+ font-family:Symbol;}
+@list l2:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3
+ {mso-list-id:974944555;
+ mso-list-type:hybrid;
+ mso-list-template-ids:1880366448 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l3:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0B7;
+ mso-level-tab-stop:1.25in;
+ mso-level-number-position:left;
+ margin-left:1.25in;
+ text-indent:-.25in;
+ font-family:Symbol;}
+@list l3:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4
+ {mso-list-id:1876190917;
+ mso-list-type:hybrid;
+ mso-list-template-ids:-767374784 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l4:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0B7;
+ mso-level-tab-stop:1.75in;
+ mso-level-number-position:left;
+ margin-left:1.75in;
+ text-indent:-.25in;
+ font-family:Symbol;}
+@list l4:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+ol
+ {margin-bottom:0in;}
+ul
+ {margin-bottom:0in;}
+-->
+</style>
+<!--[if gte mso 10]>
+<style>
+ /* Style Definitions */
+ table.MsoNormalTable
+ {mso-style-name:"Table Normal";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-noshow:yes;
+ mso-style-parent:"";
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Times New Roman";
+ mso-ansi-language:#0400;
+ mso-fareast-language:#0400;
+ mso-bidi-language:#0400;}
+</style>
+<![endif]--><!-- 01.html,v 1.3 2006/02/10 14:34:35 mxiong Exp --><!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="8194"/>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+ <o:idmap v:ext="edit" data="1"/>
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body bgcolor=white lang=EN-US link="#000FFF" vlink="#FF0F0F" style='tab-interval:
+.5in'>
+
+<div class=Section1>
+
+<h3 align=center style='margin:0in;margin-bottom:.0001pt;text-align:center;
+line-height:150%'><span style='color:black'>Step 1: Define your interfaces and
+component types<o:p></o:p></span></h3>
+
+<h3 align=center style='margin:0in;margin-bottom:.0001pt;text-align:center;
+line-height:150%'><span style='color:black'><img width=447 height=350
+id="_x0000_i1025" src="images/Step1.JPG"><o:p></o:p></span></h3>
+
+<h3 style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span
+style='color:black'><o:p>&nbsp;</o:p></span></h3>
+
+<h3 style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span
+style='font-size:12.0pt;line-height:150%;color:black;font-weight:normal;
+mso-bidi-font-weight:bold'>Please make sure to read the following article to
+under the Stock <span class=SpellE>Quoter</span> system architecture before
+delving further into the tutorial:<o:p></o:p></span></h3>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:.75in;
+margin-bottom:.0001pt;text-indent:-.25in;line-height:150%;mso-list:l0 level1 lfo2;
+tab-stops:list .75in'><![if !supportLists]><span style='font-family:Symbol;
+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
+style='mso-list:Ignore'>&middot;<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><a
+href="http://www.cuj.com/documents/s=9152/cujexp0404vinoski/">The CORBA
+Component Model, Part 2: Defining Components with the IDL 3.x Types</a></p>
+
+<h3 style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span
+style='font-size:12.0pt;line-height:150%;color:black;font-weight:normal;
+mso-bidi-font-weight:bold'><o:p>&nbsp;</o:p></span></h3>
+
+<h3 style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span
+style='font-size:12.0pt;line-height:150%;color:black'>Directory Structure:<o:p></o:p></span></h3>
+
+<h3 style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span
+style='font-size:12.0pt;line-height:150%;color:black;font-weight:normal;
+mso-bidi-font-weight:bold'>The tutorial relies on the following directory
+structure. Create <span class=SpellE>Quoter</span> and all its subdirectories
+as shown below. We will describe the purpose of these directories later in the
+tutorial.<o:p></o:p></span></h3>
+
+<h3 style='margin:0in;margin-bottom:.0001pt;text-indent:.5in;line-height:150%'><span
+class=SpellE><span style='font-size:12.0pt;line-height:150%;color:black;
+font-weight:normal;mso-bidi-font-weight:bold'>Quoter</span></span><span
+style='font-size:12.0pt;line-height:150%;color:black;font-weight:normal;
+mso-bidi-font-weight:bold'><o:p></o:p></span></h3>
+
+<h3 style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span
+style='font-size:12.0pt;line-height:150%;color:black;font-weight:normal;
+mso-bidi-font-weight:bold'><span
+style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>|---- descriptors<o:p></o:p></span></h3>
+
+<h3 style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span
+style='font-size:12.0pt;line-height:150%;color:black;font-weight:normal;
+mso-bidi-font-weight:bold'><span
+style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>|---- <span class=SpellE>Stock_Base</span><o:p></o:p></span></h3>
+
+<h3 style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span
+style='font-size:12.0pt;line-height:150%;color:black;font-weight:normal;
+mso-bidi-font-weight:bold'><span
+style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><span style='mso-spacerun:yes'>&nbsp;&nbsp;</span>|---- Distributor<o:p></o:p></span></h3>
+
+<h3 style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span
+style='font-size:12.0pt;line-height:150%;color:black;font-weight:normal;
+mso-bidi-font-weight:bold'><span
+style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>|---- Broker<o:p></o:p></span></h3>
+
+<h3 style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span
+style='font-size:12.0pt;line-height:150%;color:black;font-weight:normal;
+mso-bidi-font-weight:bold'><o:p>&nbsp;</o:p></span></h3>
+
+<h3 style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span
+style='font-size:12.0pt;line-height:150%;color:black'>Preliminaries:<o:p></o:p></span></h3>
+
+<h3 style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:.75in;
+margin-bottom:.0001pt;text-indent:-.25in;line-height:150%;mso-list:l0 level1 lfo2;
+tab-stops:list .75in'><![if !supportLists]><span style='font-size:12.0pt;
+line-height:150%;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black;font-weight:normal;mso-bidi-font-weight:bold'><span
+style='mso-list:Ignore'>&middot;<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span style='font-size:12.0pt;line-height:150%;
+color:black;font-weight:normal;mso-bidi-font-weight:bold'>We use the Make
+Project Creator (MPC) throughout this tutorial. Understanding MPC will aid you
+in understanding this tutorial. For more information on MPC please look at the
+following:<o:p></o:p></span></h3>
+
+<h3 style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.5in;
+margin-bottom:.0001pt;text-indent:-.25in;line-height:150%;mso-list:l0 level3 lfo2;
+tab-stops:list 1.5in'><![if !supportLists]><span style='font-size:12.0pt;
+line-height:150%;color:black;font-weight:normal;mso-bidi-font-weight:bold'><span
+style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span class=GramE><span style='font-size:12.0pt;
+line-height:150%;color:black;font-weight:normal;mso-bidi-font-weight:bold'>MPC <a
+href="http://downloads.ociweb.com/MPC/MakeProjectCreator.pdf">Chapter</a> in <span
+class=SpellE>TAO&#8217;s</span> Developer&#8217;s Guide 1.4a.</span></span><span
+style='font-size:12.0pt;line-height:150%;color:black;font-weight:normal;
+mso-bidi-font-weight:bold'><o:p></o:p></span></h3>
+
+<h3 style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.5in;
+margin-bottom:.0001pt;text-indent:-.25in;line-height:150%;mso-list:l0 level3 lfo2;
+tab-stops:list 1.5in'><![if !supportLists]><span style='font-size:12.0pt;
+line-height:150%;color:black;font-weight:normal;mso-bidi-font-weight:bold'><span
+style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span style='font-size:12.0pt;line-height:150%;
+color:black;font-weight:normal;mso-bidi-font-weight:bold'>$ACE_ROOT/MPC/README<o:p></o:p></span></h3>
+
+<p class=MsoNormal style='line-height:150%'><b><span style='color:black'>Interface
+Design:</span></b><span style='color:black'><o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in;line-height:
+150%;mso-list:l0 level1 lfo2;tab-stops:list .75in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span style='color:black'>In the <span
+class=SpellE><i style='mso-bidi-font-style:normal'>Quoter/<span
+style='mso-bidi-font-style:italic'>Stock_Base</span></i></span><i> </i><span
+style='mso-bidi-font-style:italic'>sub-</span>directory, place an <span
+class=SpellE>idl</span> file </span><span class=SpellE><code><i><span
+style='font-size:10.0pt;line-height:150%;color:black'>Stock_Base.idl</span></i></code></span><span
+style='color:black'> that you could copy from <a
+href="Stock_Base/Stock_Base.idl">here</a>. This file defines the interfaces and
+events that will be used by both Stock Distributor and Stock Broker. We put
+together the common interface definitions so the base library can be shared by
+both components, reducing the size of &quot;real&quot; components.<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in;line-height:
+150%;mso-list:l0 level1 lfo2;tab-stops:list .75in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span style='color:black'>Next, we need to
+create a Make Project Creator (MPC) file to generate the make files for us.
+From the <span class=SpellE><i style='mso-bidi-font-style:normal'>Quoter/<span
+style='mso-bidi-font-style:italic'>Stock_Base</span></i></span><span
+style='mso-bidi-font-style:italic'> subdirectory, type the following command:</span><o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-indent:.5in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'>generate_component_mpc.pl
+&#8211;n -e <span class=SpellE>Stock_Base</span><o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-indent:.5in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-indent:.5in;line-height:150%'><span
+style='color:black;mso-bidi-font-style:italic'>Note that we pass the &#8211;e option
+to </span><span style='font-family:"Courier New";color:black;mso-bidi-font-style:
+italic'>generate_component_mpc.pl because our </span><span class=SpellE><code><i><span
+style='font-size:10.0pt;line-height:150%;color:black'>Stock_Base.idl</span></i></code></span><code><i><span
+style='font-size:10.0pt;line-height:150%;color:black'> </span></i></code><span
+style='color:black;mso-bidi-font-style:italic'>uses <span class=SpellE>eventtypes</span>.
+If our <span class=SpellE>idl</span> file did not use <span class=SpellE>eventtypes</span>,
+we would<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-indent:.5in;line-height:150%'><span
+class=GramE><span style='color:black;mso-bidi-font-style:italic'>not</span></span><span
+style='color:black;mso-bidi-font-style:italic'> pass the &#8211;e command line
+option.<o:p></o:p></span></p>
+
+<p class=MsoNormal style='text-indent:.5in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.75in;line-height:150%'><span
+style='color:black;mso-bidi-font-style:italic'>The command above will generate
+a <span class=SpellE><i>Stock_Base.mpc</i></span> file that contains two
+projects <span class=SpellE><i>Stock_Base_stub</i></span><i> </i>and <span
+class=SpellE><i>Stock_Base_skel</i></span><i> </i>for the Stub and Servant code
+respectively. In addition, the command above will generate export files that
+will portably handle platform specific issues of import/export declarations of
+dynamically linked libraries (DLLs). After executing the command above you
+should see the following output on your screen.<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-indent:.75in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-indent:.75in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'>The
+following commands have been executed:<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-indent:.75in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'><span
+style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>generate_export_file.pl STOCK_BASE_STUB &gt; <span class=SpellE>Stock_Base_stub_export.h</span><o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-indent:.75in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'><span
+style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>generate_export_file.pl
+STOCK_BASE_SKEL &gt; <span class=SpellE>Stock_Base_skel_export.h</span><o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-indent:.75in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.75in;text-indent:-1.25in;line-height:
+150%;mso-list:l1 level1 lfo4;tab-stops:list .75in 1.75in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black;mso-bidi-font-style:italic'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span style='color:black;mso-bidi-font-style:
+italic'>The MPC file should look like <a href="Stock_Base/Stock_Base.mpc">this</a>.
+</span><span style='font-family:"Courier New";color:black;mso-bidi-font-style:
+italic'><o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.5in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal style='line-height:150%'><b><span style='color:black'>Component
+Design:</span></b><span style='color:black'><o:p></o:p></span></p>
+
+<p class=MsoNormal style='text-indent:.5in;line-height:150%'><b
+style='mso-bidi-font-weight:normal'><span style='color:black'>Distributor:</span></b><span
+style='color:black'>&nbsp;&nbsp;&nbsp;<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.25in;text-indent:-.25in;line-height:
+150%;mso-list:l3 level1 lfo6;tab-stops:list 1.25in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span style='color:black'>In the </span><span
+class=SpellE><code><i><span style='font-size:10.0pt;line-height:150%;
+color:black'>Quoter</span></i></code></span><code><i><span style='font-size:
+10.0pt;line-height:150%;color:black'>/Distributor </span></i></code><code><span
+style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;line-height:150%;
+font-family:"Times New Roman";color:black;mso-bidi-font-style:italic'>sub-directory</span></code><span
+style='color:black'>, place an <span class=SpellE>idl</span> file </span><span
+class=SpellE><code><i><span style='font-size:10.0pt;line-height:150%;
+color:black'>Distributor.idl</span></i></code></span><span style='color:black'>
+that looks like <a href="Distributor/Distributor.idl">this</a>. This file
+defines the <span class=SpellE>StockDistributor</span> component interfaces.<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.25in;text-indent:-.25in;line-height:
+150%;mso-list:l3 level1 lfo6;tab-stops:list 1.25in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span style='color:black'>Next, we need to
+create a Make Project Creator (MPC) file to generate the make files for us.
+From the <span class=SpellE><i style='mso-bidi-font-style:normal'>Quoter</i></span><i
+style='mso-bidi-font-style:normal'>/<span style='mso-bidi-font-style:italic'>Distributor
+</span></i><span style='mso-bidi-font-style:italic'><span
+style='mso-spacerun:yes'>&nbsp;</span>sub-directory, type the following
+command:</span><o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-indent:1.25in;line-height:150%'><span
+style='font-family:"Courier New";color:black'>generate_component_mpc.pl -p <span
+class=SpellE>Stock_Base</span> Distributor<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-indent:1.25in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.25in;line-height:150%'><span
+style='color:black;mso-bidi-font-style:italic'>The command above will generate
+a <span class=SpellE><i>Distirubotor.mpc</i></span> file that contains three
+projects <span class=SpellE><i>Distributor_stub</i></span><i>, <span
+class=SpellE>Distributor_svnt</span>, and <span class=SpellE>Distributor_exec</span>
+</i>for the Stub, Servant, and Executor code respectively. In addition, the
+command above will generate export files that will portably handle platform
+specific issues of import/export declarations of dynamically linked libraries
+(DLLs). After executing the command above you should see the following output
+on your screen.<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.25in;text-indent:.75in;line-height:
+150%'><span style='font-family:"Courier New";color:black;mso-bidi-font-style:
+italic'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.5in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'>The
+following commands have been executed:<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.5in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'><span
+style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>generate_export_file.pl DISTRIBUTOR_STUB &gt; <span class=SpellE>Distributor_stub_export.h</span><o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.5in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'><span
+style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>generate_export_file.pl DISTRIBUTOR_SVNT &gt; <span class=SpellE>Distributor_svnt_export.h</span><o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.5in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'><span
+style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>generate_export_file.pl DISTRIBUTOR_EXEC &gt; <span class=SpellE>Distributor_exec_export.h</span><o:p></o:p></span></p>
+
+<p class=MsoNormal style='line-height:150%'><span style='color:black'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.25in;line-height:150%'><span
+style='color:black'>We will modify the generated MPC file to add an additional
+project later in the tutorial.<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.25in;text-indent:-.25in;line-height:
+150%;mso-list:l4 level1 lfo8;tab-stops:list 1.25in 1.75in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black;mso-bidi-font-style:italic'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span style='color:black;mso-bidi-font-style:
+italic'>The </span><span class=SpellE><i><span style='font-family:"Courier New";
+color:black'>Stock_Base_Distributor_stub</span></i></span><span
+style='color:black;mso-bidi-font-style:italic'>, </span><span class=SpellE><i><span
+style='font-family:"Courier New";color:black'>Stock_Base_Distributor_svnt</span></i></span><span
+style='color:black;mso-bidi-font-style:italic'>, and </span><span class=SpellE><i><span
+style='font-family:"Courier New";color:black'>Stock_Base_Distributor_exec</span></i></span><span
+style='color:black;mso-bidi-font-style:italic'> projects in the MPC file should
+look like <a href="Distributor/Distributor.mpc">this</a>. </span><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'><o:p></o:p></span></p>
+
+<p class=MsoNormal style='line-height:150%'><span style='color:black'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal style='text-indent:.5in;line-height:150%'><b
+style='mso-bidi-font-weight:normal'><span style='color:black'>Broker:<o:p></o:p></span></b></p>
+
+<p class=MsoNormal style='margin-left:1.25in;text-indent:-.25in;line-height:
+150%;mso-list:l2 level1 lfo10;tab-stops:list 1.25in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span style='color:black'>In the </span><span
+class=SpellE><code><i><span style='font-size:10.0pt;line-height:150%;
+color:black'>Quoter</span></i></code></span><code><i><span style='font-size:
+10.0pt;line-height:150%;color:black'>/Broker</span></i></code><span
+style='color:black'> <code><span style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:
+12.0pt;line-height:150%;font-family:"Times New Roman";mso-bidi-font-style:italic'>sub-directory,</span></code>
+place an <span class=SpellE>idl</span> file </span><span class=SpellE><code><i><span
+style='font-size:10.0pt;line-height:150%;color:black'>Broker.id</span></i></code><code><span
+style='font-size:10.0pt;line-height:150%;color:black'>l</span></code></span><span
+style='color:black'> that looks like <a href="Broker/Broker.idl">this</a>. This
+file defines the <span class=SpellE>StockBroker</span> component interface.<b
+style='mso-bidi-font-weight:normal'><o:p></o:p></b></span></p>
+
+<p class=MsoNormal style='margin-left:1.25in;text-indent:-.25in;line-height:
+150%;mso-list:l2 level1 lfo10;tab-stops:list 1.25in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span style='color:black'>Next, we need to
+create a Make Project Creator (MPC) file to generate the make files for us.
+From the <span class=SpellE><i style='mso-bidi-font-style:normal'>Quoter</i></span><i
+style='mso-bidi-font-style:normal'>/<span style='mso-bidi-font-style:italic'>Broker</span></i><span
+style='mso-bidi-font-style:italic'> sub-directory, type the following command:</span><o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-indent:1.25in;line-height:150%'><span
+style='font-family:"Courier New";color:black'>generate_component_mpc.pl -p <span
+class=SpellE>Stock_Base</span> Broker<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-indent:1.25in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.25in;line-height:150%'><span
+style='color:black;mso-bidi-font-style:italic'>The command above will generate
+a <span class=SpellE><i>Broker.mpc</i></span> file that contains three projects
+<span class=SpellE><i>Broker_stub</i></span><i>, <span class=SpellE>Broker_svnt</span>,
+and <span class=SpellE>Broker_exec</span> </i>for the Stub, Servant, and
+Executor code respectively. In addition, the command above will generate export
+files that will portably handle platform specific issues of import/export
+declarations of dynamically linked libraries (DLLs). After executing the
+command above you should see the following output on your screen.<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.25in;text-indent:.75in;line-height:
+150%'><span style='font-family:"Courier New";color:black;mso-bidi-font-style:
+italic'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.5in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'>The
+following commands have been executed:<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.5in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'><span
+style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>generate_export_file.pl BROKER_STUB &gt; <span class=SpellE>Broker_stub_export.h</span><o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.5in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'><span
+style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>generate_export_file.pl BROKER_SVNT &gt; <span class=SpellE>Broker_svnt_export.h</span><o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.5in;line-height:150%'><span
+style='font-family:"Courier New";color:black;mso-bidi-font-style:italic'><span
+style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>generate_export_file.pl BROKER_EXEC &gt; <span class=SpellE>Broker_exec_export.h</span><o:p></o:p></span></p>
+
+<p class=MsoNormal style='line-height:150%'><span style='color:black'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.25in;line-height:150%'><span
+style='color:black'>We will modify the generated MPC file to add an additional
+project later in the tutorial.<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:1.75in;text-indent:-.75in;line-height:
+150%;mso-list:l4 level1 lfo8;tab-stops:list 1.25in 1.75in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black;mso-bidi-font-style:italic'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span style='color:black;mso-bidi-font-style:
+italic'>The </span><span class=SpellE><i><span style='font-family:"Courier New";
+color:black'>Stock_Base_Broker_stub</span></i></span><span style='color:black;
+mso-bidi-font-style:italic'>, </span><span class=SpellE><i><span
+style='font-family:"Courier New";color:black'>Stock_Base_Broker_svnt</span></i></span><span
+style='color:black;mso-bidi-font-style:italic'>, and </span><span class=SpellE><i><span
+style='font-family:"Courier New";color:black'>Stock_Base_Broker_exec</span></i></span><span
+style='color:black;mso-bidi-font-style:italic'> projects in the MPC file should
+look like <a href="Broker/Broker.mpc">this</a>. </span><span style='font-family:
+"Courier New";color:black;mso-bidi-font-style:italic'><o:p></o:p></span></p>
+
+<p class=MsoNormal style='line-height:150%'><span style='color:black'><br>
+<b style='mso-bidi-font-weight:normal'>Note:<o:p></o:p></b></span></p>
+
+<p class=MsoNormal style='line-height:150%'><span style='color:black'>To understand
+the meaning of different parameters passed to </span><span style='font-family:
+"Courier New";color:black;mso-bidi-font-style:italic'>generate_export_file.pl </span><span
+style='color:black;mso-bidi-font-style:italic'>type the</span><span
+style='color:black'> following command:<o:p></o:p></span></p>
+
+<p class=MsoNormal style='line-height:150%'><span style='font-family:"Courier New";
+color:black;mso-bidi-font-style:italic'>generate_export_file.pl -h</span><span
+style='color:black'><br style='mso-special-character:line-break'>
+<![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'>
+<![endif]><b style='mso-bidi-font-weight:normal'><o:p></o:p></b></span></p>
+
+<p class=MsoNormal style='line-height:150%'><span style='color:black'>&nbsp;&nbsp;&nbsp;
+<o:p></o:p></span></p>
+
+<div class=MsoNormal align=center style='text-align:center;line-height:150%'><span
+style='color:black'>
+
+<hr size=2 width="100%" align=center>
+
+</span></div>
+
+<address style='line-height:150%'><span style='color:black'><a
+href="mailto:ming.xiong@vanderbilt.edu">Ming Xiong<br>
+</a></span><a href="mailto:abdullah.sowayan@lmco.com">Abdullah Sowayan</a></address>
+
+<address style='line-height:150%'><span style='color:black'><o:p>&nbsp;</o:p></span></address>
+
+<p class=MsoNormal style='line-height:150%'><span style='color:black'><!-- Created: Sat Nov 27 15:25:06 CST 1999 --><!-- hhmts start -->Last
+modified:<!-- hhmts end --> <o:p></o:p></span></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/02.html b/modules/CIAO/docs/tutorials/Quoter/Simple/02.html
new file mode 100644
index 00000000000..9892e9722c8
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/02.html
@@ -0,0 +1,326 @@
+<!-- $Id$ -->
+<html xmlns:v="urn:schemas-microsoft-com:vml"
+xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns:p="urn:schemas-microsoft-com:office:powerpoint"
+xmlns:oa="urn:schemas-microsoft-com:office:activation"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 11">
+<meta name=Originator content="Microsoft Word 11">
+<link rel=File-List href="02_files/filelist.xml">
+<link rel=Edit-Time-Data href="02_files/editdata.mso">
+<!--[if !mso]>
+<style>
+v\:* {behavior:url(#default#VML);}
+o\:* {behavior:url(#default#VML);}
+w\:* {behavior:url(#default#VML);}
+.shape {behavior:url(#default#VML);}
+</style>
+<![endif]-->
+<title>Getting Started</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>Abdullah Sowayan</o:Author>
+ <o:LastAuthor>Abdullah Sowayan</o:LastAuthor>
+ <o:Revision>7</o:Revision>
+ <o:TotalTime>88</o:TotalTime>
+ <o:Created>2006-10-09T19:28:00Z</o:Created>
+ <o:LastSaved>2006-10-09T21:48:00Z</o:LastSaved>
+ <o:Pages>1</o:Pages>
+ <o:Words>415</o:Words>
+ <o:Characters>2370</o:Characters>
+ <o:Company>Maritime Systems &amp; Sensors</o:Company>
+ <o:Lines>19</o:Lines>
+ <o:Paragraphs>5</o:Paragraphs>
+ <o:CharactersWithSpaces>2780</o:CharactersWithSpaces>
+ <o:Version>11.8036</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ </w:WordDocument>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
+ </w:LatentStyles>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+ {font-family:Wingdings;
+ panose-1:5 0 0 0 0 0 0 0 0 0;
+ mso-font-charset:2;
+ mso-generic-font-family:auto;
+ mso-font-pitch:variable;
+ mso-font-signature:0 268435456 0 0 -2147483648 0;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+h3
+ {mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ mso-outline-level:3;
+ font-size:13.5pt;
+ font-family:"Times New Roman";}
+a:link, span.MsoHyperlink
+ {color:#000FFF;
+ text-decoration:underline;
+ text-underline:single;}
+a:visited, span.MsoHyperlinkFollowed
+ {color:#FF0F0F;
+ text-decoration:underline;
+ text-underline:single;}
+address
+ {margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";}
+code
+ {font-family:"Courier New";
+ mso-ascii-font-family:"Courier New";
+ mso-fareast-font-family:"Times New Roman";
+ mso-hansi-font-family:"Courier New";
+ mso-bidi-font-family:"Courier New";}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.25in 1.0in 1.25in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+ /* List Definitions */
+ @list l0
+ {mso-list-id:555236070;
+ mso-list-type:hybrid;
+ mso-list-template-ids:2061531284 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l0:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0B7;
+ mso-level-tab-stop:1.25in;
+ mso-level-number-position:left;
+ margin-left:1.25in;
+ text-indent:-.25in;
+ font-family:Symbol;}
+ol
+ {margin-bottom:0in;}
+ul
+ {margin-bottom:0in;}
+-->
+</style>
+<!--[if gte mso 10]>
+<style>
+ /* Style Definitions */
+ table.MsoNormalTable
+ {mso-style-name:"Table Normal";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-noshow:yes;
+ mso-style-parent:"";
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Times New Roman";
+ mso-ansi-language:#0400;
+ mso-fareast-language:#0400;
+ mso-bidi-language:#0400;}
+</style>
+<![endif]--><!-- 01.html,v 1.3 2006/02/10 14:34:35 mxiong Exp --><!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="2050"/>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+ <o:idmap v:ext="edit" data="1"/>
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body bgcolor=white lang=EN-US link="#000FFF" vlink="#FF0F0F" style='tab-interval:
+.5in'>
+
+<div class=Section1>
+
+<h3 align=center style='margin:0in;margin-bottom:.0001pt;text-align:center;
+line-height:150%'><span style='color:black'>Step 2: Implement your components<o:p></o:p></span></h3>
+
+<h3 align=center style='text-align:center'><span style='color:black'><img
+width=634 height=376 id="_x0000_i1026" src="images/Step2.JPG"><o:p></o:p></span></h3>
+
+<p class=MsoNormal style='margin-bottom:12.0pt'><b><span style='color:black'>Writing
+CIDL files:<o:p></o:p></span></b></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:12.0pt;
+margin-left:.5in'><b><span style='color:black'>Distributor:<o:p></o:p></span></b></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:12.0pt;
+margin-left:1.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list 1.25in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black;mso-bidi-font-weight:bold'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span style='color:black;mso-bidi-font-weight:
+bold'>In <i style='mso-bidi-font-style:normal'>Quoter/Distributor </i>sub-directory,
+place a cidl file Distributor.cidl that looks like <a
+href="Distributor/Distributor.cidl">this</a>. <o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:12.0pt;
+margin-left:1.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list 1.25in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black;mso-bidi-font-weight:bold'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span style='color:black;mso-bidi-font-weight:
+bold'>The MPC files we generated earlier automatically invoked the CIDLC
+compiler to generate the Servants, Executors, and Contexts for us. To reduce
+the amount of work and typing we need to do, we will next instruct the CIDLC
+compiler to generate an empty Distributor Executor implementation (Object
+implementation in the figure above). In the <i style='mso-bidi-font-style:normal'>Quoter/Distributor
+</i>sub-directory, type the following:<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:12.0pt;
+margin-left:1.5in'><span style='font-family:"Courier New";color:black;
+mso-bidi-font-weight:bold'>cidlc -I$TAO_ROOT -I$TAO_ROOT/tao -I$CIAO_ROOT/ciao
+--gen-exec-impl -- Distributor.cidl<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:12.0pt;
+margin-left:1.25in'><span style='color:black'>The above command will generate a
+<i style='mso-bidi-font-style:normal'>Distributor_exec.h </i>and <i
+style='mso-bidi-font-style:normal'>Distributor_exec.cpp </i>files. These
+generated files greatly reduced the amount of work we do. We&#8217;ll edit
+those files later in the tutorial to insert our business logic in the
+Distributor component.<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:12.0pt;
+margin-left:1.25in'><span style='color:black'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:12.0pt;
+margin-left:.5in'><b style='mso-bidi-font-weight:normal'><span
+style='color:black'>Broker:<o:p></o:p></span></b></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:12.0pt;
+margin-left:1.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list 1.25in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black;mso-bidi-font-weight:bold'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span style='color:black;mso-bidi-font-weight:
+bold'>In <i style='mso-bidi-font-style:normal'>Quoter/Broker </i>sub-directory,
+place a cidl file Broker.cidl that looks like <a href="Broker/Broker.cidl">this</a>.
+<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:12.0pt;
+margin-left:1.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list 1.25in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black;mso-bidi-font-weight:bold'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span style='color:black;mso-bidi-font-weight:
+bold'>The MPC files we generated earlier automatically invoked the CIDLC
+compiler to generate the Servants, Executors, and Contexts for us. To reduce
+the amount of work and typing we need to do, we will next instruct the CIDLC
+compiler to generate an empty Distributor Executor implementation (Object
+implementation in the figure above). In the <i style='mso-bidi-font-style:normal'>Quoter/Broker
+</i>sub-directory, type the following:<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:12.0pt;
+margin-left:1.5in'><span style='font-family:"Courier New";color:black;
+mso-bidi-font-weight:bold'>cidlc -I$TAO_ROOT -I$TAO_ROOT/tao -I$CIAO_ROOT/ciao
+--gen-exec-impl -- Broker.cidl<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:12.0pt;
+margin-left:1.25in'><span style='color:black'>The above command will generate a
+<i style='mso-bidi-font-style:normal'>Broker_exec.h </i>and <i
+style='mso-bidi-font-style:normal'>Broker_exec.cpp </i>files. These generated
+files greatly reduced the amount of work we do. We&#8217;ll edit those files
+later in the tutorial to insert our business logic in the Broker component.<o:p></o:p></span></p>
+
+<p class=MsoNormal style='line-height:150%'><span style='color:black'><br>
+<b style='mso-bidi-font-weight:normal'>Note:<o:p></o:p></b></span></p>
+
+<p class=MsoNormal style='line-height:150%'><span style='color:black'>To
+understand the meaning of different parameters passed to the CIDLC compiler <span
+style='mso-bidi-font-style:italic'>type the</span> following command:<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-bottom:12.0pt'><span style='font-family:"Courier New";
+color:black;mso-bidi-font-style:italic'>cidlc --h</span><span style='color:
+black'><br>
+<br style='mso-special-character:line-break'>
+<![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'>
+<![endif]><o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-bottom:12.0pt'><b><span style='color:black'>Implement
+the Components:<o:p></o:p></span></b></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:12.0pt;
+margin-left:.5in'><b><span style='color:black'>Distributor:<o:p></o:p></span></b></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:12.0pt;
+margin-left:1.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list 1.25in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black;mso-bidi-font-weight:bold'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span style='color:black;mso-bidi-font-weight:
+bold'>The CIDLC compiler generated an empty </span><i style='mso-bidi-font-style:
+normal'><span style='color:black'>Distributor_exec.h </span></i><span
+style='color:black'>and <i style='mso-bidi-font-style:normal'>Distributor_exec.cpp
+</i>files for us. You should now add your business logic to the executors. Look
+into <i style='mso-bidi-font-style:normal'><a
+href="Distributor/Distributor_exec.h">Distributor_exec.h</a> </i>and <i
+style='mso-bidi-font-style:normal'><a href="Distributor/Distributor_exec.cpp">Distributor_exec.cpp</a>
+</i>to see how we implemented this.<span style='mso-bidi-font-weight:bold'><o:p></o:p></span></span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:12.0pt;
+margin-left:.5in'><b style='mso-bidi-font-weight:normal'><span
+style='color:black'>Broker:<o:p></o:p></span></b></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:12.0pt;
+margin-left:1.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list 1.25in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black;mso-bidi-font-weight:bold'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><span style='color:black;mso-bidi-font-weight:
+bold'>The CIDLC compiler generated an empty </span><i style='mso-bidi-font-style:
+normal'><span style='color:black'>Distributor_exec.h </span></i><span
+style='color:black'>and <i style='mso-bidi-font-style:normal'>Distributor_exec.cpp
+</i>files for us. You should now add your business logic to the executors. Look
+into <i style='mso-bidi-font-style:normal'><a href="Broker/Broker_exec.h">Broker_exec.h</a>
+</i>and <i style='mso-bidi-font-style:normal'><a href="Broker/Broker_exec.cpp">Broker_exec.cpp</a>
+</i>to see how we implemented this.<span style='mso-bidi-font-weight:bold'><o:p></o:p></span></span></p>
+
+<p class=MsoNormal style='margin-bottom:12.0pt'><span style='color:black'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal><span style='color:black'>&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p>
+
+<div class=MsoNormal align=center style='text-align:center'><span
+style='color:black'>
+
+<hr size=2 width="100%" align=center>
+
+</span></div>
+
+<address><span style='color:black'><a href="mailto:ming.xiong@vanderbilt.edu">Ming
+Xiong<br>
+</a><o:p></o:p></span></address>
+
+<p class=MsoNormal><span style='color:black'><!-- Created: Sat Nov 27 15:25:06 CST 1999 --><!-- hhmts start -->Last
+modified:<!-- hhmts end --> <o:p></o:p></span></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/03.html b/modules/CIAO/docs/tutorials/Quoter/Simple/03.html
new file mode 100644
index 00000000000..5a60e6fa73b
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/03.html
@@ -0,0 +1,1387 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml"
+xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns:p="urn:schemas-microsoft-com:office:powerpoint"
+xmlns:oa="urn:schemas-microsoft-com:office:activation"
+xmlns:st1="urn:schemas-microsoft-com:office:smarttags"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 11">
+<meta name=Originator content="Microsoft Word 11">
+<link rel=File-List href="03_files/filelist.xml">
+<link rel=Edit-Time-Data href="03_files/editdata.mso">
+<!--[if !mso]>
+<style>
+v\:* {behavior:url(#default#VML);}
+o\:* {behavior:url(#default#VML);}
+w\:* {behavior:url(#default#VML);}
+.shape {behavior:url(#default#VML);}
+</style>
+<![endif]-->
+<title>Getting Started</title>
+<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
+ name="PlaceName"/>
+<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
+ name="PlaceType"/>
+<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
+ name="place"/>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>Abdullah Sowayan</o:Author>
+ <o:LastAuthor>Abdullah Sowayan</o:LastAuthor>
+ <o:Revision>11</o:Revision>
+ <o:TotalTime>51</o:TotalTime>
+ <o:Created>2006-10-09T22:26:00Z</o:Created>
+ <o:LastSaved>2006-11-06T21:25:00Z</o:LastSaved>
+ <o:Pages>1</o:Pages>
+ <o:Words>2514</o:Words>
+ <o:Characters>14330</o:Characters>
+ <o:Company>Maritime Systems &amp; Sensors</o:Company>
+ <o:Lines>119</o:Lines>
+ <o:Paragraphs>33</o:Paragraphs>
+ <o:CharactersWithSpaces>16811</o:CharactersWithSpaces>
+ <o:Version>11.8107</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:SpellingState>Clean</w:SpellingState>
+ <w:GrammarState>Clean</w:GrammarState>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ </w:WordDocument>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
+ </w:LatentStyles>
+</xml><![endif]--><!--[if !mso]><object
+ classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui></object>
+<style>
+st1\:*{behavior:url(#ieooui) }
+</style>
+<![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+ {font-family:Wingdings;
+ panose-1:5 0 0 0 0 0 0 0 0 0;
+ mso-font-charset:2;
+ mso-generic-font-family:auto;
+ mso-font-pitch:variable;
+ mso-font-signature:0 268435456 0 0 -2147483648 0;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+h3
+ {mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ mso-outline-level:3;
+ font-size:13.5pt;
+ font-family:"Times New Roman";
+ font-weight:bold;}
+a:link, span.MsoHyperlink
+ {color:#000FFF;
+ text-decoration:underline;
+ text-underline:single;}
+a:visited, span.MsoHyperlinkFollowed
+ {color:#FF0F0F;
+ text-decoration:underline;
+ text-underline:single;}
+p
+ {mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+address
+ {margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ font-style:italic;}
+code
+ {font-family:"Courier New";
+ mso-ascii-font-family:"Courier New";
+ mso-fareast-font-family:"Times New Roman";
+ mso-hansi-font-family:"Courier New";
+ mso-bidi-font-family:"Courier New";}
+kbd
+ {font-family:"Courier New";
+ mso-ascii-font-family:"Courier New";
+ mso-fareast-font-family:"Times New Roman";
+ mso-hansi-font-family:"Courier New";
+ mso-bidi-font-family:"Courier New";}
+pre
+ {margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
+ font-size:10.0pt;
+ font-family:"Courier New";
+ mso-fareast-font-family:"Times New Roman";}
+span.SpellE
+ {mso-style-name:"";
+ mso-spl-e:yes;}
+span.GramE
+ {mso-style-name:"";
+ mso-gram-e:yes;}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.25in 1.0in 1.25in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+ /* List Definitions */
+ @list l0
+ {mso-list-id:154345203;
+ mso-list-template-ids:-289649766;}
+@list l0:level1
+ {mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1
+ {mso-list-id:201526982;
+ mso-list-template-ids:-336678638;}
+@list l1:level1
+ {mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level2
+ {mso-level-number-format:bullet;
+ mso-level-text:o;
+ mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:"Courier New";
+ mso-bidi-font-family:"Times New Roman";}
+@list l1:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2
+ {mso-list-id:521090106;
+ mso-list-template-ids:-1911898580;}
+@list l2:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0B7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Symbol;}
+@list l3
+ {mso-list-id:657850502;
+ mso-list-template-ids:1783002094;}
+@list l3:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0B7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Symbol;}
+@list l4
+ {mso-list-id:777020325;
+ mso-list-template-ids:-483995422;}
+@list l4:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0B7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Symbol;}
+@list l4:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5
+ {mso-list-id:907959882;
+ mso-list-template-ids:323885252;}
+@list l5:level1
+ {mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6
+ {mso-list-id:1065254837;
+ mso-list-template-ids:1089662206;}
+@list l6:level1
+ {mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7
+ {mso-list-id:1084494006;
+ mso-list-template-ids:-1504120978;}
+@list l7:level1
+ {mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8
+ {mso-list-id:1153565371;
+ mso-list-template-ids:-169696680;}
+@list l8:level1
+ {mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l9
+ {mso-list-id:1784838673;
+ mso-list-template-ids:1110625472;}
+@list l9:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0B7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Symbol;}
+@list l10
+ {mso-list-id:1832599161;
+ mso-list-template-ids:-966728002;}
+@list l10:level1
+ {mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level2
+ {mso-level-number-format:bullet;
+ mso-level-text:o;
+ mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:"Courier New";
+ mso-bidi-font-family:"Times New Roman";}
+@list l10:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11
+ {mso-list-id:1956401533;
+ mso-list-template-ids:-909756440;}
+@list l11:level1
+ {mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12
+ {mso-list-id:2012949130;
+ mso-list-type:hybrid;
+ mso-list-template-ids:990837084 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
+@list l12:level1
+ {mso-level-tab-stop:39.0pt;
+ mso-level-number-position:left;
+ margin-left:39.0pt;
+ text-indent:-.25in;}
+@list l12:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level1 lfo5
+ {mso-level-start-at:4;}
+@list l1:level2 lfo7
+ {mso-level-number-format:arabic;
+ mso-level-numbering:continue;
+ mso-level-text:"%2\.";
+ mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ margin-left:0in;
+ text-indent:0in;
+ mso-ansi-font-size:10.0pt;
+ font-family:"Courier New";
+ mso-bidi-font-family:"Times New Roman";}
+ol
+ {margin-bottom:0in;}
+ul
+ {margin-bottom:0in;}
+-->
+</style>
+<!--[if gte mso 10]>
+<style>
+ /* Style Definitions */
+ table.MsoNormalTable
+ {mso-style-name:"Table Normal";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-noshow:yes;
+ mso-style-parent:"";
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Times New Roman";
+ mso-ansi-language:#0400;
+ mso-fareast-language:#0400;
+ mso-bidi-language:#0400;}
+</style>
+<![endif]--><!-- $Id$ --><!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="4098"/>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+ <o:idmap v:ext="edit" data="1"/>
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body bgcolor=white lang=EN-US link="#000FFF" vlink="#FF0F0F" style='tab-interval:
+.5in'>
+
+<div class=Section1>
+
+<h3 align=center style='text-align:center'><span style='color:black'>Step 3:
+Package your components<o:p></o:p></span></h3>
+
+<h3 align=center style='text-align:center'><span style='color:black'><img
+width=572 height=358 id="_x0000_i1025" src="images/Step3.JPG"><o:p></o:p></span></h3>
+
+<p class=MsoNormal><b><span style='color:red'><o:p>&nbsp;</o:p></span></b></p>
+
+<p class=MsoNormal><b>Brief Introduction to <span class=SpellE>CosMIC</span>:<o:p></o:p></b></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'>The
+Component Synthesis using Model Integrated Computing (<span class=SpellE>CoSMIC</span>)
+project is a MDA toolset being developed by the Institute for Software
+Integrated Systems (ISIS) at <st1:place w:st="on"><st1:PlaceName w:st="on">Vanderbilt</st1:PlaceName>
+ <st1:PlaceType w:st="on">University</st1:PlaceType></st1:place> to:</p>
+
+<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;mso-list:l12 level1 lfo1;
+tab-stops:list 39.0pt;mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span
+style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]><i>Model and</i> <i>analyze </i>distributed real-time
+and embedded application functionality and <span class=SpellE>QoS</span>
+requirements.</p>
+
+<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;mso-list:l12 level1 lfo1;
+tab-stops:list 39.0pt;mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span
+style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]><i>Synthesize</i> CCM-specific deployment metadata
+required to deliver end-to-end <span class=SpellE>QoS</span> to DRE
+applications.</p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><o:p>&nbsp;</o:p></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'>The <span
+class=SpellE>CoSMIC</span> <span class=SpellE>toolsuite</span> provides
+modeling of DRE systems, their <span class=SpellE>QoS</span> requirements, and <span
+class=SpellE>QoS</span> adaptation policies used for DRE application <span
+class=SpellE>QoS</span> management. The component behavior, their interactions,
+and <span class=SpellE>QoS</span> requirements are modeled using a domain
+specific modeling language that adheres to <span style='color:black'>the <a
+href="http://www.omg.org/cgi-bin/doc?ptc/2003-07-08">OMG Deployment &amp;
+Configuration (D&amp;C) specification (ptc/2003-07-08)</a></span>. <span
+class=SpellE>CoSMIC</span> enables modeling the standards-based CCM components.
+</p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><o:p>&nbsp;</o:p></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'>Hand-writing
+the required XML descriptors to configure our components is tedious and error
+prone. We therefore utilize <span class=SpellE>CosMIC</span> (we specifically
+use a subset of <span class=SpellE>CosMIC</span> called PICML, which stands for
+Platform-Independent Component Modeling Language) to generate the bulk of
+descriptors for us.</p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><o:p>&nbsp;</o:p></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'>For
+more information on <span class=SpellE>CosMIC</span>, please refer to the
+following article:</p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+style='mso-bidi-font-weight:bold'><a
+href="http://www.cs.wustl.edu/~schmidt/PDF/mamad2003.pdf"><span class=SpellE>CoSMIC</span>:
+An MDA Generative Tool for Distributed Real-time and Embedded Applications</a>.<o:p></o:p></span></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+style='mso-bidi-font-weight:bold'><o:p>&nbsp;</o:p></span></p>
+
+<div class=MsoNormal align=center style='text-align:center'><span
+style='color:black'>
+
+<hr size=2 width="100%" align=center>
+
+</span></div>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+style='mso-bidi-font-weight:bold'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal><b><span style='color:black'>Importing IDL to PICML</span></b><span
+style='color:black'><br>
+<br>
+&nbsp;&nbsp; To quick start our Stock <span class=SpellE>Quoter</span> modeling
+process in GME, <span class=SpellE>CoSMIC</span> introduces <span class=SpellE><em>idl_to_<span
+class=GramE>picml</span></em></span><span class=GramE> ,</span> which is an
+executable program that imports the IDL files you just created into PICML.<o:p></o:p></span></p>
+
+<ol start=1 type=1>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l5 level1 lfo2;tab-stops:list .5in'>Make sure <code><span
+ style='font-size:10.0pt'>%COSMIC_ROOT%\bin</span></code> is included in
+ the PATH variable, e.g., c:\Program Files\ISIS\<span class=SpellE>CoSMIC</span>\bin.<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l5 level1 lfo2;tab-stops:list .5in'>Open a command prompt,
+ run VCVARS32.BAT from the MSVC .NET folder if you haven't done so. It will
+ set the environment for using Microsoft Visual Studio .NET tools so that <span
+ class=SpellE><i>idl_to_picml</i></span> works properly.<br>
+ in my machine, VCVARS32.bat is in C:\Program Files\Microsoft Visual Studio
+ .NET 2003\Vc7\bin<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l5 level1 lfo2;tab-stops:list .5in'>In the same command
+ prompt, change directory to <span class=SpellE><code><span
+ style='font-size:10.0pt'>MyQuoter</span></code></span><code><span
+ style='font-size:10.0pt'>\</span></code>, and type the following command:<br>
+ &nbsp;&nbsp; &gt; <span class=SpellE><kbd><span style='font-size:10.0pt'>idl_to_picml</span></kbd></span><kbd><span
+ style='font-size:10.0pt'> -x <span class=SpellE>MyQuoter</span> -r . -I .\<span
+ class=SpellE>Stock_Base</span></span></kbd><br>
+ &nbsp;&nbsp; (if the above command does not work, you may also try this<br>
+ &nbsp;&nbsp; &gt;<span class=SpellE><kbd><span style='font-size:10.0pt'>idl_to_picml</span></kbd></span><kbd><span
+ style='font-size:10.0pt'> -x <span class=SpellE>MyQuoter</span> -r
+ .&nbsp;-I .\<span class=SpellE>Stock_Base</span> -I %TAO_ROOT% -I
+ %TAO_ROOT%\<span class=SpellE>orbsvcs</span> -I %CIAO_ROOT%\ciao)</span></kbd><br>
+ &nbsp; <span class=SpellE><em>idl_to_picml</em></span> will parse your IDL
+ files and generated a <span class=SpellE><code><span style='font-size:
+ 10.0pt'>MyQuoter.xme</span></code></span> file in the <span class=SpellE><code><span
+ style='font-size:10.0pt'>MyQuoter</span></code></span> directory. Note
+ that if -x option is not used, the default <span class=SpellE>xme</span>
+ file name will be <span class=SpellE><code><span style='font-size:10.0pt'>PICML_default_xme_file.xme</span></code></span><code><span
+ style='font-size:10.0pt'>.</span></code><br>
+ 4. Start GME, select <strong>File-&gt;Import xml..</strong>, and choose
+ the <span class=SpellE>xme</span> file just generated. You should be able
+ to see an imported PICML model similar to the one shown in Figure 2.<o:p></o:p></li>
+</ol>
+
+<p class=MsoNormal><span style='color:black'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal align=center style='text-align:center'><span
+style='color:black'><img border=0 width=781 height=636 id="_x0000_i1026"
+src="Images/fig2.jpg"><br>
+<br>
+Figure 2<o:p></o:p></span></p>
+
+<p><span style='color:black'>&nbsp; In the Browser of the generated model, the <span
+class=SpellE><em>PredefinedTypes</em></span> folder contains a bunch of atomic <span
+class=SpellE>datatype</span> elements that will be referenced by other modeling
+parts later. You don't have to worry about them for now. The models in <span
+class=SpellE><em>InterfaceDefinitions</em></span> folder are the PICML
+representations <span class=SpellE>ofthe</span> IDL files you just imported.
+Double-click to open <em>Broker</em>, it will show you a white, document-like
+entity which represents a &lt;&lt;<span class=SpellE>FileRef</span>&gt;&gt;
+instance and a yellow box-shaped entity representing a &lt;&lt;Package&gt;&gt;
+instance. Their equivalent representations in IDL files are
+&quot;#include&quot; and &quot;module&quot; respectively. Figure 3 gives you a
+clear view of GME representation of all the 3 <span class=SpellE>idl</span>
+files created. We will cover the other folders in the next section.<o:p></o:p></span></p>
+
+<p class=MsoNormal align=center style='margin-bottom:12.0pt;text-align:center'><span
+style='color:black'><img border=0 width=223 height=336 id="_x0000_i1027"
+src="Images/fig3.jpg"><br>
+<br>
+Figure 3<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-bottom:12.0pt'><span style='color:black'>Now
+we are ready to model the rest of the Stock <span class=SpellE>Quoter</span>
+systems.<br>
+<br style='mso-special-character:line-break'>
+<![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'>
+<![endif]><o:p></o:p></span></p>
+
+<div class=MsoNormal align=center style='text-align:center'><span
+style='color:black'>
+
+<hr size=2 width="100%" align=center>
+
+</span></div>
+
+<h3>Building Stock <span class=SpellE>Quoter</span> system in PICML<span
+style='color:black'><o:p></o:p></span></h3>
+
+<p><span style='color:black'>This section describes modeling the <span
+class=SpellE>Quoter</span> application using PICML. If you have trouble
+producing a functioning model from this tutorial, please see the, <a
+href="Model/Quoter.xme">pre-built <span class=SpellE>Quoter</span> model</a>
+which is provided for your reference. This model contains all elements created
+as part of this tutorial.<o:p></o:p></span></p>
+
+<div>
+
+<p class=MsoNormal><strong><span style='color:black'>Note:</span></strong><span
+style='color:black'> To import an XML file in GME, select <em>File-&gt;Import
+XML..</em> from GME and choose your XML model<o:p></o:p></span></p>
+
+</div>
+
+<p><span style='color:black'>The PICML paradigm is designed for the <a
+href="http://www.omg.org/cgi-bin/doc?ptc/2003-07-08">OMG Deployment &amp;
+Configuration (D&amp;C) specification (ptc/2003-07-08)</a>, so the modeling
+process is straightforward if you are familiar with the specification. Please
+see the <a href="../../releasenotes/dance.html"><span class=SpellE>DAnCE</span>
+project</a> for more information.&nbsp;For those who hate specification
+(including me, :-)), an <a
+href="http://www.cs.wustl.edu/%7Eschmidt/PDF/DAnCE.pdf">overview of D&amp;C</a>
+and as well as a <a
+href="http://www.cs.wustl.edu/%7Eschmidt/OMG-CCM-Tutorial.ppt">tutorial of
+D&amp;C and CCM</a> can help to reduce the learning curve. (Thanks to Sowayan, <span
+class=SpellE>Abdulah</span> for pointing this out). In addition, it is also
+helpful to read through Chapter 32 of <span class=SpellE>TAO's</span>
+Developer's Guide 1.4a (CIAO and CCM) which thoroughly describes the various
+descriptors required for a component (*.<span class=SpellE>iad</span>, *.<span
+class=SpellE>ccd</span>, *.cid, etc). <o:p></o:p></span></p>
+
+<h3><span style='color:black'>Table of Contents<o:p></o:p></span></h3>
+
+<ul type=disc>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l4 level1 lfo3;tab-stops:list .5in'><a href="#1"><span
+ class=SpellE>ImplementationArtifacts</span></a><o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l4 level1 lfo3;tab-stops:list .5in'><a href="#2"><span
+ class=SpellE>ComponentImplementations</span></a><o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l4 level1 lfo3;tab-stops:list .5in'><a href="#3"><span
+ class=SpellE>ComponentPackages</span></a><o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l4 level1 lfo3;tab-stops:list .5in'><a href="#4"><span
+ class=SpellE>PackageConfiguration</span></a><o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l4 level1 lfo3;tab-stops:list .5in'><a href="#5"><span
+ class=SpellE>TopLevelPackage</span></a><o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l4 level1 lfo3;tab-stops:list .5in'><a href="#6">Targets</a><o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l4 level1 lfo3;tab-stops:list .5in'><a href="#7"><span
+ class=SpellE>DeploymentPlan</span></a><o:p></o:p></li>
+</ul>
+
+<div class=MsoNormal align=center style='text-align:center'><span
+style='color:black'>
+
+<hr size=2 width="100%" align=center>
+
+</span></div>
+
+<p><span style='color:black'>The complete PICML <span class=SpellE>Quoter</span>
+model consists of modeling elements distributed across various folders. If you
+used <span class=SpellE><em>idl_to_picml</em></span> to generate the initial
+model, you will see that it has created all these folders and some of the
+tedious boilerplate modeling for us. The rest of the section will explain the purpose
+of each folder as well as the modeling entities contained in these folders. We
+will also show how to model some of the folders that have to be done by hand.<o:p></o:p></span></p>
+
+<p><b><span style='font-variant:small-caps;color:red;background:silver;
+mso-highlight:silver'>Important:</span></b><span style='color:black;background:
+silver;mso-highlight:silver'> The interpreters that generate deployment
+artifacts expect very strict constraints in the model. When you finish your
+model, and any time you wish to generate anything, it is a good idea to check
+constraints by clicking on <em>File-&gt;Check-&gt;Check All</em> in GME. This
+will help you find many logic errors in your model.</span><span
+style='color:black'><o:p></o:p></span></p>
+
+<h3><span class=SpellE><span style='color:black'>ImplementationArtifacts</span></span><span
+style='color:black'><o:p></o:p></span></h3>
+
+<p><span style='color:black'>This folder contains implementation artifacts
+associated with components. <span class=SpellE><em>idl_to_picml</em></span> has
+created these artifacts for us, with their dependency relationships correctly
+captured. Figure 4 shows the Implementation Artifacts for <em>Broker</em>.<o:p></o:p></span></p>
+
+<p class=MsoNormal align=center style='margin-bottom:12.0pt;text-align:center'><span
+style='color:black'><img border=0 width=891 height=552 id="_x0000_i1030"
+src="Images/fig4.jpg"><br>
+<span class=GramE>Figure 4.</span><o:p></o:p></span></p>
+
+<div class=MsoNormal align=center style='text-align:center'><a name=1></a><span
+style='color:black'>
+
+<hr size=2 width="100%" align=center>
+
+</span></div>
+
+<h3><span class=SpellE><span style='color:black'>ComponentImplementation</span></span><a
+name=2></a><span style='color:black'><o:p></o:p></span></h3>
+
+<p><span style='color:black'>This folder contains models that describe the
+implementations of component interfaces. In the <span class=SpellE>Quoter</span>
+example, we will have two monolithic component implementations - named <span
+class=SpellE><em>StockDistributorImplementation</em></span> and <span
+class=SpellE><em>StockBrokerImplementation</em></span> - and an assembly
+component implementation named <span class=SpellE><em>StockQuoter</em></span>,
+which is an assembly of <span class=SpellE><em>StockDistributorImplementation</em></span>
+and <span class=SpellE><em>StockBrokerImplementaion</em></span>. <span
+class=SpellE><em>idl_to_picml</em></span> has created the monolithic component
+implementations for us, as shown in figure 5 for example, but we have to
+specify the connections between them in order to construct a <span
+class=SpellE>Quoter</span> system.<o:p></o:p></span></p>
+
+<p class=MsoNormal align=center style='text-align:center'><span
+style='color:black'><img border=0 width=922 height=639 id="_x0000_i1032"
+src="Images/fig5.jpg"><br>
+Figure 5<o:p></o:p></span></p>
+
+<p><span style='color:black'>Assembly components provide a boundary for the
+composition of monolithic components and even other assemblies. Assembly
+components do not provide actual implementations for their interface, it is a
+virtual component that delegates its ports and attributes to one or more of the
+entities it contains. There are slight differences between modeling an assembly
+and modeling a monolithic component. Since the assembly is a virtual component,
+it is not necessary to model a </span><span class=SpellE><code><span
+style='font-size:10.0pt;color:black'>MonolithicImplementation</span></code></span><span
+style='color:black'>. Instead, <em>instances</em> of other components are
+placed within the assembly and connected. Let's try to assemble the <span
+class=SpellE><em>StockQuoter</em></span>.<o:p></o:p></span></p>
+
+<ol start=1 type=1>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l0 level1 lfo4;tab-stops:list .5in'>Right click the <span
+ class=SpellE><em>ComponentImplementations</em></span> folder, choose <strong>Insert
+ Model-&gt;<span class=SpellE>ComponentImplementationContainer</span></strong>,
+ rename it as &quot;<span class=SpellE>StockQuoterImplementation</span>&quot;
+ in the Attribute Panel. Double click to open it.<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l0 level1 lfo4;tab-stops:list .5in'>From the Part Browser,
+ drag a &lt;&lt;<span class=SpellE>ComponentAssembly</span>&gt;&gt; to the
+ modeling window, name it &quot;<span class=SpellE>StockQuoter</span>&quot;.
+ Double click to open it.<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l0 level1 lfo4;tab-stops:list .5in'>Now we will create two
+ instances for interfaces <span class=SpellE><em>StockBroker</em></span>
+ and <span class=SpellE><em>StockDistributor</em></span>. To do that,
+ expand the folder <span class=SpellE><em><span style='font-size:10.0pt;
+ font-family:"Courier New"'>InterfaceDefinitions</span></em></span>, then
+ expand the <span class=SpellE><em><span style='font-size:10.0pt;
+ font-family:"Courier New"'>InterfaceDefinitions</span></em></span><em><span
+ style='font-size:10.0pt;font-family:"Courier New"'>/</span></em> <em>Broker</em>,
+ then <span class=SpellE><em><span style='font-size:10.0pt;font-family:
+ "Courier New"'>InterfaceDefinitions</span></em></span><em><span
+ style='font-size:10.0pt;font-family:"Courier New"'>/</span></em> <em>Broker/
+ Stock</em> until the interface definition of <span class=SpellE><em>StockBroker</em></span>
+ shows. While expanding the tree, always keep the &quot;<span class=SpellE>StockQuoter</span>&quot;
+ &lt;&lt;<span class=SpellE>ComponentAssembly</span>&gt;&gt; window open.
+ Then drag <span class=SpellE><code><span style='font-size:10.0pt'>MyQuoter/InterfaceDefinitions/Broker/Stock/StockBroker</span></code></span>
+ in the browser to the &quot;<span class=SpellE>StockQuoter</span>&quot;
+ &lt;&lt;<span class=SpellE>ComponentAssembly</span>&gt;&gt; window while
+ pressing ALT key. Repeat the same steps for <code><span style='font-size:
+ 10.0pt'>MyQuoter/InterfaceDefinitions/Distributor/Stock/StockDistributor</span></code>,
+ and you will see two instances of component interfaces have been created
+ as shown in Figure 6 (the black line in the figure only indicates
+ .mapping)<o:p></o:p></li>
+</ol>
+
+<p class=MsoNormal><span style='color:black'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal align=center style='text-align:center'><span
+style='color:black'><img border=0 width=972 height=714 id="_x0000_i1046"
+src="Images/fig6.jpg"><br>
+<br>
+Figure 6<o:p></o:p></span></p>
+
+<ol start=4 type=1>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l11 level1 lfo5;tab-stops:list .5in'>Create an &lt;&lt;<span
+ class=SpellE>PublishConnector</span>&gt;&gt;.<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l11 level1 lfo5;tab-stops:list .5in'>Now assemble the
+ components together according to <a href="Images/fig1.jpg">Figure 1</a>(make
+ sure you change to connect <span class=GramE>mode </span><img border=0
+ width=32 height=32 id="_x0000_i1047" src="Icons/AddConnMode.gif">) and the
+ resulting assembly model should look like Figure 7. Note that to create
+ connections between <span class=SpellE>StockDistributor.notify_out</span>
+ and <span class=SpellE>StockBroker.notify_in</span>, you will need the
+ intermediate connector &lt;&lt;<span class=SpellE>PublishConnector</span>&gt;&gt;.<o:p></o:p></li>
+</ol>
+
+<p class=MsoNormal align=center style='text-align:center'><span
+style='color:black'><img border=0 width=724 height=402 id="_x0000_i1048"
+src="Images/fig7.jpg"><!-- hhmts end -->&gt;<br>
+<br>
+Figure 7<o:p></o:p></span></p>
+
+<div class=MsoNormal align=center style='text-align:center'><span
+style='color:black'>
+
+<hr size=2 width="100%" align=center>
+
+</span></div>
+
+<h3><a name=3></a><span class=SpellE><span style='color:black'>ComponentPackage</span></span><span
+style='color:black'><o:p></o:p></span></h3>
+
+<p class=MsoNormal><span style='color:black'>This folder contains deployable
+component packages. Every instance in an assembly should have a corresponding monolithic
+implementation and packaged in a <span class=SpellE>ComponentPackagebe</span>
+To create a package for <span class=SpellE><em>StockBroker</em>.instance</span><o:p></o:p></span></p>
+
+<ol start=1 type=1>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l1 level1 lfo6;tab-stops:list .5in'>Right click folder <span
+ class=SpellE><em>ComponentPackage</em>s</span> , insert a &lt;&lt;<span
+ class=SpellE>PackageContainer</span>&gt;&gt;, name it &quot;Broker&quot;;
+ Double click to open it.<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l1 level1 lfo6;tab-stops:list .5in'>From the <span
+ class=SpellE>PartBrowser</span>, add the following:<o:p></o:p></li>
+ <ul type=circle>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l1 level2 lfo6;tab-stops:list 1.0in'>a &lt;&lt;<span
+ class=SpellE>ComponentPackage</span>&gt;&gt; named &quot;Broker&quot;;<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l1 level2 lfo6;tab-stops:list 1.0in'>a &lt;&lt;<span
+ class=SpellE>ComponentImplementationReference</span>&gt;&gt; named
+ &quot;Broker&quot;;<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l1 level2 lfo6;tab-stops:list 1.0in'>a &lt;&lt;<span
+ class=SpellE>ComponentRef</span>&gt;&gt; named &quot;Broker&quot;;<o:p></o:p></li>
+ </ul>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l1 level1 lfo6;tab-stops:list .5in'>Refer the &lt;&lt;<span
+ class=SpellE>ComponentImplementationReference</span>&gt;&gt; <em>Broker</em>
+ to <code><span style='font-size:10.0pt'>MyQuoter/ComponentImplementations/StockBroker</span></code>Implementation/StockBrokerMonolithicImpl.
+ Refer the &lt;&lt;<span class=SpellE>ComponentRef</span>&gt;&gt; <em>Broker</em>
+ to <span class=SpellE><code><span style='font-size:10.0pt'>MyQuoter/InterfaceDefinitions/Broker/Stock/StockBroker</span></code></span>.
+ To create a reference in GME, simply drag the tree node in the Browser
+ &quot;into&quot; the reference model. For example, you should drag the
+ tree node <code><span style='font-size:10.0pt'>MyQuoter/ComponentImplementations/StockBroker</span></code>Implementation/StockBrokerMonolithicImpl
+ into &lt;&lt;<span class=SpellE>ComponentImplementationReference</span>&gt;&gt;
+ <em>Broker.</em> Check GME manual(tutorials) for more information.<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l1 level1 lfo6;tab-stops:list .5in'>Switch to Connect Mode
+ and create two connections according to the following relationship.<o:p></o:p></li>
+ <ul type=circle>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l1 level2 lfo6;tab-stops:list 1.0in'>&lt;&lt;<span
+ class=SpellE>ComponentImplementationReference</span>&gt;&gt; <em>Broker</em>
+ implements &lt;&lt;<span class=SpellE>ComponentPackage</span>&gt;&gt; <em>Broker</em>;<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l1 level2 lfo6;tab-stops:list 1.0in'>&lt;&lt;<span
+ class=SpellE>ComponentPackage</span>&gt;&gt; <em>Broker</em> realizes
+ &lt;&lt;<span class=SpellE>ComponentRef</span>&gt;&gt; <em>Broker</em>.<o:p></o:p></li>
+ </ul>
+</ol>
+
+<p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt;
+margin-left:.5in'><span style='color:black'><br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp; The model you built should resemble Figure 8.<o:p></o:p></span></p>
+
+<p class=MsoNormal align=center style='mso-margin-top-alt:auto;margin-bottom:
+12.0pt;margin-left:.5in;text-align:center'><span style='color:black'><img
+border=0 width=675 height=497 id="_x0000_i1034" src="Images/fig8.jpg"><!-- hhmts start -->&gt;<br>
+<br>
+Figure 8<o:p></o:p></span></p>
+
+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+margin-left:.5in'><span style='color:black'>Now create a <span class=SpellE>ComponentPackage/StockDistributor</span>
+following the same steps. <o:p></o:p></span></p>
+
+<ol start=5 type=1>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l1 level1 lfo6;tab-stops:list .5in;list-style-position:outside'><br>
+ We will also need to create a package for the assembly component <span
+ class=SpellE>StockQuoter</span>. Remember assembly component is a virtual
+ component, it does not &quot;realize&quot; a certain interface, so
+ different from the Broker and Distributor packages, the <span
+ class=SpellE>StockQuoter</span> does not need a &lt;&lt;<span
+ class=SpellE>ComponentRef</span>&gt;&gt;. To create this model: <o:p></o:p></li>
+</ol>
+
+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+margin-left:.5in;text-indent:-.25in;mso-list:l1 level2 lfo7'><![if !supportLists]><span
+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:"Courier New";
+mso-fareast-font-family:"Courier New";color:black'><span style='mso-list:Ignore'>1.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span></span><![endif]><span
+style='color:black'>Insert a &lt;&lt;<span class=SpellE>ComponentPackage</span>&gt;&gt;
+named &quot;<span class=SpellE>StockQuoter</span>&quot;<o:p></o:p></span></p>
+
+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+margin-left:1.0in;text-indent:-.25in;mso-list:l1 level2 lfo7'><![if !supportLists]><span
+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:"Courier New";
+mso-fareast-font-family:"Courier New";color:black'><span style='mso-list:Ignore'>2.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span></span><![endif]><span
+style='color:black'>Add a &lt;&lt;<span class=SpellE>ComponentImplementationReference</span>&gt;&gt;
+named &quot;<span class=SpellE>StockQuoter</span>&quot;, refer it to <span
+class=SpellE>MyQuoter<code><span style='font-size:10.0pt'>/ComponentImplementations/StockQuoter/StockQuoter</span></code></span><o:p></o:p></span></p>
+
+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+margin-left:1.0in;text-indent:-.25in;mso-list:l1 level2 lfo7'><![if !supportLists]><span
+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:"Courier New";
+mso-fareast-font-family:"Courier New";color:black'><span style='mso-list:Ignore'>3.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span></span><![endif]><span
+style='color:black'>Switch to connect mode and connect &lt;&lt;<span
+class=SpellE>ComponentImplementationReference</span>&gt;&gt; <span
+class=SpellE>StockQuoter</span> with &lt;&lt;<span class=SpellE>ComponentPackage</span>&gt;&gt;
+<span class=SpellE>StockQuoter</span>, as in Figure 9.<o:p></o:p></span></p>
+
+<p class=MsoNormal align=center style='margin-bottom:12.0pt;text-align:center'><span
+style='color:black'><img border=0 width=549 height=354 id="_x0000_i1035"
+src="Images/fig9.jpg"><!-- Created: Sat Nov 27 15:25:06 CST 1999 --><!-- hhmts start -->&gt;<br>
+<br>
+Figure 9<o:p></o:p></span></p>
+
+<div class=MsoNormal align=center style='text-align:center'><span
+style='color:black'>
+
+<hr size=2 width="100%" align=center>
+
+</span></div>
+
+<h3><a name=4></a><span class=SpellE><span style='color:black'>PackageConfiguration</span></span><span
+style='color:black'><o:p></o:p></span></h3>
+
+<p class=MsoNormal><span style='color:black'>This folder contains just one
+model capturing specific configuration of Component packages.<o:p></o:p></span></p>
+
+<ol start=1 type=1>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l8 level1 lfo8;tab-stops:list .5in'>In the folder <span
+ class=SpellE><em>PackageConfiguratio</em>n</span>, and create a &lt;&lt;<span
+ class=SpellE>PackageConfigurationContainer</span>&gt;&gt;, name it
+ &quot;Default&quot;, click to open it.<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l8 level1 lfo8;tab-stops:list .5in'>Add a &lt;&lt;<span
+ class=SpellE>PackageConfiguration</span>&gt;&gt; named &quot;default&quot;
+ and a &lt;&lt;<span class=SpellE>ComponentPackageReference</span>&gt;&gt;,
+ name it &quot;<span class=SpellE>StockQuoter</span>&quot;, connect
+ &quot;Default&quot; to &quot;<span class=SpellE>StockQuoter</span>&quot;<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l8 level1 lfo8;tab-stops:list .5in'>Refer &lt;&lt;<span
+ class=SpellE>ComponentPackageReference</span>&gt;&gt; <span class=SpellE>StockQuoter</span>
+ to &lt;&lt;<span class=SpellE>ComponentPackage</span>&gt;&gt; <span
+ class=SpellE><code><span style='font-size:10.0pt'>MyQuoter/ComponentPackage/StockQuoter/StockQuoter</span></code></span><span
+ style='font-size:10.0pt;font-family:"Courier New"'><br>
+ <code>(Not &lt;&lt;<span class=SpellE>ComponentImplementationReference</span>&gt;&gt;</code></span>
+ <span class=SpellE><code><span style='font-size:10.0pt'>MyQuoter/ComponentPackage/StockQuoter/StockQuoter</span></code></span><code><span
+ style='font-size:10.0pt'>!)&nbsp;</span></code><o:p></o:p></li>
+</ol>
+
+<p class=MsoNormal><span style='color:black'><o:p>&nbsp;</o:p></span></p>
+
+<div class=MsoNormal align=center style='text-align:center'><span
+style='color:black'>
+
+<hr size=2 width="100%" align=center>
+
+</span></div>
+
+<h3><a name=5></a><span class=SpellE><span style='color:black'>ToplevelPackage</span></span><span
+style='color:black'><o:p></o:p></span></h3>
+
+<p class=MsoNormal><span style='color:black'>This folder contains one model
+capturing information about the top-level element that will be fed to the
+application.<o:p></o:p></span></p>
+
+<ol start=1 type=1>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l6 level1 lfo9;tab-stops:list .5in'>In the folder <span
+ class=SpellE><em>ToplevelPackage</em></span>, and create a &lt;&lt;<span
+ class=SpellE>ToplevelPackageContainer</span>&gt;&gt;, name it
+ &quot;Default&quot;, double click to open it.<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l6 level1 lfo9;tab-stops:list .5in'>Add a &lt;&lt;<span
+ class=SpellE>ToplevelPackage</span>&gt;&gt; named &quot;<span
+ class=SpellE>ToplevelPackage</span>&quot; and a &lt;&lt;<span
+ class=SpellE>PackageConfigurationReference</span>&gt;&gt;, name it
+ &quot;Default&quot;, connect &quot;<span class=SpellE>ToplevelPackage</span>&quot;
+ to &quot;Default&quot;<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l6 level1 lfo9;tab-stops:list .5in'>Refer
+ &quot;Default&quot; to <span class=SpellE>My<code><span style='font-size:
+ 10.0pt'>Quoter/PackageConfiguration/Default/Default</span></code></span><o:p></o:p></li>
+</ol>
+
+<p class=MsoNormal><span style='color:black'><o:p>&nbsp;</o:p></span></p>
+
+<div class=MsoNormal align=center style='text-align:center'><span
+style='color:black'>
+
+<hr size=2 width="100%" align=center>
+
+</span></div>
+
+<h3><a name=6></a><span style='color:black'>Targets<o:p></o:p></span></h3>
+
+<p class=MsoNormal><span style='color:black'>This folder contains
+domain-specific models capturing information about the target environment in
+which component-based application will be deployed. In this <span class=SpellE>Quoter</span>
+example, we can either deploy the two components into ONE host, or into TWO
+different host. We will deploy the <span class=SpellE>Quoter</span> into two
+different host.<o:p></o:p></span></p>
+
+<ol start=1 type=1>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l7 level1 lfo10;tab-stops:list .5in'>In the folder <i>Targets</i>,
+ insert a new &lt;&lt;Domain&gt;&gt; named &quot;Domain&quot;; double click
+ to open it.<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l7 level1 lfo10;tab-stops:list .5in'>From the Part Browser,
+ add two &lt;&lt;Node&gt;&gt; named &quot;Broker&quot; and
+ &quot;Distributor&quot; respectively.<o:p></o:p></li>
+</ol>
+
+<p class=MsoNormal><span style='color:black'><br>
+Now we are ready to deploy our Components to the actual physical environment.<o:p></o:p></span></p>
+
+<div class=MsoNormal align=center style='text-align:center'><span
+style='color:black'>
+
+<hr size=2 width="100%" align=center>
+
+</span></div>
+
+<h3><a name=7></a><span class=SpellE><span style='color:black'>DeploymentPlan</span></span><span
+style='color:black'><o:p></o:p></span></h3>
+
+<p class=MsoNormal><span style='color:black'>This folder contains a plan model that
+captures information about the assignment of component to nodes.<o:p></o:p></span></p>
+
+<ol start=1 type=1>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l10 level1 lfo11;tab-stops:list .5in'>In the folder <span
+ class=SpellE><em>DeploymentPlan</em></span>, insert a model &lt;&lt;<span
+ class=SpellE>DeploymentPlan</span>&gt;&gt;; name it &quot;Plan&quot;,
+ click to open it<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l10 level1 lfo11;tab-stops:list .5in'>From the <span
+ class=SpellE>PartBrowser</span>, add the following:<o:p></o:p></li>
+ <ul type=circle>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l10 level2 lfo11;tab-stops:list 1.0in'>Two &lt;&lt;<span
+ class=SpellE>CollocationGroup</span>&gt;&gt;<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l10 level2 lfo11;tab-stops:list 1.0in'>Two &lt;&lt;<span
+ class=SpellE>NodeReference</span>&gt;&gt; named &quot;<span class=SpellE>Node_Broker</span>&quot;
+ and &quot;<span class=SpellE>Node_Distributor</span>&quot; respectively, <span
+ class=SpellE>refering</span> to <span class=SpellE><code><span
+ style='font-size:10.0pt'>MyQuoter</span></code></span><code><span
+ style='font-size:10.0pt'>/Targets/Domain/Broker</span></code> and <span
+ class=SpellE><code><span style='font-size:10.0pt'>MyQuoter</span></code></span><code><span
+ style='font-size:10.0pt'>/Targets/Domain/Distributor</span></code>
+ respectively<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l10 level2 lfo11;tab-stops:list 1.0in'>Two &lt;&lt;<span
+ class=SpellE>ComponentRef</span>&gt;&gt; named &quot;<span class=SpellE>StockBroker</span>&quot;
+ and &quot;<span class=SpellE>StockDistributor</span>&quot; respectively, <span
+ class=SpellE>refering</span> to <code><span style='font-size:10.0pt'>MyQuoter/ComponentImplementations/StockQuoterImplementation/StockQuoter/StockBroker</span></code>
+ and <code><span style='font-size:10.0pt'>MyQuoter/ComponentImplementations/StockQuoterImplementation/StockQuoter/StockDistributor</span></code>
+ respectively. Note that the &lt;&lt;<span class=SpellE>ComponentRef</span>&gt;&gt;
+ in <span class=SpellE>DeploymentPlan</span> is not referring to the interface,
+ but rather the actual instance of the implementation.<o:p></o:p></li>
+ </ul>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;margin-bottom:
+ 12.0pt;mso-list:l10 level1 lfo11;tab-stops:list .5in'>Switch to Connect
+ Mode, connect one &lt;&lt;<span class=SpellE>CollocationGroup</span>&gt;&gt;
+ to &lt;&lt;<span class=SpellE>NodeReference</span>&gt;&gt; <span
+ class=SpellE><em>Node_Broker</em></span>, connect another &lt;&lt;<span
+ class=SpellE>CollocationGroup</span>&gt;&gt; to &lt;&lt;<span
+ class=SpellE>NodeReference</span>&gt;&gt; <span class=SpellE><em>Node_Distributor</em></span>.
+ Now the model looks like the following.<o:p></o:p></li>
+</ol>
+
+<p class=MsoNormal align=center style='mso-margin-top-alt:auto;margin-bottom:
+12.0pt;margin-left:.5in;text-align:center'><span style='color:black'><img
+border=0 width=752 height=530 id="_x0000_i1040" src="Images/fig10.jpg"><br>
+<br>
+<span class=GramE>Figure 10.</span><o:p></o:p></span></p>
+
+<ol start=4 type=1>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;margin-bottom:
+ 12.0pt;mso-list:l10 level1 lfo11;tab-stops:list .5in'>Now we need to
+ associate &lt;&lt;<span class=SpellE>ComponentRef</span>&gt;&gt; <span
+ class=SpellE>StockBroker</span> to the &lt;&lt;<span class=SpellE>CollocationGroup</span>&gt;&gt;
+ running on the &lt;&lt;<span class=SpellE>NodeReference</span>&gt;&gt;
+ Broker, and &lt;&lt;<span class=SpellE>ComponentRef</span>&gt;&gt; <span
+ class=SpellE>StockDistributor</span> to the &lt;&lt;<span class=SpellE>CollocationGroup</span>&gt;&gt;
+ running on the &lt;&lt;<span class=SpellE>NodeReference</span>&gt;&gt;
+ Distributor. To do that, switch the Edit Mode Bar to Set Mode (<img
+ border=0 width=32 height=32 id="_x0000_i1041" src="Icons/SetMode.gif">),
+ and move the cursor to the &lt;&lt;<span class=SpellE>CollocationGroup</span>&gt;&gt;
+ running on &lt;&lt;<span class=SpellE>NodeReference</span>&gt;&gt;
+ Distributor, right-click on it. You will find the cursor is changed to set
+ mode cursor, and only the &lt;&lt;<span class=SpellE>CollocationGroup</span>&gt;&gt;
+ you clicked in is highlighted, as shown in Figure 11.<o:p></o:p></li>
+</ol>
+
+<p class=MsoNormal align=center style='margin-bottom:12.0pt;text-align:center'><span
+style='color:black'><img border=0 width=672 height=505 id="_x0000_i1042"
+src="Images/fig11.jpg"><!-- 01.html,v 1.3 2006/02/10 14:34:35 mxiong Exp -->&gt;<br>
+<br>
+Figure 11<o:p></o:p></span></p>
+
+<p><span style='color:black'>Now move your cursor to &lt;&lt;<span
+class=SpellE>ComponentRef</span>&gt;&gt;&nbsp; <span class=SpellE>StockDistributor</span>,
+and left-click it, so that it looks like Figure 12.<o:p></o:p></span></p>
+
+<p class=MsoNormal align=center style='margin-bottom:12.0pt;text-align:center'><span
+style='color:black'><img border=0 width=672 height=505 id="_x0000_i1043"
+src="Images/fig12.jpg">
+
+<!doctype HTML>
+
+&gt;<br>
+<br>
+Figure 12<o:p></o:p></span></p>
+
+<p style='margin-bottom:12.0pt'><span style='color:black'>This operation
+associates <span class=SpellE><em>StockDistributor</em></span> component to the
+&lt;&lt;<span class=SpellE>CollocationGroup</span>&gt;&gt; running on <em>Distributor</em>
+node. To do the same with Broker, just right-click on another &lt;&lt;<span
+class=SpellE>CollocationGroup</span>&gt;&gt;, and left-click on <span
+class=SpellE>StockBroker</span> &lt;&lt;<span class=SpellE>CollocationGroup</span>&gt;&gt;
+which is highlighted.<o:p></o:p></span></p>
+
+<div class=MsoNormal align=center style='text-align:center'><span
+style='color:black'>
+
+<hr size=2 width="100%" align=center>
+
+</span></div>
+
+<p><a name=8></a><span style='color:black'>Up to this point, we are basically
+done with the modeling part. Before we generate anything from this model
+though, please <b>DO</b> remember to check the constraints of the model as we
+mentioned earlier.<o:p></o:p></span></p>
+
+<p><span style='color:black'>After we are done with the modeling, the <span
+class=SpellE>flattened_deploymentplan</span> interpreter that comes along with
+PICML will help us to generate a <span class=SpellE>flattened_deploymentplan.cdp</span>
+file. Please make sure you generate this file to <span class=SpellE>MyQuoter</span>/descriptors.
+Note that to get the example <span class=SpellE>working<span style='font-family:
+"Courier New"'>,</span>a</span> Node Map file should be created to map <span
+class=SpellE>logicalnodes</span> to <span class=SpellE>NodeManager</span>
+object <span class=SpellE>references,e.g</span>:<o:p></o:p></span></p>
+
+<pre wrap=""><span class=SpellE><span style='color:black'>DistributorNode</span></span><span
+style='color:black'> corbaloc<span class=GramE>:iiop:localhost:30000</span>/NodeManager<o:p></o:p></span></pre><pre><span
+class=SpellE><span style='color:black'>BrokerNode</span></span><span
+style='color:black'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>corbaloc<span
+class=GramE>:iiop:localhost:40000</span>/NodeManager<o:p></o:p></span></pre><pre><span
+style='color:black'><o:p>&nbsp;</o:p></span></pre><pre><span style='color:black'><o:p>&nbsp;</o:p></span></pre>
+
+<address style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
+style='color:black'><a href="mailto:ming.xiong@vanderbilt.edu">Ming Xiong<br>
+</a></span><a href="mailto:abdullah.sowayan@lmco.com">Abdullah Sowayan</a></address>
+
+<address style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
+style='color:black'><o:p>&nbsp;</o:p></span></address>
+
+<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
+style='color:black'><!-- Created: Sat Nov 27 15:25:06 CST 1999 --><!-- hhmts start -->Last
+modified:<!-- hhmts end --> <o:p></o:p></span></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/04.html b/modules/CIAO/docs/tutorials/Quoter/Simple/04.html
new file mode 100644
index 00000000000..4e259355ba1
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/04.html
@@ -0,0 +1,413 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml"
+xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns:p="urn:schemas-microsoft-com:office:powerpoint"
+xmlns:oa="urn:schemas-microsoft-com:office:activation"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 11">
+<meta name=Originator content="Microsoft Word 11">
+<link rel=File-List href="04_files/filelist.xml">
+<link rel=Edit-Time-Data href="04_files/editdata.mso">
+<!--[if !mso]>
+<style>
+v\:* {behavior:url(#default#VML);}
+o\:* {behavior:url(#default#VML);}
+w\:* {behavior:url(#default#VML);}
+.shape {behavior:url(#default#VML);}
+</style>
+<![endif]-->
+<title>Building a Stock Quoter with TAO - A Tutorial</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>Abdullah Sowayan</o:Author>
+ <o:LastAuthor>Abdullah Sowayan</o:LastAuthor>
+ <o:Revision>3</o:Revision>
+ <o:TotalTime>1</o:TotalTime>
+ <o:Created>2006-11-06T21:26:00Z</o:Created>
+ <o:LastSaved>2006-11-06T21:34:00Z</o:LastSaved>
+ <o:Pages>1</o:Pages>
+ <o:Words>285</o:Words>
+ <o:Characters>1629</o:Characters>
+ <o:Company>Lockheed Martin</o:Company>
+ <o:Lines>13</o:Lines>
+ <o:Paragraphs>3</o:Paragraphs>
+ <o:CharactersWithSpaces>1911</o:CharactersWithSpaces>
+ <o:Version>11.8107</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ </w:WordDocument>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
+ </w:LatentStyles>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+ {font-family:Wingdings;
+ panose-1:5 0 0 0 0 0 0 0 0 0;
+ mso-font-charset:2;
+ mso-generic-font-family:auto;
+ mso-font-pitch:variable;
+ mso-font-signature:0 268435456 0 0 -2147483648 0;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+h3
+ {mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ mso-outline-level:3;
+ font-size:13.5pt;
+ font-family:"Times New Roman";
+ font-weight:bold;}
+a:link, span.MsoHyperlink
+ {color:#000FFF;
+ text-decoration:underline;
+ text-underline:single;}
+a:visited, span.MsoHyperlinkFollowed
+ {color:#FF0F0F;
+ text-decoration:underline;
+ text-underline:single;}
+p
+ {mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+address
+ {margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ font-style:italic;}
+code
+ {font-family:"Courier New";
+ mso-ascii-font-family:"Courier New";
+ mso-fareast-font-family:"Times New Roman";
+ mso-hansi-font-family:"Courier New";
+ mso-bidi-font-family:"Courier New";}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.25in 1.0in 1.25in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+ /* List Definitions */
+ @list l0
+ {mso-list-id:20934335;
+ mso-list-template-ids:-306000872;}
+@list l0:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0B7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Symbol;}
+@list l1
+ {mso-list-id:67775701;
+ mso-list-template-ids:1355323582;}
+@list l1:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0B7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Symbol;}
+@list l1:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2
+ {mso-list-id:170876734;
+ mso-list-template-ids:1310460404;}
+@list l2:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0B7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Symbol;}
+@list l2:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3
+ {mso-list-id:232472744;
+ mso-list-template-ids:1463160066;}
+@list l3:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l4
+ {mso-list-id:333609146;
+ mso-list-template-ids:-1273693138;}
+@list l4:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l4:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5
+ {mso-list-id:1166676480;
+ mso-list-template-ids:-2033257756;}
+@list l5:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0B7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Symbol;}
+ol
+ {margin-bottom:0in;}
+ul
+ {margin-bottom:0in;}
+-->
+</style>
+<!--[if gte mso 10]>
+<style>
+ /* Style Definitions */
+ table.MsoNormalTable
+ {mso-style-name:"Table Normal";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-noshow:yes;
+ mso-style-parent:"";
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Times New Roman";
+ mso-ansi-language:#0400;
+ mso-fareast-language:#0400;
+ mso-bidi-language:#0400;}
+</style>
+<![endif]--><!-- $Id$ --><!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="3074"/>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+ <o:idmap v:ext="edit" data="1"/>
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body bgcolor=white lang=EN-US link="#000FFF" vlink="#FF0F0F" style='tab-interval:
+.5in'>
+
+<div class=Section1>
+
+<h3 align=center style='text-align:center'><span style='color:black'>Step 6: System
+Deployment<o:p></o:p></span></h3>
+
+<h3 align=center style='text-align:center'><span style='color:black'><img
+width=432 height=223 id="_x0000_i1025" src="images/Step6.JPG"><o:p></o:p></span></h3>
+
+<p class=MsoNormal><span style='color:black'>Now that we have all the
+components and driver programs successfully built, along with the
+flattened_deploymentplan generated by PICML, we will be able to run our
+application<br>
+<br>
+From different command prompts in </span><code><span style='font-size:10.0pt;
+color:black'>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/descriptors/</span></code><span
+style='color:black'> directory: <o:p></o:p></span></p>
+
+<ul type=disc>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l2 level1 lfo3;tab-stops:list .5in'>Start NodeManagers
+ (NodeDameon) by running <code><span style='font-size:10.0pt'>runNodeDaemon.pl</span></code><o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l2 level1 lfo3;tab-stops:list .5in'>Start the execution
+ manager <code><span style='font-size:10.0pt'>%CIAO_ROOT%/DAnCE/ExecutionManager/Execution_Manager
+ -o ior -i Stock.dat</span></code>&nbsp;<o:p></o:p></li>
+</ul>
+
+<p><span style='color:black'>The </span><code><span style='font-size:10.0pt;
+color:black'>Stock.dat</span></code><span style='color:black'> file describes
+the deployment daemons CIAO's Execution_Manager will contact to instantiate
+ComponentServer's, home's, and component instances. Each line specify the name
+of a installation &quot;destination&quot; and the corresponding IOR for the
+CIAO_Daemon.<o:p></o:p></span></p>
+
+<ul type=square>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l4 level1 lfo6;tab-stops:list .5in'><em>NOTE</em>: As one
+ can see, we use the &quot;Stock.dat&quot; file to instruct the
+ Execution_Manager how to find the endpoint of each individual NodeManager
+ (i.e., Node Daemon) where component(s) will be deployed, so this is
+ non-standard. We plan to use Naming Service to do this in the future.<o:p></o:p></li>
+</ul>
+
+<ul type=disc>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l1 level1 lfo9;tab-stops:list .5in'>Start the plan_launcher
+ by running <code><span style='font-size:10.0pt'>%CIAO_ROOT%/DAnCE/Plan_Launcher/Plan_Launcher
+ -p flattened_deploymentplan.cdp -k file://ior</span></code><o:p></o:p></li>
+ <li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:
+ auto;mso-list:l1 level1 lfo9;tab-stops:list .5in'>By now the components
+ should be successfully deployed. You may run the driver program to start
+ the application. e.g. you can try the following<o:p></o:p></li>
+</ul>
+
+<p class=MsoNormal style='margin-bottom:12.0pt'><span style='color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><code><span style='font-size:10.0pt;color:black'>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/Distributor/Distributor.exe
+-o</span></code><span style='color:black'><br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><code><span style='font-size:
+10.0pt;color:black'>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/Broker/Broker.exe
+-s MSFT</span></code><span style='color:black'><br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><code><span style='font-size:
+10.0pt;color:black'>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/Broker/Broker.exe
+-s IBM</span></code><span style='color:black'><br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><code><span style='font-size:
+10.0pt;color:black'>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/Broker/Broker.exe
+-u MSFT</span></code><span style='color:black'><br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><code><span style='font-size:
+10.0pt;color:black'>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/Distributor/Distributor.exe
+&#8211;f</span></code><code><span style='font-size:10.0pt'><o:p></o:p></span></code></p>
+
+<p class=MsoNormal style='margin-bottom:12.0pt'><code><span style='font-size:
+10.0pt;color:black'><o:p>&nbsp;</o:p></span></code></p>
+
+<address style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
+style='color:black'><a href="mailto:ming.xiong@vanderbilt.edu">Ming Xiong<br>
+</a></span><a href="mailto:abdullah.sowayan@lmco.com">Abdullah Sowayan</a></address>
+
+<address style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
+style='color:black'><o:p>&nbsp;</o:p></span></address>
+
+<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
+style='color:black'><!-- Created: Sat Nov 27 15:25:06 CST 1999 --><!-- hhmts start -->Last
+modified:<!-- hhmts end --> <o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-bottom:12.0pt'><span style='color:black'><o:p>&nbsp;</o:p></span></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker.cidl b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker.cidl
new file mode 100644
index 00000000000..a6d9bb29214
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker.cidl
@@ -0,0 +1,22 @@
+//$Id$
+
+//Stock.cidl,v 1.0
+/**
+ * @file Stock.cidl
+ *
+ * @author ming xiong <xiongm@isis.vanderbilt.edu>
+ */
+
+#ifndef STOCK_CIDL
+#define STOCK_CIDL
+
+#include "Broker.idl"
+
+composition session StockBroker_Impl {
+ home executor StockBrokerHome_Exec {
+ implements Stock::StockBrokerHome;
+ manages StockBroker_Exec;
+ };
+};
+
+#endif /* STOCK_CIDL */
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker.cpp b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker.cpp
new file mode 100644
index 00000000000..fc059cc0d74
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker.cpp
@@ -0,0 +1,110 @@
+//$Id$
+/*
+ * @file Broker.cpp
+ *
+ * @author Ming Xiong <mxiong@dre.vanderbilt.edu>
+ */
+
+#include "BrokerC.h"
+#include "ace/streams.h"
+#include "ace/Get_Opt.h"
+
+const char *broker_ior = "file://Broker.ior";
+const char *subscribe_name = 0;
+const char *unsubscribe_name = 0;
+
+
+int
+parse_args (int argc, char *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "k:s:u:");
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ {
+ switch (c)
+ {
+ case 'k':
+ broker_ior = get_opts.opt_arg ();
+ break;
+
+ case 's':
+ subscribe_name = get_opts.opt_arg ();
+ break;
+
+ case 'u':
+ unsubscribe_name = get_opts.opt_arg ();
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s\n"
+ "-k <Broker IOR> (default is file:\\broker.ior) \n"
+ "-s <stock name you wish to subscribe>\n"
+ "-u <stock name you wish to unsubscribe>\n"
+ "\n",
+ argv [0]),
+ -1);
+ }
+ }
+
+ return 0;
+}
+
+int main (int argc, char* argv[])
+{
+ try
+ {
+ // initialize the ORB
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv,"");
+
+
+ if (parse_args (argc, argv) != 0)
+ return -1;
+
+ // create the factory object reference of StockBrokerHome
+ CORBA::Object_var broker_obj =
+ orb->string_to_object (broker_ior);
+
+ // downcast the object reference to the appropriate type
+ Stock::StockBroker_var broker =
+ Stock::StockBroker::_narrow (broker_obj.in ());
+
+ if (CORBA::is_nil (broker.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to acquire 'Broker' objref\n"),
+ -1);
+ }
+
+
+ if (subscribe_name != 0)
+ {
+ broker->stock_subscribe (subscribe_name);
+
+ ACE_DEBUG ((LM_DEBUG, "Subscribe successful!\n"));
+ }
+
+ if (unsubscribe_name != 0)
+ {
+ broker->stock_unsubscribe (unsubscribe_name);
+
+ ACE_DEBUG ((LM_DEBUG, "Unsubscribe successful!\n"));
+ }
+
+ // Finally destroy the ORB
+ orb->destroy ();
+
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Who is the culprit \n");
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Uncaught CORBA exception\n"),
+ 1);
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker.idl b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker.idl
new file mode 100644
index 00000000000..dbe9a04364a
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker.idl
@@ -0,0 +1,35 @@
+//$Id$
+
+#include "../Stock_Base/Stock_Base.idl"
+
+module Stock
+{
+ interface StockSubscriber {
+ /// subscribe to an interested stock
+ void stock_subscribe (in string stock_name)
+ raises (Invalid_Stock);
+ /// unsubscribe to an stock
+ void stock_unsubscribe (in string stock_name)
+ raises (Invalid_Stock);
+ };
+
+ /**
+ * @class StockBroker
+ *
+ * @brief component
+ */
+ component StockBroker supports StockSubscriber
+ {
+ consumes StockName notify_in;
+ uses StockQuoter read_quoter;
+ };
+
+ /**
+ * @class StockBrokerHome
+ *
+ * @brief home for StockBroker component
+ */
+ home StockBrokerHome manages StockBroker
+ {
+ };
+};
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker.mpc b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker.mpc
new file mode 100644
index 00000000000..627feb516a9
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker.mpc
@@ -0,0 +1,84 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Stock_Base Broker"
+
+project(Stock_Base_Broker_stub): ciao_client_dnc {
+ avoids += ace_for_tao
+ after += Stock_Base_stub
+ sharedname = Broker_stub
+ idlflags -= -GT
+ idlflags += -St \
+ -Wb,stub_export_macro=BROKER_STUB_Export \
+ -Wb,stub_export_include=Broker_stub_export.h \
+ -Wb,skel_export_macro=BROKER_SVNT_Export \
+ -Wb,skel_export_include=Broker_svnt_export.h
+ dynamicflags = BROKER_STUB_BUILD_DLL
+ libs += Stock_Base_stub
+
+ IDL_Files {
+ Broker.idl
+ }
+
+ Source_Files {
+ BrokerC.cpp
+ }
+}
+
+project(Stock_Base_Broker_svnt) : ciao_servant_dnc {
+ avoids += ace_for_tao
+ after += Stock_Base_skel Stock_Base_Broker_stub
+ sharedname = Broker_svnt
+ libs += Broker_stub Stock_Base_stub Stock_Base_skel
+
+ idlflags -= -GT
+ idlflags += -SS -St \
+ -Wb,export_macro=BROKER_SVNT_Export \
+ -Wb,export_include=Broker_svnt_export.h
+ dynamicflags = BROKER_SVNT_BUILD_DLL
+
+ CIDL_Files {
+ Broker.cidl
+ }
+
+ IDL_Files {
+ BrokerE.idl
+ }
+
+ Source_Files {
+ BrokerEC.cpp
+ BrokerS.cpp
+ Broker_svnt.cpp
+ }
+}
+
+
+project(Stock_Base_Broker_exec) : ciao_component_dnc {
+ avoids += ace_for_tao
+ after += Stock_Base_Broker_svnt
+ sharedname = Broker_exec
+ libs += Broker_stub Broker_svnt Stock_Base_stub Stock_Base_skel
+
+ dynamicflags = BROKER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Broker_exec.cpp
+ }
+}
+
+
+project (Stock_Broker) : ciao_client_dnc, valuetype{
+ avoids += ace_for_tao
+ exename = Broker
+ after += Stock_Base_Broker_stub
+ libs += Broker_stub Stock_Base_stub
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Broker.cpp
+ }
+}
+
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_exec.cpp b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_exec.cpp
new file mode 100644
index 00000000000..4e85274ce8c
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_exec.cpp
@@ -0,0 +1,200 @@
+//$Id$
+/*
+ * @file Broker_exec.cpp
+ *
+ * @author Ming Xiong <mxiong@dre.vanderbilt.edu>
+ */
+
+#include "Broker_exec.h"
+#include "ciao/CIAO_common.h"
+
+
+namespace CIDL_StockBroker_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: StockBroker_exec_i
+ //==================================================================
+
+ StockBroker_exec_i::StockBroker_exec_i (void)
+ {
+ }
+
+ StockBroker_exec_i::~StockBroker_exec_i (void)
+ {
+ }
+
+
+ // Supported or inherited operations.
+
+ void
+ StockBroker_exec_i::stock_subscribe (
+ const char * stock_name)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Stock::Invalid_Stock))
+ {
+ if ((strcmp (stock_name, "MSFT") == 0) || (strcmp (stock_name, "IBM") == 0))
+ {
+ std::set<std::string>::iterator iter = this->subscribed_stock_list_.find (stock_name);
+ if (iter == this->subscribed_stock_list_.end ())
+ {
+ this->subscribed_stock_list_.insert (stock_name);
+ }
+ }
+ else
+ {
+ throw Stock::Invalid_Stock ();
+ }
+ }
+
+ void
+ StockBroker_exec_i::stock_unsubscribe (
+ const char * stock_name)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Stock::Invalid_Stock))
+ {
+ if ((strcmp (stock_name, "MSFT") == 0) || (strcmp (stock_name, "IBM") == 0))
+ {
+ std::set<std::string>::iterator iter = this->subscribed_stock_list_.find (stock_name);
+ if (iter != this->subscribed_stock_list_.end ())
+ {
+ this->subscribed_stock_list_.erase (iter);
+ }
+ }
+ else
+ {
+ throw Stock::Invalid_Stock ();
+ }
+
+ }
+
+
+ void
+ StockBroker_exec_i::push_notify_in (
+ Stock::StockName *ev)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+ {
+
+ ACE_DEBUG ((LM_INFO,
+ "Broker - Got message from Distributor\n"));
+
+ CORBA::String_var stock_name = CORBA::string_dup (ev->name ());
+
+ // Retrieve stock information if the stock name is in the subscribed_stock_list
+ if (this->subscribed_stock_list_.find (stock_name.in ()) != this->subscribed_stock_list_.end ())
+ {
+ Stock::StockQuoter_var quoter_obj = this->context_->get_connection_read_quoter ();
+
+ if (CORBA::is_nil (quoter_obj.in ()))
+ {
+ throw CORBA::BAD_PARAM ();
+ }
+
+ Stock::StockInfo_var info = quoter_obj->get_stock_info (stock_name.in ());
+
+ ACE_DEBUG ((LM_DEBUG, "Quoter - Current value of %s is %d\n",
+ stock_name.in (),
+ info->last));
+ }
+ }
+
+ // Operations from Components::SessionComponent
+
+ void
+ StockBroker_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException))
+ {
+ this->context_ = StockBroker_Context::_narrow (ctx);
+
+ if (0 == this->context_)
+ {
+ throw CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ StockBroker_exec_i::ciao_preactivate ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException))
+ {
+ }
+
+ void
+ StockBroker_exec_i::ciao_postactivate ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException))
+ {
+ }
+
+ void
+ StockBroker_exec_i::ccm_activate ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException))
+ {
+ }
+
+ void
+ StockBroker_exec_i::ccm_passivate ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException))
+ {
+ }
+
+ void
+ StockBroker_exec_i::ccm_remove ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException))
+ {
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: StockBrokerHome_exec_i
+ //==================================================================
+
+ StockBrokerHome_exec_i::StockBrokerHome_exec_i (void)
+ {
+ }
+
+ StockBrokerHome_exec_i::~StockBrokerHome_exec_i (void)
+ {
+ }
+
+ ::Components::EnterpriseComponent_ptr
+ StockBrokerHome_exec_i::create ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException))
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ StockBroker_exec_i,
+ CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" BROKER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ createStockBrokerHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ StockBrokerHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_exec.h b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_exec.h
new file mode 100644
index 00000000000..020acf28a12
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_exec.h
@@ -0,0 +1,141 @@
+//$Id$
+/*
+ * @file Broker_exec.h
+ *
+ * @author Ming Xiong <mxiong@dre.vanderbilt.edu>
+ */
+
+
+#ifndef CIAO_BROKER_EXEC_H
+#define CIAO_BROKER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "Broker_svnt.h"
+#include "BrokerEC.h"
+#include "Broker_exec_export.h"
+
+#include <set>
+#include <string>
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/LocalObject.h"
+
+namespace CIDL_StockBroker_Impl
+{
+
+ /**
+ * @class StockBroker_exec_i
+ *
+ * @brief Executor implementation
+ *
+ * This class implements Stock::StockBroker component
+ */
+ class BROKER_EXEC_Export StockBroker_exec_i
+ : public virtual StockBroker_Exec,
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ StockBroker_exec_i (void);
+ virtual ~StockBroker_exec_i (void);
+
+
+ // Supported or inherited operations.
+
+ virtual void
+ stock_subscribe (
+ const char * stock_name)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Stock::Invalid_Stock));
+
+ virtual void
+ stock_unsubscribe (
+ const char * stock_name)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Stock::Invalid_Stock));
+
+ virtual void
+ push_notify_in (
+ ::Stock::StockName *ev)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException));
+
+ virtual void
+ ciao_preactivate ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException));
+
+ virtual void
+ ciao_postactivate ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException));
+
+ virtual void
+ ccm_activate ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException));
+
+ virtual void
+ ccm_passivate ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException));
+
+ virtual void
+ ccm_remove ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException));
+
+ protected:
+ StockBroker_Context *context_;
+
+ private:
+ std::set<std::string> subscribed_stock_list_;
+ };
+
+
+ /**
+ * @class StockBrokerHome_exec_i
+ *
+ * @brief Executor implementation
+ *
+ * This class implements Stock::StockBrokerHome component
+ */
+ class BROKER_EXEC_Export StockBrokerHome_exec_i
+ : public virtual StockBrokerHome_Exec,
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ StockBrokerHome_exec_i (void);
+ virtual ~StockBrokerHome_exec_i (void);
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException));
+ };
+
+ extern "C" BROKER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ createStockBrokerHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_BROKER_EXEC_H */
+
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_exec_export.h b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_exec_export.h
new file mode 100644
index 00000000000..cb7229d833e
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_exec_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl BROKER_EXEC
+// ------------------------------
+#ifndef BROKER_EXEC_EXPORT_H
+#define BROKER_EXEC_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (BROKER_EXEC_HAS_DLL)
+# define BROKER_EXEC_HAS_DLL 1
+#endif /* ! BROKER_EXEC_HAS_DLL */
+
+#if defined (BROKER_EXEC_HAS_DLL) && (BROKER_EXEC_HAS_DLL == 1)
+# if defined (BROKER_EXEC_BUILD_DLL)
+# define BROKER_EXEC_Export ACE_Proper_Export_Flag
+# define BROKER_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define BROKER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* BROKER_EXEC_BUILD_DLL */
+# define BROKER_EXEC_Export ACE_Proper_Import_Flag
+# define BROKER_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define BROKER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* BROKER_EXEC_BUILD_DLL */
+#else /* BROKER_EXEC_HAS_DLL == 1 */
+# define BROKER_EXEC_Export
+# define BROKER_EXEC_SINGLETON_DECLARATION(T)
+# define BROKER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* BROKER_EXEC_HAS_DLL == 1 */
+
+// Set BROKER_EXEC_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (BROKER_EXEC_NTRACE)
+# if (ACE_NTRACE == 1)
+# define BROKER_EXEC_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define BROKER_EXEC_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !BROKER_EXEC_NTRACE */
+
+#if (BROKER_EXEC_NTRACE == 1)
+# define BROKER_EXEC_TRACE(X)
+#else /* (BROKER_EXEC_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define BROKER_EXEC_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (BROKER_EXEC_NTRACE == 1) */
+
+#endif /* BROKER_EXEC_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_stub_export.h b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_stub_export.h
new file mode 100644
index 00000000000..1d7c2c5fc2b
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_stub_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl BROKER_STUB
+// ------------------------------
+#ifndef BROKER_STUB_EXPORT_H
+#define BROKER_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (BROKER_STUB_HAS_DLL)
+# define BROKER_STUB_HAS_DLL 1
+#endif /* ! BROKER_STUB_HAS_DLL */
+
+#if defined (BROKER_STUB_HAS_DLL) && (BROKER_STUB_HAS_DLL == 1)
+# if defined (BROKER_STUB_BUILD_DLL)
+# define BROKER_STUB_Export ACE_Proper_Export_Flag
+# define BROKER_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define BROKER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* BROKER_STUB_BUILD_DLL */
+# define BROKER_STUB_Export ACE_Proper_Import_Flag
+# define BROKER_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define BROKER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* BROKER_STUB_BUILD_DLL */
+#else /* BROKER_STUB_HAS_DLL == 1 */
+# define BROKER_STUB_Export
+# define BROKER_STUB_SINGLETON_DECLARATION(T)
+# define BROKER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* BROKER_STUB_HAS_DLL == 1 */
+
+// Set BROKER_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (BROKER_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define BROKER_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define BROKER_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !BROKER_STUB_NTRACE */
+
+#if (BROKER_STUB_NTRACE == 1)
+# define BROKER_STUB_TRACE(X)
+#else /* (BROKER_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define BROKER_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (BROKER_STUB_NTRACE == 1) */
+
+#endif /* BROKER_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_svnt_export.h b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_svnt_export.h
new file mode 100644
index 00000000000..18f606e5539
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_svnt_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl BROKER_SVNT
+// ------------------------------
+#ifndef BROKER_SVNT_EXPORT_H
+#define BROKER_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (BROKER_SVNT_HAS_DLL)
+# define BROKER_SVNT_HAS_DLL 1
+#endif /* ! BROKER_SVNT_HAS_DLL */
+
+#if defined (BROKER_SVNT_HAS_DLL) && (BROKER_SVNT_HAS_DLL == 1)
+# if defined (BROKER_SVNT_BUILD_DLL)
+# define BROKER_SVNT_Export ACE_Proper_Export_Flag
+# define BROKER_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define BROKER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* BROKER_SVNT_BUILD_DLL */
+# define BROKER_SVNT_Export ACE_Proper_Import_Flag
+# define BROKER_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define BROKER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* BROKER_SVNT_BUILD_DLL */
+#else /* BROKER_SVNT_HAS_DLL == 1 */
+# define BROKER_SVNT_Export
+# define BROKER_SVNT_SINGLETON_DECLARATION(T)
+# define BROKER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* BROKER_SVNT_HAS_DLL == 1 */
+
+// Set BROKER_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (BROKER_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define BROKER_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define BROKER_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !BROKER_SVNT_NTRACE */
+
+#if (BROKER_SVNT_NTRACE == 1)
+# define BROKER_SVNT_TRACE(X)
+#else /* (BROKER_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define BROKER_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (BROKER_SVNT_NTRACE == 1) */
+
+#endif /* BROKER_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor.cidl b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor.cidl
new file mode 100644
index 00000000000..53268e84569
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor.cidl
@@ -0,0 +1,21 @@
+//$Id$
+//Distributor.cidl,v 1.0
+/**
+ * @file Distributor.cidl
+ *
+ * @author ming xiong <xiongm@isis.vanderbilt.edu>
+ */
+
+#ifndef DISTRIBUTOR_CIDL
+#define DISTRIBUTOR_CIDL
+
+#include "Distributor.idl"
+
+composition session StockDistributor_Impl {
+ home executor StockDistributorHome_Exec {
+ implements Stock::StockDistributorHome;
+ manages StockDistributor_Exec;
+ };
+};
+
+#endif /* DISTRIBUTOR_CIDL */
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor.cpp b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor.cpp
new file mode 100644
index 00000000000..d99fde85c7c
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor.cpp
@@ -0,0 +1,115 @@
+//$Id$
+/*
+ * @file Distributor.cpp
+ *
+ * @author Ming Xiong <mxiong@dre.vanderbilt.edu>
+ */
+
+
+#include "DistributorC.h"
+#include "ace/streams.h"
+#include "ace/Get_Opt.h"
+
+const char *distributor_ior = "file://Distributor.ior";
+int rate = 2;
+int turn_on = 1;
+
+int
+parse_args (int argc, char *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "k:r:of");
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ {
+ switch (c)
+ {
+ case 'k':
+ distributor_ior = get_opts.opt_arg ();
+ break;
+
+ case 'o':
+ turn_on = 1;
+ break;
+
+ case 'f':
+ turn_on = 0;
+ break;
+
+ case 'r':
+ rate = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s\n"
+ "-o (Start the distribution service)\n"
+ "-f (Stop the distribution service)\n"
+ "-k <Distributor IOR> (default is file:\\distributor.ior) \n"
+ "-r <broadcast frequency in Hertz> (default is 2)\n"
+ "\n",
+ argv [0]),
+ -1);
+ }
+ }
+
+ return 0;
+}
+
+
+int main (int argc, char* argv[])
+{
+ try
+ {
+ // initialize the ORB
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv,"");
+
+ if (parse_args (argc, argv) != 0)
+ {
+ return -1;
+ }
+
+ // create the factory object reference,
+ CORBA::Object_var distributor_obj =
+ orb->string_to_object (distributor_ior);
+
+ // downcast the object reference to the appropriate type
+ Stock::StockDistributor_var distributor =
+ Stock::StockDistributor::_narrow (distributor_obj.in ());
+
+ if (CORBA::is_nil (distributor.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to acquire 'Distributor' objref\n"),
+ -1);
+ }
+
+ if (turn_on)
+ {
+ distributor->rate (rate);
+
+ ACE_DEBUG ((LM_DEBUG, "Start up the Distribution service\n"));
+
+ distributor->start ();
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG, "Stop the Distribution service\n"));
+
+ distributor->stop ();
+ }
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Who is the culprit \n");
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Uncaught CORBA exception\n"),
+ 1);
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor.idl b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor.idl
new file mode 100644
index 00000000000..393f0fa94c1
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor.idl
@@ -0,0 +1,42 @@
+//$Id$
+
+#include "../Stock_Base/Stock_Base.idl"
+
+module Stock
+{
+ /**
+ * @class Trigger
+ *
+ * @brief supported interface
+ */
+ interface Trigger {
+ /// Start the real-time monitoring service
+ void start ();
+ /// Stop the real-time monitoring service
+ void stop ();
+ };
+
+
+ /**
+ * @class StockDistributor
+ *
+ * @brief component
+ */
+ component StockDistributor supports Trigger
+ {
+ publishes StockName notify_out;
+ provides StockQuoter push_quoter;
+ attribute long rate;
+ };
+
+
+ /**
+ * @class StockDistributorHome
+ *
+ * @brief home for StockDistributor component
+ */
+ home StockDistributorHome manages StockDistributor
+ {
+ };
+
+};
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor.mpc b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor.mpc
new file mode 100644
index 00000000000..aad6ad54195
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor.mpc
@@ -0,0 +1,88 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Stock_Base Distributor"
+
+project(Stock_Base_Distributor_stub): ciao_client_dnc {
+ avoids += ace_for_tao
+ after += Stock_Base_stub
+ sharedname = Distributor_stub
+ idlflags -= -GT
+ idlflags += -St \
+ -Wb,stub_export_macro=DISTRIBUTOR_STUB_Export \
+ -Wb,stub_export_include=Distributor_stub_export.h \
+ -Wb,skel_export_macro=DISTRIBUTOR_SVNT_Export \
+ -Wb,skel_export_include=Distributor_svnt_export.h
+ dynamicflags = DISTRIBUTOR_STUB_BUILD_DLL
+
+ libs += Stock_Base_stub
+
+ IDL_Files {
+ Distributor.idl
+ }
+
+ Source_Files {
+ DistributorC.cpp
+ }
+}
+
+project(Stock_Base_Distributor_svnt) : ciao_servant_dnc {
+ avoids += ace_for_tao
+ after += Stock_Base_skel Stock_Base_Distributor_stub
+ sharedname = Distributor_svnt
+ libs += Distributor_stub Stock_Base_stub Stock_Base_skel
+
+ idlflags -= -GT
+ idlflags += -SS -St \
+ -Wb,export_macro=DISTRIBUTOR_SVNT_Export \
+ -Wb,export_include=Distributor_svnt_export.h
+ dynamicflags = DISTRIBUTOR_SVNT_BUILD_DLL
+
+ CIDL_Files {
+ Distributor.cidl
+ }
+
+ IDL_Files {
+ DistributorE.idl
+ }
+
+ Source_Files {
+ DistributorEC.cpp
+ DistributorS.cpp
+ Distributor_svnt.cpp
+ }
+}
+
+
+project(Stock_Base_Distributor_exec) : ciao_component_dnc {
+ avoids += ace_for_tao
+ after += Stock_Base_Distributor_svnt
+ sharedname = Distributor_exec
+ libs += Distributor_stub \
+ Distributor_svnt \
+ Stock_Base_stub \
+ Stock_Base_skel
+
+ dynamicflags = DISTRIBUTOR_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Distributor_exec.cpp
+ }
+}
+
+
+project (Stock_Distributor) : ciao_client_dnc, valuetype{
+ avoids += ace_for_tao
+ exename = Distributor
+ after += Stock_Base_Distributor_stub
+ libs += Distributor_stub Stock_Base_stub
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Distributor.cpp
+ }
+}
+
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_exec.cpp b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_exec.cpp
new file mode 100644
index 00000000000..1eaafa0027d
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_exec.cpp
@@ -0,0 +1,358 @@
+//$Id$
+/*
+ * @file Distributor_exec.cpp
+ *
+ * @author Ming Xiong <mxiong@dre.vanderbilt.edu>
+ */
+
+#include "Distributor_exec.h"
+#include "ciao/CIAO_common.h"
+#include "ace/Reactor.h"
+
+
+namespace CIDL_StockDistributor_Impl
+{
+
+ // initialze the stock values
+ CORBA::Long
+ StockDistributor_exec_i::ibm_ = 100;
+
+ CORBA::Long
+ StockDistributor_exec_i::msft_ = 101;
+
+ //==================================================================
+ // C L A S S: pulse_Generator
+ //==================================================================
+
+ pulse_Generator::pulse_Generator (StockDistributor_exec_i *callback)
+ : active_ (0),
+ pulse_callback_ (callback)
+ {
+ // initialize the reactor
+ this->reactor (ACE_Reactor::instance ());
+ }
+
+ pulse_Generator::~pulse_Generator ()
+ {
+ }
+
+ int
+ pulse_Generator::open_h ()
+ {
+ // convert the task into a active object that runs in separate thread
+ return this->activate ();
+ }
+
+ int
+ pulse_Generator::close_h ()
+ {
+ this->reactor ()->end_reactor_event_loop ();
+
+ // wait for all threads in the task to exit before it returns
+ return this->wait ();
+ }
+
+ int
+ pulse_Generator::start (CORBA::Long hertz)
+ {
+ // return if not valid
+ if (hertz == 0 || this->active_ != 0)
+ {
+ return -1;
+ }
+
+ // calculate the interval time
+ long usec = 1000000 / hertz;
+
+ if (this->reactor ()->schedule_timer (this,
+ 0,
+ ACE_Time_Value (0, usec),
+ ACE_Time_Value (0, usec)) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to setup Timer\n"),
+ -1);
+
+ }
+
+ this->active_ = 1;
+ return 0;
+ }
+
+ int
+ pulse_Generator::stop (void)
+ {
+ // return if not valid.
+ if (this->active_ == 0)
+ {
+ return -1;
+ }
+ // cancle the timer
+ this->reactor ()->cancel_timer (this);
+ this->active_ = 0;
+ return 0;
+ }
+
+ int
+ pulse_Generator::active (void)
+ {
+ return this->active_;
+ }
+
+ int
+ pulse_Generator::handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask close_mask)
+ {
+ if (CIAO::debug_level () > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("[%x] handle = %d, close_mask = %d\n"),
+ this,
+ handle,
+ close_mask));
+ }
+ return 0;
+ }
+
+ int
+ pulse_Generator::handle_timeout (const ACE_Time_Value &,
+ const void *)
+ {
+ // Notify the subscribers
+ this->pulse_callback_->push_notify_out ();
+ return 0;
+ }
+
+ int
+ pulse_Generator::svc (void)
+ {
+ // define the owner of the reactor thread
+ this->reactor ()->owner (ACE_OS::thr_self ());
+
+ // run event loop to wait for event, and then dispatch them to corresponding handlers
+ this->reactor ()->run_reactor_event_loop ();
+
+ return 0;
+ }
+
+
+
+ //==================================================================
+ // Facet Executor Implementation Class: StockQuoter_exec_i
+ //==================================================================
+
+ ::Stock::StockInfo *
+ StockQuoter_exec_i::get_stock_info (const char *stock_name)
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Stock::Invalid_Stock))
+ {
+ if (strcmp (stock_name, "MSFT") == 0)
+ {
+ Stock::StockInfo_var info = new Stock::StockInfo;
+ info->name = CORBA::string_dup ("MSFT");
+ info->high = 10000;
+ info->low = 0;
+ info->last = this->distributor_.msft_; // retrieve the current stock value
+ return info._retn ();
+ }
+ else if (strcmp (stock_name, "IBM") == 0)
+ {
+ Stock::StockInfo_var info = new Stock::StockInfo;
+ info->name = CORBA::string_dup ("IBM");
+ info->high = 10000;
+ info->low = 0;
+ info->last = this->distributor_.ibm_; // retrieve the current stock value
+ return info._retn ();
+ }
+ else
+ {
+ ACE_THROW_RETURN (Stock::Invalid_Stock (), 0);
+ }
+ }
+
+ //==================================================================
+ // Component Executor Implementation Class: StockDistributor_exec_i
+ //==================================================================
+
+ StockDistributor_exec_i::StockDistributor_exec_i (void)
+ : rate_ (0), pulser_ (this)
+ {
+ }
+
+ StockDistributor_exec_i::~StockDistributor_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ void
+ StockDistributor_exec_i::start ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+ {
+ if (this->rate_ == 0 || this->pulser_.active())
+ {
+ throw CORBA::BAD_PARAM ();
+ }
+
+ this->pulser_.start (this->rate_);
+ }
+
+ void
+ StockDistributor_exec_i::stop ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+ {
+ if (! this->pulser_.active ())
+ {
+ throw CORBA::BAD_INV_ORDER ();
+ }
+
+ this->pulser_.stop ();
+ }
+
+ // Attribute operations.
+
+ ::CORBA::Long
+ StockDistributor_exec_i::rate ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+ {
+ return this->rate_;
+ }
+
+ void
+ StockDistributor_exec_i::rate (
+ ::CORBA::Long rate)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+ {
+ this->rate_ = rate;
+ }
+
+ // Port operations.
+
+ ::Stock::CCM_StockQuoter_ptr
+ StockDistributor_exec_i::get_push_quoter ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+ {
+ return new StockQuoter_exec_i (*this);
+ }
+
+ void
+ StockDistributor_exec_i::push_notify_out ()
+ ACE_THROW_SPEC ((CORBA::SystemException))
+ {
+ this->msft_++;
+ this->ibm_++;
+
+ Stock::StockName_var ev_msft = new OBV_Stock::StockName;
+ ev_msft->name (CORBA::string_dup ("MSFT"));
+ this->context_->push_notify_out (ev_msft.in ());
+
+ Stock::StockName_var ev_ibm = new OBV_Stock::StockName;
+ ev_ibm->name (CORBA::string_dup ("IBM"));
+ this->context_->push_notify_out (ev_ibm.in ());
+ }
+
+ // Operations from Components::SessionComponent
+
+ void
+ StockDistributor_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException))
+ {
+ this->context_ = StockDistributor_Context::_narrow (ctx);
+
+ if (this->context_ == 0)
+ {
+ throw CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ StockDistributor_exec_i::ciao_preactivate ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException))
+ {
+ }
+
+ void
+ StockDistributor_exec_i::ciao_postactivate ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException))
+ {
+ }
+
+ void
+ StockDistributor_exec_i::ccm_activate ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException))
+ {
+ // Start the active object
+ this->pulser_.open_h ();
+ }
+
+ void
+ StockDistributor_exec_i::ccm_passivate ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException))
+ {
+ // Deactivate the active object
+ this->pulser_.close_h ();
+ }
+
+ void
+ StockDistributor_exec_i::ccm_remove ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException))
+ {
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: StockDistributorHome_exec_i
+ //==================================================================
+
+ StockDistributorHome_exec_i::StockDistributorHome_exec_i (void)
+ {
+ }
+
+ StockDistributorHome_exec_i::~StockDistributorHome_exec_i (void)
+ {
+ }
+
+ ::Components::EnterpriseComponent_ptr
+ StockDistributorHome_exec_i::create ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException))
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ StockDistributor_exec_i,
+ CORBA::NO_MEMORY ());
+ return retval;
+ }
+
+ extern "C" DISTRIBUTOR_EXEC_Export ::Components::HomeExecutorBase_ptr
+ createStockDistributorHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ StockDistributorHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_exec.h b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_exec.h
new file mode 100644
index 00000000000..b890eb0365f
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_exec.h
@@ -0,0 +1,258 @@
+//$Id$
+/*
+ * @file Distributor_exec.h
+ *
+ * @author Ming Xiong <mxiong@dre.vanderbilt.edu>
+ */
+
+
+
+#ifndef CIAO_DISTRIBUTOR_EXEC_H
+#define CIAO_DISTRIBUTOR_EXEC_H
+
+#include /**/ "ace/pre.h"
+#include "ace/Thread_Manager.h"
+#include "ace/Task.h"
+
+
+#include "Distributor_svnt.h"
+#include "DistributorEC.h"
+#include "Distributor_exec_export.h"
+
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/LocalObject.h"
+
+namespace CIDL_StockDistributor_Impl
+{
+ class StockDistributor_exec_i;
+
+ /**
+ * @class StockQuoter_exec_i
+ *
+ * @brief Executor implementation
+ *
+ * This class implements Stock::StockQuoter interface. We use this interface
+ * to acquire the information of the stock
+ */
+ class DISTRIBUTOR_EXEC_Export StockQuoter_exec_i
+ : public virtual ::Stock::CCM_StockQuoter,
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ StockQuoter_exec_i (StockDistributor_exec_i &distributor)
+ :distributor_ (distributor)
+ {
+ }
+
+ // Operations from ::Stock::StockQuoter
+
+ virtual ::Stock::StockInfo *
+ get_stock_info (
+ const char * stock_name)
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Stock::Invalid_Stock));
+
+ /// User defined
+
+ private:
+ /// Maintains a handle to the distributor so that the quoter can refer to it for latest quote
+ StockDistributor_exec_i &distributor_;
+ };
+
+ class StockDistributor_exec_i;
+
+ /**
+ * @class pulse generator
+ *
+ * @brief an active object used by StockDistributor to perform periodical pulse generation
+ *
+ */
+ class pulse_Generator : public ACE_Task_Base
+ {
+ public:
+ pulse_Generator (StockDistributor_exec_i *callback);
+
+ ~pulse_Generator ();
+
+ /// Hook method that performs application-defined initialization activities
+ int open_h (void);
+
+ /// Hook method that performs application-defined destruction activites
+ int close_h (void);
+
+ /// appliation-defined method for starting the pulse-generation service
+ int start (CORBA::Long hertz);
+
+ /// application-defined method for stopping the pulse-generation service
+ int stop (void);
+
+ /// Indicate whether the current object is active
+ int active (void);
+
+ /// Handle the timeout.
+ virtual int handle_timeout (const ACE_Time_Value &tv,
+ const void *arg);
+
+ /// Called when timer handler is removed.
+ virtual int handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask close_mask);
+
+ /// Hook methods implemnting the task's service processing,
+ /// invoked by all threads activated by activate () method
+ virtual int svc (void);
+
+ private:
+ /// Tracking whether we are actively generating pulse or not.
+ int active_;
+
+ /// Maintains a handle that actually process the event
+ StockDistributor_exec_i *pulse_callback_;
+
+ };
+
+
+ /**
+ * @class StockDistributor_exec_i
+ *
+ * @brief Executor implementation
+ *
+ * This class implements Stock::StockDistributor component
+ */
+ class DISTRIBUTOR_EXEC_Export StockDistributor_exec_i
+ : public virtual StockDistributor_Exec,
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ StockDistributor_exec_i (void);
+ virtual ~StockDistributor_exec_i (void);
+
+ // Supported or inherited operations.
+
+ virtual void
+ start ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual void
+ stop ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ // Attribute operations.
+
+ virtual ::CORBA::Long
+ rate ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual void
+ rate (
+ ::CORBA::Long)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ // Port operations.
+
+ virtual ::Stock::CCM_StockQuoter_ptr
+ get_push_quoter ()
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException));
+
+ virtual void
+ ciao_preactivate ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException));
+
+ virtual void
+ ciao_postactivate ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException));
+
+ virtual void
+ ccm_activate ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException));
+
+ virtual void
+ ccm_passivate ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException));
+
+ virtual void
+ ccm_remove ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException));
+
+ protected:
+ StockDistributor_Context *context_;
+
+ /// User defined members
+ public:
+
+ /// push event to all subscribers
+ void push_notify_out ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException
+ ));
+
+ private:
+ /// pulse generation rate
+ CORBA::Long rate_;
+
+ /// pulser object
+ pulse_Generator pulser_;
+
+ /// "real-time" stock value
+ static CORBA::Long msft_;
+
+ /// "real-tiime" stock value
+ static CORBA::Long ibm_;
+
+ friend class StockQuoter_exec_i;
+ };
+
+
+ /**
+ * @class StockDistributorHome_exec_i
+ *
+ * @brief Executor implementation
+ *
+ * This class implements Stock::StockDistributorHome
+ */
+ class DISTRIBUTOR_EXEC_Export StockDistributorHome_exec_i
+ : public virtual StockDistributorHome_Exec,
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ StockDistributorHome_exec_i (void);
+ virtual ~StockDistributorHome_exec_i (void);
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ()
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::CCMException));
+ };
+
+ extern "C" DISTRIBUTOR_EXEC_Export ::Components::HomeExecutorBase_ptr
+ createStockDistributorHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_DISTRIBUTOR_EXEC_H */
+
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_exec_export.h b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_exec_export.h
new file mode 100644
index 00000000000..a3509e015da
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_exec_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl DISTRIBUTOR_EXEC
+// ------------------------------
+#ifndef DISTRIBUTOR_EXEC_EXPORT_H
+#define DISTRIBUTOR_EXEC_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (DISTRIBUTOR_EXEC_HAS_DLL)
+# define DISTRIBUTOR_EXEC_HAS_DLL 1
+#endif /* ! DISTRIBUTOR_EXEC_HAS_DLL */
+
+#if defined (DISTRIBUTOR_EXEC_HAS_DLL) && (DISTRIBUTOR_EXEC_HAS_DLL == 1)
+# if defined (DISTRIBUTOR_EXEC_BUILD_DLL)
+# define DISTRIBUTOR_EXEC_Export ACE_Proper_Export_Flag
+# define DISTRIBUTOR_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DISTRIBUTOR_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DISTRIBUTOR_EXEC_BUILD_DLL */
+# define DISTRIBUTOR_EXEC_Export ACE_Proper_Import_Flag
+# define DISTRIBUTOR_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DISTRIBUTOR_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DISTRIBUTOR_EXEC_BUILD_DLL */
+#else /* DISTRIBUTOR_EXEC_HAS_DLL == 1 */
+# define DISTRIBUTOR_EXEC_Export
+# define DISTRIBUTOR_EXEC_SINGLETON_DECLARATION(T)
+# define DISTRIBUTOR_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DISTRIBUTOR_EXEC_HAS_DLL == 1 */
+
+// Set DISTRIBUTOR_EXEC_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DISTRIBUTOR_EXEC_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DISTRIBUTOR_EXEC_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DISTRIBUTOR_EXEC_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DISTRIBUTOR_EXEC_NTRACE */
+
+#if (DISTRIBUTOR_EXEC_NTRACE == 1)
+# define DISTRIBUTOR_EXEC_TRACE(X)
+#else /* (DISTRIBUTOR_EXEC_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DISTRIBUTOR_EXEC_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DISTRIBUTOR_EXEC_NTRACE == 1) */
+
+#endif /* DISTRIBUTOR_EXEC_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_stub_export.h b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_stub_export.h
new file mode 100644
index 00000000000..1126c5bc355
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_stub_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl DISTRIBUTOR_STUB
+// ------------------------------
+#ifndef DISTRIBUTOR_STUB_EXPORT_H
+#define DISTRIBUTOR_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (DISTRIBUTOR_STUB_HAS_DLL)
+# define DISTRIBUTOR_STUB_HAS_DLL 1
+#endif /* ! DISTRIBUTOR_STUB_HAS_DLL */
+
+#if defined (DISTRIBUTOR_STUB_HAS_DLL) && (DISTRIBUTOR_STUB_HAS_DLL == 1)
+# if defined (DISTRIBUTOR_STUB_BUILD_DLL)
+# define DISTRIBUTOR_STUB_Export ACE_Proper_Export_Flag
+# define DISTRIBUTOR_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DISTRIBUTOR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DISTRIBUTOR_STUB_BUILD_DLL */
+# define DISTRIBUTOR_STUB_Export ACE_Proper_Import_Flag
+# define DISTRIBUTOR_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DISTRIBUTOR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DISTRIBUTOR_STUB_BUILD_DLL */
+#else /* DISTRIBUTOR_STUB_HAS_DLL == 1 */
+# define DISTRIBUTOR_STUB_Export
+# define DISTRIBUTOR_STUB_SINGLETON_DECLARATION(T)
+# define DISTRIBUTOR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DISTRIBUTOR_STUB_HAS_DLL == 1 */
+
+// Set DISTRIBUTOR_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DISTRIBUTOR_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DISTRIBUTOR_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DISTRIBUTOR_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DISTRIBUTOR_STUB_NTRACE */
+
+#if (DISTRIBUTOR_STUB_NTRACE == 1)
+# define DISTRIBUTOR_STUB_TRACE(X)
+#else /* (DISTRIBUTOR_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DISTRIBUTOR_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DISTRIBUTOR_STUB_NTRACE == 1) */
+
+#endif /* DISTRIBUTOR_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_svnt_export.h b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_svnt_export.h
new file mode 100644
index 00000000000..78debd1c32b
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/Distributor_svnt_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl DISTRIBUTOR_SVNT
+// ------------------------------
+#ifndef DISTRIBUTOR_SVNT_EXPORT_H
+#define DISTRIBUTOR_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (DISTRIBUTOR_SVNT_HAS_DLL)
+# define DISTRIBUTOR_SVNT_HAS_DLL 1
+#endif /* ! DISTRIBUTOR_SVNT_HAS_DLL */
+
+#if defined (DISTRIBUTOR_SVNT_HAS_DLL) && (DISTRIBUTOR_SVNT_HAS_DLL == 1)
+# if defined (DISTRIBUTOR_SVNT_BUILD_DLL)
+# define DISTRIBUTOR_SVNT_Export ACE_Proper_Export_Flag
+# define DISTRIBUTOR_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DISTRIBUTOR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DISTRIBUTOR_SVNT_BUILD_DLL */
+# define DISTRIBUTOR_SVNT_Export ACE_Proper_Import_Flag
+# define DISTRIBUTOR_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DISTRIBUTOR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DISTRIBUTOR_SVNT_BUILD_DLL */
+#else /* DISTRIBUTOR_SVNT_HAS_DLL == 1 */
+# define DISTRIBUTOR_SVNT_Export
+# define DISTRIBUTOR_SVNT_SINGLETON_DECLARATION(T)
+# define DISTRIBUTOR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DISTRIBUTOR_SVNT_HAS_DLL == 1 */
+
+// Set DISTRIBUTOR_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DISTRIBUTOR_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DISTRIBUTOR_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DISTRIBUTOR_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DISTRIBUTOR_SVNT_NTRACE */
+
+#if (DISTRIBUTOR_SVNT_NTRACE == 1)
+# define DISTRIBUTOR_SVNT_TRACE(X)
+#else /* (DISTRIBUTOR_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DISTRIBUTOR_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DISTRIBUTOR_SVNT_NTRACE == 1) */
+
+#endif /* DISTRIBUTOR_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/README.html b/modules/CIAO/docs/tutorials/Quoter/Simple/README.html
new file mode 100644
index 00000000000..85e38e81150
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/README.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<!--//$Id$ -->
+</head>
+<body>
+<b><font size="5">Quoter example README</font></b>
+<p>To download the source codes of this example please refer to the SVN
+repository at <code>$CIAO_ROOT\docs\tutorials\Quoter\Simple</code>
+</p>
+<hr>
+<h2>Example Description</h2>
+<div align="left">
+<font face="Times New Roman" size="3">The <b>StockDistributor</b>
+component would be monitoring a real-time stock database. When the
+values of particular stocks change, it pushes a CCM <b>eventtype</b>
+that contains the stock's name via a CCM event source to the
+corresponding CCM </font>
+</div>
+<div align="left">
+<font face="Times New Roman" size="3">event sink implemented by one or
+more <b>StockBroker</b> components. If these components are interested
+in the stock they can obtain more information about it by invoking a
+request/response operation via their CCM receptacle on a CCM facet
+exported by the <b>StockDistributor</b> component. The diagram of this
+example is shown in fig 1.</font>
+</div>
+<p align="center"><img alt="" src="images/quoter.jpg"
+ style="width: 362px; height: 212px;"><br>
+figure 1<br>
+</p>
+<h2 align="justify"><span style="font-weight: 400;"><font size="3"></font></span><span
+ style="font-weight: 400;"><font size="3">This example
+is based on a series of&nbsp;</font> <a
+ href="http://www.cs.wustl.edu/%7Eschmidt/report-doc.html"><font
+ size="3">CORBA Component Model</font></a><font size="3"> columns
+written by <a href="http://www.cs.wustl.edu/%7Eschmidt/">Douglas
+Schmidt</a> and <a href="http://www.iona.com/hyplan/vinoski/">Steve
+Vinoski</a>, and has been consistently used as a example for <a
+ href="http://www.cs.wustl.edu/%7Eschmidt/TAO.html">TAO</a>. Please
+refer to <a
+ href="../../../../../docs/tutorials/Quoter/index.html">TAO
+online tutorial</a> for details. <br>
+</font></span></h2>
+<h2>The files you will find</h2>
+<li>The interfaces, data types and exceptions shared by the components
+of
+this
+application are specified in the <a href="Stock_Base/Stock_Base.idl"><code>Stock_Base.idl</code></a>.<code></code>The
+lib
+generated
+from Stock_Base.idl is linked to all the components of this example.</li>
+<li>&nbsp;mpc files for each of the components are available in the
+components
+directories. We use the&nbsp; <a
+ href="http://downloads.ociweb.com/MPC/MakeProjectCreator.pdf">MPC</a>
+to
+generate makefiles and Visual C++ project/solutions files for all <a
+ href="http://www.cs.wustl.edu/%7Eschmidt/ACE.html">ACE</a>, <a
+ href="http://www.cs.wustl.edu/%7Eschmidt/TAO.html">TAO</a> and <a
+ href="http://www.cs.wustl.edu/%7Eschmidt/CIAO.html">CIAO</a>
+libraries. </li>
+<li>&nbsp;idl and cidl files for each component are placed in
+components directory.
+</li>
+<li>&nbsp;The <code>_exec.h</code> and <code>_exec.cpp</code> files
+are the actual
+implementation of the components.</li>
+<hr>
+<h3><font size="5">Make</font></h3>
+Navigate to&nbsp; the directory <code>$CIAO_ROOT/docs/tutorials/Quoter/Simple</code>
+and do:<br>
+<code>$ACE_ROOT/bin/mwc.pl -type gnuace</code> (use different -type option
+if you are using a
+compiler/IDE other than GNU make) <br>
+For example, use <code>%ACE_ROOT%/bin/mwc.pl -type vc71</code> if you
+are using
+Visual C++ 7.1 IDE.<br>
+<br>
+Then build/make the generated project/make files. Correct errors in the
+source codes if necessary.<br>
+<hr>
+<h3><font size="5">Assemble</font></h3>
+<p>Now we can step forward to build the assembly. </p>
+<li>In the descriptor subdirectory, you'll find a XML descriptor file
+that
+describes your <em>deployment plan</em>, the
+flattened_deploymentplan.cdp. This file declaratively specifies how the
+component assembly is
+constructed.
+Specifically, it defines the component types, component instances,
+component
+connections and implementation artifact descriptions. <br>
+</li>
+<dd>
+&nbsp;<li>Please make sure that the Modified_Deployment.xsd and XMI.xsd
+files
+are in the Display/descriptors directory. The former file could be
+found in $CIAO_ROOT/docs/schema
+directory. <br>
+ <br>
+Note: Creating the deployment plan descriptor is a tedious and
+error-prone job,
+you can download <a href="http://www.dre.vanderbilt.edu/cosmic">CoSMIC</a>
+to
+assist you in this step. Please refer to <a
+ href="http://www.dre.vanderbilt.edu/%7Emxiong/tutorial">this tutorial</a>
+to see how you can use CoSMIC to automatically generate the descriptor
+file.
+ <p></p>
+ <hr></li>
+</dd>
+<h2>Running the program </h2>
+&gt;From different shells in&nbsp;<code>$CIAO_ROOT/docs/tutorials/Quoter/Simple/</code><code>descriptors/</code>
+directory:
+<ul>
+ <li>Start NodeManagers (NodeDameon) by running runNodeDaemon.pl </li>
+ <li>Start the execution manager
+$CIAO_ROOT/DAnCE/ExecutionManager/Execution_Manager -o ior -i
+Stock.dat&nbsp; </li>
+</ul>
+<p>The Stock.dat file describes the deployment daemons CIAO's
+Execution_Manager
+will contact to instantiate ComponentServer's, home's, and component
+instances.
+Each line specify the name of a installation "destination" and the
+corresponding corbaloc IOR for the CIAO_Daemon.</p>
+<ul type="square">
+ <li><em>NOTE</em>: As one can see, we use the "Stock.dat" file to
+instruct the Execution_Manager how to find the endpoint of each
+individual NodeManager (i.e., Node Daemon) where component(s) will be
+deployed, so this is non-standard. We plan to use Naming Service to do
+this in the future. </li>
+</ul>
+<ul>
+ <li> Start the plan_launcher by running
+$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p
+flattened_deploymentplan.cdp -k file://ior</li>
+ <li>By now the components should be successfully deployed. You may
+run the driver program to start the application. Open a new shell, keep
+in the /Quoter/descriptors directory,&nbsp; and try the following
+commands, see what happens in the component server<br>
+ </li>
+</ul>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start the distributor
+service at a frequency of&nbsp; 3 hertz:<br>
+&nbsp; &nbsp; &nbsp;&nbsp; <span style="color: rgb(51, 102, 255);">../Distributor/Distributor.exe
+-o&nbsp;&nbsp; -r3</span><br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Use the broker program to
+subscribe to MSFT stock<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span
+ style="color: rgb(51, 102, 255);">../Broker/Broker.exe -s MSFT</span><br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Subscribe to IBM stock<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <span
+ style="color: rgb(51, 102, 255);">../Broker/Broker.exe -s IBM</span><br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Unsubscribe to MSFT stock<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span
+ style="color: rgb(51, 102, 255);">../Broker/Broker -u MSFT</span><br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Turn off the distribution
+service:<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span
+ style="color: rgb(51, 102, 255);">../Distributor/Distributor -f </span><br>
+<br>
+Please contact mxiong@dre.vanderbilt.edu if you have any questions.
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
+</body>
+</html>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.idl b/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.idl
new file mode 100644
index 00000000000..b038cdca509
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.idl
@@ -0,0 +1,41 @@
+//$Id$
+
+#include <Components.idl>
+
+module Stock
+{
+ exception Invalid_Stock {};
+ typedef sequence<octet> ImageBlob;
+
+ /**
+ * @struct StockInfo
+ */
+ struct StockInfo {
+ string name;
+ long high;
+ long low;
+ long last;
+ };
+
+ /**
+ * @interface: StockQuoter
+ *
+ * @brief: component facet
+ */
+ interface StockQuoter {
+ /// Returns the current stock info
+ StockInfo get_stock_info (in string stock_name)
+ raises (Invalid_Stock);
+ };
+
+
+ /**
+ * @event StockName
+ *
+ * @brief component event
+ */
+ eventtype StockName {
+ // Name of the stock.
+ public string name;
+ };
+};
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc b/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc
new file mode 100644
index 00000000000..6f3cde298ff
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc
@@ -0,0 +1,46 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Stock_Base"
+
+project(Stock_Base_stub): ciao_client_dnc {
+
+ sharedname = Stock_Base_stub
+ idlflags -= -GT
+ idlflags += -Wb,stub_export_macro=STOCK_BASE_STUB_Export \
+ -Wb,stub_export_include=Stock_Base_stub_export.h \
+ -Wb,skel_export_macro=STOCK_BASE_SKEL_Export \
+ -Wb,skel_export_include=Stock_Base_skel_export.h
+ dynamicflags = STOCK_BASE_STUB_BUILD_DLL
+
+ IDL_Files {
+ Stock_Base.idl
+ }
+
+ Source_Files {
+ Stock_BaseC.cpp
+ }
+}
+
+project(Stock_Base_skel) : ciao_servant_dnc {
+ after += Stock_Base_stub
+ sharedname = Stock_Base_skel
+ libs += Stock_Base_stub
+
+ idlflags -= -GT
+ idlflags += -Wb,stub_export_macro=STOCK_BASE_STUB_Export \
+ -Wb,stub_export_include=Stock_Base_stub_export.h \
+ -Wb,skel_export_macro=STOCK_BASE_SKEL_Export \
+ -Wb,skel_export_include=Stock_Base_skel_export.h
+ dynamicflags = STOCK_BASE_SKEL_BUILD_DLL
+
+ IDL_Files {
+ Stock_Base.idl
+ }
+
+ Source_Files {
+ Stock_BaseS.cpp
+ }
+}
+
+
+
+
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_skel_export.h b/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_skel_export.h
new file mode 100644
index 00000000000..262ab650fed
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_skel_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl STOCK_BASE_SVNT
+// ------------------------------
+#ifndef STOCK_BASE_SKEL_EXPORT_H
+#define STOCK_BASE_SKEL_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (STOCK_BASE_SKEL_HAS_DLL)
+# define STOCK_BASE_SKEL_HAS_DLL 1
+#endif /* ! STOCK_BASE_SKEL_HAS_DLL */
+
+#if defined (STOCK_BASE_SKEL_HAS_DLL) && (STOCK_BASE_SKEL_HAS_DLL == 1)
+# if defined (STOCK_BASE_SKEL_BUILD_DLL)
+# define STOCK_BASE_SKEL_Export ACE_Proper_Export_Flag
+# define STOCK_BASE_SKEL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define STOCK_BASE_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* STOCK_BASE_SKEL_BUILD_DLL */
+# define STOCK_BASE_SKEL_Export ACE_Proper_Import_Flag
+# define STOCK_BASE_SKEL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define STOCK_BASE_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* STOCK_BASE_SKEL_BUILD_DLL */
+#else /* STOCK_BASE_SKEL_HAS_DLL == 1 */
+# define STOCK_BASE_SKEL_Export
+# define STOCK_BASE_SKEL_SINGLETON_DECLARATION(T)
+# define STOCK_BASE_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* STOCK_BASE_SKEL_HAS_DLL == 1 */
+
+// Set STOCK_BASE_SKEL_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (STOCK_BASE_SKEL_NTRACE)
+# if (ACE_NTRACE == 1)
+# define STOCK_BASE_SKEL_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define STOCK_BASE_SKEL_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !STOCK_BASE_SKEL_NTRACE */
+
+#if (STOCK_BASE_SKEL_NTRACE == 1)
+# define STOCK_BASE_SKEL_TRACE(X)
+#else /* (STOCK_BASE_SKEL_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define STOCK_BASE_SKEL_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (STOCK_BASE_SKEL_NTRACE == 1) */
+
+#endif /* STOCK_BASE_SKEL_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_stub_export.h b/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_stub_export.h
new file mode 100644
index 00000000000..1b73531da37
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_stub_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl STOCK_BASE_STUB
+// ------------------------------
+#ifndef STOCK_BASE_STUB_EXPORT_H
+#define STOCK_BASE_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (STOCK_BASE_STUB_HAS_DLL)
+# define STOCK_BASE_STUB_HAS_DLL 1
+#endif /* ! STOCK_BASE_STUB_HAS_DLL */
+
+#if defined (STOCK_BASE_STUB_HAS_DLL) && (STOCK_BASE_STUB_HAS_DLL == 1)
+# if defined (STOCK_BASE_STUB_BUILD_DLL)
+# define STOCK_BASE_STUB_Export ACE_Proper_Export_Flag
+# define STOCK_BASE_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define STOCK_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* STOCK_BASE_STUB_BUILD_DLL */
+# define STOCK_BASE_STUB_Export ACE_Proper_Import_Flag
+# define STOCK_BASE_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define STOCK_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* STOCK_BASE_STUB_BUILD_DLL */
+#else /* STOCK_BASE_STUB_HAS_DLL == 1 */
+# define STOCK_BASE_STUB_Export
+# define STOCK_BASE_STUB_SINGLETON_DECLARATION(T)
+# define STOCK_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* STOCK_BASE_STUB_HAS_DLL == 1 */
+
+// Set STOCK_BASE_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (STOCK_BASE_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define STOCK_BASE_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define STOCK_BASE_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !STOCK_BASE_STUB_NTRACE */
+
+#if (STOCK_BASE_STUB_NTRACE == 1)
+# define STOCK_BASE_STUB_TRACE(X)
+#else /* (STOCK_BASE_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define STOCK_BASE_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (STOCK_BASE_STUB_NTRACE == 1) */
+
+#endif /* STOCK_BASE_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker.ccd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker.ccd
new file mode 100644
index 00000000000..c2a0630b87b
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker.ccd
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentInterfaceDescription
+ 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>Broker Component</label>
+ <UUID>803f8fc7-55de-4a20-81eb-ae951d85b7f4</UUID>
+ <specificType>IDL:Stock/StockBroker:1.0</specificType>
+ <supportedType>IDL:Stock/StockBroker:1.0</supportedType>
+ <port>
+ <name>notify_in</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>false</optional>
+ <provider>false</provider>
+ <supportedType>IDL:Stock/StockName:1.0</supportedType>
+ <specificType>IDL:Stock/StockName:1.0</specificType>
+ <kind>EventConsumer</kind>
+ </port>
+ <port>
+ <name>read_quoter</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>false</optional>
+ <provider>false</provider>
+ <supportedType>IDL:Stock/StockQuoter:1.0</supportedType>
+ <specificType>IDL:Stock/StockQuoter:1.0</specificType>
+ <kind>SimplexReceptacle</kind>
+ </port>
+
+</Deployment:ComponentInterfaceDescription> \ No newline at end of file
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker.cid b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker.cid
new file mode 100644
index 00000000000..47f49102136
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker.cid
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentImplementationDescription
+ 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>Broker Implementation</label>
+ <UUID>789e1be2-703f-4bd3-af50-b400eef91fd0</UUID>
+ <implements href="Broker.ccd"/>
+ <monolithicImpl>
+ <primaryArtifact>
+ <name>Broker_stub</name>
+ <referencedArtifact href="Broker_Stub.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>Broker_svnt</name>
+ <referencedArtifact href="Broker_Svnt.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>Broker_exec</name>
+ <referencedArtifact href="Broker_Exec.iad"/>
+ </primaryArtifact>
+ </monolithicImpl>
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Broker.ior</string>
+ </value>
+ </value>
+ </configProperty>
+</Deployment:ComponentImplementationDescription> \ No newline at end of file
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker.cpd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker.cpd
new file mode 100644
index 00000000000..cc6381b658a
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker.cpd
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentPackageDescription
+ 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>Broker Package</label>
+ <UUID>07ebf947-2174-4a3b-bd37-bcb92986eaf4</UUID>
+ <realizes href="Broker.ccd"/>
+ <implementation>
+ <name>Broker</name>
+ <referencedImplementation href="Broker.cid"/>
+ </implementation>
+</Deployment:ComponentPackageDescription> \ No newline at end of file
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker_Exec.iad b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker_Exec.iad
new file mode 100644
index 00000000000..724a5b2c6bb
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker_Exec.iad
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Broker Executor Artifact</label>
+ <UUID>5e4f2366-3810-4d4c-a269-5788a525cbe1</UUID>
+ <location>Broker_exec</location>
+ <dependsOn>
+ <name>ACE</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Broker_Stub</name>
+ <referencedArtifact href="Broker_Stub.iad"/>
+ </dependsOn>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createStockBrokerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+</Deployment:ImplementationArtifactDescription> \ No newline at end of file
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker_Stub.iad b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker_Stub.iad
new file mode 100644
index 00000000000..ac1f0834e19
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker_Stub.iad
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Broker Stub Artifact</label>
+ <UUID>93bbdf7d-d3f7-4227-bb75-b0562ac15b92</UUID>
+ <location>Broker_stub</location>
+ <dependsOn>
+ <name>ACE</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+</Deployment:ImplementationArtifactDescription> \ No newline at end of file
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker_Svnt.iad b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker_Svnt.iad
new file mode 100644
index 00000000000..2944181e015
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker_Svnt.iad
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Broker Servant Artifact</label>
+ <UUID>04e4d246-e6eb-4b0e-8e32-60b996497cea</UUID>
+ <location>Broker_svnt</location>
+ <dependsOn>
+ <name>ACE</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Broker_Stub</name>
+ <referencedArtifact href="Broker_Stub.iad"/>
+ </dependsOn>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Stock_StockBrokerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+</Deployment:ImplementationArtifactDescription> \ No newline at end of file
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor.ccd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor.ccd
new file mode 100644
index 00000000000..7557e143c56
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor.ccd
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentInterfaceDescription
+ 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>Distributor Component</label>
+ <UUID>803f8fc7-55de-4a20-81eb-ae951d85b7f4</UUID>
+ <specificType>IDL:Stock/StockDistributor:1.0</specificType>
+ <supportedType>IDL:Stock/StockDistributor:1.0</supportedType>
+ <port>
+ <name>supports</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>false</optional>
+ <provider>true</provider>
+ <supportedType>IDL:Stock/Trigger:1.0</supportedType>
+ <kind>Facet</kind>
+ </port>
+ <port>
+ <name>notify_out</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>false</optional>
+ <provider>true</provider>
+ <supportedType>IDL:Stock/StockName:1.0</supportedType>
+ <specificType>IDL:Stock/StockName:1.0</specificType>
+ <kind>EventPublisher</kind>
+ </port>
+ <port>
+ <name>push_quoter</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>false</optional>
+ <provider>true</provider>
+ <supportedType>IDL:Stock/StockQuoter:1.0</supportedType>
+ <specificType>IDL:Stock/StockQuoter:1.0</specificType>
+ <kind>Facet</kind>
+ </port>
+</Deployment:ComponentInterfaceDescription> \ No newline at end of file
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor.cid b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor.cid
new file mode 100644
index 00000000000..b5eac80c543
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor.cid
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentImplementationDescription
+ 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>Distributor Implementation</label>
+ <UUID>789e1be2-703f-4bd3-af50-b400eef91fd0</UUID>
+ <implements href="Distributor.ccd"/>
+ <monolithicImpl>
+ <primaryArtifact>
+ <name>Distributor_Stub</name>
+ <referencedArtifact href="Distributor_Stub.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>Distributor_Svnt</name>
+ <referencedArtifact href="Distributor_Svnt.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>Distributor_Exec</name>
+ <referencedArtifact href="Distributor_Exec.iad"/>
+ </primaryArtifact>
+ </monolithicImpl>
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Distributor.ior</string>
+ </value>
+ </value>
+ </configProperty>
+</Deployment:ComponentImplementationDescription> \ No newline at end of file
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor.cpd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor.cpd
new file mode 100644
index 00000000000..c451a5637e8
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor.cpd
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentPackageDescription
+ 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>Distributor Package</label>
+ <UUID>07ebf947-2174-4a3b-bd37-bcb92986eaf4</UUID>
+ <realizes href="Distributor.ccd"/>
+ <implementation>
+ <name>Distributor</name>
+ <referencedImplementation href="Distributor.cid"/>
+ </implementation>
+</Deployment:ComponentPackageDescription> \ No newline at end of file
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor_Exec.iad b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor_Exec.iad
new file mode 100644
index 00000000000..784e11b99bf
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor_Exec.iad
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Distributor Executor Artifact</label>
+ <UUID>5e4f2366-3810-4d4c-a269-5788a525cbe1</UUID>
+ <location>Distributor_exec</location>
+ <dependsOn>
+ <name>ACE</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Distributor_Stub</name>
+ <referencedArtifact href="Distributor_Stub.iad"/>
+ </dependsOn>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createStockDistributorHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+</Deployment:ImplementationArtifactDescription> \ No newline at end of file
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor_Stub.iad b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor_Stub.iad
new file mode 100644
index 00000000000..c55a74916ef
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor_Stub.iad
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Distributor Stub Artifact</label>
+ <UUID>93bbdf7d-d3f7-4227-bb75-b0562ac15b92</UUID>
+ <location>Distributor_stub</location>
+ <dependsOn>
+ <name>ACE</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+</Deployment:ImplementationArtifactDescription> \ No newline at end of file
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor_Svnt.iad b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor_Svnt.iad
new file mode 100644
index 00000000000..7643089044f
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor_Svnt.iad
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Distributor Servant Artifact</label>
+ <UUID>04e4d246-e6eb-4b0e-8e32-60b996497cea</UUID>
+ <location>Distributor_svnt</location>
+ <dependsOn>
+ <name>ACE</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Distributor_Stub</name>
+ <referencedArtifact href="Distributor_Stub.iad"/>
+ </dependsOn>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Stock_StockDistributorHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+</Deployment:ImplementationArtifactDescription> \ No newline at end of file
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Domain.cdd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Domain.cdd
new file mode 100644
index 00000000000..b4dd3c729ef
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Domain.cdd
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<Deployment:Domain
+ 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>Stock Domain</label>
+<UUID>effd4bd0-6db0-4c50-9bb7-db9decebae1c</UUID>
+<node>
+ <name>Distributor</name>
+ <label>Distributor's Node</label>
+</node>
+<node>
+ <name>Broker</name>
+ <label>Broker's Node</label>
+</node>
+</Deployment:Domain>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Libraries.iad b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Libraries.iad
new file mode 100644
index 00000000000..720a7ce8219
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Libraries.iad
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription 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>Common Libraries</label>
+ <UUID>6bae4fcd-c71c-44b4-a0d4-0e4199ce1a49</UUID>
+ <location>$ACE_ROOT/lib/libACE</location>
+ <location>$ACE_ROOT/lib/libTAO</location>
+ <location>$ACE_ROOT/lib/libCIAO_Client</location>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.cdp b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.cdp
new file mode 100644
index 00000000000..4d327f991c2
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.cdp
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<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>Stock Deployment Plan</label>
+ <instance xmi:id="a_Distributor">
+ <name>Distributor_Instance</name>
+ <node>Distributor</node>
+ </instance>
+ <instance xmi:id="a_Broker01">
+ <name>Broker_Instance_01</name>
+ <node>Broker01</node>
+ </instance>
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.cid b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.cid
new file mode 100644
index 00000000000..2d2160bba7d
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.cid
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentImplementationDescription
+ 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>Stock Example Assembly</label>
+ <UUID>effd4bd0-6db0-4c50-9bb7-db9decebae1c</UUID>
+ <assemblyImpl>
+ <instance xmi:id="a_Distributor">
+ <name>Distributor_Instance</name>
+ <package href="Distributor.cpd"/>
+ </instance>
+ <instance xmi:id="a_Broker01">
+ <name>Broker_Instance_01</name>
+ <package href="Broker.cpd"/>
+ </instance>
+ <connection>
+ <name>quoter_conn</name>
+ <internalEndpoint>
+ <portName>read_quoter</portName>
+ <instance xmi:idref="a_Broker01"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>push_quoter</portName>
+ <instance xmi:idref="a_Distributor"/>
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>StockName_event</name>
+ <internalEndpoint>
+ <portName>notify_in</portName>
+ <instance xmi:idref="a_Broker01"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>notify_out</portName>
+ <instance xmi:idref="a_Distributor"/>
+ </internalEndpoint>
+ </connection>
+ </assemblyImpl>
+</Deployment:ComponentImplementationDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.cpd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.cpd
new file mode 100644
index 00000000000..6b2ece8e164
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.cpd
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentPackageDescription
+ 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>Stock Example Package</label>
+ <UUID>823e4287-f53c-4caa-8619-f3dfda4c4998</UUID>
+ <implementation>
+ <name>Stock</name>
+ <referencedImplementation href="Stock.cid"/>
+ </implementation>
+</Deployment:ComponentPackageDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.dat b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.dat
new file mode 100644
index 00000000000..6079555046c
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.dat
@@ -0,0 +1,3 @@
+DistributorNode corbaloc:iiop:localhost:30000/NodeManager
+BrokerNode corbaloc:iiop:localhost:40000/NodeManager
+
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.pcd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.pcd
new file mode 100644
index 00000000000..d65c2d9f86b
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Stock.pcd
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:PackageConfiguration
+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>Stock Example Configuration for Unix machines</label>
+ <UUID>559d65e8-0407-48c0-a158-dafe21360fef</UUID>
+ <basePackage href="Stock.cpd"/>
+</Deployment:PackageConfiguration>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/XMI.xsd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/XMI.xsd
new file mode 100644
index 00000000000..f4adac91934
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/XMI.xsd
@@ -0,0 +1,35 @@
+<?xml version="1.0" ?>
+<xsd:schema targetNamespace="http://www.omg.org/XMI" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation='http://www.w3.org/2001/XMLSchema XMLSchema.xsd'>
+ <xsd:attribute name="id" type="xsd:ID" />
+ <xsd:attributeGroup name="IdentityAttribs">
+ <xsd:attribute form="qualified" name="label" type="xsd:string" use="optional" />
+ <xsd:attribute form="qualified" name="uuid" type="xsd:string" use="optional" />
+ </xsd:attributeGroup>
+ <xsd:attributeGroup name="LinkAttribs">
+ <xsd:attribute name="href" type="xsd:string" use="optional" />
+ <xsd:attribute form="qualified" name="idref" type="xsd:IDREF" use="optional" />
+ </xsd:attributeGroup>
+ <xsd:attributeGroup name="ObjectAttribs">
+ <xsd:attributeGroup ref="xmi:IdentityAttribs" />
+ <xsd:attributeGroup ref="xmi:LinkAttribs" />
+ <xsd:attribute fixed="2.0" form="qualified" name="version" type="xsd:string" use="optional" />
+ <xsd:attribute form="qualified" name="type" type="xsd:QName" use="optional" />
+ </xsd:attributeGroup>
+ <xsd:complexType name="Extension">
+ <xsd:choice maxOccurs="unbounded" minOccurs="0">
+ <xsd:any processContents="lax" />
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" />
+ <xsd:attributeGroup ref="xmi:ObjectAttribs" />
+ <xsd:attribute name="extender" type="xsd:string" use="optional" />
+ <xsd:attribute name="extenderID" type="xsd:string" use="optional" />
+ </xsd:complexType>
+ <xsd:element name="Extension" type="xmi:Extension" />
+ <xsd:complexType name="Any">
+ <xsd:choice maxOccurs="unbounded" minOccurs="0">
+ <xsd:any processContents="skip" />
+ </xsd:choice>
+ <xsd:anyAttribute processContents="skip" />
+ </xsd:complexType>
+</xsd:schema>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/flattened_deploymentplan.cdp b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/flattened_deploymentplan.cdp
new file mode 100644
index 00000000000..86f7c27b786
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/flattened_deploymentplan.cdp
@@ -0,0 +1,222 @@
+<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>Quoter-DeploymentPlan</label>
+ <!-- Could be ZERO -->
+ <realizes>
+ <label>Quoter-realizes-cid</label>
+ <UUID>c0965470-7b83-11d9-9669-0800200c9a66</UUID>
+ <specificType><!-- @@ What does here? --></specificType>
+ <supportedType>IDL:Quoter/EC:1.0</supportedType>
+ <port>
+ <name>read_quoter</name>
+ <specificType>IDL:Quoter/Read_Quoter:1.0</specificType>
+ <supportedType>IDL:Quoter/Read_Quoter:1.0</supportedType>
+ <provider>false></provider>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>true</exclusiveUser>
+ <optional>false</optional>
+ <kind>SimplexReceptacle</kind>
+ </port>
+ </realizes>
+
+ <implementation id="Quoter-Distributor-mdd">
+ <name>Quoter-Distributor-mdd</name>
+ <source><!-- @@ Don't know what goes here --></source>
+ <artifact>Quoter-Distributor_exec</artifact>
+ <artifact>Quoter-Distributor_svnt</artifact>
+ <artifact>Quoter-Distributor_stub</artifact>
+ <artifact>Quoter-Base_stub</artifact>
+ <artifact>Quoter-Base_svnt</artifact>
+ <!--
+ <execParameter></execParameter>
+ <deployRequirement></deployRequirement>
+ -->
+ </implementation>
+
+ <implementation id="Quoter-Broker-mdd">
+ <name>Quoter-Broker-mdd</name>
+ <source><!-- @@ Don't know what goes here --></source>
+ <artifact>Quoter-Broker_exec</artifact>
+ <artifact>Quoter-Broker_svnt</artifact>
+ <artifact>Quoter-Broker_stub</artifact>
+ <artifact>Quoter-Base_stub</artifact>
+ <artifact>Quoter-Base_svnt</artifact>
+ <!--
+ <execParameter></execParameter>
+ <deployRequirement></deployRequirement>
+ -->
+ </implementation>
+
+ <instance id="Quoter-Distributor-idd">
+ <name>Quoter-Distributor-idd</name>
+ <node>DistributorNode</node>
+ <source><!-- @@ What goes here --></source>
+ <implementation>Quoter-Distributor-mdd</implementation>
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Distributor.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="Quoter-Broker-idd">
+ <name>Quoter-Broker-idd</name>
+ <node>BrokerNode</node>
+ <source><!-- @@ What goes here --></source>
+ <implementation>Quoter-Broker-mdd</implementation>
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Broker.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <connection>
+ <name>Quoter_event_connection</name>
+ <internalEndpoint>
+ <portName>notify_out</portName>
+ <kind>EventPublisher</kind>
+ <instance>Quoter-Distributor-idd</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>notify_in</portName>
+ <kind>EventConsumer</kind>
+ <instance>Quoter-Broker-idd</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>Quoter_facet_connection</name>
+ <internalEndpoint>
+ <portName>push_quoter</portName>
+ <kind>Facet</kind>
+ <instance>Quoter-Distributor-idd</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>read_quoter</portName>
+ <kind>SimplexReceptacle</kind>
+ <instance>Quoter-Broker-idd</instance>
+ </internalEndpoint>
+ </connection>
+
+ <!-- @@ Runtime library name must match exactly in "location" tag -->
+ <artifact id="Quoter-Distributor_exec">
+ <name>Distributor_exec</name>
+ <source><!-- @@ Not sure about this--></source>
+ <node><!-- blank --></node>
+ <location>Distributor_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createStockDistributorHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Quoter-Distributor_svnt">
+ <name>Distributor_svnt</name>
+ <source><!-- @@ Not sure --></source>
+ <node><!-- blank --></node>
+ <location>Distributor_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Stock_StockDistributorHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Quoter-Distributor_stub">
+ <name>Distributor_stub</name>
+ <source><!-- @@ Not sure --></source>
+ <node><!-- blank --></node>
+ <location>Distributor_stub</location>
+ </artifact>
+
+ <artifact id="Quoter-Broker_exec">
+ <name>Broker_exec</name>
+ <source><!-- @@ Not sure about this--></source>
+ <node><!-- blank --></node>
+ <location>Broker_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createStockBrokerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Quoter-Broker_svnt">
+ <name>Broker_svnt</name>
+ <source><!-- @@ Not sure --></source>
+ <node><!-- blank --></node>
+ <location>Broker_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Stock_StockBrokerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Quoter-Broker_stub">
+ <name>Broker_stub</name>
+ <source><!-- @@ Not sure --></source>
+ <node><!-- blank --></node>
+ <location>Broker_stub</location>
+ </artifact>
+
+
+ <artifact id="Quoter-Base_stub">
+ <name>Stock_Base_stub</name>
+ <source><!-- @@ Not sure --></source>
+ <node><!-- blank --></node>
+ <location>Stock_Base_stub</location>
+ </artifact>
+
+ <artifact id="Quoter-Base_svnt">
+ <name>Stock_Base_svnt</name>
+ <source><!-- @@ Not sure --></source>
+ <node><!-- blank --></node>
+ <location>Stock_Base_svnt</location>
+ </artifact>
+
+</Deployment:deploymentPlan>
+
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/package.tpd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/package.tpd
new file mode 100644
index 00000000000..b753de7b7ff
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/package.tpd
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:TopLevelPackageDescription
+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">
+ <package href="Stock.pcd"/>
+</Deployment:TopLevelPackageDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl
new file mode 100644
index 00000000000..7437f0ed341
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl
@@ -0,0 +1,40 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+
+$status = 0;
+$iorfile1 = PerlACE::LocalFile ("NodeApp1.ior");
+$iorfile2 = PerlACE::LocalFile ("NodeApp2.ior");
+
+#for ($iter = 0; $iter <= $#ARGV; $iter++) {
+# if ($ARGV[$iter] eq "-h" || $ARGV[$iter] eq "-?") {
+# print "Run_Test Perl script for NodeApplicationTest \n\n";
+# print "run_test \n";
+# print "\n";
+# print "-h -- prints this information\n";
+# exit 0;
+# }
+#}
+
+
+unlink $iorfile1;
+unlink $iorfile2;
+
+$CIAO_ROOT=$ENV{'CIAO_ROOT'};
+
+$SV1 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/NodeManager",
+ "-ORBEndpoint iiop://localhost:30000 -s $CIAO_ROOT/DAnCE/NodeApplication/NodeApplication");
+
+$SV2 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/NodeManager",
+ "-ORBEndpoint iiop://localhost:40000 -s $CIAO_ROOT/DAnCE/NodeApplication/NodeApplication");
+
+$SV1->Spawn ();
+$SV2->Spawn ();
+
+sleep (99999999999);
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step1.JPG b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step1.JPG
new file mode 100644
index 00000000000..b0346ee841b
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step1.JPG
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step2.JPG b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step2.JPG
new file mode 100644
index 00000000000..a4526901307
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step2.JPG
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step3.JPG b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step3.JPG
new file mode 100644
index 00000000000..d7687394851
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step3.JPG
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step6.JPG b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step6.JPG
new file mode 100644
index 00000000000..e1e3b28055d
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step6.JPG
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/Steps for Developing CCM Applications.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Steps for Developing CCM Applications.jpg
new file mode 100644
index 00000000000..ddccdc2b373
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Steps for Developing CCM Applications.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig1.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig1.jpg
new file mode 100644
index 00000000000..a8550fe1176
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig1.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig10.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig10.jpg
new file mode 100644
index 00000000000..3db5ac174e0
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig10.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig11.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig11.jpg
new file mode 100644
index 00000000000..c5eaf705384
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig11.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig12.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig12.jpg
new file mode 100644
index 00000000000..ea2a885af6b
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig12.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig2.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig2.jpg
new file mode 100644
index 00000000000..49d6f90c3b0
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig2.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig3.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig3.jpg
new file mode 100644
index 00000000000..0559dc7382b
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig3.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig4.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig4.jpg
new file mode 100644
index 00000000000..8fb89eccb57
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig4.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig5.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig5.jpg
new file mode 100644
index 00000000000..e847b9290d6
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig5.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig6.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig6.jpg
new file mode 100644
index 00000000000..0a214c84ea8
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig6.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig7.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig7.jpg
new file mode 100644
index 00000000000..67d90b775b0
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig7.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig8.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig8.jpg
new file mode 100644
index 00000000000..a565c2ab989
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig8.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig9.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig9.jpg
new file mode 100644
index 00000000000..996d90d800b
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig9.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/quoter.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/quoter.jpg
new file mode 100644
index 00000000000..2f3edd11329
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/quoter.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/index.html b/modules/CIAO/docs/tutorials/Quoter/Simple/index.html
new file mode 100644
index 00000000000..f865a43cc6c
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/index.html
@@ -0,0 +1,655 @@
+<!-- $Id$ -->
+<html xmlns:v="urn:schemas-microsoft-com:vml"
+xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns:p="urn:schemas-microsoft-com:office:powerpoint"
+xmlns:oa="urn:schemas-microsoft-com:office:activation"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 11">
+<meta name=Originator content="Microsoft Word 11">
+<link rel=File-List href="index_files/filelist.xml">
+<link rel=Edit-Time-Data href="index_files/editdata.mso">
+<!--[if !mso]>
+<style>
+v\:* {behavior:url(#default#VML);}
+o\:* {behavior:url(#default#VML);}
+w\:* {behavior:url(#default#VML);}
+.shape {behavior:url(#default#VML);}
+</style>
+<![endif]-->
+<title>Building a Stock Quoter with TAO - A Tutorial</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>Abdullah Sowayan</o:Author>
+ <o:LastAuthor>Abdullah Sowayan</o:LastAuthor>
+ <o:Revision>13</o:Revision>
+ <o:TotalTime>64</o:TotalTime>
+ <o:Created>2006-10-06T22:35:00Z</o:Created>
+ <o:LastSaved>2006-11-06T21:35:00Z</o:LastSaved>
+ <o:Pages>1</o:Pages>
+ <o:Words>851</o:Words>
+ <o:Characters>4851</o:Characters>
+ <o:Company>Maritime Systems &amp; Sensors</o:Company>
+ <o:Lines>40</o:Lines>
+ <o:Paragraphs>11</o:Paragraphs>
+ <o:CharactersWithSpaces>5691</o:CharactersWithSpaces>
+ <o:Version>11.8107</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ </w:WordDocument>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
+ </w:LatentStyles>
+</xml><![endif]-->
+<style>
+<!--
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+h3
+ {mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ mso-outline-level:3;
+ font-size:13.5pt;
+ font-family:"Times New Roman";
+ font-weight:bold;}
+a:link, span.MsoHyperlink
+ {color:#000FFF;
+ text-decoration:underline;
+ text-underline:single;}
+a:visited, span.MsoHyperlinkFollowed
+ {color:#FF0F0F;
+ text-decoration:underline;
+ text-underline:single;}
+p
+ {mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+address
+ {margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ font-style:italic;}
+code
+ {font-family:"Courier New";
+ mso-ascii-font-family:"Courier New";
+ mso-fareast-font-family:"Times New Roman";
+ mso-hansi-font-family:"Courier New";
+ mso-bidi-font-family:"Courier New";}
+span.intbody
+ {mso-style-name:intbody;}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.25in 1.0in 1.25in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+ /* List Definitions */
+ @list l0
+ {mso-list-id:137387275;
+ mso-list-type:hybrid;
+ mso-list-template-ids:-1837205732 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l0:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0B7;
+ mso-level-tab-stop:.75in;
+ mso-level-number-position:left;
+ margin-left:.75in;
+ text-indent:-.25in;
+ font-family:Symbol;}
+@list l0:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1
+ {mso-list-id:271979655;
+ mso-list-template-ids:-2025148996;}
+@list l1:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0B7;
+ mso-level-tab-stop:.75in;
+ mso-level-number-position:left;
+ margin-left:.75in;
+ text-indent:-.25in;
+ font-family:Symbol;}
+@list l1:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2
+ {mso-list-id:398870737;
+ mso-list-type:hybrid;
+ mso-list-template-ids:-1758177826 -1301365556 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
+@list l2:level1
+ {mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-weight:bold;}
+@list l2:level2
+ {mso-level-number-format:alpha-lower;
+ mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3
+ {mso-list-id:1284144513;
+ mso-list-type:hybrid;
+ mso-list-template-ids:120510300 -1301365556 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
+@list l3:level1
+ {mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-weight:bold;}
+@list l3:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4
+ {mso-list-id:1734621206;
+ mso-list-type:hybrid;
+ mso-list-template-ids:-1370594096 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l4:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0B7;
+ mso-level-tab-stop:.75in;
+ mso-level-number-position:left;
+ margin-left:.75in;
+ text-indent:-.25in;
+ font-family:Symbol;}
+@list l4:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+ol
+ {margin-bottom:0in;}
+ul
+ {margin-bottom:0in;}
+-->
+</style>
+<!--[if gte mso 10]>
+<style>
+ /* Style Definitions */
+ table.MsoNormalTable
+ {mso-style-name:"Table Normal";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-noshow:yes;
+ mso-style-parent:"";
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Times New Roman";
+ mso-ansi-language:#0400;
+ mso-fareast-language:#0400;
+ mso-bidi-language:#0400;}
+</style>
+<![endif]--><!-- index.html,v 1.3 2006/05/06 02:29:31 schmidt Exp --><!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="7170"/>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+ <o:idmap v:ext="edit" data="1"/>
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body bgcolor=white lang=EN-US link="#000FFF" vlink="#FF0F0F" style='tab-interval:
+.5in'>
+
+<div class=Section1>
+
+<h3 align=center style='margin:0in;margin-bottom:.0001pt;text-align:center;
+line-height:150%'><span style='color:black'>Building a Stock Quoter with CIAO,
+CoSMIC, and DAnCE - A Tutorial<o:p></o:p></span></h3>
+
+<h3 align=center style='margin:0in;margin-bottom:.0001pt;text-align:center;
+line-height:150%'><span style='color:black'><o:p>&nbsp;</o:p></span></h3>
+
+<p style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span
+style='color:black'>This tutorial provides a step-by-step lesson on developing
+component-based distributed applications using <a
+href="http://www.dre.vanderbilt.edu/cosmic/">CoSMIC</a> modeling toolkit and the
+<a href="http://www.cs.wustl.edu/%7Eschmidt/CIAO.html">CIAO DAnCE</a>
+framework. The example application used in this tutorial is a Stock Quoter that
+consists of two components; the <i>StockDistributor</i> and the <i>StockBroker</i>.
+The <i>StockDistributor</i> notifies one or more stock brokers whenever a stock
+price changes. Upon receiving the notification, the <i>StockBroker</i> fetches
+information about a particular stock from the <i>StockDistributor</i>. The
+figure bellow shows the application diagram. This Stock Quoter application is
+based on a series of <a
+href="http://www.cs.wustl.edu/%7Eschmidt/report-doc.html">CORBA component model</a>
+columns written by <a href="http://www.cs.wustl.edu/%7Eschmidt/">Doug Schmidt</a>
+and <a href="http://www.iona.com/hyplan/vinoski/">Steve Vinoski</a> for <a
+href="http://www.cuj.com">C/C++ Users Journal</a> and has consistently been
+used as an example for <a href="http://www.cs.wustl.edu/%7Eschmidt/TAO.html">TAO</a>.<o:p></o:p></span></p>
+
+<p style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span
+style='color:black'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal align=center style='text-align:center;line-height:150%'><span
+style='color:black'><img border=0 width=434 height=232 id="_x0000_i1025"
+src="images/fig1.jpg"><br>
+Stock Quoter application Diagram <o:p></o:p></span></p>
+
+<p class=MsoNormal style='line-height:150%'><span style='color:black'><o:p>&nbsp;</o:p></span></p>
+
+<p style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span
+style='color:black'>This is a step-by-step tutorial that will walk you through
+the development and deployment phases of a CCM application (Stock Quoter). This
+tutorial assumes that you have read and understood the following articles that
+describe the example:<o:p></o:p></span></p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:.75in;
+margin-bottom:.0001pt;text-indent:-.25in;line-height:150%;mso-list:l0 level1 lfo1;
+tab-stops:list .75in'><![if !supportLists]><span style='font-family:Symbol;
+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
+style='mso-list:Ignore'>&middot;<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><a
+href="http://www.cuj.com/documents/s=9039/cujexp0402vinoski/">The CORBA
+Component Model, Part 1: Evolving Towards Component Middleware</a></p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:.75in;
+margin-bottom:.0001pt;text-indent:-.25in;line-height:150%;mso-list:l0 level1 lfo1;
+tab-stops:list .75in'><![if !supportLists]><span style='font-family:Symbol;
+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
+style='mso-list:Ignore'>&middot;<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><a
+href="http://www.cuj.com/documents/s=9152/cujexp0404vinoski/">The CORBA
+Component Model, Part 2: Defining Components with the IDL 3.x Types</a></p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:.75in;
+margin-bottom:.0001pt;text-indent:-.25in;line-height:150%;mso-list:l0 level1 lfo1;
+tab-stops:list .75in'><![if !supportLists]><span style='font-family:Symbol;
+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
+style='mso-list:Ignore'>&middot;<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><a
+href="http://www.cuj.com/documents/s=9301/cujexp0409vinoski/">The CORBA
+Component Model, Part 3: The CCM Container Architecture and Component
+Implementation Framework</a></p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:.75in;
+margin-bottom:.0001pt;text-indent:-.25in;line-height:150%;mso-list:l0 level1 lfo1;
+tab-stops:list .75in'><![if !supportLists]><span style='font-family:Symbol;
+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
+style='mso-list:Ignore'>&middot;<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><a
+href="http://www.cuj.com/documents/s=9360/cujexp0410vinoski/">The CORBA
+Component Model Part 4: The CORBA Component Model Part 4: Implementing
+Components with CCM</a></p>
+
+<p style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span
+style='color:black'><o:p>&nbsp;</o:p></span></p>
+
+<p style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span
+style='color:black'><span style='mso-spacerun:yes'>&nbsp;</span>In addition to
+the articles above, reading and understanding the resources below will greatly
+help you follow through this tutorial:<o:p></o:p></span></p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:.75in;
+margin-bottom:.0001pt;text-indent:-.25in;line-height:150%;mso-list:l4 level1 lfo2;
+tab-stops:list .75in'><![if !supportLists]><span style='font-family:Symbol;
+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;color:black'><span
+style='mso-list:Ignore'>&middot;<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><a
+href="http://www.cs.wustl.edu/~schmidt/PDF/DAnCE.pdf">DAnCE: A QoS-enabled
+Component Deployment and Conguration Engine</a><span style='color:black'><o:p></o:p></span></p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:.75in;
+margin-bottom:.0001pt;text-indent:-.25in;line-height:150%;mso-list:l4 level1 lfo2;
+tab-stops:list .75in'><![if !supportLists]><span style='font-family:Symbol;
+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
+style='mso-list:Ignore'>&middot;<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]>TAO&#8217;s Developer&#8217;s Guide Version
+1.4a. Chapter 32&nbsp;: CIAO and CCM.</p>
+
+<p style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span
+style='color:black'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal style='line-height:150%'><b><span style='font-size:14.0pt;
+line-height:150%;color:black'>Prerequisites:</span></b><b><span
+style='font-size:13.5pt;line-height:150%;color:black'><br>
+</span></b><span style='color:black'>&nbsp;Before you start, you need the
+following: <o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in;line-height:
+150%;mso-list:l1 level1 lfo3;tab-stops:list .75in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><b><span style='color:black'>ACE+TAO+CIAO
+(Component Integraated ACE ORB).</span></b><span style='color:black'> ACE + TAO
++ CIAO provide the CCM infrastructure necessary to enable the CCM-based distributed
+component interaction. You can click <a
+href="http://download.dre.vanderbilt.edu">here</a> to download the latest
+ACE + TAO + CIAO and click <a
+href="http://www.cs.wustl.edu/%7Eschmidt/ACE_wrappers/TAO/CIAO/CIAO-INSTALL.html">here</a>
+for information on how to build ACE+TAO+CIAO.<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in;line-height:
+150%;mso-list:l1 level1 lfo3;tab-stops:list .75in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><b><span style='color:black'>Generic Modeling
+Environment (GME).</span></b><span style='color:black'> GME is a configurable
+toolkit for creating domain-specific modeling and program synthesis
+environments. It provides the execution environment for CoSMIC toolkits. Click <a
+href="http://www.isis.vanderbilt.edu/Projects/gme/download.html">here</a> to
+download GME.<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in;line-height:
+150%;mso-list:l1 level1 lfo3;tab-stops:list .75in'><![if !supportLists]><span
+style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
+Symbol;color:black'><span style='mso-list:Ignore'>&middot;<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><b><span style='color:black'>CoSMIC toolkit.</span></b><span
+style='color:black'> Click <a href="http://www.dre.vanderbilt.edu/cosmic/">here</a>
+to download the latest CoSMIC release.<o:p></o:p></span></p>
+
+<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>
+
+<div style='margin-left:-.5in'>
+
+<div class=MsoNormal align=center style='text-align:center;line-height:150%'><span
+style='color:black'>
+
+<hr size=2 width="100%" align=center>
+
+</span></div>
+
+</div>
+
+<p class=MsoNormal style='margin-left:-.5in;line-height:150%'><strong><span
+style='color:black'>Note:</span></strong><strong><span style='font-weight:normal'><o:p></o:p></span></strong></p>
+
+<p class=MsoNormal style='margin-left:0in;text-indent:-.25in;line-height:150%;
+mso-list:l3 level1 lfo4;tab-stops:list 0in .5in'><![if !supportLists]><b
+style='mso-bidi-font-weight:normal'><span style='mso-list:Ignore'>1.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></b><![endif]><span
+style='color:black'>Usually you should download the latest GME, but it is
+possible that CoSMIC hasn't been updated yet to support the very latest
+GME..The installation process of CoSMIC will tell you which version it is
+expecting.&nbsp; So <span class=intbody>please make sure the GME version you
+are using is the version required by CoSMIC. A different version of </span>GME
+may result in undefined errors. </span></p>
+
+<p class=MsoNormal style='margin-left:0in;text-indent:-.25in;line-height:150%;
+mso-list:l3 level1 lfo4;tab-stops:list 0in .5in'><![if !supportLists]><b
+style='mso-bidi-font-weight:normal'><span style='color:black'><span
+style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span></b><![endif]><span style='color:black'>Make sure you
+install GME first before you start with CoSMIC toolkits.<o:p></o:p></span></p>
+
+<div style='margin-left:-.5in'>
+
+<div class=MsoNormal align=center style='text-align:center;line-height:150%'><span
+style='color:black'>
+
+<hr size=2 width="100%" align=center>
+
+</span></div>
+
+</div>
+
+</blockquote>
+
+<p class=MsoNormal style='line-height:150%'><span style='color:black'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal style='line-height:150%'><b style='mso-bidi-font-weight:
+normal'><span style='font-size:14.0pt;line-height:150%;color:black'>Steps for
+Developing the Stock Quoter Application:<o:p></o:p></span></b></p>
+
+<p class=MsoNormal style='line-height:150%'><b style='mso-bidi-font-weight:
+normal'><span style='font-size:14.0pt;line-height:150%;color:black'><o:p>&nbsp;</o:p></span></b></p>
+
+<p class=MsoNormal align=center style='text-align:center;line-height:150%'><b
+style='mso-bidi-font-weight:normal'><span style='font-size:14.0pt;line-height:
+150%;color:black'><img border=0 width=960 height=521 id="_x0000_i1028"
+src="images/Steps%20for%20Developing%20CCM%20Applications.jpg"><o:p></o:p></span></b></p>
+
+<p class=MsoNormal align=center style='text-align:center;line-height:150%'><span
+style='color:black'>Steps for Developing Stock Quoter Application<o:p></o:p></span></p>
+
+<p class=MsoNormal style='line-height:150%'><span style='color:black'><o:p>&nbsp;</o:p></span></p>
+
+<p class=MsoNormal style='line-height:150%'><span style='color:black'>Listed
+below are the steps for developing the Stock Quoter application. Each link is a
+step-by-step tutorial of the specific step.</span><b style='mso-bidi-font-weight:
+normal'><span style='font-size:14.0pt;line-height:150%;color:black'><o:p></o:p></span></b></p>
+
+<ol style='margin-top:0in' start=1 type=1>
+ <li class=MsoNormal style='color:black;line-height:150%;mso-list:l2 level1 lfo5;
+ tab-stops:list .5in'><b><a href="01.html">Define your interfaces and
+ component types</a>:</b><o:p></o:p></li>
+ <ol style='margin-top:0in' start=1 type=a>
+ <li class=MsoNormal style='color:black;line-height:150%;mso-list:l2 level2 lfo5;
+ tab-stops:list 1.0in'><b>Define your interfaces using IDL 2.x features</b>,
+ e.g., use the familiar CORBA types (such as <span style='mso-bidi-font-weight:
+ bold'>struct</span>, <span style='mso-bidi-font-weight:bold'>sequence</span>,
+ <span style='mso-bidi-font-weight:bold'>long</span>, <span
+ style='mso-bidi-font-weight:bold'>Object</span>, <span style='mso-bidi-font-weight:
+ bold'>interface</span>, <span style='mso-bidi-font-weight:bold'>raises</span>,
+ etc.) to define your interfaces &amp; exceptions.<o:p></o:p></li>
+ <li class=MsoNormal style='color:black;line-height:150%;mso-list:l2 level2 lfo5;
+ tab-stops:list 1.0in'><b>Define your component types using IDL 3.x
+ features</b>, e.g., use the new CCM keywords (such as <span
+ style='mso-bidi-font-weight:bold'>component</span>, <span
+ style='mso-bidi-font-weight:bold'>provides</span>, <span
+ style='mso-bidi-font-weight:bold'>uses</span>, <span style='mso-bidi-font-weight:
+ bold'>publishes</span>, <span style='mso-bidi-font-weight:bold'>emits</span>,
+ &amp; <span style='mso-bidi-font-weight:bold'>consumes</span>) to group
+ the IDL 2.x types together to form components.<b><o:p></o:p></b></li>
+ </ol>
+ <li class=MsoNormal style='color:black;line-height:150%;mso-list:l2 level1 lfo5;
+ tab-stops:list .5in'><b><a href="02.html">Implement your components</a></b>,
+ e.g., using C++ or Java &amp; the Component Implementation Definition
+ Language (CIDL), which generates component servants, executor interfaces,
+ associated metadata, &amp; compositions.<b><o:p></o:p></b></li>
+ <li class=MsoNormal style='color:black;line-height:150%;mso-list:l2 level1 lfo5;
+ tab-stops:list .5in'><b style='mso-bidi-font-weight:normal'><a
+ href="03.html">Package your components</a></b>, <span style='color:red'>[Ming,
+ can you add a brief description here?]</span><b><o:p></o:p></b></li>
+ <li class=MsoNormal style='color:black;line-height:150%;mso-list:l2 level1 lfo5;
+ tab-stops:list .5in'><b><a href="03.html">Assemble your components</a></b>,
+ e.g., group related components together &amp; characterize their metadata
+ that describes the components present in the assembly.<span
+ style='mso-bidi-font-weight:bold'><o:p></o:p></span></li>
+ <li class=MsoNormal style='color:black;line-height:150%;mso-list:l2 level1 lfo5;
+ tab-stops:list .5in'><b style='mso-bidi-font-weight:normal'><a
+ href="03.html">Plan your deployment</a></b>, <span style='color:red'>[Ming,
+ can you add a brief description here?]</span><span style='mso-bidi-font-weight:
+ bold'><o:p></o:p></span></li>
+ <li class=MsoNormal style='color:black;line-height:150%;mso-list:l2 level1 lfo5;
+ tab-stops:list .5in'><b><a href="04.html">Deploy your components &amp; run
+ your application</a></b>, e.g., move the component assembly packages to
+ the appropriate nodes in the distributed system &amp; invoke operations on
+ components to perform the application logic.<b style='mso-bidi-font-weight:
+ normal'><o:p></o:p></b></li>
+</ol>
+
+<div class=MsoNormal align=center style='text-align:center;line-height:150%'><span
+style='color:black'>
+
+<hr size=2 width="100%" align=center>
+
+</span></div>
+
+<address style='line-height:150%'><a href="mailto:ming.xiong@vanderbilt.edu">Ming
+Xiong<br>
+</a><a href="mailto:abdullah.sowayan@lmco.com">Abdullah Sowayan</a></address>
+
+<address style='line-height:150%'>Last modified: Fri May 5 21:29:07 CDT 2006 <span
+style='color:black'><o:p></o:p></span></address>
+
+</div>
+
+</body>
+
+</html>
diff --git a/modules/CIAO/docs/value_factory_registration.html b/modules/CIAO/docs/value_factory_registration.html
new file mode 100644
index 00000000000..3c2a45d6815
--- /dev/null
+++ b/modules/CIAO/docs/value_factory_registration.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="Author" content="Jeff Parsons">
+ <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
+ <title>Registration of Valuetype Factories for Event Sinks</title>
+ <!-- $Id$ -->
+ </head>
+ <body>
+ <h3>Registration of Valuetype Factories for Event Sinks</h3>
+ <p>Components with one or more event sink (consumer) ports will need to have a
+ valuetype factory registered with the underlying ORB in order to correctly
+ demarshal the state of eventtypes it receives over the wire.</p>
+ <p>For the common case (eventtypes that contain only one or more state members),
+ the IDL compiler generates a concrete class with a name constructed from the
+ valuetype name and an '_init' suffix, and the CIDL compiler generates a macro
+ in the servant constructor that registers this factory with the container's
+ ORB. However, an eventtype, like any valuetype, may also contain operation
+ and/or factory declarations. In these cases things are not so simple. For
+ example a factory declaration in an IDL valuetype or eventtype will generate a
+ pure virtual function of the same name in the associated _init class, meaning
+ that ORB factory registration for this type must be with a derived factory
+ class written by the application developer. The table below shows all possible
+ cases of IDL compiler factory generation.</p>
+ <TABLE BORDER="4" CELLSPACING="4" CELLPADDING="4" ID="Table1">
+ <TR>
+ <TD></TD>
+ <TD><b>Has Operation</b></TD>
+ <TD><b>Has No Operation</b></TD>
+ </TR>
+ <tr>
+ <td><b>Has Factory</b></td>
+ <td>ABSTRACT FACTORY</td>
+ <td>ABSTRACT FACTORY</td>
+ </tr>
+ <tr>
+ <td><b>Has No Factory</b></td>
+ <td>NO FACTORY</td>
+ <td>CONCRETE FACTORY</td>
+ </tr>
+ </TABLE>
+ <p>The CIAO CIDL compiler will generate a macro to register the factory with the
+ container's ORB only in the case where a concrete factory is generated by the
+ IDL compiler, and thus no subclassing is necessary. There is also a command
+ line option for the CIDL compiler, <tt>--suppress-register-factory</tt>,
+ that turns off generation of the macro in all cases.</p>
+ </body>
+</html>