summaryrefslogtreecommitdiff
path: root/modules/CIAO/docs/tutorials/Quoter/Simple/README.html
blob: 85e38e81150e8c436595308e3ae4146183d32af4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!--//$Id$ -->
</head>
<body>
<b><font size="5">Quoter example README</font></b>
<p>To download the source codes of this example please refer to the SVN
repository at <code>$CIAO_ROOT\docs\tutorials\Quoter\Simple</code>
</p>
<hr>
<h2>Example Description</h2>
<div align="left">
<font face="Times New Roman" size="3">The <b>StockDistributor</b>
component would be monitoring a real-time stock database. When the
values of particular stocks change, it pushes a CCM <b>eventtype</b>
that contains the stock's name via a CCM event source to the
corresponding CCM </font>
</div>
<div align="left">
<font face="Times New Roman" size="3">event sink implemented by one or
more <b>StockBroker</b> components. If these components are interested
in the stock they can obtain more information about it by invoking a
request/response operation via their CCM receptacle on a CCM facet
exported by the <b>StockDistributor</b> component. The diagram of this
example is shown in fig 1.</font>
</div>
<p align="center"><img alt="" src="images/quoter.jpg"
 style="width: 362px; height: 212px;"><br>
figure 1<br>
</p>
<h2 align="justify"><span style="font-weight: 400;"><font size="3"></font></span><span
 style="font-weight: 400;"><font size="3">This example
is based on a series of&nbsp;</font> <a
 href="http://www.cs.wustl.edu/%7Eschmidt/report-doc.html"><font
 size="3">CORBA Component Model</font></a><font size="3"> columns
written by <a href="http://www.cs.wustl.edu/%7Eschmidt/">Douglas
Schmidt</a> and <a href="http://www.iona.com/hyplan/vinoski/">Steve
Vinoski</a>, and has been consistently used as a example for <a
 href="http://www.cs.wustl.edu/%7Eschmidt/TAO.html">TAO</a>. Please
refer to <a
 href="../../../../../docs/tutorials/Quoter/index.html">TAO
online tutorial</a> for details. <br>
</font></span></h2>
<h2>The files you will find</h2>
<li>The interfaces, data types and exceptions shared by the components
of
this
application are specified in the <a href="Stock_Base/Stock_Base.idl"><code>Stock_Base.idl</code></a>.<code></code>The
lib
generated
from Stock_Base.idl is linked to all the components of this example.</li>
<li>&nbsp;mpc files for each of the components are available in the
components
directories. We use the&nbsp; <a
 href="http://downloads.ociweb.com/MPC/MakeProjectCreator.pdf">MPC</a>
to
generate makefiles and Visual C++ project/solutions files for all <a
 href="http://www.cs.wustl.edu/%7Eschmidt/ACE.html">ACE</a>, <a
 href="http://www.cs.wustl.edu/%7Eschmidt/TAO.html">TAO</a> and <a
 href="http://www.cs.wustl.edu/%7Eschmidt/CIAO.html">CIAO</a>
libraries. </li>
<li>&nbsp;idl and cidl files for each component are placed in
components directory.
</li>
<li>&nbsp;The <code>_exec.h</code> and <code>_exec.cpp</code> files
are the actual
implementation of the components.</li>
<hr>
<h3><font size="5">Make</font></h3>
Navigate to&nbsp; the directory <code>$CIAO_ROOT/docs/tutorials/Quoter/Simple</code>
and do:<br>
<code>$ACE_ROOT/bin/mwc.pl -type gnuace</code> (use different -type option 
if you are using a
compiler/IDE other than GNU make) <br>
For example, use <code>%ACE_ROOT%/bin/mwc.pl -type vc71</code> if you
are using
Visual C++ 7.1 IDE.<br>
<br>
Then build/make the generated project/make files. Correct errors in the
source codes if necessary.<br>
<hr>
<h3><font size="5">Assemble</font></h3>
<p>Now we can step forward to build the assembly. </p>
<li>In the descriptor subdirectory, you'll find a XML descriptor file
that
describes your <em>deployment plan</em>, the
flattened_deploymentplan.cdp. This file declaratively specifies how the
component assembly is
constructed.
Specifically, it defines the component types, component instances,
component
connections and implementation artifact descriptions. <br>
</li>
<dd>
&nbsp;<li>Please make sure that the Modified_Deployment.xsd and XMI.xsd
files
are in the Display/descriptors directory. The former file could be
found in $CIAO_ROOT/docs/schema
directory. <br>
    <br>
Note: Creating the deployment plan descriptor is a tedious and
error-prone job,
you can download <a href="http://www.dre.vanderbilt.edu/cosmic">CoSMIC</a>
to
assist you in this step. Please refer to <a
 href="http://www.dre.vanderbilt.edu/%7Emxiong/tutorial">this tutorial</a>
to see how you can use CoSMIC to automatically generate the descriptor
file.
    <p></p>
    <hr></li>
</dd>
<h2>Running the program </h2>
&gt;From different shells in&nbsp;<code>$CIAO_ROOT/docs/tutorials/Quoter/Simple/</code><code>descriptors/</code>
directory:
<ul>
  <li>Start NodeManagers (NodeDameon) by running runNodeDaemon.pl </li>
  <li>Start the execution manager
$CIAO_ROOT/DAnCE/ExecutionManager/Execution_Manager -o ior -i
Stock.dat&nbsp; </li>
</ul>
<p>The Stock.dat file describes the deployment daemons CIAO's
Execution_Manager
will contact to instantiate ComponentServer's, home's, and component
instances.
Each line specify the name of a installation "destination" and the
corresponding corbaloc IOR for the CIAO_Daemon.</p>
<ul type="square">
  <li><em>NOTE</em>: As one can see, we use the "Stock.dat" file to
instruct the Execution_Manager how to find the endpoint of each
individual NodeManager (i.e., Node Daemon) where component(s) will be
deployed, so this is non-standard. We plan to use Naming Service to do
this in the future. </li>
</ul>
<ul>
  <li> Start the plan_launcher by running
$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p
flattened_deploymentplan.cdp -k file://ior</li>
  <li>By now the components should be successfully deployed. You may
run the driver program to start the application. Open a new shell, keep
in the /Quoter/descriptors directory,&nbsp; and try the following
commands, see what happens in the component server<br>
  </li>
</ul>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start the distributor
service at a frequency of&nbsp; 3 hertz:<br>
&nbsp; &nbsp; &nbsp;&nbsp; <span style="color: rgb(51, 102, 255);">../Distributor/Distributor.exe
-o&nbsp;&nbsp; -r3</span><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Use the broker program to
subscribe to MSFT stock<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span
 style="color: rgb(51, 102, 255);">../Broker/Broker.exe -s MSFT</span><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Subscribe to IBM stock<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <span
 style="color: rgb(51, 102, 255);">../Broker/Broker.exe -s IBM</span><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Unsubscribe to MSFT stock<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span
 style="color: rgb(51, 102, 255);">../Broker/Broker -u MSFT</span><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Turn off the distribution
service:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span
 style="color: rgb(51, 102, 255);">../Distributor/Distributor -f </span><br>
<br>
Please contact mxiong@dre.vanderbilt.edu if you have any questions.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
</body>
</html>