diff options
Diffstat (limited to 'TAO/CIAO/docs/tutorials/CoSMIC/02.html')
-rw-r--r-- | TAO/CIAO/docs/tutorials/CoSMIC/02.html | 422 |
1 files changed, 0 insertions, 422 deletions
diff --git a/TAO/CIAO/docs/tutorials/CoSMIC/02.html b/TAO/CIAO/docs/tutorials/CoSMIC/02.html deleted file mode 100644 index 6c8cee01aa2..00000000000 --- a/TAO/CIAO/docs/tutorials/CoSMIC/02.html +++ /dev/null @@ -1,422 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> -<html> -<head> - <title>Building a Stock Quoter with TAO - A Tutorial</title> -<!-- $Id$ --> -</head> -<body style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" - link="#000fff" vlink="#ff0f0f"> -<h3>Building Stock Quoter system in PICML<br> -</h3> -Now we can start modelling the Quoter system using PICML. If there's -anything that confuses you as we go through each step, <a - href="Model/Quoter.xme">here</a> is a pre-built Quoter model for your -reference. -It has everything that we will be achieving in this section. -<blockquote> - <hr><strong>Note:</strong> -In case you don't know, to importa a XML file, just select <span - style="font-weight: bold;">File->Import XML..</span> from -GME and choose your XML model <br> - <hr></blockquote> -The paradigm of PICML is designed keeping in mind 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 straightforwrd if you are familar -with the specification. Please go to <a - href="http://www.cs.wustl.edu/%7Eschmidt/ACE_wrappers/TAO/CIAO/docs/releasenotes/dance.html">DAnCE -project</a> for more information. <br> -<br> -<hr> -<h3>Table of Contents</h3> -<ul> - <li><a href="#1">ImplementationArtifacts</a></li> - <li><a href="#2">ComponentImplementations</a></li> - <li><a href="#3">ComponentPackages</a></li> - <li><a href="#4">PackageConfiguration</a></li> - <li><a href="#5">TopLevelPackage</a></li> - <li><a href="#6">Targets</a></li> - <li><a href="#7">DeploymentPlan</a></li> -</ul> -<hr> -The complete PICML Quoter model consists of modeling elements -distributed in various folders.. <span style="font-style: italic;">idl_to_picml</span> -has created -all these folders and some of the modeling entities for us, as you -might have seen. In -the rest of the section, we 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. -Before we start, it is worth reminding you that, please don't forget to -check the constraints when you are done with your model. In particular, -whenever you are about to generate something from your model, check the -constraint first by choosing <br> -<span style="font-weight: bold;">File->Check->Check All</span> in -GME. This will help you find a lot of logic error in your model.<br> -<a name="1"> -<h3>ImplementationArtifacts<br> -</h3> -</a>This folder contains implementation artifacts associated with -components. <span style="font-style: italic;">idl_to_picml</span> has -created these artifacts for us, with their dependency relationships -correctly captured. Figure 4 shows the Implementation Artifacts for <span - style="font-style: italic;">Broker</span>. -<div style="text-align: center;"><img alt="" src="Images/fig4.jpg" - style="border: 1px solid ; width: 891px; height: 552px;"><a name="1"><br> -Figure 4.<br> -</a><br> -<div style="text-align: left;"><a name="1"></a> -<hr><a name="2"> -<h3>ComponentImplementation<br> -</h3> -</a>This folder contains models that describes the implementations of -component interfaces. In the Quoter example, we will have two -monolithic component implementations; respectively <span - style="font-style: italic;">StockDistributorImplementation </span><span - style="font-style: italic;">StockBroker</span>Implementation, and an -assembly -component implementation: <span style="font-style: italic;">StockQuoter</span>, -which is an assembly of <span style="font-style: italic;">StockDistributorImplementation -</span>and <span style="font-style: italic;">StockBrokerImplementaion</span>. -<span style="font-style: italic;">idl_to_picml</span> has created the -monolithic component implementations for us, as shown in figure 5 for -example, but we have to put them together by hand in order to construct -a Quoter system. <br> -<br> -<br> -<div style="text-align: center;"><img alt="" src="Images/fig5.jpg" - style="border: 1px solid ; width: 922px; height: 639px;"><br> -Figure 5<br> -<div style="text-align: left;"><br> -Assembly component is a recursive concept. It provides a boundary for -the composition of monolithic components.Assembly component does not -provide real implementation for any interface, i.e., it is a virtual -component. Modeling an assembly component is different from modeling a -monolithic component: you don't need to worry about the -artifacts.Instead, you need to create connections between monolithic -components so that they can talk via ports. Let's try to assemble the <span - style="font-style: italic;">StockQuoter</span>.<br> -<ol> - <li>Right click folder <span style="font-style: italic;">ComponentImplementations</span>, -choose <span style="font-weight: bold;">Insert -Model->ComponentImplementationContainer</span>, rename it -as "StockQuoterImplementation" in the Attribute Panel. Double click to -open it.<br> - </li> - <li> From the Part Browser, drag a <<ComponentAssembly>> -to the modeling window, -name it "StockQuoter". Double click to open it.<br> - </li> - <li> Now we will create two instances for interfaces<span - style="font-style: italic;"> StockBroker </span>and <span - style="font-style: italic;">StockDistributor</span>. To do -that, expand the folder <code><span style="font-style: italic;">InterfaceDefinitions</span></code>, -then expand the <code><span style="font-style: italic;">InterfaceDefinitions/</span></code><span - style="font-style: italic;">Broker</span>, then <code><span - style="font-style: italic;">InterfaceDefinitions/</span></code><span - style="font-style: italic;">Broker/</span><span - style="font-style: italic;">Stock</span> until the interface -definition of <span style="font-style: italic;">StockBroker </span>shows. -While expanding the tree, always keep -the "StockQuoter" <<ComponentAssembly>> window open. -Then drag <code style="font-style: italic;">MyQuoter/InterfaceDefinitions/Broker/Stock/StockBroker</code> -in the -browser to the "StockQuoter" <<ComponentAssembly>> window -while pressing ALT key. Repeat the -same steps for <span style="font-style: italic;">My</span><code - style="font-style: italic;">Quoter/InterfaceDefinitions/Distributor/Stock/StockDistributor</code>, -and you will see two instances of component interfaces have been -created as shown in Figure 6 (the black line in the figure only -indicates .mapping)<br> - </li> -</ol> -<br> -<div style="text-align: center;"><img alt="" src="Images/fig6.jpg" - style="width: 972px; height: 714px;"><br> -<br> -Figure 6 -<br> -<ol style="text-align: left;"> - <li value="4"> Create an <<PublishConnector>>.<br> - </li> - <li> Now assemble the components together according to <a - href="Images/fig1.jpg">Figure 1</a>(make sure you change to connect -mode <img alt="" src="Icons/AddConnMode.gif" - style="width: 20px; height: 17px;"> ) and -the resulting assembly model should look like Figure 7. Note that to -create connections between -StockDistributor.notify_out and StockBroker.notify_in, you will need -the intermediate connector <<PublishConnector>>. <br> - </li> -</ol> -<img alt="" src="Images/fig7.jpg" style="width: 724px; height: 402px;"><br> -<br> -Figure 7<br> -</div> -<hr> -<a name="3"></a> -<h3>ComponentPackage<br> -</h3> -This folder contains deployable component packages. Every instance in -an assembly should have a corresponding monolithic implementation and -packaged in a ComponentPackagebe To create a package for <em>StockBroker</em>.instance<br> -<ol> - <li> Right click folder <span style="font-style: italic;">ComponentPackage</span>s -, -insert a <<PackageContainer>>, name it "Broker"; Double -click to open it.<br> - </li> - <li> From the PartBrowser, add the following:<br> - <ul> - <li>a <<ComponentPackage>> named "Broker";</li> - <li>a <<ComponentImplementationReference>> named -"Broker";</li> - <li>a <<ComponentRef>> named "Broker";</li> - </ul> - </li> - <li> Refer the <<ComponentImplementationReference>> <em>Broker</em> -to <code>MyQuoter/ComponentImplementations/StockBroker</code>Implementation/StockBrokerMonolithicImpl. -Refer the -<<ComponentRef>> <em>Broker</em> to <code>MyQuoter/InterfaceDefinitions/Broker/Stock/StockBroker. -To do a refering in GME, simply drage the tree node in the Browser -"into" the reference model. For example, you should drage the tree node - </code><code>MyQuoter/ComponentImplementations/StockBroker</code>Implementation/StockBrokerMonolithicImpl -into <<ComponentImplementationReference>> <em>Broker. </em><code>Check -GME manual(tutorials) for more information.</code> </li> - <li> Switch to Connect Mode and create two connections according to -the following relationship.<br> - <ul> - <li> <<ComponentImplementationReference>> <em>Broker</em> -implements <<ComponentPackage>> <em>Broker</em>; </li> - <li> <<ComponentPackage>> <em>Broker </em>realizes -<<ComponentRef>> <em>Broker</em>. </li> - </ul> - <br> - <br> - The model you built should resemble Figure 8. <br> - <br> - <div style="text-align: center;"><img alt="" src="Images/fig8.jpg" - style="width: 675px; height: 497px;"><br> - <br> -Figure 8<br> - <br> - <div style="text-align: left;">Now create a -ComponentPackage/StockDistributor following the same steps.</div> - </div> - </li> - <br> - <div style="text-align: center;"> - <div style="text-align: left;">We will also need to create a package -for the assembly component -StockQuoter. Remember assembly component is a virtual component, it -does not "realize" a certain interface, so different from the Broker -and Distributor packages, the -StockQuoter does not need a <<ComponentRef>>. To create -this model: </div> - </div> - <div style="text-align: center;"> - <div style="text-align: left;"> - <ol> - <il>1. Insert a <<ComponentPackage>> named "StockQuoter"<br> - </il><il><il>2. Add a -<<ComponentImplementationReference>> named "StockQuoter", -refer it to MyQuoter<span style="font-family: monospace;">/ComponentImplementations/StockQuoter/StockQuoter</span></il></il> - </ol> - <ol> - <il><il>3. Switch to connect mode and connect -<<ComponentImplementationReference>> StockQuoter with -<<ComponentPackage>> StockQuoter, as in Figure 9.<br> - </il></il> - </ol> - <ol> - <ul> - </ul> - </ol> - </div> - </div> - <div style="text-align: center;"> - <div style="text-align: left;"> <br> - <br> - </div> - <div style="text-align: center;"><img alt="" src="Images/fig9.jpg" - style="width: 549px; height: 354px;"><br> - <br> -Figure 9<br> - <br> - </div> - </div> -</ol> -<hr> -<div style="text-align: left;"> <a name="4"></a> -<h3>PackageConfiguration<br> -</h3> -This folder contains just one model capturing specific configuration of -Component packages. <br> -<ol> - <li> In the folder <span style="font-style: italic;">PackageConfiguratio</span>n, -and create a -<<PackageConfigurationContainer>>, name it "Default", click -to -open it.<br> - </li> - <li> Add a <<PackageConfiguration>> named "default" and a -<<ComponentPackageReference>>, name it "StockQuoter", -connect "Default" to "StockQuoter"<br> - </li> - <li> Refer <<ComponentPackageReference>> StockQuoter to -<<ComponentPackage>> <code>MyQuoter/ComponentPackage/StockQuoter/StockQuoter - <br> -(Not <<ComponentImplementationReference>> </code><code>MyQuoter/ComponentPackage/StockQuoter/StockQuoter!) </code> - </li> -</ol> -<br> -<hr> -<a name="5"></a> -<h3>ToplevelPackage<br> -</h3> -This folder contains one model capturing information about the -top-level element that will be fed to -the application. <br> -<ol> - <li>In the folder <span style="font-style: italic;">ToplevelPackage</span>, -and create a -<<ToplevelPackageContainer>>, name it "Default", double -click to open it.<br> - </li> - <li> Add a <<ToplevelPackage>> named "ToplevelPackage" -and a <<PackageConfigurationReference>>, name it "Default", -connect "ToplevelPackage" to "Default" <br> - </li> - <li> Refer "Default" to My<code>Quoter/PackageConfiguration/Default/Default</code><br> - </li> -</ol> -<br> -<hr> -<a name="6"></a> -<h3>Targets<br> -</h3> -This folder contains domain-specific models capturing information about -the target -environment in which component-based application will be deployed. In -this Quoter example, we can either deploy the two components into ONE -host, or into TWO different host. We will deploy the Quoter into two -different host. <br> -<ol> - <li> In the folder <span style="font-style: italic;">Targets</span>, -insert a new <<Domain>> named "Domain"; double click to -open it.<br> - </li> - <li> From the Part Browser, add two <<Node>> named -"Broker" and "Distributor" respectively.<br> - </li> -</ol> -<br> -Now we are ready to deploy our Components to the actual physical -environment.<br> -<hr> -<a name="7"></a> -<h3>DeploymentPlan<br> -</h3> -This folder contains a plan model that captures information about the -assignment of component to nodes. <br> -<ol> - <li> In the folder <span style="font-style: italic;">DeploymentPlan</span>, -insert a model -<<DeploymentPlan>>; name it "Plan", click to open it<br> - </li> - <li> From the PartBrowser, add the following:<br> - <ul> - <li>Two <<CollocationGroup>></li> - <li>Two <<NodeReference>> named "Node_Broker" and -"Node_Distributor" respectively, refering to <code>MyQuoter/Targets/Domain/Broker</code> -and <code>MyQuoter/Targets/Domain/Distributor<code> respectively</code></code></li> - <li>Two <<ComponentRef>> named "StockBroker" and -"StockDistributor" respectively, refering to <code>MyQuoter/ComponentImplementations/StockQuoterImplementation/StockQuoter/StockBroker</code> -and <code>MyQuoter/ComponentImplementations/StockQuoterImplementation/StockQuoter/StockDistributor</code> -respectively. Note that the <<ComponentRef>> in -DeploymentPlan is not refering to the interface, but rather, the actual -instance of the implementation.</li> - </ul> - </li> - <li> Switch to Connect Mode, connect one -<<CollocationGroup>> to <<NodeReference>> <em>Node_Broker</em>, -connect another -<<CollocationGroup>> to <<NodeReference>> <span - style="font-style: italic;">Node_</span><em>Distributor</em>. -Now the model looks like the following.<br> - <br> - <div style="text-align: center;"><img alt="" src="Images/fig10.jpg" - style="width: 752px; height: 530px;"><br> - <br> -Figure 10.<br> - <br> - </div> - </li> - <li> Now we need to associate <<ComponentRef>> -StockBroker to the -<<CollocationGroup>> running on the -<<NodeReference>> Broker, and <<ComponentRef>> -StockDistributor to the <<CollocationGroup>> running on the -<<NodeReference>> Distributor. To do that, switch the Edit -Mode Bar to Set Mode (<img alt="" src="Icons/SetMode.gif" - style="width: 20px; height: 17px;">), and move -the cursor to the <<CollocationGroup>> running on -<<NodeReference>> Distributor, right-click on it. You will -find the cursor is changed to set mode cursor, and only the -<<CollocationGroup>> you clicked in is highlighted, as -shown -in Figure 11.<br> - <br> - </li> -</ol> -</div> -<div style="text-align: center;"><img alt="" src="Images/fig11.jpg" - style="width: 672px; height: 505px;"><br> -<br> -Figure 11<br> -<br> -</div> -<div style="text-align: left;"> Now move your cursor to -<<ComponentRef>> StockDistributor, and left-click it, -so that it looks like Figure 12.<br> -</div> -<br> -<div style="text-align: center;"><img alt="" src="Images/fig12.jpg" - style="width: 672px; height: 505px;"><br> -<br> -Figure 12<br> -<br> -</div> -<div style="text-align: left;"> This operation -associates <em>StockDistributor</em> component to the -<<CollocationGroup>> running on <em>Distributor</em> node. -To do the same with -Broker, just right-click on another <<CollocationGroup>>, -and left-click on StockBroker <<CollocationGroup>> which is -highlighted. <br> -<br> -<hr> -<a name="8"></a></div> -<br> -Up to this point, we are basiclly done with the modeling part. Before -we generate anything from this model though, please <span - style="font-weight: bold;">DO </span>remember to check the -constraints of the model as we mentioned earlier.<br> -<br> -After we are done with the modeling, the flattened_deploymentplan -interpreter that comes along with PICML will help us to generate a -flattened_deploymentplan.cdp file. Please make sure you generate this -file to MyQuoter/descriptors. -<address><span style="font-style: italic;"></span><br> -<span style="font-style: italic;"></span><br> -<br> -<a href="mailto:ming.xiong@vanderbilt.edu">Ming Xiong<br> -</a></address> -<!-- Created: Sat Nov 27 15:25:06 CST 1999 --><!-- hhmts start --> -Last modified:<!-- hhmts end --> -</div> -</div> -</div> -</div> -</body> -</html> |