diff options
author | jai <jai@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2007-01-29 21:15:18 +0000 |
---|---|---|
committer | jai <jai@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2007-01-29 21:15:18 +0000 |
commit | b71531b42b3325fd6079a7039aae8641262c8adf (patch) | |
tree | a5b9aa16924c541fcb424ee9460b1ac7f5a89352 /modules/CIAO/docs/tutorials/Quoter/Simple | |
parent | a0f67cc97c0050d907145e312135b60c0125e56e (diff) | |
download | ATCD-DS-main.tar.gz |
branching/taggingDS-main
Diffstat (limited to 'modules/CIAO/docs/tutorials/Quoter/Simple')
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 & 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> </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'>·<span style='font:7.0pt "Times New Roman"'> +</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> </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'> +</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'> +</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'> +</span><span style='mso-spacerun:yes'> </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'> +</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> </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'>·<span style='font:7.0pt "Times New Roman"'> +</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"'> +</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’s</span> Developer’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"'> +</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'>·<span +style='font:7.0pt "Times New Roman"'> +</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 "real" 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'>·<span +style='font:7.0pt "Times New Roman"'> +</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 +–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> </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 –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 –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> </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> </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'> +</span>generate_export_file.pl STOCK_BASE_STUB > <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'> </span>generate_export_file.pl +STOCK_BASE_SKEL > <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> </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'>·<span +style='font:7.0pt "Times New Roman"'> +</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> </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'> <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'>·<span +style='font:7.0pt "Times New Roman"'> +</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'>·<span +style='font:7.0pt "Times New Roman"'> +</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'> </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> </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> </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'> +</span>generate_export_file.pl DISTRIBUTOR_STUB > <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'> +</span>generate_export_file.pl DISTRIBUTOR_SVNT > <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'> +</span>generate_export_file.pl DISTRIBUTOR_EXEC > <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> </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'>·<span +style='font:7.0pt "Times New Roman"'> +</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> </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'>·<span +style='font:7.0pt "Times New Roman"'> +</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'>·<span +style='font:7.0pt "Times New Roman"'> +</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> </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> </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'> +</span>generate_export_file.pl BROKER_STUB > <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'> +</span>generate_export_file.pl BROKER_SVNT > <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'> +</span>generate_export_file.pl BROKER_EXEC > <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> </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'>·<span +style='font:7.0pt "Times New Roman"'> +</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'> +<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> </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 & 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'>·<span +style='font:7.0pt "Times New Roman"'> +</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'>·<span +style='font:7.0pt "Times New Roman"'> +</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’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> </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'>·<span +style='font:7.0pt "Times New Roman"'> +</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'>·<span +style='font:7.0pt "Times New Roman"'> +</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’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'>·<span +style='font:7.0pt "Times New Roman"'> +</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'>·<span +style='font:7.0pt "Times New Roman"'> +</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> </o:p></span></p> + +<p class=MsoNormal><span style='color:black'> <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 & 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> </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"'> +</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"'> +</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> </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 & +Configuration (D&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> </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> </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> </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> </o:p></span></p> + +<p class=MsoNormal><b><span style='color:black'>Importing IDL to PICML</span></b><span +style='color:black'><br> +<br> + 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> + > <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> + (if the above command does not work, you may also try this<br> + ><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> -I %TAO_ROOT% -I + %TAO_ROOT%\<span class=SpellE>orbsvcs</span> -I %CIAO_ROOT%\ciao)</span></kbd><br> + <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->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> </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'> 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 <<<span class=SpellE>FileRef</span>>> +instance and a yellow box-shaped entity representing a <<Package>> +instance. Their equivalent representations in IDL files are +"#include" and "module" respectively. Figure 3 gives you a +clear view of GME representation of all the 3 <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->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 & +Configuration (D&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. For those who hate specification +(including me, :-)), an <a +href="http://www.cs.wustl.edu/%7Eschmidt/PDF/DAnCE.pdf">overview of D&C</a> +and as well as a <a +href="http://www.cs.wustl.edu/%7Eschmidt/OMG-CCM-Tutorial.ppt">tutorial of +D&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->Check->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-><span class=SpellE>ComponentImplementationContainer</span></strong>, + rename it as "<span class=SpellE>StockQuoterImplementation</span>" + 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 <<<span class=SpellE>ComponentAssembly</span>>> to the + modeling window, name it "<span class=SpellE>StockQuoter</span>". + 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 "<span class=SpellE>StockQuoter</span>" + <<<span class=SpellE>ComponentAssembly</span>>> 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 "<span class=SpellE>StockQuoter</span>" + <<<span class=SpellE>ComponentAssembly</span>>> 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> </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 <<<span + class=SpellE>PublishConnector</span>>>.<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 <<<span class=SpellE>PublishConnector</span>>>.<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 -->><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 <<<span + class=SpellE>PackageContainer</span>>>, name it "Broker"; + 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 <<<span + class=SpellE>ComponentPackage</span>>> named "Broker";<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 <<<span + class=SpellE>ComponentImplementationReference</span>>> named + "Broker";<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 <<<span + class=SpellE>ComponentRef</span>>> named "Broker";<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 <<<span + class=SpellE>ComponentImplementationReference</span>>> <em>Broker</em> + to <code><span style='font-size:10.0pt'>MyQuoter/ComponentImplementations/StockBroker</span></code>Implementation/StockBrokerMonolithicImpl. + Refer the <<<span class=SpellE>ComponentRef</span>>> <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 + "into" 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 <<<span class=SpellE>ComponentImplementationReference</span>>> + <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'><<<span + class=SpellE>ComponentImplementationReference</span>>> <em>Broker</em> + implements <<<span class=SpellE>ComponentPackage</span>>> <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'><<<span + class=SpellE>ComponentPackage</span>>> <em>Broker</em> realizes + <<<span class=SpellE>ComponentRef</span>>> <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> + 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 -->><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 "realize" a certain interface, so + different from the Broker and Distributor packages, the <span + class=SpellE>StockQuoter</span> does not need a <<<span + class=SpellE>ComponentRef</span>>>. 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"'> </span></span></span><![endif]><span +style='color:black'>Insert a <<<span class=SpellE>ComponentPackage</span>>> +named "<span class=SpellE>StockQuoter</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'>2.<span +style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span +style='color:black'>Add a <<<span class=SpellE>ComponentImplementationReference</span>>> +named "<span class=SpellE>StockQuoter</span>", 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"'> </span></span></span><![endif]><span +style='color:black'>Switch to connect mode and connect <<<span +class=SpellE>ComponentImplementationReference</span>>> <span +class=SpellE>StockQuoter</span> with <<<span class=SpellE>ComponentPackage</span>>> +<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 -->><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 <<<span + class=SpellE>PackageConfigurationContainer</span>>>, name it + "Default", 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 <<<span + class=SpellE>PackageConfiguration</span>>> named "default" + and a <<<span class=SpellE>ComponentPackageReference</span>>>, + name it "<span class=SpellE>StockQuoter</span>", connect + "Default" to "<span class=SpellE>StockQuoter</span>"<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 <<<span + class=SpellE>ComponentPackageReference</span>>> <span class=SpellE>StockQuoter</span> + to <<<span class=SpellE>ComponentPackage</span>>> <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 <<<span class=SpellE>ComponentImplementationReference</span>>></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'>!) </span></code><o:p></o:p></li> +</ol> + +<p class=MsoNormal><span style='color:black'><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=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 <<<span + class=SpellE>ToplevelPackageContainer</span>>>, name it + "Default", 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 <<<span + class=SpellE>ToplevelPackage</span>>> named "<span + class=SpellE>ToplevelPackage</span>" and a <<<span + class=SpellE>PackageConfigurationReference</span>>>, name it + "Default", connect "<span class=SpellE>ToplevelPackage</span>" + to "Default"<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 + "Default" 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> </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 <<Domain>> named "Domain"; 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 <<Node>> named "Broker" and + "Distributor" 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 <<<span + class=SpellE>DeploymentPlan</span>>>; name it "Plan", + 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 <<<span + class=SpellE>CollocationGroup</span>>><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 <<<span + class=SpellE>NodeReference</span>>> named "<span class=SpellE>Node_Broker</span>" + and "<span class=SpellE>Node_Distributor</span>" 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 <<<span + class=SpellE>ComponentRef</span>>> named "<span class=SpellE>StockBroker</span>" + and "<span class=SpellE>StockDistributor</span>" 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 <<<span class=SpellE>ComponentRef</span>>> + 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 <<<span class=SpellE>CollocationGroup</span>>> + to <<<span class=SpellE>NodeReference</span>>> <span + class=SpellE><em>Node_Broker</em></span>, connect another <<<span + class=SpellE>CollocationGroup</span>>> to <<<span + class=SpellE>NodeReference</span>>> <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 <<<span class=SpellE>ComponentRef</span>>> <span + class=SpellE>StockBroker</span> to the <<<span class=SpellE>CollocationGroup</span>>> + running on the <<<span class=SpellE>NodeReference</span>>> + Broker, and <<<span class=SpellE>ComponentRef</span>>> <span + class=SpellE>StockDistributor</span> to the <<<span class=SpellE>CollocationGroup</span>>> + running on the <<<span class=SpellE>NodeReference</span>>> + 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 <<<span class=SpellE>CollocationGroup</span>>> + running on <<<span class=SpellE>NodeReference</span>>> + Distributor, right-click on it. You will find the cursor is changed to set + mode cursor, and only the <<<span class=SpellE>CollocationGroup</span>>> + 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 -->><br> +<br> +Figure 11<o:p></o:p></span></p> + +<p><span style='color:black'>Now move your cursor to <<<span +class=SpellE>ComponentRef</span>>> <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> + +><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 +<<<span class=SpellE>CollocationGroup</span>>> running on <em>Distributor</em> +node. To do the same with Broker, just right-click on another <<<span +class=SpellE>CollocationGroup</span>>>, and left-click on <span +class=SpellE>StockBroker</span> <<<span class=SpellE>CollocationGroup</span>>> +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'> </span>corbaloc<span +class=GramE>:iiop:localhost:40000</span>/NodeManager<o:p></o:p></span></pre><pre><span +style='color:black'><o:p> </o:p></span></pre><pre><span style='color:black'><o:p> </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> </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> <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 "destination" 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 "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.<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'> +</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> + </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> + </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> + </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> + </span><code><span style='font-size: +10.0pt;color:black'>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/Distributor/Distributor.exe +–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> </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> </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> </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 </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> mpc files for each of the components are available in the +components +directories. We use the <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> idl and cidl files for each component are placed in +components directory. +</li> +<li> 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 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> + <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> +>From different shells in <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 </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, and try the following +commands, see what happens in the component server<br> + </li> +</ul> + <br> + Start the distributor +service at a frequency of 3 hertz:<br> + <span style="color: rgb(51, 102, 255);">../Distributor/Distributor.exe +-o -r3</span><br> +<br> + Use the broker program to +subscribe to MSFT stock<br> + <span + style="color: rgb(51, 102, 255);">../Broker/Broker.exe -s MSFT</span><br> +<br> + Subscribe to IBM stock<br> + <span + style="color: rgb(51, 102, 255);">../Broker/Broker.exe -s IBM</span><br> +<br> + Unsubscribe to MSFT stock<br> + <span + style="color: rgb(51, 102, 255);">../Broker/Broker -u MSFT</span><br> +<br> + Turn off the distribution +service:<br> + <span + style="color: rgb(51, 102, 255);">../Distributor/Distributor -f </span><br> +<br> +Please contact mxiong@dre.vanderbilt.edu if you have any questions. + <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 Binary files differnew file mode 100644 index 00000000000..b0346ee841b --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step1.JPG diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step2.JPG b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step2.JPG Binary files differnew file mode 100644 index 00000000000..a4526901307 --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step2.JPG diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step3.JPG b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step3.JPG Binary files differnew file mode 100644 index 00000000000..d7687394851 --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step3.JPG diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step6.JPG b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step6.JPG Binary files differnew file mode 100644 index 00000000000..e1e3b28055d --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Step6.JPG 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 Binary files differnew file mode 100644 index 00000000000..ddccdc2b373 --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/Steps for Developing CCM Applications.jpg diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig1.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig1.jpg Binary files differnew file mode 100644 index 00000000000..a8550fe1176 --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig1.jpg diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig10.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig10.jpg Binary files differnew file mode 100644 index 00000000000..3db5ac174e0 --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig10.jpg diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig11.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig11.jpg Binary files differnew file mode 100644 index 00000000000..c5eaf705384 --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig11.jpg diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig12.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig12.jpg Binary files differnew file mode 100644 index 00000000000..ea2a885af6b --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig12.jpg diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig2.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig2.jpg Binary files differnew file mode 100644 index 00000000000..49d6f90c3b0 --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig2.jpg diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig3.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig3.jpg Binary files differnew file mode 100644 index 00000000000..0559dc7382b --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig3.jpg diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig4.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig4.jpg Binary files differnew file mode 100644 index 00000000000..8fb89eccb57 --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig4.jpg diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig5.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig5.jpg Binary files differnew file mode 100644 index 00000000000..e847b9290d6 --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig5.jpg diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig6.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig6.jpg Binary files differnew file mode 100644 index 00000000000..0a214c84ea8 --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig6.jpg diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig7.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig7.jpg Binary files differnew file mode 100644 index 00000000000..67d90b775b0 --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig7.jpg diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig8.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig8.jpg Binary files differnew file mode 100644 index 00000000000..a565c2ab989 --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig8.jpg diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig9.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig9.jpg Binary files differnew file mode 100644 index 00000000000..996d90d800b --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig9.jpg diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/quoter.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/quoter.jpg Binary files differnew file mode 100644 index 00000000000..2f3edd11329 --- /dev/null +++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/quoter.jpg 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 & 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> </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> </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> </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'>·<span style='font:7.0pt "Times New Roman"'> +</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'>·<span style='font:7.0pt "Times New Roman"'> +</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'>·<span style='font:7.0pt "Times New Roman"'> +</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'>·<span style='font:7.0pt "Times New Roman"'> +</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> </o:p></span></p> + +<p style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span +style='color:black'><span style='mso-spacerun:yes'> </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'>·<span style='font:7.0pt "Times New Roman"'> +</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'>·<span style='font:7.0pt "Times New Roman"'> +</span></span></span><![endif]>TAO’s Developer’s Guide Version +1.4a. Chapter 32 : CIAO and CCM.</p> + +<p style='margin:0in;margin-bottom:.0001pt;line-height:150%'><span +style='color:black'><o:p> </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'> 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'>·<span +style='font:7.0pt "Times New Roman"'> +</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'>·<span +style='font:7.0pt "Times New Roman"'> +</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'>·<span +style='font:7.0pt "Times New Roman"'> +</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"'> </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. 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"'> +</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> </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> </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> </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 & 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>, + & <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 & the Component Implementation Definition + Language (CIDL), which generates component servants, executor interfaces, + associated metadata, & 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 & 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 & run + your application</a></b>, e.g., move the component assembly packages to + the appropriate nodes in the distributed system & 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> |