summaryrefslogtreecommitdiff
path: root/modules/CIAO/docs/tutorials/Quoter
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/docs/tutorials/Quoter')
-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
69 files changed, 6513 insertions, 0 deletions
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>